export interface LeagueCreatedEvent { type: 'LeagueCreatedEvent'; leagueId: string; ownerId: string; timestamp: Date; } export interface LeagueUpdatedEvent { type: 'LeagueUpdatedEvent'; leagueId: string; updates: Partial; timestamp: Date; } export interface LeagueDeletedEvent { type: 'LeagueDeletedEvent'; leagueId: string; timestamp: Date; } export interface LeagueAccessedEvent { type: 'LeagueAccessedEvent'; leagueId: string; driverId: string; timestamp: Date; } export interface LeagueEventPublisher { emitLeagueCreated(event: LeagueCreatedEvent): Promise; emitLeagueUpdated(event: LeagueUpdatedEvent): Promise; emitLeagueDeleted(event: LeagueDeletedEvent): Promise; emitLeagueAccessed(event: LeagueAccessedEvent): Promise; getLeagueCreatedEventCount(): number; getLeagueUpdatedEventCount(): number; getLeagueDeletedEventCount(): number; getLeagueAccessedEventCount(): number; clear(): void; }