import type { Logger } from './logger.js'; /** * Generic event map type - keys are event names, values are listener signatures */ export type EventMap = Record void>; /** * Simple typed EventEmitter implementation. * Works in browser and Node.js environments without dependencies. */ export declare class EventEmitter { private listeners; /** * Logger for reporting errors in event listeners. * Subclasses should set this to their logger instance. * @internal */ protected _emitterLogger?: Logger; /** * Register an event listener. * @returns Unsubscribe function */ on(event: K, listener: Events[K]): () => void; /** * Remove an event listener. */ off(event: K, listener: Events[K]): void; /** * Register a one-time event listener. * @returns Unsubscribe function */ once(event: K, listener: Events[K]): () => void; /** * Emit an event to all registered listeners. */ protected emit(event: K, ...args: Parameters): void; /** * Remove all listeners for a specific event, or all listeners if no event specified. */ removeAllListeners(event?: K): void; /** * Get the number of listeners for a specific event. */ listenerCount(event: K): number; } //# sourceMappingURL=event-emitter.d.ts.map