birch-event-emitter
Version:
Simple Event Emitter
28 lines (27 loc) • 773 B
TypeScript
declare type Disposer = () => void;
declare type Listener = (...args: any[]) => any;
export interface IDisposable {
dispose(...args: any[]): any;
}
export declare class Disposable {
private disposer;
constructor(disposer: Disposer);
dispose(...args: any[]): void;
}
export declare class DisposablesComposite {
private disposables;
constructor();
add(disposable: any): any;
dispose(...args: any[]): void;
}
export declare class EventEmitter<T> {
private listeners;
private onceListeners;
constructor();
emit(event: T, ...args: any[]): void;
on(event: T, cb: Listener): Disposable;
once(event: T, cb: Listener): Disposable;
emitWithReturn<K>(event: T, ...args: any[]): K[];
clear(event?: T): void;
}
export {};