export type Listener = (...args: TArg[]) => Promise | void; export type Events = Record; export default class EventEmitter { /** * The singleton. * * @private */ private static instance?; private constructor(); /** * Get the singleton. */ static getInstance(): EventEmitter; /** * The Listeners that always run. * * @type {Record} */ protected listeners: TEvents; /** * The Listeners that only runs once. * * @type {Record} */ protected listenersOnce: TEvents; /** * Fire the event. * * @param event - The event name. * @param args - The arguments to pass to the listeners. */ emit

(event: P, ...args: Parameters): Promise; /** * Remove the listeners. * * @param {string=} event - only remove listeners for the given event * @param {CallableFunction=} listener - only remove the event listener that match the given listener. */ off

(event?: P, listener?: TEvents[P][number]): this; /** * Bind the event listener. */ on

(event: P, listener: Listener[number]>): this; /** * Bind the event listener that should only run once. */ once

(event: P, listener: Listener[number]>): this; /** * Bind the event and to the front of the stack. */ prependListener

(event: P, listener: Listener[number]>): this; /** * Bind the event that only runs once to the front of the stack. */ prependOnceListener

(event: P, listener: Listener[number]>): this; /** * Determine whether listeners exist. * * @param {string=} event - only check for listeners for the given event * @param {CallableFunction=} listener - only check for listeners that match this given listener */ has

(event?: P, listener?: Listener[number]>): boolean; /** * Get the number of listeners registered. * * @param {string=} event - only count the listeners for the given event */ listenerCount(event?: keyof TEvents): number; /** * Get all the even names currently listened to. */ eventNames(): (keyof TEvents)[]; } //# sourceMappingURL=EventEmitter.d.ts.map