type EventHandler = (event?: any) => void; type WildCardEventHandler = (type: string, event?: any) => void; /** * An array of all currently registered event handlers for a type */ type EventHandlerList = Array; type WildCardEventHandlerList = Array; /** * A map of event types and their corresponding event handlers. */ type EventHandlerMap = { '*'?: WildCardEventHandlerList; [type: string]: EventHandlerList; }; /** * Emitter class that powers the subscribe packet */ export declare class Emitter { listeners: EventHandlerMap; /** * Use the constructor to initiate the eventbus with handlers * @param {EventHandlerMap} listeners */ constructor(listeners?: EventHandlerMap); /** * Register an event handler for the given type. * * @param {String} type Type of event to listen for, or `"*"` for all events * @param {Function} handler Function to call in response to given event */ on(type: (string & EventNames) | "*", handler: EventHandler | WildCardEventHandler): void; /** * Invoke this listener only once * @param {string & EventNames} type Type of event to emit, or `"*"` for all events * @param {EventHandler} handler */ once(type: string & EventNames, handler: EventHandler): void; /** * Remove an event handler for the given type. * * @param {String} type Type of event to unregister `handler` from, or `"*"` * @param {Function} handler Handler function to remove */ off(type: string & EventNames, handler?: EventHandler | WildCardEventHandler): void; /** * Invoke this.listeners handlers for the given type. * If present, `"*"` handlers are invoked after type-matched handlers. * * Note: Manually firing "*" handlers is not supported. * * @param {String} type The event type to invoke * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler */ emit(type: string & EventNames, evt?: any): void; } export {}; //# sourceMappingURL=index.d.ts.map