import { ComputedRef, Ref } from "vue";
import { PopoverPlacement } from "../popover.props";
import type { HostMetrics } from './measure-host';
export type { HostMetrics } from './measure-host';
export interface UsePosition {
    arrowStyle: ComputedRef<Record<string, any>>;
    popoverStyle: ComputedRef<Record<string, any>>;
    position: Ref<PopoverPlacement>;
    popoverWidth: Ref<number>;
    fitToReference: (referenceElement: HTMLElement) => void;
    followToReferencePosition: (referenceElement: HTMLElement) => void;
    locateToReference: (referenceElement: HTMLElement) => void;
    resetPosition: () => void;
}
export interface UseHost {
    host: any;
    hostLeft: ComputedRef<number>;
    hostTop: ComputedRef<number>;
    hostWidth: ComputedRef<number>;
    hostHeight: ComputedRef<number>;
    hostBottom: ComputedRef<number>;
    /** 定位时调用，避免 computed 无依赖缓存导致几何信息过期 */
    measure: () => HostMetrics;
}
export interface UsePopup {
    hidePopverOnClickBodyHandler: ($event: MouseEvent) => any;
    showPopover: Ref<boolean>;
}
export interface UseResize {
    onResize: () => void;
}
