declare type EventMap = Record; declare type EventKey = string & keyof T; declare type EventReceiver = (params: T) => 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 TypedEventEmitter implements Emitter { private emitter; constructor(); on>(eventName: K, fn: EventReceiver): void; off>(eventName: K, fn: EventReceiver): void; emit>(eventName: K, params: T[K]): void; } export {};