/**
 * Utility for reading/writing binary data
 * Mostly useful for serialization/deserialization tasks
 */
export class BinaryBuffer {
    /**
     *
     * @param {EndianType} type
     * @return {BinaryBuffer}
     */
    static fromEndianness(type: EndianType): BinaryBuffer;
    /**
     *
     * @param {ArrayBuffer} v
     * @return {BinaryBuffer}
     */
    static fromArrayBuffer(v: ArrayBuffer): BinaryBuffer;
    /**
     *
     * @param {BinaryBuffer} source
     * @param {BinaryBuffer} target
     * @returns {string} Copied value
     */
    static copyUTF8String(source: BinaryBuffer, target: BinaryBuffer): string;
    /**
     *
     * @param {BinaryBuffer} source
     * @param {BinaryBuffer} target
     * @returns {number} Copied value
     */
    static copyUintVar(source: BinaryBuffer, target: BinaryBuffer): number;
    /**
     *
     * @param {BinaryBuffer} source
     * @param {BinaryBuffer} target
     * @returns {number} Copied value
     */
    static copyUint8(source: BinaryBuffer, target: BinaryBuffer): number;
    /**
     *
     * @param {BinaryBuffer} source
     * @param {BinaryBuffer} target
     * @returns {number} Copied value
     */
    static copyUint16(source: BinaryBuffer, target: BinaryBuffer): number;
    /**
     *
     * @param {BinaryBuffer} source
     * @param {BinaryBuffer} target
     * @returns {number} Copied value
     */
    static copyUint32(source: BinaryBuffer, target: BinaryBuffer): number;
    /**
     *
     * @param {BinaryBuffer} source
     * @param {BinaryBuffer} target
     * @returns {number} Copied value
     */
    static copyFloat32(source: BinaryBuffer, target: BinaryBuffer): number;
    /**
     *
     * @param {BinaryBuffer} source
     * @param {BinaryBuffer} target
     * @returns {number} Copied value
     */
    static copyFloat64(source: BinaryBuffer, target: BinaryBuffer): number;
    /**
     *
     * @param {BinaryBuffer} source
     * @param {BinaryBuffer} target
     * @param {number} length
     */
    static copyBytes(source: BinaryBuffer, target: BinaryBuffer, length: number): Uint8Array<ArrayBuffer>;
    /**
     * Default is little-endian as most platforms operate in little-endian
     * The reason this is fixed is to ensure cross-platform compatibility
     * @type {EndianType|boolean}
     */
    endianness: EndianType | boolean;
    /**
     *
     * @type {number}
     */
    position: number;
    set length(v: void);
    get length(): void;
    /**
     *
     * @type {number}
     */
    capacity: number;
    /**
     *
     * @type {ArrayBuffer}
     * @private
     */
    private data;
    /**
     *
     * @type {DataView}
     * @private
     */
    private dataView;
    /**
     *
     * @type {Uint8Array}
     * @private
     */
    private __data_uint8;
    /**
     *
     * @type {number}
     * @private
     */
    private __growFactor;
    /**
     * Access raw underlying bytes attached to the buffer
     * @return {Uint8Array}
     */
    get raw_bytes(): Uint8Array;
    /**
     * @param {ArrayBuffer} data
     */
    fromArrayBuffer(data: ArrayBuffer): void;
    /**
     * Set capacity to contain data only up to current position
     * @returns {BinaryBuffer}
     */
    trim(): BinaryBuffer;
    /**
     *
     * @param {number} capacity
     */
    setCapacity(capacity: number): void;
    /**
     *
     * @param {number} min_capacity
     */
    ensureCapacity(min_capacity: number): void;
    /**
     *
     * @returns {number}
     */
    readFloat16(): number;
    /**
     *
     * @returns {number}
     */
    readFloat32(): number;
    /**
     *
     * @returns {number}
     */
    readFloat64(): number;
    readInt8(): number;
    readInt16(): number;
    /**
     *
     * @returns {number}
     */
    readInt32(): number;
    /**
     *
     * @returns {number}
     */
    readUint8(): number;
    /**
     *
     * @returns {number}
     */
    readUint16(): number;
    /**
     *
     * @returns {number}
     */
    readUint16LE(): number;
    /**
     *
     * @returns {number}
     */
    readUint16BE(): number;
    /**
     *
     * @returns {number}
     */
    readUint24(): number;
    /**
     *
     * @returns {number}
     */
    readUint24LE(): number;
    /**
     *
     * @returns {number}
     */
    readUint24BE(): number;
    /**
     *
     * @returns {number}
     */
    readUint32(): number;
    /**
     *
     * @returns {number}
     */
    readUint32LE(): number;
    /**
     *
     * @returns {number}
     */
    readUint32BE(): number;
    /**
     *
     * @param {number} destination_offset starting index in the destination array
     * @param {number} length number of elements to read
     * @param {Uint8Array} destination
     */
    readUint8Array(destination: Uint8Array, destination_offset: number, length: number): void;
    /**
     *
     * @param {number} destination_offset starting index in the destination array
     * @param {number} length number of elements to read
     * @param {Uint16Array} destination
     */
    readUint16Array(destination: Uint16Array, destination_offset: number, length: number): void;
    /**
     *
     * @param {number} destination_offset starting index in the destination array
     * @param {number} length number of elements to read
     * @param {Uint32Array|number[]|ArrayLike<number>} destination
     */
    readUint32Array(destination: Uint32Array | number[] | ArrayLike<number>, destination_offset: number, length: number): void;
    /**
     *
     * @param {number} destination_offset starting index in the destination array
     * @param {number} length number of elements to read
     * @param {Int8Array} destination
     */
    readInt8Array(destination: Int8Array, destination_offset: number, length: number): void;
    /**
     *
     * @param {number} destination_offset starting index in the destination array
     * @param {number} length number of elements to read
     * @param {Int16Array} destination
     */
    readInt16Array(destination: Int16Array, destination_offset: number, length: number): void;
    /**
     *
     * @param {number} destination_offset starting index in the destination array
     * @param {number} length number of elements to read
     * @param {Int32Array} destination
     */
    readInt32Array(destination: Int32Array, destination_offset: number, length: number): void;
    /**
     *
     * @param {number} destination_offset starting index in the destination array
     * @param {number} length number of elements to read
     * @param {Float32Array|number[]} destination
     */
    readFloat32Array(destination: Float32Array | number[], destination_offset: number, length: number): void;
    /**
     *
     * @param {number} destination_offset starting index in the destination array
     * @param {number} length number of elements to read
     * @param {Float64Array} destination
     */
    readFloat64Array(destination: Float64Array, destination_offset: number, length: number): void;
    /**
     *
     * @param {number} source_offset starting index in the source array
     * @param {number} length number of elements to read
     * @param {Float32Array|number[]} source
     */
    writeFloat32Array(source: Float32Array | number[], source_offset: number, length: number): void;
    /**
     *
     * @param {number} value
     */
    writeFloat16(value: number): void;
    /**
     *
     * @param {number} value
     */
    writeFloat32(value: number): void;
    /**
     *
     * @param {number} value
     */
    writeFloat64(value: number): void;
    /**
     *
     * @param {number} value
     */
    writeInt8(value: number): void;
    /**
     *
     * @param {number} value
     */
    writeInt16(value: number): void;
    /**
     *
     * @param {number} value
     */
    writeInt32(value: number): void;
    /**
     *
     * @param {number} value
     */
    writeUint8(value: number): void;
    /**
     *
     * @param {Uint8Array|number[]} source
     * @param {number} source_offset
     * @param {number} length
     */
    writeUint8Array(source: Uint8Array | number[], source_offset: number, length: number): void;
    /**
     *
     * @param {number} value
     */
    writeUint16(value: number): void;
    /**
     *
     * @param {number} value
     */
    writeUint16BE(value: number): void;
    /**
     *
     * @param {number} value
     */
    writeUint16LE(value: number): void;
    /**
     *
     * @param {Uint16Array|number[]} source
     * @param {number} source_offset
     * @param {number} length
     */
    writeUint16Array(source: Uint16Array | number[], source_offset: number, length: number): void;
    /**
     *
     * @param {number} value
     */
    writeUint24(value: number): void;
    /**
     *
     * @param {number} value
     */
    writeUint24BE(value: number): void;
    /**
     *
     * @param {number} value
     */
    writeUint24LE(value: number): void;
    /**
     * Write Uint of variable length
     * NOTE: uses 7-bit encoding with 1 bit used for carry-over flag
     * @param {number} value
     */
    writeUintVar(value: number): void;
    /**
     * Read Uint of variable length, a compliment to {@link #writeUintVar}
     * @returns {number}
     */
    readUintVar(): number;
    /**
     *
     * @param {number} value
     */
    writeUint32(value: number): void;
    /**
     *
     * @param {number} value
     */
    writeUint32BE(value: number): void;
    /**
     *
     * @param {number} value
     */
    writeUint32LE(value: number): void;
    /**
     *
     * @param {Uint32Array|number[]|ArrayLike<number>} source
     * @param {number} source_offset
     * @param {number} length
     */
    writeUint32Array(source: Uint32Array | number[] | ArrayLike<number>, source_offset: number, length: number): void;
    /**
     *
     * @param {Uint8Array|Uint8ClampedArray} array
     * @param {number} source_offset
     * @param {number} length
     */
    writeBytes(array: Uint8Array | Uint8ClampedArray, source_offset: number, length: number): void;
    /**
     *
     * @param {Uint8Array} destination
     * @param {number} destination_offset
     * @param {number} length
     */
    readBytes(destination: Uint8Array, destination_offset: number, length: number): void;
    /**
     * Adapted from https://github.com/samthor/fast-text-encoding/blob/master/text.js
     * @licence Original license is Apache 2.0
     * @param {String} string
     */
    writeUTF8String(string: string): void;
    /**
     * Adapted from https://github.com/samthor/fast-text-encoding/blob/master/text.js
     * @licence Original license is Apache 2.0
     * @returns {String}
     */
    readUTF8String(): string;
    /**
     *
     * @param {string} string
     */
    writeASCIIString(string: string): void;
    /**
     *
     * @param {number} length
     * @param {boolean} [null_terminated]
     * @returns {string}
     */
    readASCIICharacters(length: number, null_terminated?: boolean): string;
    /**
     * @readonly
     * @type {boolean}
     */
    readonly isBinaryBuffer: boolean;
}
import { EndianType } from "./EndianType.js";
//# sourceMappingURL=BinaryBuffer.d.ts.map