declare type EventMap = Record; declare type EventKey = string & keyof T; declare type EventReceiver = () => void; interface Emitter { on>(eventName: K, fn: EventReceiver): void; off>(eventName: K, fn: EventReceiver): void; emit>(eventName: K, params?: T[K]): void; } export declare class TypedEmitter implements Emitter { private emitter; on>(eventName: K, fn: EventReceiver): this; off>(eventName: K, fn: EventReceiver): void; emit>(eventName: K, params?: T[K]): void; removeAllListeners(): void; } export {};