import type { Five } from '@realsee/five';
import CruiseController from './BaseController';
import type { PluginState } from './typing';
import type { PartialDeep } from 'type-fest';
import type * as THREE from 'three';
type Data = {
    path: THREE.CurvePath<THREE.Vector3>;
    offset?: Partial<{
        x: number;
        y: number;
        z: number;
    }>;
};
export type Config = {
    offset?: Partial<{
        x: number;
        y: number;
        z: number;
    }>;
    allowBroke?: boolean;
};
export default class MoveController extends CruiseController<Data, Config> {
    private curve;
    private baseCurveOffset;
    private curveOffset;
    private playStartedTime;
    private duration;
    constructor(five: Five, config?: Config);
    load(data: Data, state?: PartialDeep<PluginState>): Promise<void>;
    changeSpeed: (speed: number, userAction?: boolean) => void;
    moveToStart: () => void;
    playFromStart: () => void;
    protected getDuration: () => number;
    protected getProgress: () => number;
    protected handlePlay(): Promise<string>;
    protected handlePause(options?: {
        userAction?: boolean;
    }): void;
}
export {};
