import { type Ref } from 'vue'; export interface PopperTarget { getBoundingClientRect: () => DOMRect; } export type PopperPosition = 'top' | 'top-start' | 'top-end' | 'right' | 'right-start' | 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end'; export type Direction = 'top' | 'right' | 'bottom' | 'left'; export type Side = 'start' | 'center' | 'end'; export type Axis = 'top' | 'left'; export interface UsePopperOptions { position: () => PopperPosition; refGap: () => number; viewportGap: () => number; arrowSize: number; } export declare function usePopper(referenceRef: Ref, floatingRef: Ref, enabledRef: Ref, options: UsePopperOptions): { left: number; top: number; }[]; export declare function computePosition(refRect: DOMRect, floatingSize: { width: number; height: number; }, { refGap, position, viewportGap, arrowSize, }: { position: PopperPosition; refGap: number; viewportGap: number; arrowSize: number; }): readonly [{ top: number; left: number; }, { top: number; left: number; }]; export declare function autoUpdate(reference: PopperTarget | Element, floating: Element, update: () => void): () => void;