declare type AnyFn = (...params: any[]) => void; declare type NameBy = (keyof O & string) | string | number; declare type ListenerBy = K extends keyof O ? O[K] : AnyFn; export declare class EventEmitter { private _o; on>(name: K, listener: ListenerBy): () => void; off>(name: K, listener?: ListenerBy): void; once>(name: K, listener: ListenerBy): () => void; emit>(name: K, ...params: Parameters>): void; has>(name: K, listener?: ListenerBy): boolean; } export default EventEmitter;