import * as _vueuse_core0 from "@vueuse/core"; import * as vue from "vue"; import { MaybeRefOrGetter } from "vue"; //#region src/use-number-animation.d.ts /** * 缓动函数类型 * - linear: 线性动画 * - easeIn: 加速动画 * - easeOut: 减速动画 * - easeInOut: 先加速后减速动画 * - 自定义函数: (t: number) => number,t 为 0-1 之间的进度值 */ type EasingFunction = 'linear' | 'easeIn' | 'easeOut' | 'easeInOut' | ((t: number) => number); /** * 数字动画配置选项 */ type NumberAnimationOptions = { /** * 起始值 * @default 0 */ from?: number; /** * 是否手动控制动画 * @default false */ manual?: boolean; /** * 动画持续时间(毫秒) * @default 1000 */ duration?: number; /** * 精度,保留小数位数 * @default 2 */ precision?: number; /** * 缓动函数 * @default 'linear' */ easing?: EasingFunction; }; /** * 数字动画组合式函数 * 用于创建平滑的数字过渡动画效果 * * @param to 目标值,可以是静态数字或响应式引用/计算属性 * @param options 动画配置选项 * @returns 动画控制对象 * * @example * ```ts * // 基本用法 * const { value: animatedValue } = useNumberAnimation(100) * ``` * * @example * ```ts * // 自定义配置 * const { value: animatedValue, run, stop } = useNumberAnimation(100, { * from: 0, * duration: 2000, * precision: 0, * easing: 'easeInOut', * manual: false * }) * ``` * * @example * ```ts * // 手动控制 * const { value: animatedValue, run, stop } = useNumberAnimation(0, { manual: true }) * run(50) * stop() * ``` */ declare function useNumberAnimation(to: MaybeRefOrGetter, options?: NumberAnimationOptions): { value: Readonly>; targetValue: vue.Ref; isActive: Readonly>; run: (value?: number) => void; stop: () => void; pause: _vueuse_core0.Fn; resume: _vueuse_core0.Fn; onStart: _vueuse_core0.EventHookOn<[]>; onEnd: _vueuse_core0.EventHookOn<[]>; onProgress: _vueuse_core0.EventHookOn<[number]>; }; /** * useNumberAnimation 函数的返回类型 */ type UseNumberAnimationReturns = ReturnType; //#endregion export { UseNumberAnimationReturns, useNumberAnimation };