import type { Result } from '../application/Result'; import type { IDomainError } from '../errors/DomainError'; export interface IDomainService { readonly serviceName?: string; } export interface IDomainCalculationService extends IDomainService { calculate(input: Input): Output; } export interface IResultDomainCalculationService extends IDomainService { calculate(input: Input): Result; } export interface IDomainValidationService extends IDomainService { validate(input: Input): Result; } export interface IDomainFactoryService extends IDomainService { create(input: Input): Output; }