import { Props, ListDataItem, USEBtns } from './types';
import { Ref, ComputedRef } from 'vue';
/**
 * 实际移动思路: 通过触摸到移动中的距离, 来设置滚动的距离
 * 实施:
 ** 触摸开始时: 记录开始Y坐标和触摸上一次所处的位移值(distance -> translateY)
 ** 触摸移动中: 通过当前Y坐标减去开始的Y坐标得到拖拽的距离, 然后实际需要移动的值=触摸上一次所处的位移值+拖拽的距离
 */
/**
 * 理想移动到目标思路: 通过滚动是否是44（每一个li的固定高度）的倍数, 剩余的是否大于44/2, 大于则补足一个倍数, 小于则取消剩余部分
 * 实施: 触摸结束时:
 ** 剩余数 = 实际需要的位移(distance -> translateY) % 44
 ** distance = 剩余数>(44/2) ? distance + (44-剩余数): distance - 剩余数;
 */
/**
 * 惯性滑动思路: 通过滑动的速度来计算还需要滑动的距离
 * 实施:
 ** 滑动的速度 = 滑动的距离/滑动的时间（触摸开始-触摸结束）.toFixed(2)
 ** 还需要滑动的距离 = 滑动的速度 * 400
 ** 滑动的速度 > 0.12 才开启惯性滑动
 */
/**
 * 移动列
 */
export declare const useHandMove: (props: Readonly<Required<Props>>) => {
    show: Ref<number[], number[]>;
    currentValue: number[];
    listData: Ref<{
        id: number;
        list: number | number[];
    }[], ListDataItem[] | {
        id: number;
        list: number | number[];
    }[]>;
    distance: Ref<number[], number[]>;
    duration: Ref<number, number>;
    filterNumber: ComputedRef<(num: number) => string | number>;
    getCurNum: (id: number, num: number) => number;
    onTouchstart: (e: TouchEvent, i: number) => void;
    onTouchmove: (e: TouchEvent, i: number) => void;
    onTouchend: (e: TouchEvent, i: number) => void;
    onMousedown: (e: MouseEvent, i: number) => void;
};
/**
 * 按钮
 */
export declare const useBtns: ({ props, emit, currentValue, modelValue }: USEBtns.Option) => {
    onCancel: () => void;
    onSure: () => void;
};
