import { CSSProperties, MaybeRefOrGetter, Ref } from 'vue'; export declare function getFloatingBoundaryRect(scrollTarget: HTMLElement | null, panel: HTMLElement | null, viewportWidth: number, viewportHeight: number): FloatingBoundaryRect; export type FloatingPlacement = 'top' | 'topLeft' | 'topRight' | 'bottom' | 'bottomLeft' | 'bottomRight' | 'left' | 'leftTop' | 'leftBottom' | 'right' | 'rightTop' | 'rightBottom'; type AxisPlacement = 'top' | 'bottom' | 'left' | 'right'; type FloatingAlign = 'start' | 'center' | 'end'; export type KebabPlacement = AxisPlacement | `${AxisPlacement}-${Exclude}`; export interface FloatingRect { left: number; top: number; right: number; bottom: number; width: number; height: number; } export declare function ensureViewBoundingRect(): DOMRect | null; type FloatingRectLike = Pick; export interface FloatingVirtualAnchor { getBoundingClientRect(): FloatingRectLike; } export interface FloatingPoint { x: number; y: number; } export interface FloatingBoundaryRect { top: number; left: number; bottom: number; right: number; } export declare function getPlacementAndOffsetOfFollower(placement: KebabPlacement, targetRect: FloatingRect, followerRect: FloatingRect, shift: boolean, flip: boolean, extraMainAxisSize?: number): { placement: KebabPlacement; top: number; left: number; }; export declare function getProperTransformOrigin(placement: KebabPlacement): string; export declare function getOffset(placement: KebabPlacement, offsetRect: Pick, targetRect: FloatingRect, offsetTopToStandardPlacement: number, offsetLeftToStandardPlacement: number): { top: string; left: string; translate: string; }; export declare function snapTranslate(translate: string, size: { width: number; height: number; }): string; export type FloatingSyncTrigger = 'scroll' | 'resize' | 'font'; export type FloatingBoundary = 'viewport' | 'scrollParent'; export interface UseFloatingOptions { anchor?: MaybeRefOrGetter; virtualAnchor?: MaybeRefOrGetter; point?: MaybeRefOrGetter; offsetContainer: MaybeRefOrGetter; placement: MaybeRefOrGetter; flip?: MaybeRefOrGetter; shift?: MaybeRefOrGetter; offset?: MaybeRefOrGetter; boundary?: MaybeRefOrGetter; matchTriggerWidth?: MaybeRefOrGetter<'width' | 'minWidth' | number | false>; enabled?: MaybeRefOrGetter; syncTrigger?: FloatingSyncTrigger[]; } export interface UseFloatingReturn { panelStyle: Ref; actualPlacement: Ref; transformOrigin: Ref; update: () => void; sync: () => void; } export declare function useFloating(panelRef: Ref, options: UseFloatingOptions): UseFloatingReturn; export {};