declare class Event {
    name: string;
    handlers: Array<Function>;
    constructor(name: string);
    /**
     * Add handler to current Event
     */
    addHandler(handler: Function): void;
    /**
     * Remove handler from current Event
     */
    removeHandler(handler: Function): void;
    /**
     * Call all handlers in all priorities of current Event
     */
    call(...eventArgs: Array<any>): void;
}
declare class EventAggregator<EventName extends string> {
    events: {
        [key in EventName]: Event;
    };
    constructor();
    /**
     * Get Event by name
     */
    getEvent(name: EventName): Event;
    subscribe(name: EventName, handler: Function): () => void;
    unsubscribe(name: EventName, handler: Function): void;
    dispatch(name: EventName, ...eventArgs: Array<any>): void;
    /**
     * Subscribe to Event and unsubscribe after call
     */
    once(name: EventName, handler: Function): {
        event: Event;
        handlerWrapper: Function;
    };
}
export default EventAggregator;
//# sourceMappingURL=Events.d.ts.map