UNPKG

@lyonbot/interactive-blocks

Version:

Make interactive selectable, drag-and-drop, copy-and-paste ready, Block and Slot components easily! Works with Vue, React and any MV* framework.

18 lines (17 loc) 668 B
declare type AnyFn = (...args: any[]) => any; declare type DefaultListener = Record<string, AnyFn>; declare type ListenerItem<F extends AnyFn> = { listener: F; once?: boolean; }; export declare class EventEmitter<L extends Record<keyof L, AnyFn> = DefaultListener> { _listeners: { [k in keyof L]?: ListenerItem<L[k]>[] | null; }; on<U extends keyof L>(event: U, listener: L[U]): this; once<U extends keyof L>(event: U, listener: L[U]): this; off<U extends keyof L>(event: U, listener: L[U]): this; emit<U extends keyof L>(event: U, ...args: Parameters<L[U]>): void; removeAllListeners(): this; } export {};