/// import EventEmitter from 'events'; type EventsOf = keyof T & string; type ListenerFunc> = T[E] extends (...args: any[]) => void ? T[E] : never; type ListenerArgs> = T[E] extends (...args: infer A) => void ? A : never; export default class SafeEmitter extends EventEmitter { addListener>(event: E, listener: ListenerFunc): this; on>(event: E, listener: ListenerFunc): this; once>(event: E, listener: ListenerFunc): this; emit>(event: E, ...args: ListenerArgs): boolean; removeListener>(event: E, listener: ListenerFunc): this; removeAllListeners>(event?: E): this; removeListeners>(event?: E): this; } export {}; //# sourceMappingURL=SafeEmitter.d.ts.map