UNPKG

ab-event-emitter

Version:
25 lines (24 loc) 1.66 kB
declare type EventListener<EventConfig, Event extends keyof EventConfig> = (data: EventConfig[Event]) => void; declare const EVENT_EXCLUDED = "ee-event-excluded"; declare const EVENT_INCLUDED = "ee-event-included"; declare type TDefaultEvent = typeof EVENT_EXCLUDED | typeof EVENT_INCLUDED; declare type DefaultEvents<AdditionalEvents> = { [defaultEvent in TDefaultEvent]: keyof AdditionalEvents | TDefaultEvent; }; export declare type EventConfig<AdditionalEvents> = AdditionalEvents & DefaultEvents<AdditionalEvents>; export declare class ABEventEmitter<AdditionalEvents extends Record<string, any> = Record<string, any>> { static EventExcluded: typeof EVENT_EXCLUDED; static EventIncluded: typeof EVENT_INCLUDED; private listenersDict; private listenedEvents; constructor(); on<E extends keyof EventConfig<AdditionalEvents>>(event: E, listener: EventListener<EventConfig<AdditionalEvents>, E>): () => void; off<E extends keyof EventConfig<AdditionalEvents>>(event: E, listener?: EventListener<EventConfig<AdditionalEvents>, E>): ABEventEmitter<EventConfig<AdditionalEvents>>; emit<E extends keyof EventConfig<AdditionalEvents>>(event: E, data: EventConfig<AdditionalEvents>[E]): ABEventEmitter<EventConfig<AdditionalEvents>>; offAll(): ABEventEmitter<EventConfig<AdditionalEvents>>; private offEvent; listenersNumber<E extends keyof EventConfig<AdditionalEvents>>(event: E): number; getListenedEvents(): (keyof EventConfig<AdditionalEvents>)[]; getListeners<E extends keyof EventConfig<AdditionalEvents>>(event: E): EventListener<EventConfig<AdditionalEvents>, E>[]; } export {};