import { ModulVue } from '../../utils/vue/vue';
import { MOpenTrigger } from '../open-trigger/open-trigger';
export interface PortalMixin {
    propOpen: boolean;
    preload: boolean;
    loaded: boolean;
    getPortalElement(): HTMLElement;
    getTrigger(): HTMLElement | undefined;
    setFocusToPortal(): void;
    setFocusToTrigger(): void;
    tryClose(): void;
}
export interface PortalMixinImpl {
    doCustomPropOpen(value: boolean, el: HTMLElement): boolean;
    handlesFocus(): boolean;
    getBackdropMode(): BackdropMode;
    getPortalElement(): HTMLElement;
}
export declare enum BackdropMode {
    None = 0,
    ScrollOnly = 1,
    BackdropFast = 2,
    BackdropSlow = 3
}
export declare enum PortalTransitionDuration {
    Fast = 200,
    Regular = 300,
    Slow = 450,
    XSlow = 600
}
export declare class Portal extends ModulVue implements PortalMixin {
    openTrigger: MOpenTrigger;
    open: boolean;
    id: string;
    disabled: boolean;
    trigger: HTMLElement;
    className: string;
    preload: boolean;
    lazy: boolean;
    loaded: boolean;
    private internalTrigger;
    private propId;
    private portalTargetEl;
    private internalOpen;
    private stackId;
    private internalTransitionDuration;
    private opening;
    private portalTargetCreated;
    private portalTargetMounted;
    private clickEventListener;
    private mouseenterEventListener;
    private mousedownEventListener;
    setFocusToPortal(): void;
    setFocusToTrigger(): void;
    getPortalElement(): HTMLElement;
    getTrigger(): HTMLElement | undefined;
    tryClose(): Promise<void>;
    protected created(): void;
    protected mounted(): void;
    protected beforeDestroy(): void;
    propOpen: boolean;
    transitionDuration: number;
    readonly portalTargetSelector: string;
    readonly portalCreated: boolean;
    readonly portalMounted: boolean;
    private onTriggerChange;
    private onTriggerHookChange;
    private handleTrigger;
    private toggle;
    private handleMouseEnter;
    private ensurePortalTargetEl;
    private openChanged;
}
//# sourceMappingURL=portal.d.ts.map