import { ComponentInternalInstance, ObjectDirective } from 'vue';
import { EventsBackboneEventHandler, EventsBackboneDirectiveParams, EventsBackboneSpineInterface } from '../types';
export type dopedComponentInternalInstance = ComponentInternalInstance & {
    watchedIsUnmounted: boolean;
    isUnmountedCallbacks: Array<() => void>;
};
export declare const dopeComponentInstance: (c: ComponentInternalInstance | dopedComponentInternalInstance) => dopedComponentInternalInstance;
export declare class EventsBackboneSpine implements EventsBackboneSpineInterface {
    private readonly evntsTree;
    private readonly lstnrsRegistry;
    private readonly compsRegistry;
    private readonly listenAllSymbol;
    private readonly emptyMap;
    constructor();
    private _getComponentFromUid;
    private _callHandler;
    private _callHandlers;
    private _internalEmitEvent;
    private _getBranchSymbols;
    emitEvent<T>(cInst: ComponentInternalInstance, ev: string, d?: T, configs?: {
        global?: boolean;
        eager?: boolean;
    }): Promise<void>;
    private _addEventEntry;
    private _checkEventEntryValidity;
    private _removeEventEntry;
    private _rebuildEventNameFromSymbol;
    private _rebuildEventNameFromEventEntry;
    private _findEventEntryFromNodeName;
    private _getEventEntry;
    private _checkEventNameValidity;
    private _addListener;
    private _addListenerEntry;
    private _addCompEntrySymbol;
    private _removeCompEntry;
    private _removeCompEntrySymbol;
    private _removeListenerEntry;
    private _removeListener;
    on(c: ComponentInternalInstance, ev: string, h: EventsBackboneEventHandler): void;
    off(uid: number, ev: string, h?: EventsBackboneEventHandler): void;
    offAll(c: ComponentInternalInstance): void;
}
export declare const BB: EventsBackboneSpine;
export declare function removeAllEventBackboneListeners(comp?: ComponentInternalInstance): void;
export declare function removeEventListeners(dp: EventsBackboneDirectiveParams, comp?: ComponentInternalInstance): void;
export declare function addEventBackboneListeners(dp: EventsBackboneDirectiveParams, comp?: ComponentInternalInstance, replace?: boolean): void;
export declare const EventsBackBoneDirective: ObjectDirective<any, EventsBackboneDirectiveParams>;
