mollitia
Version:
JavaScript Resilience Library
39 lines (38 loc) • 1.07 kB
TypeScript
type EventCallback = ((...params: any) => void);
interface EventListener {
[eventName: string]: ((...args: any[]) => void)[];
}
declare class EventDisposable {
private listeners;
private eventName;
private index;
constructor(listeners: EventListener, eventName: string, index: number);
/**
* Unsubscribes to the event.
*/
dispose(): void;
}
export declare class EventEmitter {
private listeners;
constructor();
/**
* Subscribes to an event.
* @param {string} eventName Event name.
* @param {EventCallback} cb Event callback.
*/
on(eventName: string, cb: EventCallback): EventDisposable;
/**
* Unsubscribes to an event.
* @param {string} eventName Event name.
* @param {EventCallback} cb Event callback.
*/
off(eventName: string, cb: EventCallback): void;
/**
* Emits an event.
* @param {string} eventName Event name.
* @param args Optional parameters.
*/
emit(eventName: string, ...args: any[]): boolean;
dispose(): void;
}
export {};