export interface IEntityEventsManager { processEntityCreatedEvent(entity: TEntity): Promise; processEntityUpdatedEvent(entity: TEntity): Promise; processEntityDeletedEvent(id: TEntityId): Promise; } export interface IEventEmitter { emit(event: string, ...args: any[]): Promise; }