import { type PropType, type ExtractPublicPropTypes } from 'vue';
import { type ThemeComponent } from '../../composables/useTheme';
import { type Placement, type TriggerEvent } from 'floating-vue';
export type PopoverPlacement = Placement;
export type PopoverTriggerEvent = TriggerEvent;
declare const popoverProps: {
    disabled: BooleanConstructor;
    positioningDisabled: BooleanConstructor;
    placement: {
        type: PropType<Placement>;
        default: string;
    };
    delay: {
        type: PropType<string | number | {
            show: number;
            hide: number;
        }>;
        default: number;
    };
    distance: (StringConstructor | NumberConstructor)[];
    skidding: (StringConstructor | NumberConstructor)[];
    triggers: {
        type: PropType<TriggerEvent[]>;
        default: () => string[];
    };
    hideArrow: {
        type: BooleanConstructor;
        default: boolean;
    };
    showTriggers: PropType<TriggerEvent[] | ((triggers: Array<PopoverTriggerEvent>) => Array<PopoverTriggerEvent>)>;
    hideTriggers: PropType<TriggerEvent[] | ((triggers: Array<PopoverTriggerEvent>) => Array<PopoverTriggerEvent>)>;
    popperTriggers: PropType<TriggerEvent[]>;
    popperShowTriggers: PropType<TriggerEvent[] | ((triggers: Array<PopoverTriggerEvent>) => Array<PopoverTriggerEvent>)>;
    popperHideTriggers: PropType<TriggerEvent[] | ((triggers: Array<PopoverTriggerEvent>) => Array<PopoverTriggerEvent>)>;
    container: {
        type: (BooleanConstructor | ObjectConstructor | StringConstructor)[];
        default: string;
    };
    boundary: (ObjectConstructor | StringConstructor)[];
    strategy: {
        type: PropType<"absolute" | "fixed">;
        default: string;
    };
    autoHide: {
        type: PropType<boolean | ((event: Event) => boolean)>;
        default: boolean;
    };
    shown: BooleanConstructor;
    handleResize: {
        type: BooleanConstructor;
        default: boolean;
    };
    instantMove: BooleanConstructor;
    eagerMount: BooleanConstructor;
    popperClass: (ArrayConstructor | ObjectConstructor | StringConstructor)[];
    computeTransformOrigin: BooleanConstructor;
};
export type PopoverProps = ExtractPublicPropTypes<typeof popoverProps>;
type InternalClasses = 'wrapper' | 'content';
export interface PopoverTheme extends ThemeComponent<PopoverProps, InternalClasses> {
}
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    disabled: BooleanConstructor;
    positioningDisabled: BooleanConstructor;
    placement: {
        type: PropType<Placement>;
        default: string;
    };
    delay: {
        type: PropType<string | number | {
            show: number;
            hide: number;
        }>;
        default: number;
    };
    distance: (StringConstructor | NumberConstructor)[];
    skidding: (StringConstructor | NumberConstructor)[];
    triggers: {
        type: PropType<TriggerEvent[]>;
        default: () => string[];
    };
    hideArrow: {
        type: BooleanConstructor;
        default: boolean;
    };
    showTriggers: PropType<TriggerEvent[] | ((triggers: TriggerEvent[]) => TriggerEvent[])>;
    hideTriggers: PropType<TriggerEvent[] | ((triggers: TriggerEvent[]) => TriggerEvent[])>;
    popperTriggers: PropType<TriggerEvent[]>;
    popperShowTriggers: PropType<TriggerEvent[] | ((triggers: TriggerEvent[]) => TriggerEvent[])>;
    popperHideTriggers: PropType<TriggerEvent[] | ((triggers: TriggerEvent[]) => TriggerEvent[])>;
    container: {
        type: (BooleanConstructor | ObjectConstructor | StringConstructor)[];
        default: string;
    };
    boundary: (ObjectConstructor | StringConstructor)[];
    strategy: {
        type: PropType<"absolute" | "fixed">;
        default: string;
    };
    autoHide: {
        type: PropType<boolean | ((event: Event) => boolean)>;
        default: boolean;
    };
    shown: BooleanConstructor;
    handleResize: {
        type: BooleanConstructor;
        default: boolean;
    };
    instantMove: BooleanConstructor;
    eagerMount: BooleanConstructor;
    popperClass: (ArrayConstructor | ObjectConstructor | StringConstructor)[];
    computeTransformOrigin: BooleanConstructor;
}>, {
    show: () => void;
    hide: () => void;
    toggle: () => void;
    isOpen: import("vue").Ref<boolean, boolean>;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("resize" | "show" | "hide" | "update:shown" | "apply-show" | "apply-hide" | "close-group" | "close-directive" | "auto-hide")[], "resize" | "show" | "hide" | "update:shown" | "apply-show" | "apply-hide" | "close-group" | "close-directive" | "auto-hide", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    disabled: BooleanConstructor;
    positioningDisabled: BooleanConstructor;
    placement: {
        type: PropType<Placement>;
        default: string;
    };
    delay: {
        type: PropType<string | number | {
            show: number;
            hide: number;
        }>;
        default: number;
    };
    distance: (StringConstructor | NumberConstructor)[];
    skidding: (StringConstructor | NumberConstructor)[];
    triggers: {
        type: PropType<TriggerEvent[]>;
        default: () => string[];
    };
    hideArrow: {
        type: BooleanConstructor;
        default: boolean;
    };
    showTriggers: PropType<TriggerEvent[] | ((triggers: TriggerEvent[]) => TriggerEvent[])>;
    hideTriggers: PropType<TriggerEvent[] | ((triggers: TriggerEvent[]) => TriggerEvent[])>;
    popperTriggers: PropType<TriggerEvent[]>;
    popperShowTriggers: PropType<TriggerEvent[] | ((triggers: TriggerEvent[]) => TriggerEvent[])>;
    popperHideTriggers: PropType<TriggerEvent[] | ((triggers: TriggerEvent[]) => TriggerEvent[])>;
    container: {
        type: (BooleanConstructor | ObjectConstructor | StringConstructor)[];
        default: string;
    };
    boundary: (ObjectConstructor | StringConstructor)[];
    strategy: {
        type: PropType<"absolute" | "fixed">;
        default: string;
    };
    autoHide: {
        type: PropType<boolean | ((event: Event) => boolean)>;
        default: boolean;
    };
    shown: BooleanConstructor;
    handleResize: {
        type: BooleanConstructor;
        default: boolean;
    };
    instantMove: BooleanConstructor;
    eagerMount: BooleanConstructor;
    popperClass: (ArrayConstructor | ObjectConstructor | StringConstructor)[];
    computeTransformOrigin: BooleanConstructor;
}>> & Readonly<{
    onResize?: ((...args: any[]) => any) | undefined;
    onShow?: ((...args: any[]) => any) | undefined;
    onHide?: ((...args: any[]) => any) | undefined;
    "onUpdate:shown"?: ((...args: any[]) => any) | undefined;
    "onApply-show"?: ((...args: any[]) => any) | undefined;
    "onApply-hide"?: ((...args: any[]) => any) | undefined;
    "onClose-group"?: ((...args: any[]) => any) | undefined;
    "onClose-directive"?: ((...args: any[]) => any) | undefined;
    "onAuto-hide"?: ((...args: any[]) => any) | undefined;
}>, {
    disabled: boolean;
    delay: string | number | {
        show: number;
        hide: number;
    };
    positioningDisabled: boolean;
    placement: Placement;
    triggers: TriggerEvent[];
    hideArrow: boolean;
    container: string | boolean | Record<string, any>;
    strategy: "absolute" | "fixed";
    autoHide: boolean | ((event: Event) => boolean);
    shown: boolean;
    handleResize: boolean;
    instantMove: boolean;
    eagerMount: boolean;
    computeTransformOrigin: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
    default?(_: {}): any;
    content?(_: {}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
