import type { DomainErrorProps } from '../errors/DomainError'; import { Result } from './Result'; export interface DomainService { readonly serviceName?: string; } export interface DomainCalculationService extends DomainService { calculate(input: Input): Output; } export interface ResultDomainCalculationService extends DomainService { calculate(input: Input): Result; } export interface DomainValidationService extends DomainService { validate(input: Input): Result; } export interface DomainFactoryService extends DomainService { create(input: Input): Output; } // Alias for backward compatibility export type DomainServiceAlias = DomainService; export type DomainCalculationServiceAlias = DomainCalculationService; export type ResultDomainCalculationServiceAlias = ResultDomainCalculationService; export type DomainValidationServiceAlias = DomainValidationService; export type DomainFactoryServiceAlias = DomainFactoryService;