import { type AnimationValue, type Keyframe, type SerializedKeyframe } from "./Keyframe.js";
export type TrackValueType = "scalar" | "vector3" | "quaternion" | "number-array" | "boolean" | "string";
export type AnimationTrackDescriptor<T extends AnimationValue = AnimationValue> = {
    readonly target: string;
    readonly valueType: TrackValueType;
    readonly keyframes: readonly Keyframe<T>[];
};
export type SerializedAnimationTrack<T extends AnimationValue = AnimationValue> = {
    readonly target: string;
    readonly valueType: TrackValueType;
    readonly keyframes: readonly SerializedKeyframe<T>[];
};
export declare class AnimationTrack<T extends AnimationValue = AnimationValue> {
    readonly target: string;
    readonly valueType: TrackValueType;
    readonly keyframes: readonly Keyframe<T>[];
    readonly duration: number;
    constructor(descriptor: AnimationTrackDescriptor<T>);
    sample(time: number): T;
    toJSON(): SerializedAnimationTrack<T>;
    static fromJSON<T extends AnimationValue = AnimationValue>(serialized: SerializedAnimationTrack<T>): AnimationTrack<T>;
}
//# sourceMappingURL=AnimationTrack.d.ts.map