export declare type Listener = () => any;
export declare type Listener1<A> = (a: A) => any;
export declare type Listener2<A, B> = (a: A, b: B) => any;
export declare type Listener3<A, B, C> = (a: A, b: B, c: C) => any;
export declare class Notification {
    private _listeners;
    private _deferring;
    private _deferred;
    on(listener: Listener): void;
    off(listener: Listener): void;
    dispose(): void;
    fire(): any;
}
export declare class Notification1<A> {
    private _listeners;
    private _deferring;
    private _deferred;
    on(listener: Listener1<A>): void;
    off(listener: Listener1<A>): void;
    dispose(): void;
    fire(a: A): any;
}
export declare class Notification2<A, B> {
    private _listeners;
    private _deferring;
    private _deferred;
    on(listener: Listener2<A, B>): void;
    off(listener: Listener2<A, B>): void;
    dispose(): void;
    fire(a: A, b: B): any;
}
export declare class Notification3<A, B, C> {
    private _listeners;
    private _deferring;
    private _deferred;
    on(listener: Listener3<A, B, C>): void;
    off(listener: Listener3<A, B, C>): void;
    dispose(): void;
    fire(a: A, b: B, c: C): any;
}
