declare type FunctionParameters any> = T extends (...args: infer P) => any ? P : never; export declare class EventEmitter any> { handlers: Array; register(cb: CallbackSignature, once?: boolean): this; invoke(...args: FunctionParameters): void; invokeAsync(...args: FunctionParameters): Promise; remove(cb: CallbackSignature): void; clear(): void; } export declare function createSignal void | Promise>(): { once: (cb: CallbackSignature) => void; remove: (cb: CallbackSignature) => void; invoke: (...args: FunctionParameters) => void; invokeAsync: (...args: FunctionParameters) => Promise; clear: () => void; } & ((this: any, cb: CallbackSignature) => EventEmitter); export {};