type EventArguments = T extends (...args: infer Args) => void ? Args : []; export interface Emitter { on: (event: Event, handler: Events[Event]) => void; off: (event: Event, handler: Events[Event]) => void; emit: (event: Event, ...args: EventArguments) => void; } export declare function createEventEmitter>(): Emitter; export {};