export interface IEventSource { add(listener: T): () => void; remove(listener: T): void; trigger: T; } export declare class EventSource implements IEventSource { private _listeners; /** Registers a new listener for the event. */ add(listener: T): () => void; /** Unregisters a listener from the event. If no listener is provided, removes all listeners */ remove(listener?: T): void; /** Invokes all of the listeners for this event. */ trigger: T; }