import type { Component, PropType, Ref, VNode } from 'vue';
import type { DetectOverflowOptions, Middleware, Placement, Strategy } from '@floating-ui/dom';
import type { Options as OffsetOptions } from '@floating-ui/core/src/middleware/offset';
import type { Options as ShiftOptions } from '@floating-ui/core/src/middleware/shift';
import type { Options as FlipOptions } from '@floating-ui/core/src/middleware/flip';
import type { Options as AutoPlacementOptions } from '@floating-ui/core/src/middleware/autoPlacement';
import type { Options as HideOptions } from '@floating-ui/core/src/middleware/hide';
import type { Options as AutoUpdateOptions } from '@floating-ui/dom/src/autoUpdate';
import { type OriginClassResolver } from './origin-class-resolvers';
export interface FloatPropsType {
    as?: string | Component;
    floatingAs?: string | Component;
    show?: boolean;
    placement?: Placement;
    strategy?: Strategy;
    offset?: OffsetOptions;
    shift?: boolean | number | Partial<ShiftOptions & DetectOverflowOptions>;
    flip?: boolean | number | Partial<FlipOptions & DetectOverflowOptions>;
    arrow?: boolean | number;
    autoPlacement?: boolean | Partial<AutoPlacementOptions & DetectOverflowOptions>;
    hide?: boolean | Partial<HideOptions & DetectOverflowOptions>;
    autoUpdate?: boolean | Partial<AutoUpdateOptions>;
    zIndex?: number | string;
    transitionName?: string;
    transitionType?: 'transition' | 'animation';
    enter?: string;
    enterFrom?: string;
    enterTo?: string;
    leave?: string;
    leaveFrom?: string;
    leaveTo?: string;
    originClass?: string | OriginClassResolver;
    tailwindcssOriginClass?: boolean;
    portal?: boolean | string;
    transform?: boolean;
    adaptiveWidth?: boolean;
    middleware?: Middleware[] | ((refs: {
        referenceEl: Ref<HTMLElement | null>;
        floatingEl: Ref<HTMLElement | null>;
    }) => Middleware[]);
}
export declare const FloatProps: {
    as: {
        type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
        default: string;
    };
    floatingAs: {
        type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
        default: string;
    };
    show: {
        type: BooleanConstructor;
        default: null;
    };
    placement: {
        type: PropType<Placement>;
        default: string;
    };
    strategy: {
        type: PropType<Strategy>;
        default: string;
    };
    offset: PropType<OffsetOptions>;
    shift: {
        type: PropType<number | boolean | Partial<ShiftOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
            boundary: import("@floating-ui/dom").Boundary;
        }>>;
        default: boolean;
    };
    flip: {
        type: PropType<number | boolean | Partial<FlipOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
            boundary: import("@floating-ui/dom").Boundary;
        }>>;
        default: boolean;
    };
    arrow: {
        type: (BooleanConstructor | NumberConstructor)[];
        default: boolean;
    };
    autoPlacement: {
        type: PropType<boolean | Partial<AutoPlacementOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
            boundary: import("@floating-ui/dom").Boundary;
        }>>;
        default: boolean;
    };
    hide: {
        type: PropType<boolean | Partial<HideOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
            boundary: import("@floating-ui/dom").Boundary;
        }>>;
        default: boolean;
    };
    autoUpdate: {
        type: PropType<boolean | Partial<AutoUpdateOptions>>;
        default: boolean;
    };
    zIndex: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    transitionName: StringConstructor;
    transitionType: PropType<"transition" | "animation">;
    enter: StringConstructor;
    enterFrom: StringConstructor;
    enterTo: StringConstructor;
    leave: StringConstructor;
    leaveFrom: StringConstructor;
    leaveTo: StringConstructor;
    originClass: PropType<string | OriginClassResolver>;
    tailwindcssOriginClass: {
        type: BooleanConstructor;
        default: boolean;
    };
    portal: {
        type: (StringConstructor | BooleanConstructor)[];
        default: boolean;
    };
    transform: {
        type: BooleanConstructor;
        default: boolean;
    };
    adaptiveWidth: {
        type: BooleanConstructor;
        default: boolean;
    };
    middleware: {
        type: PropType<Middleware[] | ((refs: {
            referenceEl: Ref<HTMLElement | null>;
            floatingEl: Ref<HTMLElement | null>;
        }) => Middleware[])>;
        default: () => never[];
    };
};
export declare const Float: import("vue").DefineComponent<{
    as: {
        type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
        default: string;
    };
    floatingAs: {
        type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
        default: string;
    };
    show: {
        type: BooleanConstructor;
        default: null;
    };
    placement: {
        type: PropType<Placement>;
        default: string;
    };
    strategy: {
        type: PropType<Strategy>;
        default: string;
    };
    offset: PropType<OffsetOptions>;
    shift: {
        type: PropType<number | boolean | Partial<ShiftOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
            boundary: import("@floating-ui/dom").Boundary;
        }>>;
        default: boolean;
    };
    flip: {
        type: PropType<number | boolean | Partial<FlipOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
            boundary: import("@floating-ui/dom").Boundary;
        }>>;
        default: boolean;
    };
    arrow: {
        type: (BooleanConstructor | NumberConstructor)[];
        default: boolean;
    };
    autoPlacement: {
        type: PropType<boolean | Partial<AutoPlacementOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
            boundary: import("@floating-ui/dom").Boundary;
        }>>;
        default: boolean;
    };
    hide: {
        type: PropType<boolean | Partial<HideOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
            boundary: import("@floating-ui/dom").Boundary;
        }>>;
        default: boolean;
    };
    autoUpdate: {
        type: PropType<boolean | Partial<AutoUpdateOptions>>;
        default: boolean;
    };
    zIndex: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    transitionName: StringConstructor;
    transitionType: PropType<"transition" | "animation">;
    enter: StringConstructor;
    enterFrom: StringConstructor;
    enterTo: StringConstructor;
    leave: StringConstructor;
    leaveFrom: StringConstructor;
    leaveTo: StringConstructor;
    originClass: PropType<string | OriginClassResolver>;
    tailwindcssOriginClass: {
        type: BooleanConstructor;
        default: boolean;
    };
    portal: {
        type: (StringConstructor | BooleanConstructor)[];
        default: boolean;
    };
    transform: {
        type: BooleanConstructor;
        default: boolean;
    };
    adaptiveWidth: {
        type: BooleanConstructor;
        default: boolean;
    };
    middleware: {
        type: PropType<Middleware[] | ((refs: {
            referenceEl: Ref<HTMLElement | null>;
            floatingEl: Ref<HTMLElement | null>;
        }) => Middleware[])>;
        default: () => never[];
    };
}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}> | VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("show" | "hide" | "update")[], "show" | "hide" | "update", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    as: {
        type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
        default: string;
    };
    floatingAs: {
        type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
        default: string;
    };
    show: {
        type: BooleanConstructor;
        default: null;
    };
    placement: {
        type: PropType<Placement>;
        default: string;
    };
    strategy: {
        type: PropType<Strategy>;
        default: string;
    };
    offset: PropType<OffsetOptions>;
    shift: {
        type: PropType<number | boolean | Partial<ShiftOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
            boundary: import("@floating-ui/dom").Boundary;
        }>>;
        default: boolean;
    };
    flip: {
        type: PropType<number | boolean | Partial<FlipOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
            boundary: import("@floating-ui/dom").Boundary;
        }>>;
        default: boolean;
    };
    arrow: {
        type: (BooleanConstructor | NumberConstructor)[];
        default: boolean;
    };
    autoPlacement: {
        type: PropType<boolean | Partial<AutoPlacementOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
            boundary: import("@floating-ui/dom").Boundary;
        }>>;
        default: boolean;
    };
    hide: {
        type: PropType<boolean | Partial<HideOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
            boundary: import("@floating-ui/dom").Boundary;
        }>>;
        default: boolean;
    };
    autoUpdate: {
        type: PropType<boolean | Partial<AutoUpdateOptions>>;
        default: boolean;
    };
    zIndex: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    transitionName: StringConstructor;
    transitionType: PropType<"transition" | "animation">;
    enter: StringConstructor;
    enterFrom: StringConstructor;
    enterTo: StringConstructor;
    leave: StringConstructor;
    leaveFrom: StringConstructor;
    leaveTo: StringConstructor;
    originClass: PropType<string | OriginClassResolver>;
    tailwindcssOriginClass: {
        type: BooleanConstructor;
        default: boolean;
    };
    portal: {
        type: (StringConstructor | BooleanConstructor)[];
        default: boolean;
    };
    transform: {
        type: BooleanConstructor;
        default: boolean;
    };
    adaptiveWidth: {
        type: BooleanConstructor;
        default: boolean;
    };
    middleware: {
        type: PropType<Middleware[] | ((refs: {
            referenceEl: Ref<HTMLElement | null>;
            floatingEl: Ref<HTMLElement | null>;
        }) => Middleware[])>;
        default: () => never[];
    };
}>> & {
    onShow?: ((...args: any[]) => any) | undefined;
    onHide?: ((...args: any[]) => any) | undefined;
    onUpdate?: ((...args: any[]) => any) | undefined;
}, {
    middleware: Middleware[] | ((refs: {
        referenceEl: Ref<HTMLElement | null>;
        floatingEl: Ref<HTMLElement | null>;
    }) => Middleware[]);
    placement: Placement;
    strategy: Strategy;
    arrow: number | boolean;
    show: boolean;
    hide: boolean | Partial<HideOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
        boundary: import("@floating-ui/dom").Boundary;
    }>;
    shift: number | boolean | Partial<ShiftOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
        boundary: import("@floating-ui/dom").Boundary;
    }>;
    as: string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
    floatingAs: string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
    flip: number | boolean | Partial<FlipOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
        boundary: import("@floating-ui/dom").Boundary;
    }>;
    autoPlacement: boolean | Partial<AutoPlacementOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
        boundary: import("@floating-ui/dom").Boundary;
    }>;
    autoUpdate: boolean | Partial<AutoUpdateOptions>;
    zIndex: string | number;
    tailwindcssOriginClass: boolean;
    portal: string | boolean;
    transform: boolean;
    adaptiveWidth: boolean;
}>;
export declare const FloatArrowProps: {
    as: {
        type: (StringConstructor | ObjectConstructor)[];
        default: string;
    };
    offset: {
        type: NumberConstructor;
        default: number;
    };
};
export declare const FloatArrow: import("vue").DefineComponent<{
    as: {
        type: (StringConstructor | ObjectConstructor)[];
        default: string;
    };
    offset: {
        type: NumberConstructor;
        default: number;
    };
}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    as: {
        type: (StringConstructor | ObjectConstructor)[];
        default: string;
    };
    offset: {
        type: NumberConstructor;
        default: number;
    };
}>>, {
    as: string | Record<string, any>;
    offset: number;
}>;
