import { Event } from './Event';
import { IEventHub } from './IEventHub';

export declare abstract class EventHandler<T extends Event> {
    eventType: string;
    protected hub: IEventHub;
    private unsubscribeFunc;
    constructor(eventType: string, hub: IEventHub);
    abstract handle(event: T): Promise<void>;
    dispose(): void;
}
export declare class CustomEventHandler<T extends Event> extends EventHandler<T> {
    private action;
    constructor(eventType: string, hub: IEventHub, action: (event: T) => Promise<void>);
    handle(event: T): Promise<void>;
}
