import { EventEmitter } from 'node:events'; type Events = Record; export declare class EnhancedEventEmitter extends EventEmitter { constructor(); emit(eventName: K, ...args: E2[K]): boolean; /** * Special addition to the EventEmitter API. */ safeEmit(eventName: K, ...args: E2[K]): boolean; on(eventName: K, listener: (...args: E2[K]) => void): this; off(eventName: K, listener: (...args: E2[K]) => void): this; addListener(eventName: K, listener: (...args: E2[K]) => void): this; prependListener(eventName: K, listener: (...args: E2[K]) => void): this; once(eventName: K, listener: (...args: E2[K]) => void): this; prependOnceListener(eventName: K, listener: (...args: E2[K]) => void): this; removeListener(eventName: K, listener: (...args: E2[K]) => void): this; removeAllListeners(eventName?: K): this; listenerCount(eventName: K): number; listeners(eventName: K): ((...args: any[]) => void)[]; rawListeners(eventName: K): ((...args: any[]) => void)[]; } /** * TypeScript version of events.once(): * https://nodejs.org/api/events.html#eventsonceemitter-name-options * * Usage example: * ```ts * await enhancedOnce(videoConsumer, 'producerpause'); * ``` */ export declare function enhancedOnce(emmiter: EnhancedEventEmitter, eventName: keyof E & string, options?: any): Promise; export {}; //# sourceMappingURL=enhancedEvents.d.ts.map