/**
 * Event that has no arguments.
 */
export declare class Event {
    private _listeners;
    addListener(listener: EventListener): void;
    removeListener(listener: EventListener): void;
    removeAllListeners(): void;
    invoke(): void;
}
/**
 * Signature of event listener that has no arguments.
 */
declare type EventListener = () => void;
/**
 * Event that takes typed argument.
 */
export declare class ArgEvent<T> {
    private _listeners;
    addListener(listener: ArgEventListener<T>): void;
    removeListener(listener: ArgEventListener<T>): void;
    removeAllListeners(): void;
    invoke(arg: T): void;
}
/**
 * Signature of event listener that accepts typed argument.
 */
declare type ArgEventListener<T> = (arg: T) => void;
export {};
//# sourceMappingURL=Event.d.ts.map