import { BvTriggerableEvent } from '../../utils';
import { BDropdownProps } from '../../types/ComponentProps';
declare let __VLS_typeProps: Omit<BDropdownProps, 'modelValue'>;
type __VLS_PublicProps = {
    modelValue?: Exclude<BDropdownProps['modelValue'], undefined>;
} & typeof __VLS_typeProps;
declare function __VLS_template(): {
    slots: Readonly<{
        'button-content'?: (props: Record<string, never>) => any;
        default?: (props: {
            hide: () => void;
            show: () => void;
        }) => any;
        'toggle-text'?: (props: Record<string, never>) => any;
    }> & {
        'button-content'?: (props: Record<string, never>) => any;
        default?: (props: {
            hide: () => void;
            show: () => void;
        }) => any;
        'toggle-text'?: (props: Record<string, never>) => any;
    };
    refs: {
        dropdown: ({
            $: import('vue').ComponentInternalInstance;
            $data: {};
            $props: {
                readonly modelValue?: Exclude<BDropdownProps["modelValue"], undefined> | undefined;
                readonly disabled?: boolean | undefined;
                readonly id?: string | undefined;
                readonly size?: import('../..').Size | undefined;
                readonly text?: string | undefined;
                readonly variant?: (import('../..').ButtonVariant | null) | undefined;
                readonly role?: string | undefined;
                readonly lazy?: boolean | undefined;
                readonly placement?: import('../../../node_modules/@floating-ui/core').Placement | undefined;
                readonly ariaLabel?: string | undefined;
                readonly autoClose?: (boolean | "inside" | "outside") | undefined;
                readonly boundary?: (import('@floating-ui/vue').Boundary | import('../../../node_modules/@floating-ui/core').RootBoundary) | undefined;
                readonly boundaryPadding?: import('../../../node_modules/@floating-ui/core').Padding | undefined;
                readonly floatingMiddleware?: import('@floating-ui/vue').Middleware[] | undefined;
                readonly isNav?: boolean | undefined;
                readonly menuClass?: import('../../types/AnyValuedAttributes').ClassValue;
                readonly noCaret?: boolean | undefined;
                readonly noFlip?: boolean | undefined;
                readonly noShift?: boolean | undefined;
                readonly noSize?: boolean | undefined;
                readonly offset?: (number | string | Readonly<{
                    mainAxis?: number;
                    crossAxis?: number;
                    alignmentAxis?: number | null;
                }>) | undefined;
                readonly skipWrapper?: boolean | undefined;
                readonly split?: boolean | undefined;
                readonly splitButtonType?: import('../..').ButtonType | undefined;
                readonly splitClass?: import('../../types/AnyValuedAttributes').ClassValue;
                readonly splitDisabled?: boolean | undefined;
                readonly splitHref?: string | undefined;
                readonly splitTo?: import('vue-router').RouteLocationRaw | undefined;
                readonly splitVariant?: (import('../..').ButtonVariant | null) | undefined;
                readonly strategy?: import('../../../node_modules/@floating-ui/core').Strategy | undefined;
                readonly toggleClass?: import('../../types/AnyValuedAttributes').ClassValue;
                readonly toggleText?: string | undefined;
                readonly wrapperClass?: import('../../types/AnyValuedAttributes').ClassValue;
                readonly teleportDisabled?: import('vue').TeleportProps["disabled"];
                readonly teleportTo?: import('vue').TeleportProps["to"];
                readonly onShow?: ((value: BvTriggerableEvent) => any) | undefined;
                readonly onClick?: ((event: MouseEvent) => any) | undefined;
                readonly onHidden?: (() => any) | undefined;
                readonly "onUpdate:modelValue"?: ((modelValue: boolean) => any) | undefined;
                readonly onToggle?: (() => any) | undefined;
                readonly onHide?: ((value: BvTriggerableEvent) => any) | undefined;
                readonly "onHide-prevented"?: (() => any) | undefined;
                readonly "onShow-prevented"?: (() => any) | undefined;
                readonly onShown?: (() => any) | undefined;
            } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly<{
                modelValue?: Exclude<BDropdownProps["modelValue"], undefined>;
            } & Omit<BDropdownProps, "modelValue">> & Readonly<{
                onShow?: ((value: BvTriggerableEvent) => any) | undefined;
                onClick?: ((event: MouseEvent) => any) | undefined;
                onHidden?: (() => any) | undefined;
                "onUpdate:modelValue"?: ((modelValue: boolean) => any) | undefined;
                onToggle?: (() => any) | undefined;
                onHide?: ((value: BvTriggerableEvent) => any) | undefined;
                "onHide-prevented"?: (() => any) | undefined;
                "onShow-prevented"?: (() => any) | undefined;
                onShown?: (() => any) | undefined;
            }>;
            $attrs: {
                [x: string]: unknown;
            };
            $refs: {
                [x: string]: unknown;
            };
            $slots: Readonly<{
                [name: string]: import('vue').Slot<any> | undefined;
            }>;
            $root: import('vue').ComponentPublicInstance | null;
            $parent: import('vue').ComponentPublicInstance | null;
            $host: Element | null;
            $emit: ((event: "show", value: BvTriggerableEvent) => void) & ((event: "click", event: MouseEvent) => void) & ((event: "hidden") => void) & ((event: "update:modelValue", modelValue: boolean) => void) & ((event: "toggle") => void) & ((event: "hide", value: BvTriggerableEvent) => void) & ((event: "hide-prevented") => void) & ((event: "show-prevented") => void) & ((event: "shown") => void);
            $el: any;
            $options: import('vue').ComponentOptionsBase<Readonly<{
                modelValue?: Exclude<BDropdownProps["modelValue"], undefined>;
            } & Omit<BDropdownProps, "modelValue">> & Readonly<{
                onShow?: ((value: BvTriggerableEvent) => any) | undefined;
                onClick?: ((event: MouseEvent) => any) | undefined;
                onHidden?: (() => any) | undefined;
                "onUpdate:modelValue"?: ((modelValue: boolean) => any) | undefined;
                onToggle?: (() => any) | undefined;
                onHide?: ((value: BvTriggerableEvent) => any) | undefined;
                "onHide-prevented"?: (() => any) | undefined;
                "onShow-prevented"?: (() => any) | undefined;
                onShown?: (() => any) | undefined;
            }>, {
                hide: () => void;
                show: () => void;
                toggle: () => void;
            }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
                'update:modelValue': (modelValue: boolean) => any;
                click: (event: MouseEvent) => any;
                hidden: () => any;
                hide: (value: BvTriggerableEvent) => any;
                'hide-prevented': () => any;
                show: (value: BvTriggerableEvent) => any;
                'show-prevented': () => any;
                shown: () => any;
                toggle: () => any;
            }, string, {
                disabled: boolean;
                id: string;
                size: import('../..').Size;
                text: string;
                variant: import('../..').ButtonVariant | null;
                role: string;
                lazy: boolean;
                placement: import('../../../node_modules/@floating-ui/core').Placement;
                ariaLabel: string;
                autoClose: boolean | "inside" | "outside";
                boundary: import('@floating-ui/vue').Boundary | import('../../../node_modules/@floating-ui/core').RootBoundary;
                boundaryPadding: import('../../../node_modules/@floating-ui/core').Padding;
                floatingMiddleware: import('@floating-ui/vue').Middleware[];
                isNav: boolean;
                menuClass: import('../../types/AnyValuedAttributes').ClassValue;
                noCaret: boolean;
                noFlip: boolean;
                noShift: boolean;
                noSize: boolean;
                offset: number | string | Readonly<{
                    mainAxis?: number;
                    crossAxis?: number;
                    alignmentAxis?: number | null;
                }>;
                skipWrapper: boolean;
                split: boolean;
                splitButtonType: import('../..').ButtonType;
                splitClass: import('../../types/AnyValuedAttributes').ClassValue;
                splitDisabled: boolean;
                splitHref: string;
                splitTo: import('vue-router').RouteLocationRaw;
                splitVariant: import('../..').ButtonVariant | null;
                strategy: import('../../../node_modules/@floating-ui/core').Strategy;
                toggleClass: import('../../types/AnyValuedAttributes').ClassValue;
                toggleText: string;
                wrapperClass: import('../../types/AnyValuedAttributes').ClassValue;
                teleportDisabled: boolean;
                teleportTo: string | import('vue').RendererElement | null;
            }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
                beforeCreate?: (() => void) | (() => void)[];
                created?: (() => void) | (() => void)[];
                beforeMount?: (() => void) | (() => void)[];
                mounted?: (() => void) | (() => void)[];
                beforeUpdate?: (() => void) | (() => void)[];
                updated?: (() => void) | (() => void)[];
                activated?: (() => void) | (() => void)[];
                deactivated?: (() => void) | (() => void)[];
                beforeDestroy?: (() => void) | (() => void)[];
                beforeUnmount?: (() => void) | (() => void)[];
                destroyed?: (() => void) | (() => void)[];
                unmounted?: (() => void) | (() => void)[];
                renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
            };
            $forceUpdate: () => void;
            $nextTick: typeof import('vue').nextTick;
            $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
        } & Readonly<{
            disabled: boolean;
            id: string;
            size: import('../..').Size;
            text: string;
            variant: import('../..').ButtonVariant | null;
            role: string;
            lazy: boolean;
            placement: import('../../../node_modules/@floating-ui/core').Placement;
            ariaLabel: string;
            autoClose: boolean | "inside" | "outside";
            boundary: import('@floating-ui/vue').Boundary | import('../../../node_modules/@floating-ui/core').RootBoundary;
            boundaryPadding: import('../../../node_modules/@floating-ui/core').Padding;
            floatingMiddleware: import('@floating-ui/vue').Middleware[];
            isNav: boolean;
            menuClass: import('../../types/AnyValuedAttributes').ClassValue;
            noCaret: boolean;
            noFlip: boolean;
            noShift: boolean;
            noSize: boolean;
            offset: number | string | Readonly<{
                mainAxis?: number;
                crossAxis?: number;
                alignmentAxis?: number | null;
            }>;
            skipWrapper: boolean;
            split: boolean;
            splitButtonType: import('../..').ButtonType;
            splitClass: import('../../types/AnyValuedAttributes').ClassValue;
            splitDisabled: boolean;
            splitHref: string;
            splitTo: import('vue-router').RouteLocationRaw;
            splitVariant: import('../..').ButtonVariant | null;
            strategy: import('../../../node_modules/@floating-ui/core').Strategy;
            toggleClass: import('../../types/AnyValuedAttributes').ClassValue;
            toggleText: string;
            wrapperClass: import('../../types/AnyValuedAttributes').ClassValue;
            teleportDisabled: boolean;
            teleportTo: string | import('vue').RendererElement | null;
        }> & Omit<Readonly<{
            modelValue?: Exclude<BDropdownProps["modelValue"], undefined>;
        } & Omit<BDropdownProps, "modelValue">> & Readonly<{
            onShow?: ((value: BvTriggerableEvent) => any) | undefined;
            onClick?: ((event: MouseEvent) => any) | undefined;
            onHidden?: (() => any) | undefined;
            "onUpdate:modelValue"?: ((modelValue: boolean) => any) | undefined;
            onToggle?: (() => any) | undefined;
            onHide?: ((value: BvTriggerableEvent) => any) | undefined;
            "onHide-prevented"?: (() => any) | undefined;
            "onShow-prevented"?: (() => any) | undefined;
            onShown?: (() => any) | undefined;
        }>, "show" | "toggle" | "hide" | ("disabled" | "id" | "size" | "text" | "variant" | "role" | "lazy" | "placement" | "ariaLabel" | "autoClose" | "boundary" | "boundaryPadding" | "floatingMiddleware" | "isNav" | "menuClass" | "noCaret" | "noFlip" | "noShift" | "noSize" | "offset" | "skipWrapper" | "split" | "splitButtonType" | "splitClass" | "splitDisabled" | "splitHref" | "splitTo" | "splitVariant" | "strategy" | "toggleClass" | "toggleText" | "wrapperClass" | "teleportDisabled" | "teleportTo")> & import('vue').ShallowUnwrapRef<{
            hide: () => void;
            show: () => void;
            toggle: () => void;
        }> & {} & import('vue').ComponentCustomProperties & {} & {
            $slots: Readonly<{
                'button-content'?: (props: Record<string, never>) => any;
                default?: (props: {
                    hide: () => void;
                    show: () => void;
                }) => any;
                'toggle-text'?: (props: Record<string, never>) => any;
            }> & {
                'button-content'?: (props: Record<string, never>) => any;
                default?: (props: {
                    hide: () => void;
                    show: () => void;
                }) => any;
                'toggle-text'?: (props: Record<string, never>) => any;
            };
        }) | null;
    };
    attrs: Partial<{}>;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {
    hide: () => void;
    show: () => void;
    toggle: () => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    'update:modelValue': (modelValue: boolean) => any;
    click: (event: MouseEvent) => any;
    hidden: () => any;
    hide: (value: BvTriggerableEvent) => any;
    'hide-prevented': () => any;
    show: (value: BvTriggerableEvent) => any;
    'show-prevented': () => any;
    shown: () => any;
    toggle: () => any;
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
    onShow?: ((value: BvTriggerableEvent) => any) | undefined;
    onClick?: ((event: MouseEvent) => any) | undefined;
    onHidden?: (() => any) | undefined;
    "onUpdate:modelValue"?: ((modelValue: boolean) => any) | undefined;
    onToggle?: (() => any) | undefined;
    onHide?: ((value: BvTriggerableEvent) => any) | undefined;
    "onHide-prevented"?: (() => any) | undefined;
    "onShow-prevented"?: (() => any) | undefined;
    onShown?: (() => any) | undefined;
}>, {
    disabled: boolean;
    id: string;
    size: import('../..').Size;
    text: string;
    variant: import('../..').ButtonVariant | null;
    role: string;
    lazy: boolean;
    placement: import('../../../node_modules/@floating-ui/core').Placement;
    ariaLabel: string;
    autoClose: boolean | "inside" | "outside";
    boundary: import('@floating-ui/vue').Boundary | import('../../../node_modules/@floating-ui/core').RootBoundary;
    boundaryPadding: import('../../../node_modules/@floating-ui/core').Padding;
    floatingMiddleware: import('@floating-ui/vue').Middleware[];
    isNav: boolean;
    menuClass: import('../../types/AnyValuedAttributes').ClassValue;
    noCaret: boolean;
    noFlip: boolean;
    noShift: boolean;
    noSize: boolean;
    offset: number | string | Readonly<{
        mainAxis?: number;
        crossAxis?: number;
        alignmentAxis?: number | null;
    }>;
    skipWrapper: boolean;
    split: boolean;
    splitButtonType: import('../..').ButtonType;
    splitClass: import('../../types/AnyValuedAttributes').ClassValue;
    splitDisabled: boolean;
    splitHref: string;
    splitTo: import('vue-router').RouteLocationRaw;
    splitVariant: import('../..').ButtonVariant | null;
    strategy: import('../../../node_modules/@floating-ui/core').Strategy;
    toggleClass: import('../../types/AnyValuedAttributes').ClassValue;
    toggleText: string;
    wrapperClass: import('../../types/AnyValuedAttributes').ClassValue;
    teleportDisabled: boolean;
    teleportTo: string | import('vue').RendererElement | null;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
