import { type CSSProperties, type Ref, type ComputedRef } from 'vue';
import { type Placement, type Strategy, type MiddlewareData } from '@floating-ui/vue';
import type { IAxesOffsets, PopoverPlacement, VirtualElement } from '../types';
export interface UseFloatingProps {
    /** 弹出位置 */
    placement: PopoverPlacement;
    /** 偏移量 */
    offset: IAxesOffsets | number;
    /** 边界内边距 */
    padding: number;
    /** 是否显示箭头 */
    arrow: boolean;
    /** 是否自动选择最佳位置 */
    autoPlacement: boolean;
    /** 滚动超出可视范围时自动隐藏 */
    autoVisibility: boolean;
    /** 是否禁用 transform 定位 */
    disableTransform: boolean;
    /** 定位策略：'fixed' 不会导致容器产生滚动溢出 */
    strategy: Strategy;
    /** 当前是否显示 */
    isOpen: boolean;
}
export interface UseFloatingReturn {
    /** 浮动元素样式 */
    floatingStyles: Ref<CSSProperties>;
    /** 箭头样式 */
    arrowStyles: Ref<CSSProperties>;
    /** 实际的位置（可能因 flip 等发生变化） */
    placement: Ref<Placement>;
    /** 中间件数据 */
    middlewareData: Ref<MiddlewareData>;
    /** 手动更新位置 */
    update: () => void;
    /** 是否已完成定位 */
    isPositioned: Ref<boolean>;
    /** 箭头方向 */
    arrowSide: Ref<string>;
}
/**
 * 管理 Popover 的浮动定位
 *
 * 基于 @floating-ui/vue 实现，主要功能：
 * 1. 自动定位浮动元素
 * 2. 支持多种中间件（offset、flip、shift、arrow、hide、autoPlacement）
 * 3. 自动更新位置
 * 4. 计算箭头位置
 */
export declare function usePopoverFloating(props: Ref<UseFloatingProps>, referenceRef: ComputedRef<HTMLElement | VirtualElement | null> | Ref<HTMLElement | VirtualElement | null>, floatingRef: Ref<HTMLElement | null>, arrowRef: Ref<HTMLElement | null>): UseFloatingReturn;
/**
 * 创建用于 composables/index.ts 的导出
 */
export { usePopoverFloating as useFloating };
