UNPKG

@diffusionstudio/core-v4

Version:

A fast, browser based video compositing engine powered by WebCodecs

48 lines (47 loc) 2.06 kB
type HandlerOptions = { once?: boolean; }; type RemoveHandler = () => void; type Callback<T> = (event: T) => void; type Detail<K, T extends keyof K> = { type: T; detail: K[T]; }; type Constructor<T = {}> = new (...args: any[]) => T; export declare function EventEmitterMixin<Events = {}, T extends Constructor = Constructor>(Base: T): { new (...args: any[]): { _handlers: { [T_1 in keyof Events]?: { callback: Callback<Events[T_1]>; once?: boolean; }[]; }; _regexHandlers: { pattern: RegExp; callback: Callback<Detail<Events, any>>; once?: boolean; }[]; on<K extends keyof Events>(eventType: RegExp, callback: Callback<Detail<Events, K>>, options?: HandlerOptions): RemoveHandler; on<K extends keyof Events>(eventType: K, callback: Callback<Events[K]>, options?: HandlerOptions): RemoveHandler; off<K extends keyof Events>(handle: K | RemoveHandler | RemoveHandler[] | RegExp, callback?: Callback<Events[K]>): void; offAny(): void; emit<K extends keyof Events>(eventType: K, detail: Events[K]): void; }; } & T; export declare function EventEmitter<Events = {}>(): { new (...args: any[]): { _handlers: { [T in keyof Events]?: { callback: Callback<Events[T]>; once?: boolean; }[] | undefined; }; _regexHandlers: { pattern: RegExp; callback: Callback<Detail<Events, any>>; once?: boolean; }[]; on<K extends keyof Events>(eventType: RegExp, callback: Callback<Detail<Events, K>>, options?: HandlerOptions): RemoveHandler; on<K extends keyof Events>(eventType: K, callback: Callback<Events[K]>, options?: HandlerOptions): RemoveHandler; off<K extends keyof Events>(handle: RegExp | RemoveHandler | RemoveHandler[] | K, callback?: Callback<Events[K]> | undefined): void; offAny(): void; emit<K extends keyof Events>(eventType: K, detail: Events[K]): void; }; }; export {};