import IRegisteredEventListener from './IRegisteredEventListener'; export default interface ITypedEventEmitter { on(eventType: K, listenerFn: (this: this, event?: T[K]) => any, includeUnhandledEvents?: boolean): this; off(event: K, listener: (this: this, event?: T[K]) => any): this; once(eventType: K, listenerFn: (this: this, event?: T[K]) => any, includeUnhandledEvents?: boolean): this; emit(eventType: K, event?: T[K]): boolean; addListener(event: K, listener: (this: this, event?: T[K]) => any, includeUnhandledEvents?: boolean): this; removeListener(event: K, listener: (this: this, event?: T[K]) => any): this; prependListener(event: K, listener: (this: this, event?: T[K]) => void, includeUnhandledEvents?: boolean): this; prependOnceListener(event: K, listener: (this: this, event?: T[K]) => void, includeUnhandledEvents?: boolean): this; removeAllListeners(event?: string | symbol): this; addEventEmitter(emitter: ITypedEventEmitter, eventTypes: K[]): IRegisteredEventListener[]; setMaxListeners(n: number): this; }