import type { Tuple } from "@babylonjs/core/types"; import { Endianness } from "../Parser/endianness"; /** * Data deserializer only for strictly 4 byte aligned binary data * * Data assumed to be serialized in little endian */ export declare class AlignedDataDeserializer extends Endianness { readonly arrayBuffer: ArrayBufferLike; private readonly _uint8Ptr; private readonly _uint16Ptr; private readonly _uint32Ptr; private readonly _int32Ptr; private readonly _float32Ptr; private readonly _decoder; private _offset; /** * Creates Aligned data deserializer * @param arrayBuffer ArrayBuffer to deserialize data */ constructor(arrayBuffer: ArrayBufferLike); /** * Current offset in the buffer */ get offset(): number; set offset(value: number); /** * Read a uint8 value * @returns Uint8 value */ getUint8(): number; /** * Read a uint8 array * @param array Uint8 array to fill * @param offset Offset in the array to start writing * @param length Length of the array to read */ getUint8Array(array: Uint8Array, offset?: number, length?: number): void; /** * Read a uint16 value * @returns Uint16 value */ getUint16(): number; /** * Read a uint16 array * @param array Uint16 array to fill * @param offset Offset in the array to start writing * @param length Length of the array to read */ getUint16Array(array: Uint16Array, offset?: number, length?: number): void; /** * Read a uint32 value * @returns Uint32 value */ getUint32(): number; /** * Read a uint32 array * @param array Uint32 array to fill * @param offset Offset in the array to start writing * @param length Length of the array to read */ getUint32Array(array: Uint32Array, offset?: number, length?: number): void; /** * Read a int32 value * @returns Int32 value */ getInt32(): number; /** * Read a int32 array * @param array Int32 array to fill * @param offset Offset in the array to start writing * @param length Length of the array to read */ getInt32Array(array: Int32Array, offset?: number, length?: number): void; /** * Read a float32 value * @returns Float32 value */ getFloat32(): number; /** * Read a float32 array * @param array Float32 array to fill * @param offset Offset in the array to start writing * @param length Length of the array to read */ getFloat32Array(array: Float32Array, offset?: number, length?: number): void; /** * Read a float32 tuple * @param length Tuple length * @returns Float32 tuple */ getFloat32Tuple(length: N): Tuple; /** * Read a utf-8 string and advance the offset with 4 byte alignment * @param length Length of the string in bytes * @returns Utf-8 string */ getString(length: number): string; /** * The number of bytes available */ get bytesAvailable(): number; /** * Compute 4 byte alignment padding * @param offset Offset * @returns Padding */ static Padding(offset: number): number; }