import type { Vec3 } from "./Keyframe.js";
export interface MotionMatchingFixtureOptions {
    readonly currentPosition?: Vec3;
    readonly moveDirection?: Vec3;
    readonly facingDirection?: Vec3;
    readonly speed?: number;
    readonly elapsedSeconds?: number;
    readonly previousPoseId?: string;
    readonly seed?: number;
}
export interface MotionMatchingTrajectorySample {
    readonly time: number;
    readonly position: Vec3;
    readonly direction: Vec3;
}
export interface MotionMatchingPoseCandidate {
    readonly id: string;
    readonly clip: "idle" | "walk" | "run" | "strafe" | "turn" | "jump";
    readonly time: number;
    readonly tags: readonly string[];
    readonly rootVelocity: Vec3;
    readonly footLeft: Vec3;
    readonly footRight: Vec3;
    readonly trajectory: readonly MotionMatchingTrajectorySample[];
}
export interface MotionMatchingCandidateScore {
    readonly poseId: string;
    readonly clip: MotionMatchingPoseCandidate["clip"];
    readonly tags: readonly string[];
    readonly velocityCost: number;
    readonly facingCost: number;
    readonly trajectoryCost: number;
    readonly continuityCost: number;
    readonly totalCost: number;
}
export interface MotionMatchingFixtureSample {
    readonly id: "external-parity-old-branch-motion-matching-fixture";
    readonly source: "origin-master-motion-matching-system-adapted";
    readonly databasePoseCount: number;
    readonly candidateScores: readonly MotionMatchingCandidateScore[];
    readonly selectedPoseId: string;
    readonly selectedClip: MotionMatchingPoseCandidate["clip"];
    readonly selectedTags: readonly string[];
    readonly selectedTime: number;
    readonly transitioned: boolean;
    readonly blendWeight: number;
    readonly transitionDurationSeconds: number;
    readonly queryTrajectory: readonly MotionMatchingTrajectorySample[];
    readonly querySpeed: number;
    readonly queryFacingAlignment: number;
    readonly bestCost: number;
    readonly secondBestCost: number;
    readonly costMargin: number;
    readonly hash: string;
    readonly claimBoundary: string;
}
export declare function sampleMotionMatchingFixture(options?: MotionMatchingFixtureOptions): MotionMatchingFixtureSample;
//# sourceMappingURL=MotionMatchingFixtures.d.ts.map