/** * Simple EventEmitter implementation */ /** * Event listener function type */ export type EventListener = (event: T) => void | Promise; /** * Event listener options */ export interface EventListenerOptions { /** Whether to execute the listener only once */ once?: boolean; /** Whether to execute the listener asynchronously */ async?: boolean; /** Priority of the listener (higher = executed first) */ priority?: number; /** Whether to stop event propagation */ stopPropagation?: boolean; } /** * Event listener registration */ export interface EventListenerRegistration { /** Event type */ type: string; /** Listener function */ listener: EventListener; /** Listener options */ options: EventListenerOptions; /** Registration ID */ id: string; /** Whether the listener is active */ active: boolean; /** Registration timestamp */ timestamp: Date; } /** * EventEmitter class for handling events */ export declare class EventEmitter { private listeners; /** * Add an event listener */ on(type: string, listener: EventListener, options?: EventListenerOptions): string; /** * Add a one-time event listener */ once(type: string, listener: EventListener, options?: EventListenerOptions): string; /** * Remove an event listener */ off(type: string, listenerId: string): boolean; /** * Remove all listeners for an event type */ offAll(type: string): number; /** * Emit an event */ emit(event: T): Promise; /** * Emit an event synchronously */ emitSync(event: T): void; /** * Clear all listeners */ clear(): void; /** * Get listeners for an event type */ getListeners(type: string): EventListenerRegistration[]; /** * Get listener count for an event type */ getListenerCount(type: string): number; /** * Get all registered event types */ getEventTypes(): string[]; private generateId; private cleanupInactiveListeners; } //# sourceMappingURL=EventEmitter.d.ts.map