/** Exact OAV quantization, canonical UTSBM frame layout, and matrix helpers. */ import type { Matrix4 } from 'three'; import type { OAVManifest } from './OAVManifest.js'; export declare const OAV_AFFINE_COMPONENT_COUNT = 12; export declare const OAV_SYMBOLS_PER_COMPONENT = 2; export declare const OAV_QUANTIZED_MAX = 4095; export declare const OAV_SYMBOL_MAX = 63; export declare const OAV_CANONICAL_BYTES_PER_OBJECT: number; /** Dequantize one object-major integer frame into the existing Float32 affine layout. */ export declare function dequantizeOAVFrame(quantized: ArrayLike, manifest: Readonly, out?: Float32Array | null): Float32Array; /** Interpolate two quantized frames directly into the existing Float32 affine layout. */ export declare function interpolateOAVQuantizedFrames(from: ArrayLike, to: ArrayLike, alpha: number, manifest: Readonly, out?: Float32Array | null): Float32Array; /** Quantize an object-major Float32 affine frame at the declared OAV integer boundary. */ export declare function quantizeOAVFrame(matrices: ArrayLike, manifest: Readonly, out?: Uint16Array | null): Uint16Array; /** * Convert canonical UTSBM OAV bytes (twelve component-major little-endian u16 lanes) to the * object-major two-byte presentation frame used by the runtime. */ export declare function decodeOAVCanonicalFrame(canonical: Uint8Array, objectCount: number, out?: Uint16Array | null): Uint16Array; /** Encode an object-major quantized frame into canonical component-major UTSBM bytes. */ export declare function encodeOAVCanonicalFrame(quantized: ArrayLike, objectCount: number): Uint8Array; /** Regenerate the stable diagnostic R8 atlas from one exact quantized frame. */ export declare function encodeOAVDiagnosticLuma(quantized: ArrayLike, manifest: Readonly, { flipY, out }?: { flipY?: boolean; out?: Uint8Array | null; }): Uint8Array; /** Convert one row-major affine 3×4 record to THREE.Matrix4.set-compatible arguments. */ export declare function setMatrixFromOAVAffine(matrix: Matrix4, values: ArrayLike, offset?: number): Matrix4; /** Component-wise interpolate two affine arrays. */ export declare function interpolateOAVFrames(from: ArrayLike, to: ArrayLike, alpha: number, out?: Float32Array | null): Float32Array; /** Expand a local-space affine frame through its object-parent hierarchy. */ export declare function resolveOAVWorldFrame(local: Float32Array, parentIndices: ArrayLike, out?: Float32Array | null): Float32Array;