import type { Curve, CurvePath, Object3D } from 'three'; import { CatmullRomCurve3, Vector3 } from 'three'; import * as TWEEN from '@tweenjs/tween.js'; import type SceneControl from '../core/scene/scene'; export declare enum Direction { plus = "plus", minus = "minus" } /** * moveTo 直线移动 * @param currentObject3D * @param targetObject3D * @param distance * @param direction * @param duration * @param animationMethod * @param sceneControl */ export declare const moveTo: (currentObject3D: Object3D, targetObject3D: Object3D, distance: number, direction: Direction, duration?: number, animationMethod?: string, sceneControl?: SceneControl) => TWEEN.Tween; export interface ControlsRetuenFuncType { setSpeed: (currentStep: number) => void; getProgress: () => number; setProgress: (newProgress: number) => void; stop: () => void; continue: (newProgress?: number) => void; remove: () => void; addEventListener: (event: 'end', callback: () => void) => void; getWalkCurve: () => CatmullRomCurve3 | null; } type MoveWithLineOptions = { lookat?: Vector3 | boolean; loop?: boolean; repeat?: number; groundCurve?: Curve; lookatObject?: Object3D; splitCount?: number; duration?: number; speed?: number; yoyo?: boolean; paused?: boolean; direction?: number; sceneControl?: SceneControl; }; /** * 曲线路径移动 * @param currentObject * @param curve * @param speed * @param options */ export declare const moveWithLine: (currentObject: Object3D, curve: Curve | CurvePath, options?: MoveWithLineOptions) => ControlsRetuenFuncType | undefined; export declare const moveWithLine2: (currentObject: Object3D, curve: Curve, curSpeed?: number, options?: MoveWithLineOptions) => ControlsRetuenFuncType; /** * base 圆周运动 * @param currentObject3d * @param speed * @param duration */ export declare const moveWithRound: (currentObject3d: Object3D, speed?: number, duration?: number, sceneControl?: SceneControl) => void; /** * move 方法2 移动辅助线 * @param currentObject3D * @param targetObject3D */ export declare const moveLine: (currentObject3D: Object3D, targetObject3D: Object3D, sceneControl?: SceneControl) => void; export {};