/**
 * Base class for animation tracks.
 *
 * A track produces time-varying state for a specific target and defines how to:
 * - Compute state at a given time (`calculateState`)
 * - Apply that state to a target (`applyState`)
 * - Blend between two states (`mixState`)
 * - Report its blend compatibility (`getBlendId`)
 * - Report its intrinsic duration (`getDuration`)
 *
 * Generic:
 * - `StateType` is the shape of the computed/applied state (e.g., number, vector, pose).
 *
 * @public
 */ class AnimationTrack {
    /** @internal */ _name;
    /** @internal */ _embedded;
    /** @internal */ _animation;
    /** @internal */ _target;
    /** @internal */ _jointIndex;
    /**
   * Construct a new animation track.
   *
   * @param embedded - Whether this track is embedded/owned inline by its container. Default false.
   */ constructor(embedded){
        this._name = 'noname';
        this._animation = null;
        this._embedded = !!embedded;
        this._target = '';
        this._jointIndex = -1;
    }
    /**
   * Human-readable name of the track.
   */ get name() {
        return this._name;
    }
    set name(val) {
        this._name = val;
    }
    /**
   * Whether this track is embedded (owned inline by a resource/container).
   */ get embedded() {
        return this._embedded;
    }
    /**
   * The `AnimationClip` that owns this track.
   */ get animation() {
        return this._animation;
    }
    set animation(ani) {
        this._animation = ani;
    }
    /**
   * Logical target identifier for this track (optional metadata).
   *
   * This does not affect application; it can be used by tooling or higher-level
   * systems to label/group tracks.
   */ get target() {
        return this._target;
    }
    set target(val) {
        this._target = val;
    }
    /**
   * Joint index if this track controls a joint, otherwise -1
   */ get jointIndex() {
        return this._jointIndex;
    }
    set jointIndex(index) {
        this._jointIndex = index;
    }
    /**
   * Reset the track to its initial state for the given target.
   *
   * Intended to stop playback and rewind the target to the first frame or default state.
   *
   * @param _target - The animated object to reset.
   */ reset(_target) {}
}

export { AnimationTrack };
//# sourceMappingURL=animationtrack.js.map
