/** @typedef {number} uint8 */ /** @typedef {number} uint16 */ /** @typedef {number} uint32 */ /** @typedef {bigint} uint64 */ /** * @template {number} TMaxSize */ export class SimpleBuffer { /** * * @param {TMaxSize} size */ constructor(size?: TMaxSize); /** * @overload * @param {SimpleBuffer<1>} sb1 * Simple buffer that stores 1 byte. * @returns {void} */ write1Byte(sb1: SimpleBuffer<1>): void; /** * @overload * @param {uint8} uint32 * Integer treated as if it is an unsigned 32-bit integer. * @returns {void} */ write1Byte(uint32: uint8): void; /** * @overload * @param {SimpleBuffer<2>} sb2 * Simple buffer that stores 2 bytes. * @returns {void} */ write2Bytes(sb2: SimpleBuffer<2>): void; /** * @overload * @param {uint16} uint16 * Integer treated as if it is an unsigned 32-bit integer. * @returns {void} */ write2Bytes(uint16: uint16): void; /** * @overload * @param {SimpleBuffer<4>} sb4 * Simple buffer that stores 4 bytes. * @returns {void} */ write3Bytes(sb4: SimpleBuffer<4>): void; /** * @overload * @param {uint32} uint32 * Integer treated as if it is an unsigned 32-bit integer. * @returns {void} */ write3Bytes(uint32: uint32): void; /** * @overload * @param {SimpleBuffer<4>} sb4 * Simple buffer that stores 4 bytes. * @returns {void} */ write4Bytes(sb4: SimpleBuffer<4>): void; /** * @overload * @param {uint32} uint32 * Integer treated as if it is an unsigned 32-bit integer. * @returns {void} */ write4Bytes(uint32: uint32): void; /** * @overload * @param {SimpleBuffer<8>} sb8 * Simple buffer that stores 8 bytes. * @returns {void} */ write8Bytes(sb8: SimpleBuffer<8>): void; /** * @overload * @param {uint64} uint64 * Integer treated as if it is an unsigned 64-bit integer. * @returns {void} */ write8Bytes(uint64: uint64): void; /** * * @param {string} str */ writeString(str: string): void; /** * Write an existing SimpleBuffer to this SimpleBuffer. * @param {SimpleBuffer} sb * @param {boolean} writeAllBytes * If true is specified, then all bytes from the simple buffer up to the maximum size the buffer can hold will be written to this buffer. */ writeBuffer(sb: SimpleBuffer, writeAllBytes?: boolean): void; /** * @param {Uint8Array} bytes */ append(bytes: Uint8Array): void; /** * * @param {Uint8Array} bytes */ prepend(bytes: Uint8Array): void; /** * @returns {uint8} */ read1Byte(): uint8; /** * @returns {uint16} */ read2Bytes(): uint16; /** * @returns {uint32} */ read3Bytes(): uint32; /** * @returns {uint32} */ read4Bytes(): uint32; /** * @returns {uint64} */ read8Bytes(): uint64; /** * * @param {number} strLen * Size of the string expected to be read from the buffer. */ readString(strLen: number): string; /** * * @param {number} numBytes */ skip(numBytes: number): void; /** * * @param {number} requiredSize */ require(requiredSize: number): boolean; /** */ empty(): boolean; size(): number; pos(): number; data(): Uint8Array | null; currentData(): Uint8Array | null; dataLeft(): number; clear(): void; /** * * @param {number} pos * Position (in bytes) of where to set the data in the buffer. * @param {Uint8Array} data * Data to place in the buffer at the position, `pos`, specified. */ setData(pos: number, data: Uint8Array, size?: number): void; /** * * @param {number} pos */ get(pos: number): number; /** * * @param {number} pos * @param {number} value */ set(pos: number, value: number): void; #private; } export type uint8 = number; export type uint16 = number; export type uint32 = number; export type uint64 = bigint;