import { TRUNCATE_ZERO_BYTES, KEEP_ZERO_BYTES } from './constants.js';
import type { ArxQuaternion, ArxRotation, ArxVector3 } from './types.js';
export declare class BinaryIO<TArrayBuffer extends ArrayBufferLike & {
    BYTES_PER_ELEMENT?: never;
}> extends DataView<TArrayBuffer> {
    static sizeOfFloat32(): 4;
    static sizeOfFloat32Array(length: number): number;
    static sizeOfInt8(): 1;
    static sizeOfInt8Array(length: number): number;
    static sizeOfInt16(): 2;
    static sizeOfInt16Array(length: number): number;
    static sizeOfInt32(): 4;
    static sizeOfInt32Array(length: number): number;
    static sizeOfUint8(): 1;
    static sizeOfUint8Array(length: number): number;
    static sizeOfUint16(): 2;
    static sizeOfUint16Array(length: number): number;
    static sizeOfUint32(): 4;
    static sizeOfUint32Array(length: number): number;
    static sizeOfString(length: number): number;
    static sizeOfNullTerminatedString(str: string): number;
    static sizeOfVector3(): number;
    static sizeOfVector3Array(length: number): number;
    static sizeOfRotation(): number;
    static sizeOfQuat(): number;
    private position;
    constructor(buffer: TArrayBuffer, byteOffset?: number, byteLength?: number);
    readFloat32(): number;
    readFloat32Array(length: number): number[];
    readInt8(): number;
    readInt8Array(length: number): number[];
    readInt16(): number;
    readInt16Array(length: number): number[];
    readInt32(): number;
    readInt32Array(length: number): number[];
    readUint8(): number;
    readUint8Array(length: number): number[];
    readUint16(): number;
    readUint16Array(length: number): number[];
    readUint32(): number;
    readUint32Array(length: number): number[];
    writeFloat32(value: number): void;
    writeFloat32Array(values: number[]): void;
    writeInt8(value: number): void;
    writeInt8Array(values: number[]): void;
    writeInt16(value: number): void;
    writeInt16Array(values: number[]): void;
    writeInt32(value: number): void;
    writeInt32Array(values: number[]): void;
    writeUint8(value: number): void;
    writeUint8Array(values: number[] | ArrayBufferLike): void;
    writeUint16(value: number): void;
    writeUint16Array(values: number[]): void;
    writeUint32(value: number): void;
    writeUint32Array(values: number[]): void;
    readString(length?: number, truncateZeroBytes?: typeof TRUNCATE_ZERO_BYTES | typeof KEEP_ZERO_BYTES): string;
    writeString(str: string, length?: number): void;
    readVector3(): ArxVector3;
    readVector3Array(length: number): ArxVector3[];
    writeVector3({ x, y, z }: ArxVector3): void;
    writeVector3Array(values: ArxVector3[]): void;
    readRotation(): ArxRotation;
    writeRotation({ a, b, g }: ArxRotation): void;
    readQuat(): ArxQuaternion;
    writeQuat({ x, y, z, w }: ArxQuaternion): void;
    writeBuffer(buffer: ArrayBufferLike): void;
    skipBytes(numberOfBytes: number): void;
}
