import { VNode } from 'vue';
export type DrawerPlacement = 'left' | 'right' | 'top' | 'bottom';
type PopupEntry = {
    kind: 'popup';
    render: () => VNode;
    id: string;
    type: 'layer' | 'frame' | 'drawer';
    close: () => void;
    handleClickOutside: () => void;
    disableBackgroundEffect: boolean;
    wrapperCustomClasses: string[];
    drawerPlacement?: DrawerPlacement;
    transitionDuration: number;
    role: string;
    trapFocus: boolean;
};
type PopoverEntry = {
    kind: 'popover';
    render: () => VNode;
    id: string;
    darkenBackground: boolean;
    handleClickOutside: () => void;
    transitionDuration: number;
    role: string;
    trapFocus: boolean;
    close: () => void;
};
type OverlayEntry = PopupEntry | PopoverEntry;
declare function pushPopup(id: string, render: () => VNode, opts: {
    type: 'layer' | 'frame' | 'drawer';
    close: () => void;
    disableBackgroundEffect: boolean;
    wrapperCustomClasses: string[];
    handleClickOutside: () => void;
    drawerPlacement?: DrawerPlacement;
    transitionDuration: number;
    role: string;
    trapFocus?: boolean;
}): void;
declare function pushPopover(id: string, render: () => VNode, opts: {
    darkenBackground: boolean;
    handleClickOutside: () => void;
    transitionDuration: number;
    role: string;
    trapFocus?: boolean;
    close: () => void;
}): void;
declare function pull(id: string): void;
declare function isVisible(id: string): boolean;
declare const _default: import("vue").DefineComponent<{}, {
    isVisible: typeof isVisible;
    pushPopup: typeof pushPopup;
    pushPopover: typeof pushPopover;
    pull: typeof pull;
    entries: import("vue").Ref<({
        kind: "popup";
        render: () => VNode;
        id: string;
        type: "layer" | "frame" | "drawer";
        close: () => void;
        handleClickOutside: () => void;
        disableBackgroundEffect: boolean;
        wrapperCustomClasses: string[];
        drawerPlacement?: DrawerPlacement | undefined;
        transitionDuration: number;
        role: string;
        trapFocus: boolean;
    } | {
        kind: "popover";
        render: () => VNode;
        id: string;
        darkenBackground: boolean;
        handleClickOutside: () => void;
        transitionDuration: number;
        role: string;
        trapFocus: boolean;
        close: () => void;
    })[], OverlayEntry[] | ({
        kind: "popup";
        render: () => VNode;
        id: string;
        type: "layer" | "frame" | "drawer";
        close: () => void;
        handleClickOutside: () => void;
        disableBackgroundEffect: boolean;
        wrapperCustomClasses: string[];
        drawerPlacement?: DrawerPlacement | undefined;
        transitionDuration: number;
        role: string;
        trapFocus: boolean;
    } | {
        kind: "popover";
        render: () => VNode;
        id: string;
        darkenBackground: boolean;
        handleClickOutside: () => void;
        transitionDuration: number;
        role: string;
        trapFocus: boolean;
        close: () => void;
    })[]>;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
