declare type Fn = (data?: any) => void;
interface Event {
    key: number;
    callback: Fn;
}
interface PublishedEvents {
    name: string;
    data?: any;
}
export declare class EventManager {
    _events: {
        [key: string]: Event[];
    };
    _publishedEvents: PublishedEvents[];
    _uniqueId: number;
    subscribe(name: string, callback: Fn): number;
    publish(name: string, data?: any): void;
    unSubscribe(name: string, key: number): void;
    ensureTriggeredAndSubscribe(name: string, callback: Fn): number;
}
export {};
