/** * EventPublisher Port * * Defines the interface for publishing domain events. * This port is implemented by adapters that can publish events. */ export interface EventPublisher { /** * Publish a domain event */ publish(event: DomainEvent): Promise; } export interface DomainEvent { type: string; timestamp: Date; [key: string]: any; }