import type { Result } from '../domain/Result'; import type { ApplicationError } from '../errors/ApplicationError'; export interface ApplicationService { readonly serviceName?: string; } export interface AsyncApplicationService extends ApplicationService { execute(input: Input): Promise; } export interface AsyncResultApplicationService< Input, Output, Error = ApplicationError > extends ApplicationService { execute(input: Input): Promise>; }