type Handler = (value?: T) => void; export declare class EventEmitter { private _handlersByName; constructor(); emit(name: K, value?: T[K]): void; disposableOn(name: K, callback: Handler): () => void; on(name: K, callback: Handler): void; off(name: K, callback: Handler): void; onFirstSubscriptionAdded(name: K): void; onLastSubscriptionRemoved(name: K): void; } export declare function tests(): { test_on_off(assert: any): void; test_emit_value(assert: any): void; test_double_on(assert: any): void; }; export {};