import type { Ref, ShallowRef } from 'vue';
import type { MiddlewareData, SideObject } from '@floating-ui/core';
import type { Middleware, Placement, Strategy } from '@floating-ui/dom';
export interface UseFloatingOptions {
    placement?: Ref<Placement> | Placement;
    strategy?: Ref<Strategy> | Strategy;
    middleware?: Ref<Middleware[] | undefined> | Middleware[];
}
export declare function useFloating(options?: UseFloatingOptions): {
    x: Ref<number | undefined>;
    y: Ref<number | undefined>;
    placement: Ref<Placement>;
    strategy: Ref<Strategy>;
    middlewareData: ShallowRef<MiddlewareData>;
    update: () => void;
    reference: Ref<HTMLElement | null>;
    floating: Ref<HTMLElement | null>;
};
export declare const arrow: (options: {
    element: Ref<HTMLElement | null> | HTMLElement;
    padding?: number | SideObject;
}) => Middleware;
