import { StyleValue, DefineComponent, ComponentOptionsMixin, PublicProps, CSSProperties, ComponentProvideOptions } from 'vue';
import { Placement } from '@floating-ui/dom';
export interface PopoverProps {
    modelValue?: boolean;
    title?: string;
    content?: string;
    placement?: Placement;
    width?: string | number;
    closeOnOutside?: boolean;
    closeOnEsc?: boolean;
    disabled?: boolean;
    trigger?: "click" | "hover" | "focus" | "manual";
    openDelay?: number;
    closeDelay?: number;
    showAfter?: number;
    hideAfter?: number;
    enterable?: boolean;
    offset?: number;
    showArrow?: boolean;
    teleported?: boolean;
    appendTo?: string | HTMLElement;
    persistent?: boolean;
    popperClass?: string;
    popperStyle?: StyleValue;
}
export type PopoverTrigger = NonNullable<PopoverProps["trigger"]>;
export type PopoverModelValueChangeHandler = (value: boolean) => void;
export interface PopoverDefaultSlotProps {
    close: () => void;
}
declare function closePopover(): void;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        reference?(_: {}): any;
        trigger?(_: {}): any;
        header?(_: {}): any;
        default?(_: {
            close: typeof closePopover;
        }): any;
    };
    refs: {
        triggerRef: HTMLSpanElement;
        panelRef: HTMLElement;
        arrowRef: HTMLSpanElement;
    };
    rootEl: HTMLSpanElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<PopoverProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    close: () => any;
    "update:modelValue": (value: boolean) => any;
    open: () => any;
}, string, PublicProps, Readonly<PopoverProps> & Readonly<{
    onClose?: (() => any) | undefined;
    "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
    onOpen?: (() => any) | undefined;
}>, {
    content: string;
    modelValue: boolean;
    openDelay: number;
    closeDelay: number;
    width: string | number;
    placement: Placement;
    title: string;
    disabled: boolean;
    offset: number;
    teleported: boolean;
    appendTo: string | HTMLElement;
    persistent: boolean;
    popperClass: string;
    popperStyle: string | false | CSSProperties | StyleValue[] | null;
    showArrow: boolean;
    trigger: "click" | "hover" | "focus" | "manual";
    showAfter: number;
    hideAfter: number;
    enterable: boolean;
    closeOnEsc: boolean;
    closeOnOutside: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    triggerRef: HTMLSpanElement;
    panelRef: HTMLElement;
    arrowRef: HTMLSpanElement;
}, HTMLSpanElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
