UNPKG

@discoveryjs/discovery

Version:

Frontend framework for rapid data (JSON) analysis, shareable serverless reports and dashboards

17 lines (16 loc) 716 B
export type EventMap = Record<string, unknown[]>; export type Callback<P extends unknown[]> = (...args: P) => void; export type Listener<P extends unknown[]> = { callback: Callback<P> | null; next: Listener<P> | null; }; export declare class Emitter<Events extends EventMap> { listeners: { [EventName in keyof Events]: Listener<Events[EventName]> | null; }; constructor(); on<E extends keyof Events>(event: E, callback: Callback<Events[E]>): this; once<E extends keyof Events>(event: E, callback: Callback<Events[E]>): this; off<E extends keyof Events>(event: E, callback: Callback<Events[E]>): this; emit<E extends keyof Events>(event: E, ...args: Events[E]): boolean; }