declare type Handler<T> = (data?: T) => void;
export interface IEvent<T> {
    on(handler: Handler<T>): void;
    off(handler: Handler<T>): void;
}
export declare class Event<T> implements IEvent<T> {
    private handlers;
    on(handler: Handler<T>): void;
    off(handler: Handler<T>): void;
    trigger(data?: T): void;
    expose(): IEvent<T>;
}
export {};
