export interface Listener { (event: T): any; } export interface Disposable { dispose(): any; } /** passes through events as they happen. You will not get events from before you start listening */ export declare class TypedEvent { private listeners; private listenersOncer; on: (listener: Listener) => Disposable; once: (listener: Listener) => void; off: (listener: Listener) => void; emit: (event: T) => void; pipe: (te: TypedEvent) => Disposable; }