import { PropType, VNode, CSSProperties, ComputedRef, Ref } from 'vue';
import { FollowerPlacement } from 'vueuc';
import type { ExtractPublicPropTypes, MaybeArray } from '../../_utils';
import { PopoverTrigger } from './interface';
interface BodyInstance {
    syncPosition: () => void;
    [key: string]: unknown;
}
export interface PopoverInjection {
    handleMouseLeave: (e: MouseEvent) => void;
    handleMouseEnter: (e: MouseEvent) => void;
    handleMouseMoveOutside: (e: MouseEvent) => void;
    handleClickOutside: (e: MouseEvent) => void;
    getTriggerElement: () => HTMLElement;
    setBodyInstance: (value: BodyInstance | null) => void;
    positionManuallyRef: ComputedRef<boolean>;
    isMountedRef: Ref<boolean>;
    extraClassRef: Ref<string | undefined>;
}
export declare const popoverBaseProps: {
    show: {
        type: PropType<boolean | undefined>;
        default: undefined;
    };
    defaultShow: {
        type: BooleanConstructor;
        default: boolean;
    };
    showArrow: {
        type: BooleanConstructor;
        default: boolean;
    };
    trigger: {
        type: PropType<PopoverTrigger>;
        default: string;
    };
    delay: {
        type: NumberConstructor;
        default: number;
    };
    duration: {
        type: NumberConstructor;
        default: number;
    };
    raw: {
        type: BooleanConstructor;
        default: boolean;
    };
    placement: {
        type: PropType<FollowerPlacement>;
        default: string;
    };
    x: NumberConstructor;
    y: NumberConstructor;
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    getDisabled: PropType<() => boolean>;
    displayDirective: {
        type: PropType<"show" | "if">;
        default: string;
    };
    arrowStyle: PropType<string | CSSProperties>;
    filp: {
        type: BooleanConstructor;
        default: boolean;
    };
    animated: {
        type: BooleanConstructor;
        default: boolean;
    };
    width: {
        type: PropType<number | "trigger">;
        default: undefined;
    };
    overlap: {
        type: BooleanConstructor;
        default: boolean;
    };
    padded: {
        type: BooleanConstructor;
        default: boolean;
    };
    shadow: {
        type: BooleanConstructor;
        default: boolean;
    };
    internalExtraClass: StringConstructor;
    'onUpdate:show': PropType<MaybeArray<(value: boolean) => void>>;
    onUpdateShow: PropType<MaybeArray<(value: boolean) => void>>;
    /** @deprecated */
    onShow: {
        type: PropType<MaybeArray<(value: boolean) => void> | undefined>;
        validator: () => boolean;
        default: undefined;
    };
    /** @deprecated */
    onHide: {
        type: PropType<MaybeArray<(value: boolean) => void> | undefined>;
        validator: () => boolean;
        default: undefined;
    };
    /** @deprecated */
    arrow: {
        type: PropType<boolean | undefined>;
        default: undefined;
    };
    /** @deprecated */
    minWidth: NumberConstructor;
    /** @deprecated */
    maxWidth: NumberConstructor;
};
export declare type PopoverProps = ExtractPublicPropTypes<typeof popoverBaseProps>;
declare const _default: import("vue").DefineComponent<{
    show: {
        type: PropType<boolean | undefined>;
        default: undefined;
    };
    defaultShow: {
        type: BooleanConstructor;
        default: boolean;
    };
    showArrow: {
        type: BooleanConstructor;
        default: boolean;
    };
    trigger: {
        type: PropType<PopoverTrigger>;
        default: string;
    };
    delay: {
        type: NumberConstructor;
        default: number;
    };
    duration: {
        type: NumberConstructor;
        default: number;
    };
    raw: {
        type: BooleanConstructor;
        default: boolean;
    };
    placement: {
        type: PropType<FollowerPlacement>;
        default: string;
    };
    x: NumberConstructor;
    y: NumberConstructor;
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    getDisabled: PropType<() => boolean>;
    displayDirective: {
        type: PropType<"show" | "if">;
        default: string;
    };
    arrowStyle: PropType<string | CSSProperties>;
    filp: {
        type: BooleanConstructor;
        default: boolean;
    };
    animated: {
        type: BooleanConstructor;
        default: boolean;
    };
    width: {
        type: PropType<number | "trigger">;
        default: undefined;
    };
    overlap: {
        type: BooleanConstructor;
        default: boolean;
    };
    padded: {
        type: BooleanConstructor;
        default: boolean;
    };
    shadow: {
        type: BooleanConstructor;
        default: boolean;
    };
    internalExtraClass: StringConstructor;
    'onUpdate:show': PropType<MaybeArray<(value: boolean) => void>>;
    onUpdateShow: PropType<MaybeArray<(value: boolean) => void>>;
    /** @deprecated */
    onShow: {
        type: PropType<MaybeArray<(value: boolean) => void> | undefined>;
        validator: () => boolean;
        default: undefined;
    };
    /** @deprecated */
    onHide: {
        type: PropType<MaybeArray<(value: boolean) => void> | undefined>;
        validator: () => boolean;
        default: undefined;
    };
    /** @deprecated */
    arrow: {
        type: PropType<boolean | undefined>;
        default: undefined;
    };
    /** @deprecated */
    minWidth: NumberConstructor;
    /** @deprecated */
    maxWidth: NumberConstructor;
    theme: PropType<import("../../_mixins").Theme<"Popover", {
        fontSize: string;
        borderRadius: string;
        color: string;
        textColor: string;
        boxShadow: string;
        space: string;
        spaceArrow: string;
        arrowOffset: string;
        arrowOffsetVertical: string;
        arrowHeight: string;
        padding: string;
    }, any>>;
    themeOverrides: PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Popover", {
        fontSize: string;
        borderRadius: string;
        color: string;
        textColor: string;
        boxShadow: string;
        space: string;
        spaceArrow: string;
        arrowOffset: string;
        arrowOffsetVertical: string;
        arrowHeight: string;
        padding: string;
    }, any>>>;
    builtinThemeOverrides: PropType<import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Popover", {
        fontSize: string;
        borderRadius: string;
        color: string;
        textColor: string;
        boxShadow: string;
        space: string;
        spaceArrow: string;
        arrowOffset: string;
        arrowOffsetVertical: string;
        arrowHeight: string;
        padding: string;
    }, any>>>;
}, {
    positionManually: ComputedRef<boolean>;
    uncontrolledShow: Ref<boolean>;
    mergedShowArrow: ComputedRef<boolean>;
    getMergedShow: () => boolean;
    setShow: (value: boolean) => void;
    handleClick: () => void;
    handleMouseEnter: () => void;
    handleMouseLeave: () => void;
    setTriggerVNode(v: VNode | null): void;
    syncPosition: () => void;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
    disabled: boolean;
    duration: number;
    placement: FollowerPlacement;
    overlap: boolean;
    raw: boolean;
    padded: boolean;
    shadow: boolean;
    trigger: PopoverTrigger;
    showArrow: boolean;
    delay: number;
    displayDirective: "show" | "if";
    filp: boolean;
    animated: boolean;
    defaultShow: boolean;
} & {
    show?: boolean | undefined;
    x?: number | undefined;
    y?: number | undefined;
    maxWidth?: number | undefined;
    minWidth?: number | undefined;
    width?: number | "trigger" | undefined;
    theme?: import("../../_mixins").Theme<"Popover", {
        fontSize: string;
        borderRadius: string;
        color: string;
        textColor: string;
        boxShadow: string;
        space: string;
        spaceArrow: string;
        arrowOffset: string;
        arrowOffsetVertical: string;
        arrowHeight: string;
        padding: string;
    }, any> | undefined;
    themeOverrides?: import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Popover", {
        fontSize: string;
        borderRadius: string;
        color: string;
        textColor: string;
        boxShadow: string;
        space: string;
        spaceArrow: string;
        arrowOffset: string;
        arrowOffsetVertical: string;
        arrowHeight: string;
        padding: string;
    }, any>> | undefined;
    builtinThemeOverrides?: import("../../_mixins/use-theme").ExtractThemeOverrides<import("../../_mixins").Theme<"Popover", {
        fontSize: string;
        borderRadius: string;
        color: string;
        textColor: string;
        boxShadow: string;
        space: string;
        spaceArrow: string;
        arrowOffset: string;
        arrowOffsetVertical: string;
        arrowHeight: string;
        padding: string;
    }, any>> | undefined;
    arrowStyle?: string | CSSProperties | undefined;
    getDisabled?: (() => boolean) | undefined;
    internalExtraClass?: string | undefined;
    "onUpdate:show"?: MaybeArray<(value: boolean) => void> | undefined;
    onUpdateShow?: MaybeArray<(value: boolean) => void> | undefined;
    onShow?: MaybeArray<(value: boolean) => void> | undefined;
    onHide?: MaybeArray<(value: boolean) => void> | undefined;
    arrow?: boolean | undefined;
}>, {
    show: boolean | undefined;
    disabled: boolean;
    duration: number;
    width: number | "trigger";
    placement: FollowerPlacement;
    overlap: boolean;
    raw: boolean;
    padded: boolean;
    shadow: boolean;
    trigger: PopoverTrigger;
    showArrow: boolean;
    delay: number;
    displayDirective: "show" | "if";
    filp: boolean;
    animated: boolean;
    defaultShow: boolean;
    onShow: MaybeArray<(value: boolean) => void> | undefined;
    onHide: MaybeArray<(value: boolean) => void> | undefined;
    arrow: boolean | undefined;
}>;
export default _default;
