export type DomainEventType = string;
export interface DomainEvent {
    readonly type: DomainEventType;
}
export interface IDomainEventPublisher {
    publish<T extends DomainEvent>(event: T): void;
    subscribe<T extends DomainEvent>(eventType: T['type'], handler: (event: T) => void | Promise<void>): void;
}
//# sourceMappingURL=domain-event-publisher.d.ts.map