import { ITreeItem } from './types';
interface Unsubscribe {
    (): void;
}
export interface ITreeEvents {
    select(items: ITreeItem[], type?: 'merge' | 'update'): void;
}
export declare class TreeEventEmitter {
    private _events;
    constructor(_events?: {
        [E in keyof ITreeEvents]: ITreeEvents[E][];
    });
    on<K extends keyof ITreeEvents>(event: K, listener: ITreeEvents[K]): Unsubscribe;
    emit<K extends keyof ITreeEvents>(event: K, ...listenerArgs: Parameters<ITreeEvents[K]>): void;
}
export {};
