/** * Base interface for all use cases */ export interface IUseCase { execute(request: TRequest): Promise } /** * Abstract base class for use cases */ export abstract class UseCase implements IUseCase { public abstract execute(request: TRequest): Promise }