import { type PropType, type VNode } from 'vue';
import { type ArrowPosition, type FloatingAxesOffsets, type FloatingPosition, type FloatingStrategy } from '../../utils/Floating';
export interface PopoverProps {
    __staticSelector?: string;
    position?: FloatingPosition;
    offset?: number | FloatingAxesOffsets;
    opened?: boolean;
    defaultOpened?: boolean;
    onChange?: (opened: boolean) => void;
    onOpen?: () => void;
    onClose?: () => void;
    onDismiss?: () => void;
    width?: string | number | 'target' | null;
    withArrow?: boolean;
    arrowSize?: number;
    arrowOffset?: number;
    arrowRadius?: number;
    arrowPosition?: ArrowPosition;
    withinPortal?: boolean;
    portalProps?: Record<string, any>;
    closeOnClickOutside?: boolean;
    closeOnEscape?: boolean;
    trapFocus?: boolean;
    withRoles?: boolean;
    disabled?: boolean;
    returnFocus?: boolean;
    keepMounted?: boolean;
    transitionProps?: Record<string, any>;
    zIndex?: string | number;
    floatingStrategy?: FloatingStrategy;
    middlewares?: Record<string, any>;
    id?: string;
    targetProps?: Record<string, any>;
    withOverlay?: boolean;
    overlayProps?: Record<string, any>;
    radius?: string | number;
    shadow?: string;
    classNames?: any;
    styles?: any;
    vars?: any;
    unstyled?: boolean;
}
export declare const PopoverTarget: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    refProp: {
        type: StringConstructor;
        default: string;
    };
    popupType: {
        type: StringConstructor;
        default: string;
    };
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    refProp: {
        type: StringConstructor;
        default: string;
    };
    popupType: {
        type: StringConstructor;
        default: string;
    };
}>> & Readonly<{}>, {
    refProp: string;
    popupType: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export declare const PopoverContextMenu: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    disabled: BooleanConstructor;
    longPressDelay: {
        type: NumberConstructor;
        default: number;
    };
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    disabled: BooleanConstructor;
    longPressDelay: {
        type: NumberConstructor;
        default: number;
    };
}>> & Readonly<{}>, {
    disabled: boolean;
    longPressDelay: number;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export declare const PopoverDropdown: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export declare const Popover: {
    new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
        position: {
            type: PropType<FloatingPosition>;
            default: undefined;
        };
        offset: {
            type: (ObjectConstructor | NumberConstructor)[];
            default: undefined;
        };
        opened: {
            type: BooleanConstructor;
            default: undefined;
        };
        defaultOpened: BooleanConstructor;
        onChange: PropType<(value: boolean) => void>;
        onOpen: PropType<() => void>;
        onClose: PropType<() => void>;
        onDismiss: PropType<() => void>;
        width: {
            type: (NumberConstructor | StringConstructor)[];
            default: undefined;
        };
        withArrow: {
            type: BooleanConstructor;
            default: undefined;
        };
        arrowSize: NumberConstructor;
        arrowOffset: NumberConstructor;
        arrowRadius: NumberConstructor;
        arrowPosition: {
            type: PropType<ArrowPosition>;
            default: undefined;
        };
        withinPortal: {
            type: BooleanConstructor;
            default: undefined;
        };
        portalProps: ObjectConstructor;
        closeOnClickOutside: {
            type: BooleanConstructor;
            default: undefined;
        };
        closeOnEscape: {
            type: BooleanConstructor;
            default: undefined;
        };
        trapFocus: {
            type: BooleanConstructor;
            default: undefined;
        };
        withRoles: {
            type: BooleanConstructor;
            default: undefined;
        };
        disabled: BooleanConstructor;
        returnFocus: {
            type: BooleanConstructor;
            default: undefined;
        };
        keepMounted: {
            type: BooleanConstructor;
            default: undefined;
        };
        transitionProps: ObjectConstructor;
        zIndex: (NumberConstructor | StringConstructor)[];
        floatingStrategy: {
            type: PropType<FloatingStrategy>;
            default: undefined;
        };
        middlewares: ObjectConstructor;
        id: StringConstructor;
        targetProps: ObjectConstructor;
        withOverlay: BooleanConstructor;
        overlayProps: ObjectConstructor;
        radius: (NumberConstructor | StringConstructor)[];
        shadow: StringConstructor;
        classNames: (ObjectConstructor | FunctionConstructor)[];
        styles: (ObjectConstructor | FunctionConstructor)[];
        vars: (ObjectConstructor | FunctionConstructor)[];
        unstyled: BooleanConstructor;
        __staticSelector: {
            type: StringConstructor;
            default: string;
        };
    }>> & Readonly<{}>, () => (false | VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }> | VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>[] | undefined)[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
        opened: boolean;
        disabled: boolean;
        offset: number | Record<string, any>;
        width: string | number;
        position: FloatingPosition;
        keepMounted: boolean;
        unstyled: boolean;
        withinPortal: boolean;
        __staticSelector: string;
        defaultOpened: boolean;
        trapFocus: boolean;
        closeOnClickOutside: boolean;
        closeOnEscape: boolean;
        returnFocus: boolean;
        withOverlay: boolean;
        arrowPosition: ArrowPosition;
        withArrow: boolean;
        withRoles: boolean;
        floatingStrategy: FloatingStrategy;
    }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        position: {
            type: PropType<FloatingPosition>;
            default: undefined;
        };
        offset: {
            type: (ObjectConstructor | NumberConstructor)[];
            default: undefined;
        };
        opened: {
            type: BooleanConstructor;
            default: undefined;
        };
        defaultOpened: BooleanConstructor;
        onChange: PropType<(value: boolean) => void>;
        onOpen: PropType<() => void>;
        onClose: PropType<() => void>;
        onDismiss: PropType<() => void>;
        width: {
            type: (NumberConstructor | StringConstructor)[];
            default: undefined;
        };
        withArrow: {
            type: BooleanConstructor;
            default: undefined;
        };
        arrowSize: NumberConstructor;
        arrowOffset: NumberConstructor;
        arrowRadius: NumberConstructor;
        arrowPosition: {
            type: PropType<ArrowPosition>;
            default: undefined;
        };
        withinPortal: {
            type: BooleanConstructor;
            default: undefined;
        };
        portalProps: ObjectConstructor;
        closeOnClickOutside: {
            type: BooleanConstructor;
            default: undefined;
        };
        closeOnEscape: {
            type: BooleanConstructor;
            default: undefined;
        };
        trapFocus: {
            type: BooleanConstructor;
            default: undefined;
        };
        withRoles: {
            type: BooleanConstructor;
            default: undefined;
        };
        disabled: BooleanConstructor;
        returnFocus: {
            type: BooleanConstructor;
            default: undefined;
        };
        keepMounted: {
            type: BooleanConstructor;
            default: undefined;
        };
        transitionProps: ObjectConstructor;
        zIndex: (NumberConstructor | StringConstructor)[];
        floatingStrategy: {
            type: PropType<FloatingStrategy>;
            default: undefined;
        };
        middlewares: ObjectConstructor;
        id: StringConstructor;
        targetProps: ObjectConstructor;
        withOverlay: BooleanConstructor;
        overlayProps: ObjectConstructor;
        radius: (NumberConstructor | StringConstructor)[];
        shadow: StringConstructor;
        classNames: (ObjectConstructor | FunctionConstructor)[];
        styles: (ObjectConstructor | FunctionConstructor)[];
        vars: (ObjectConstructor | FunctionConstructor)[];
        unstyled: BooleanConstructor;
        __staticSelector: {
            type: StringConstructor;
            default: string;
        };
    }>> & Readonly<{}>, () => (false | VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }> | VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>[] | undefined)[], {}, {}, {}, {
        opened: boolean;
        disabled: boolean;
        offset: number | Record<string, any>;
        width: string | number;
        position: FloatingPosition;
        keepMounted: boolean;
        unstyled: boolean;
        withinPortal: boolean;
        __staticSelector: string;
        defaultOpened: boolean;
        trapFocus: boolean;
        closeOnClickOutside: boolean;
        closeOnEscape: boolean;
        returnFocus: boolean;
        withOverlay: boolean;
        arrowPosition: ArrowPosition;
        withArrow: boolean;
        withRoles: boolean;
        floatingStrategy: FloatingStrategy;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    position: {
        type: PropType<FloatingPosition>;
        default: undefined;
    };
    offset: {
        type: (ObjectConstructor | NumberConstructor)[];
        default: undefined;
    };
    opened: {
        type: BooleanConstructor;
        default: undefined;
    };
    defaultOpened: BooleanConstructor;
    onChange: PropType<(value: boolean) => void>;
    onOpen: PropType<() => void>;
    onClose: PropType<() => void>;
    onDismiss: PropType<() => void>;
    width: {
        type: (NumberConstructor | StringConstructor)[];
        default: undefined;
    };
    withArrow: {
        type: BooleanConstructor;
        default: undefined;
    };
    arrowSize: NumberConstructor;
    arrowOffset: NumberConstructor;
    arrowRadius: NumberConstructor;
    arrowPosition: {
        type: PropType<ArrowPosition>;
        default: undefined;
    };
    withinPortal: {
        type: BooleanConstructor;
        default: undefined;
    };
    portalProps: ObjectConstructor;
    closeOnClickOutside: {
        type: BooleanConstructor;
        default: undefined;
    };
    closeOnEscape: {
        type: BooleanConstructor;
        default: undefined;
    };
    trapFocus: {
        type: BooleanConstructor;
        default: undefined;
    };
    withRoles: {
        type: BooleanConstructor;
        default: undefined;
    };
    disabled: BooleanConstructor;
    returnFocus: {
        type: BooleanConstructor;
        default: undefined;
    };
    keepMounted: {
        type: BooleanConstructor;
        default: undefined;
    };
    transitionProps: ObjectConstructor;
    zIndex: (NumberConstructor | StringConstructor)[];
    floatingStrategy: {
        type: PropType<FloatingStrategy>;
        default: undefined;
    };
    middlewares: ObjectConstructor;
    id: StringConstructor;
    targetProps: ObjectConstructor;
    withOverlay: BooleanConstructor;
    overlayProps: ObjectConstructor;
    radius: (NumberConstructor | StringConstructor)[];
    shadow: StringConstructor;
    classNames: (ObjectConstructor | FunctionConstructor)[];
    styles: (ObjectConstructor | FunctionConstructor)[];
    vars: (ObjectConstructor | FunctionConstructor)[];
    unstyled: BooleanConstructor;
    __staticSelector: {
        type: StringConstructor;
        default: string;
    };
}>> & Readonly<{}>, () => (false | VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}> | VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>[] | undefined)[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
    opened: boolean;
    disabled: boolean;
    offset: number | Record<string, any>;
    width: string | number;
    position: FloatingPosition;
    keepMounted: boolean;
    unstyled: boolean;
    withinPortal: boolean;
    __staticSelector: string;
    defaultOpened: boolean;
    trapFocus: boolean;
    closeOnClickOutside: boolean;
    closeOnEscape: boolean;
    returnFocus: boolean;
    withOverlay: boolean;
    arrowPosition: ArrowPosition;
    withArrow: boolean;
    withRoles: boolean;
    floatingStrategy: FloatingStrategy;
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
    classes: Record<string, string>;
    varsResolver: (theme: import("../..").MantineTheme, props: any, ctx: Record<string, any>) => Record<string, Record<string, string | undefined>>;
    Target: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        refProp: {
            type: StringConstructor;
            default: string;
        };
        popupType: {
            type: StringConstructor;
            default: string;
        };
    }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        refProp: {
            type: StringConstructor;
            default: string;
        };
        popupType: {
            type: StringConstructor;
            default: string;
        };
    }>> & Readonly<{}>, {
        refProp: string;
        popupType: string;
    }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    Dropdown: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    ContextMenu: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        disabled: BooleanConstructor;
        longPressDelay: {
            type: NumberConstructor;
            default: number;
        };
    }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        disabled: BooleanConstructor;
        longPressDelay: {
            type: NumberConstructor;
            default: number;
        };
    }>> & Readonly<{}>, {
        disabled: boolean;
        longPressDelay: number;
    }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
};
export type PopoverStylesNames = 'dropdown' | 'arrow' | 'overlay';
export type PopoverCssVariables = '--popover-radius' | '--popover-shadow';
export interface PopoverTargetProps {
    refProp?: string;
    popupType?: string;
    [key: string]: any;
}
export interface PopoverDropdownProps {
    [key: string]: any;
}
export interface PopoverContextMenuProps {
    disabled?: boolean;
    longPressDelay?: number;
    [key: string]: any;
}
