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