import { AnimationClip } from "./AnimationClip.js";
export interface LocomotionControllerState {
    speed: number;
    inPlace: boolean;
    paused: boolean;
    pathRadius: number;
}
export interface LocomotionControllerSample {
    clipName: string;
    clipTime: number;
    worldX: number;
    worldZ: number;
    heading: number;
    stride: number;
    rootMotionDistance: number;
}
export interface LocomotionControllerOptions {
    readonly clip: AnimationClip;
    readonly rootMotionTrack?: string;
    readonly speed?: number;
    readonly inPlace?: boolean;
    readonly paused?: boolean;
    readonly pathRadius?: number;
    readonly strideAmplitude?: number;
    readonly rootMotionScale?: number;
}
export interface ProceduralWalkClipOptions {
    readonly name?: string;
    readonly duration?: number;
    readonly distance?: number;
    readonly rootMotionTrack?: string;
}
export declare class LocomotionController {
    readonly clip: AnimationClip;
    readonly rootMotionTrack: string;
    readonly strideAmplitude: number;
    readonly rootMotionScale: number;
    readonly state: LocomotionControllerState;
    constructor(options: LocomotionControllerOptions);
    setSpeed(speed: number): this;
    setInPlace(inPlace: boolean): this;
    setPaused(paused: boolean): this;
    setPathRadius(pathRadius: number): this;
    sample(elapsedSeconds: number): LocomotionControllerSample;
}
export declare function createRootMotionWalkClip(options?: ProceduralWalkClipOptions): AnimationClip;
//# sourceMappingURL=LocomotionController.d.ts.map