export declare function createEventEmitter>(): { on(eventKey: K, callback: Callback): () => void; once(eventKey: K, callback: Callback): () => void; off(eventKey: K, callback: Callback): void; clean(eventKey: K): void; emit(...args: EventEmitterArgs): void; }; type Callback = (arg: Arg) => unknown; type EventEmitterArgs, K extends keyof EventMap> = undefined extends EventMap[K] ? [type: K, parameter?: EventMap[K]] : [type: K, parameter: EventMap[K]]; export {};