export interface AnimationMotionSample {
    readonly timeSeconds: number;
    readonly tracksApplied?: number;
    readonly skinningPalettesUpdated?: number;
    readonly stride?: number;
    readonly animatedSubjects?: number;
}
export interface AnimationMotionQualityReport {
    readonly sampleCount: number;
    readonly timeRangeSeconds: number;
    readonly activeTrackFrames: number;
    readonly activeSkinningFrames: number;
    readonly animatedSubjectFrames: number;
    readonly averageStride: number;
    readonly poseDiversityScore: number;
    readonly healthy: boolean;
}
export interface AnimationMotionQualityOptions {
    readonly maxSamples?: number;
    readonly minimumSamples?: number;
    readonly minimumTimeRangeSeconds?: number;
    readonly minimumPoseDiversityScore?: number;
}
export declare class AnimationMotionQualityTracker {
    private readonly maxSamples;
    private readonly minimumSamples;
    private readonly minimumTimeRangeSeconds;
    private readonly minimumPoseDiversityScore;
    private readonly samples;
    constructor(options?: AnimationMotionQualityOptions);
    record(sample: AnimationMotionSample): AnimationMotionQualityReport;
    report(): AnimationMotionQualityReport;
    reset(): void;
}
export declare function summarizeAnimationMotion(samples: readonly AnimationMotionSample[], options?: Pick<AnimationMotionQualityOptions, "minimumSamples" | "minimumTimeRangeSeconds" | "minimumPoseDiversityScore">): AnimationMotionQualityReport;
//# sourceMappingURL=MotionQuality.d.ts.map