export interface DomainEvent { readonly eventType: string; readonly aggregateId: string; readonly eventData: T; readonly occurredAt: Date; } export interface DomainEventPublisher { publish(event: DomainEvent): Promise; } // Alias for backward compatibility export interface IDomainEvent extends DomainEvent {}