import type { Ref } from 'vue'; export interface MovingState { xStart: number; yStart: number; xEnd: number; yEnd: number; clientX: number; clientY: number; deltaX: number; deltaY: number; lazy: boolean; [custom: string]: unknown; } export interface UseMovingOptions { /** * 作用的目标元素的 Ref */ target?: Ref; /** * 横向位置的初始值 */ x?: number; /** * 纵向位置的初始值 */ y?: number; /** * 为否为懒加载,开启后会在 End 事件再更新位置状态 */ lazy?: boolean; /** * 事件的 capture 选项 * * @default true */ capture?: boolean; /** * 是否阻止 MouseDown 事件冒泡和默认行为 * * @default true */ stopMouse?: boolean; /** * 是否阻止 TouchStart 事件冒泡和默认行为 * * @default true */ stopTouch?: boolean; /** * 移动开始时的回调函数,返回 false 可以阻止本次移动 */ onStart?: (state: MovingState, event: PointerEvent) => any; /** * 移动中的回调函数 */ onMove?: (state: MovingState, event: PointerEvent) => void; /** * 移动结束时的回调函数 */ onEnd?: (state: MovingState, event: PointerEvent) => void; } export declare function useMoving(options: UseMovingOptions): { target: Ref; moving: import("vue").ComputedRef; x: Ref | (number & Ref); y: Ref | (number & Ref); lazy: Ref | ((boolean | undefined) & Ref); };