/**
 * Descriptor for ONE thing the interpolation system blends for an entity.
 *
 * An entity carries an {@link Interpolated} component holding a LIST of these.
 * Pure ECS allows at most one component instance of a given class per entity, so
 * "interpolate the pose AND something else on the same entity" is expressed as a
 * list of interpolands, not several `Interpolated` components.
 *
 * Each interpoland binds, for one interpolated quantity:
 *  - a stable `type_id` distinguishing it in the interpolation log under the
 *    entity's key (the log is indexed by `(key, type_id, tick)`);
 *  - the live ECS `component_class` the blended result is written into;
 *  - a `serialization_adapter` that encodes the live component into a snapshot
 *    and decodes a blended snapshot back into it; and
 *  - an `interpolation_adapter` that blends two snapshots at `t`.
 *
 * Interpolands are stateless and shareable — one instance per kind can be reused
 * across every entity that interpolates that kind (e.g. a single shared pose
 * interpoland for every physics body).
 *
 * @author Alex Goldring
 * @copyright Company Named Limited (c) 2026
 */
export class Interpoland {
    /**
     * @param {number} type_id stable id distinguishing this kind in the log
     * @param {Function} component_class live component class written into
     * @param {BinaryClassSerializationAdapter} serialization_adapter encodes /
     *   decodes the live component to / from a snapshot
     * @param {BinaryInterpolationAdapter} interpolation_adapter blends two
     *   snapshots
     */
    constructor(type_id: number, component_class: Function, serialization_adapter: BinaryClassSerializationAdapter, interpolation_adapter: BinaryInterpolationAdapter);
    /** @type {number} */
    type_id: number;
    /** @type {Function} */
    component_class: Function;
    /** @type {BinaryClassSerializationAdapter} */
    serialization_adapter: BinaryClassSerializationAdapter;
    /** @type {BinaryInterpolationAdapter} */
    interpolation_adapter: BinaryInterpolationAdapter;
    /**
     * @readonly
     * @type {boolean}
     */
    readonly isInterpoland: boolean;
}
//# sourceMappingURL=Interpoland.d.ts.map