import type { FloatingAxesOffsets, FloatingPosition, FloatingStrategy } from '../../utils/Floating';
import type { TooltipMiddlewares } from './Tooltip.types';
export interface UseTooltipOptions {
    position: () => FloatingPosition;
    opened: () => boolean | undefined;
    defaultOpened: boolean;
    openDelay?: () => number | undefined;
    closeDelay?: () => number | undefined;
    offset: () => number | FloatingAxesOffsets;
    arrowOffset: () => number;
    events: () => {
        hover: boolean;
        focus: boolean;
        touch: boolean;
    };
    strategy: () => FloatingStrategy;
    middlewares: () => TooltipMiddlewares | undefined;
    onPositionChange?: (position: FloatingPosition) => void;
}
export declare function useTooltip(options: UseTooltipOptions): {
    opened: import("vue").ComputedRef<boolean>;
    reference: import("vue").Ref<any, any>;
    floating: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
    arrowRef: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
    x: Readonly<import("vue").Ref<number, number>>;
    y: Readonly<import("vue").Ref<number, number>>;
    placement: Readonly<import("vue").Ref<import("@floating-ui/utils").Placement, import("@floating-ui/utils").Placement>>;
    arrowX: import("vue").ComputedRef<number | undefined>;
    arrowY: import("vue").ComputedRef<number | undefined>;
    open: () => void;
    close: () => void;
    setOpened: (value: boolean, delay?: number) => void;
};
