import EventEmitter from './EventEmitter'; type AsArray

= P extends unknown[] ? P : [P]; export type EventHandlerFunction

= (...parameters: AsArray

) => void; export type EventListenerRemover = () => void; export type EventListenFunction = (eventEmitter: EventEmitter, handler: EventHandlerFunction) => EventListenerRemover; export type EventEmitFunction = (eventEmitter: EventEmitter, ...parameters: AsArray) => void; export type EventListenerHook = (eventEmitter: EventEmitter | null | undefined, handler: EventHandlerFunction) => void; /** * Listen for an event * @param eventEmitter The event emitter to listen to * @param event The event to listen for * @param handler The handler to call when the event is emitted * @returns A function to stop listening for the event */ export declare function listenForEvent(eventEmitter: EventEmitter, event: string, handler: EventHandlerFunction): EventListenerRemover; export declare function makeListenFunction(event: string): EventListenFunction; export declare function makeEmitFunction(event: string): EventEmitFunction; export declare function makeUseListenerFunction(event: string): EventListenerHook; /** * Create listener, emitter, and hook functions for an event * @param event Name of the event to create functions for * @returns Listener, Emitter, and Hook functions for the event */ export declare function makeEventFunctions(event: string): { listen: EventListenFunction; emit: EventEmitFunction; useListener: EventListenerHook; }; export {}; //# sourceMappingURL=EventUtils.d.ts.map