UNPKG

json-joy

Version:

Collection of libraries for building collaborative editing apps.

22 lines (21 loc) 1.76 kB
export declare const TypedEventTarget: { new <EventMap>(): { addEventListener<K extends keyof EventMap>(type: K, listener: (this: HTMLElement, ev: EventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void; dispatchEvent(event: EventMap[keyof EventMap]): boolean; dispatchEvent(event: Event): boolean; removeEventListener<K extends keyof EventMap>(type: K, listener: (this: HTMLElement, ev: EventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void; }; }; export interface TypedEventTarget<EventMap> { addEventListener<K extends keyof EventMap>(type: K, listener: (this: HTMLElement, ev: EventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void; dispatchEvent(event: EventMap[keyof EventMap]): boolean; dispatchEvent(event: Event): boolean; removeEventListener<K extends keyof EventMap>(type: K, listener: (this: HTMLElement, ev: EventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void; } export declare class SubscriptionEventTarget<EventMap> extends TypedEventTarget<EventMap> { subscribe<K extends keyof EventMap>(type: K, listener: (ev: EventMap[K]) => void): () => void; }