import type { State } from "./state";
import type { MovePanoEffect } from './movePanoEffect';
import type { EasingFunction } from '../utils/easing';
/**
 * 点位移动参数
 */
interface MovePanoOptions extends Partial<Omit<State, "offset" | 'distance' | 'mode'>> {
    /**
     * 动画模式
     */
    effect?: MovePanoEffect;
    /** 走点图片过度策略 */
    effectEasing?: EasingFunction;
    /**
     * 运动耗时
     * @description
     * - `数字或者字符串类型` 直接当作运动耗时
     * - `函数类型` 传入 距离和速度（速度为five初始化设置） 返回运动耗时
     * - `不传或者null` 通过距离和速度（速度为five初始化设置）
     */
    duration?: number | ((distance: number, speed: number) => number) | string | null;
    /** 运动开始回调 */
    moveStartCallback?: (toState: State) => void;
    /** 运动结束回调 */
    moveEndCallback?: (state: State) => void;
    /**
     * 运动被取消回调
     * @description
     * 这个有一些情况会导致
     * - 移动过程中切换模态
     * - 移动过程中 five 被析构
     * - 移动过程点击切换到另一个点位
     */
    moveCancelCallback?: () => void;
}
export { MovePanoOptions };
