import { Subscription } from 'rxjs/Subscription';
export { Subscription } from 'rxjs/Subscription';
export interface Handler {
    (...args: any[]): void;
}
export declare class EventEmitter {
    private subjects;
    private subscriptions;
    constructor();
    dispose(): void;
    addListener(name: string, handler: Handler): void;
    emit(fnName: string, ...data: any[]): void;
    listen(name: string, handler: Handler): Subscription;
    off(name: string, handler: Handler): void;
    on(name: string, handler: Handler): void;
    once(name: string, handler: Handler): void;
    removeListener(name: string, handler: Handler): void;
    private registerSubscription(name, handler, sub);
    private getSubscriptions(name, handler);
    private getSubject(fnName);
}
