export default class Emitter<Events extends Record<string, unknown>> {
    private listenerObject;
    on<K extends keyof Events>(event: K, listener: (payload: Events[K]) => void): void;
    emit<K extends keyof Events>(event: K, ...[payload]: Events[K] extends undefined ? [] : [Events[K]]): void;
    off<K extends keyof Events>(event: K, listener: (payload: Events[K]) => void, isRemoveAll?: boolean): void;
}
