import type { Result } from '../result/Result'; import type { IApplicationError } from '../errors/ApplicationError'; export interface IApplicationService { readonly serviceName?: string; } export interface IAsyncApplicationService extends IApplicationService { execute(input: Input): Promise; } export interface IAsyncResultApplicationService< Input, Output, Error = IApplicationError > extends IApplicationService { execute(input: Input): Promise>; }