json-joy
Version:
Collection of libraries for building collaborative editing apps.
15 lines (14 loc) • 599 B
TypeScript
export interface EventListenerOptions {
capture?: boolean;
}
export interface AddEventListenerOptions extends EventListenerOptions {
once?: boolean;
passive?: boolean;
signal?: AbortSignal;
}
export declare class Emitter<EventMap> {
private readonly et;
on<K extends keyof EventMap>(type: K, listener: (ev: EventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
emit<K extends keyof EventMap>(event: EventMap[K]): boolean;
off<K extends keyof EventMap>(type: K, listener: (ev: EventMap[K]) => any, options?: boolean | EventListenerOptions): void;
}