UNPKG

@dishuostec/llrt-types

Version:

Type definitions for LLRT, Low Latency Runtime

1,217 lines (1,213 loc) 43.4 kB
/** * `Buffer` objects are used to represent a fixed-length sequence of bytes. Many * LLRT APIs support `Buffer`s. * * The `Buffer` class is a subclass of JavaScript's [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) class and * extends it with methods that cover additional use cases. LLRT APIs accept * plain [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) s wherever `Buffer`s are supported as well. * * While the `Buffer` class is available within the global scope, it is still * recommended to explicitly reference it via an import or require statement. * * ```js * import { Buffer } from 'buffer'; * * // Creates a zero-filled Buffer of length 10. * const buf1 = Buffer.alloc(10); * * // Creates a Buffer of length 10, * // filled with bytes which all have the value `1`. * const buf2 = Buffer.alloc(10, 1); * * // Creates a Buffer containing the bytes [1, 2, 3]. * const buf4 = Buffer.from([1, 2, 3]); * * // Creates a Buffer containing the bytes [1, 1, 1, 1] – the entries * // are all truncated using `(value &#x26; 255)` to fit into the range 0255. * const buf5 = Buffer.from([257, 257.5, -255, '1']); * * // Creates a Buffer containing the UTF-8-encoded bytes for the string 'tést': * // [0x74, 0xc3, 0xa9, 0x73, 0x74] (in hexadecimal notation) * // [116, 195, 169, 115, 116] (in decimal notation) * const buf6 = Buffer.from('tést'); * * // Creates a Buffer containing the Latin-1 bytes [0x74, 0xe9, 0x73, 0x74]. * const buf7 = Buffer.from('tést', 'latin1'); * ``` */ declare module "buffer" { export const constants: { MAX_LENGTH: number; MAX_STRING_LENGTH: number; }; export type BufferEncoding = | "hex" | "base64" | "utf-8" | "utf8" | "unicode-1-1-utf8" | "ucs2" | "ucs-2" | "utf-16le" | "utf16le" | "utf-16" | "utf16" | "utf-16be" | "utf16be" | "windows-1252" | "ansi_x3.4-1968" | "ascii" | "cp1252" | "cp819" | "csisolatin1" | "ibm819" | "iso-8859-1" | "iso-ir-100" | "iso8859-1" | "iso88591" | "iso_8859-1" | "iso_8859-1:1987" | "l1" | "latin1" | "us-ascii" | "x-cp1252"; type WithImplicitCoercion<T> = | T | { valueOf(): T; }; interface BufferConstructor { /** * Returns the byte length of a string when encoded using `encoding`. * This is not the same as [`String.prototype.length`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length), which does not account * for the encoding that is used to convert the string into bytes. * * ```js * import { Buffer } from 'buffer'; * * const str = '\u00bd + \u00bc = \u00be'; * * console.log(`${str}: ${str.length} characters, ` + * `${Buffer.byteLength(str, 'utf8')} bytes`); * // Prints: ½ + ¼ = ¾: 9 characters, 12 bytes * ``` * * When `string` is a * `Buffer`/[`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView)/[`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/- * Reference/Global_Objects/TypedArray)/[`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)/[`SharedArrayBuffer`](https://develop- * er.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer), the byte length as reported by `.byteLength`is returned. * @param string A value to calculate the length of. * @param [encoding='utf8'] If `string` is a string, this is its encoding. * @return The number of bytes contained within `string`. */ byteLength( string: | string | Buffer | QuickJS.ArrayBufferView | ArrayBuffer | SharedArrayBuffer, encoding?: BufferEncoding ): number; /** * Returns a new `Buffer` which is the result of concatenating all the `Buffer` instances in the `list` together. * * If the list has no items, or if the `totalLength` is 0, then a new zero-length `Buffer` is returned. * * If `totalLength` is not provided, it is calculated from the `Buffer` instances * in `list` by adding their lengths. * * If `totalLength` is provided, it is coerced to an unsigned integer. If the * combined length of the `Buffer`s in `list` exceeds `totalLength`, the result is * truncated to `totalLength`. * * ```js * import { Buffer } from 'buffer'; * * // Create a single `Buffer` from a list of three `Buffer` instances. * * const buf1 = Buffer.alloc(10); * const buf2 = Buffer.alloc(14); * const buf3 = Buffer.alloc(18); * const totalLength = buf1.length + buf2.length + buf3.length; * * console.log(totalLength); * // Prints: 42 * * const bufA = Buffer.concat([buf1, buf2, buf3], totalLength); * * console.log(bufA); * // Prints: <Buffer 00 00 00 00 ...> * console.log(bufA.length); * // Prints: 42 * ``` * * @param list List of `Buffer` or {@link Uint8Array} instances to concatenate. * @param totalLength Total length of the `Buffer` instances in `list` when concatenated. */ concat(list: readonly Uint8Array[], totalLength?: number): Buffer; /** * Allocates a new `Buffer` using an `array` of bytes in the range `0` – `255`. */ from( arrayBuffer: WithImplicitCoercion<ArrayBuffer | SharedArrayBuffer>, byteOffset?: number, length?: number ): Buffer; /** * Creates a new Buffer using the passed {data} * @param data data to create a new Buffer */ from(data: Uint8Array | readonly number[]): Buffer; from( data: WithImplicitCoercion<Uint8Array | readonly number[] | string> ): Buffer; /** * Creates a new Buffer containing the given JavaScript string {str}. * If provided, the {encoding} parameter identifies the character encoding. * If not provided, {encoding} defaults to 'utf8'. */ from( str: | WithImplicitCoercion<string> | { [Symbol.toPrimitive](hint: "string"): string; }, encoding?: BufferEncoding ): Buffer; /** * Returns `true` if `obj` is a `Buffer`, `false` otherwise. * * ```js * import { Buffer } from 'buffer'; * * Buffer.isBuffer(Buffer.alloc(10)); // true * Buffer.isBuffer(Buffer.from('foo')); // true * Buffer.isBuffer('a string'); // false * Buffer.isBuffer([]); // false * Buffer.isBuffer(new Uint8Array(1024)); // false * ``` */ isBuffer(obj: any): obj is Buffer; /** * Returns `true` if `encoding` is the name of a supported character encoding, * or `false` otherwise. * * ```js * import { Buffer } from 'buffer'; * * console.log(Buffer.isEncoding('utf8')); * // Prints: true * * console.log(Buffer.isEncoding('hex')); * // Prints: true * * console.log(Buffer.isEncoding('utf/8')); * // Prints: false * * console.log(Buffer.isEncoding('')); * // Prints: false * ``` * @param encoding A character encoding name to check. */ isEncoding(encoding: string): encoding is BufferEncoding; /** * Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the `Buffer` will be zero-filled. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.alloc(5); * * console.log(buf); * // Prints: <Buffer 00 00 00 00 00> * ``` * * If `fill` is specified, the allocated `Buffer` will be initialized by calling `Buffer.alloc(size, fill)`. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.alloc(5, 'a'); * * console.log(buf); * // Prints: <Buffer 61 61 61 61 61> * ``` * * If both `fill` and `encoding` are specified, the allocated `Buffer` will be * initialized by calling `Buffer.aloc(size, fill, encoding)`. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); * * console.log(buf); * // Prints: <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64> * ``` * * @param size The desired length of the new `Buffer`. * @param [fill=0] A value to pre-fill the new `Buffer` with. * @param [encoding='utf8'] If `fill` is a string, this is its encoding. */ alloc( size: number, fill?: string | Uint8Array | number, encoding?: BufferEncoding ): Buffer; /** * Allocates a new `Buffer` of `size` bytes. * * The underlying memory for `Buffer` instances created in this way is _not_ * _initialized_. The contents of the newly created `Buffer` are unknown and _may contain sensitive data_. Use `Buffer.alloc()` instead to initialize`Buffer` instances with zeroes. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(10); * * console.log(buf); * // Prints (contents may vary): <Buffer a0 8b 28 3f 01 00 00 00 50 32> * * buf.fill(0); * * console.log(buf); * // Prints: <Buffer 00 00 00 00 00 00 00 00 00 00> * ``` * * A `TypeError` will be thrown if `size` is not a number. * * @param size The desired length of the new `Buffer`. */ allocUnsafe(size: number): Buffer; /** * Allocates a new `Buffer` of `size` bytes. * * The underlying memory for `Buffer` instances created in this way is _not_ * _initialized_. The contents of the newly created `Buffer` are unknown and _may contain sensitive data_. Use `buf.fill(0)` to initialize * such `Buffer` instances with zeroes. * * ```js * import { Buffer } from 'buffer'; * * // Need to keep around a few small chunks of memory. * const store = []; * * socket.on('readable', () => { * let data; * while (null !== (data = readable.read())) { * // Allocate for retained data. * const sb = Buffer.allocUnsafeSlow(10); * * // Copy the data into the new allocation. * data.copy(sb, 0, 0, 10); * * store.push(sb); * } * }); * ``` * * A `TypeError` will be thrown if `size` is not a number. * * @param size The desired length of the new `Buffer`. */ allocUnsafeSlow(size: number): Buffer; } export interface Buffer extends Uint8Array { /** * Writes `string` to `buf` at `offset` according to the character encoding in`encoding`. The `length` parameter is the number of bytes to write. If `buf` did * not contain enough space to fit the entire string, only part of `string` will be * written. However, partially encoded characters will not be written. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.alloc(256); * * const len = buf.write('\u00bd + \u00bc = \u00be', 0); * * console.log(`${len} bytes: ${buf.toString('utf8', 0, len)}`); * // Prints: 12 bytes: ½ + ¼ = ¾ * * const buffer = Buffer.alloc(10); * * const length = buffer.write('abcd', 8); * * console.log(`${length} bytes: ${buffer.toString('utf8', 8, 10)}`); * // Prints: 2 bytes : ab * ``` * @param string String to write to `buf`. * @param [offset=0] Number of bytes to skip before starting to write `string`. * @param [length=buf.length - offset] Maximum number of bytes to write (written bytes will not exceed `buf.length - offset`). * @param [encoding='utf8'] The character encoding of `string`. * @return Number of bytes written. */ write(string: string, encoding?: BufferEncoding): number; write(string: string, offset: number, encoding?: BufferEncoding): number; write( string: string, offset: number, length: number, encoding?: BufferEncoding ): number; /** * Decodes `buf` to a string according to the specified character encoding in`encoding`. `start` and `end` may be passed to decode only a subset of `buf`. * * If `encoding` is `'utf8'` and a byte sequence in the input is not valid UTF-8, * then each invalid byte is replaced with the replacement character `U+FFFD`. * * ```js * import { Buffer } from 'node:buffer'; * * const buf1 = Buffer.allocUnsafe(26); * * for (let i = 0; i < 26; i++) { * // 97 is the decimal ASCII value for 'a'. * buf1[i] = i + 97; * } * * console.log(buf1.toString('utf8')); * // Prints: abcdefghijklmnopqrstuvwxyz * console.log(buf1.toString('utf8', 0, 5)); * // Prints: abcde * * const buf2 = Buffer.from('tést'); * * console.log(buf2.toString('hex')); * // Prints: 74c3a97374 * console.log(buf2.toString('utf8', 0, 3)); * // Prints: té * console.log(buf2.toString(undefined, 0, 3)); * // Prints: té * ``` * @param [encoding='utf8'] The character encoding to use. * @param [start=0] The byte offset to start decoding at. * @param [end=buf.length] The byte offset to stop decoding at (not inclusive). */ toString(encoding?: BufferEncoding, start?: number, end?: number): string; /** * Copies data from a region of `buf` to a region in `target`, even if the `target`memory region overlaps with `buf`. * * [`TypedArray.prototype.set()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set) performs the same operation, and is available * for all TypedArrays, including `Buffer`s, although it takes * different function arguments. * * ```js * import { Buffer } from 'buffer'; * * // Create two `Buffer` instances. * const buf1 = Buffer.allocUnsafe(26); * const buf2 = Buffer.allocUnsafe(26).fill('!'); * * for (let i = 0; i < 26; i++) { * // 97 is the decimal ASCII value for 'a'. * buf1[i] = i + 97; * } * * // Copy `buf1` bytes 16 through 19 into `buf2` starting at byte 8 of `buf2`. * buf1.copy(buf2, 8, 16, 20); * // This is equivalent to: * // buf2.set(buf1.subarray(16, 20), 8); * * console.log(buf2.toString('ascii', 0, 25)); * // Prints: !!!!!!!!qrst!!!!!!!!!!!!! * ``` * * ```js * import { Buffer } from 'buffer'; * * // Create a `Buffer` and copy data from one region to an overlapping region * // within the same `Buffer`. * * const buf = Buffer.allocUnsafe(26); * * for (let i = 0; i < 26; i++) { * // 97 is the decimal ASCII value for 'a'. * buf[i] = i + 97; * } * * buf.copy(buf, 0, 4, 10); * * console.log(buf.toString()); * // Prints: efghijghijklmnopqrstuvwxyz * ``` * @param target A `Buffer` or {@link Uint8Array} to copy into. * @param [targetStart=0] The offset within `target` at which to begin writing. * @param [sourceStart=0] The offset within `buf` from which to begin copying. * @param [sourceEnd=buf.length] The offset within `buf` at which to stop copying (not inclusive). * @return The number of bytes copied. */ copy( target: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number ): number; /** * Returns a new `Buffer` that references the same memory as the original, but * offset and cropped by the `start` and `end` indices. * * Specifying `end` greater than `buf.length` will return the same result as * that of `end` equal to `buf.length`. * * This method is inherited from [`TypedArray.prototype.subarray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray). * * Modifying the new `Buffer` slice will modify the memory in the original `Buffer`because the allocated memory of the two objects overlap. * * ```js * import { Buffer } from 'buffer'; * * // Create a `Buffer` with the ASCII alphabet, take a slice, and modify one byte * // from the original `Buffer`. * * const buf1 = Buffer.alloc(26); * * for (let i = 0; i < 26; i++) { * // 97 is the decimal ASCII value for 'a'. * buf1[i] = i + 97; * } * * const buf2 = buf1.subarray(0, 3); * * console.log(buf2.toString('ascii', 0, buf2.length)); * // Prints: abc * * buf1[0] = 33; * * console.log(buf2.toString('ascii', 0, buf2.length)); * // Prints: !bc * ``` * * Specifying negative indexes causes the slice to be generated relative to the * end of `buf` rather than the beginning. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from('buffer'); * * console.log(buf.subarray(-6, -1).toString()); * // Prints: buffe * // (Equivalent to buf.subarray(0, 5).) * * console.log(buf.subarray(-6, -2).toString()); * // Prints: buff * // (Equivalent to buf.subarray(0, 4).) * * console.log(buf.subarray(-5, -2).toString()); * // Prints: uff * // (Equivalent to buf.subarray(1, 4).) * ``` * @param [start=0] Where the new `Buffer` will start. * @param [end=buf.length] Where the new `Buffer` will end (not inclusive). */ subarray(start?: number, end?: number): Buffer; /** * Writes `value` to `buf` at the specified `offset` as big-endian. * * `value` is interpreted and written as a two's complement signed integer. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(8); * * buf.writeBigInt64BE(0x0102030405060708n, 0); * * console.log(buf); * // Prints: <Buffer 01 02 03 04 05 06 07 08> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`. * @return `offset` plus the number of bytes written. */ writeBigInt64BE(value: bigint, offset?: number): number; /** * @alias Buffer.writeBigUInt64BE */ writeBigUint64BE(value: bigint, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset` as little-endian. * * `value` is interpreted and written as a two's complement signed integer. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(8); * * buf.writeBigInt64LE(0x0102030405060708n, 0); * * console.log(buf); * // Prints: <Buffer 08 07 06 05 04 03 02 01> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`. * @return `offset` plus the number of bytes written. */ writeBigInt64LE(value: bigint, offset?: number): number; /** * @alias Buffer.writeBigUInt64LE */ writeBigUint64LE(value: bigint, offset?: number): number; /** * Reads an unsigned, big-endian 64-bit integer from `buf` at the specified`offset`. * * This function is also available under the `readBigUint64BE` alias. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]); * * console.log(buf.readBigUInt64BE(0)); * // Prints: 4294967295n * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`. */ readBigUInt64BE(offset?: number): bigint; /** * @alias Buffer.readBigUInt64BE */ readBigUint64BE(offset?: number): bigint; /** * Reads an unsigned, little-endian 64-bit integer from `buf` at the specified`offset`. * * This function is also available under the `readBigUint64LE` alias. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]); * * console.log(buf.readBigUInt64LE(0)); * // Prints: 18446744069414584320n * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`. */ readBigUInt64LE(offset?: number): bigint; /** * @alias Buffer.readBigUInt64LE */ readBigUint64LE(offset?: number): bigint; /** * Reads a signed, big-endian 64-bit integer from `buf` at the specified `offset`. * * Integers read from a `Buffer` are interpreted as two's complement signed * values. * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`. */ readBigInt64BE(offset?: number): bigint; /** * Reads a signed, little-endian 64-bit integer from `buf` at the specified`offset`. * * Integers read from a `Buffer` are interpreted as two's complement signed * values. * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`. */ readBigInt64LE(offset?: number): bigint; /** * Reads an unsigned 8-bit integer from `buf` at the specified `offset`. * * This function is also available under the `readUint8` alias. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([1, -2]); * * console.log(buf.readUInt8(0)); * // Prints: 1 * console.log(buf.readUInt8(1)); * // Prints: 254 * console.log(buf.readUInt8(2)); * // Throws ERR_OUT_OF_RANGE. * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 1`. */ readUInt8(offset?: number): number; /** * @alias Buffer.readUInt8 */ readUint8(offset?: number): number; /** * Reads an unsigned, little-endian 16-bit integer from `buf` at the specified `offset`. * * This function is also available under the `readUint16LE` alias. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([0x12, 0x34, 0x56]); * * console.log(buf.readUInt16LE(0).toString(16)); * // Prints: 3412 * console.log(buf.readUInt16LE(1).toString(16)); * // Prints: 5634 * console.log(buf.readUInt16LE(2).toString(16)); * // Throws ERR_OUT_OF_RANGE. * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`. */ readUInt16LE(offset?: number): number; /** * @alias Buffer.readUInt16LE */ readUint16LE(offset?: number): number; /** * Reads an unsigned, big-endian 16-bit integer from `buf` at the specified`offset`. * * This function is also available under the `readUint16BE` alias. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([0x12, 0x34, 0x56]); * * console.log(buf.readUInt16BE(0).toString(16)); * // Prints: 1234 * console.log(buf.readUInt16BE(1).toString(16)); * // Prints: 3456 * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`. */ readUInt16BE(offset?: number): number; /** * @alias Buffer.readUInt16BE */ readUint16BE(offset?: number): number; /** * Reads an unsigned, little-endian 32-bit integer from `buf` at the specified`offset`. * * This function is also available under the `readUint32LE` alias. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]); * * console.log(buf.readUInt32LE(0).toString(16)); * // Prints: 78563412 * console.log(buf.readUInt32LE(1).toString(16)); * // Throws ERR_OUT_OF_RANGE. * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. */ readUInt32LE(offset?: number): number; /** * @alias Buffer.readUInt32LE */ readUint32LE(offset?: number): number; /** * Reads a signed 8-bit integer from `buf` at the specified `offset`. * * Integers read from a `Buffer` are interpreted as two's complement signed values. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([-1, 5]); * * console.log(buf.readInt8(0)); * // Prints: -1 * console.log(buf.readInt8(1)); * // Prints: 5 * console.log(buf.readInt8(2)); * // Throws ERR_OUT_OF_RANGE. * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 1`. */ readInt8(offset?: number): number; /** * Reads a signed, little-endian 16-bit integer from `buf` at the specified`offset`. * * Integers read from a `Buffer` are interpreted as two's complement signed values. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([0, 5]); * * console.log(buf.readInt16LE(0)); * // Prints: 1280 * console.log(buf.readInt16LE(1)); * // Throws ERR_OUT_OF_RANGE. * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`. */ readInt16LE(offset?: number): number; /** * Reads a signed, big-endian 16-bit integer from `buf` at the specified `offset`. * * Integers read from a `Buffer` are interpreted as two's complement signed values. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([0, 5]); * * console.log(buf.readInt16BE(0)); * // Prints: 5 * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`. */ readInt16BE(offset?: number): number; /** * Reads a signed, little-endian 32-bit integer from `buf` at the specified`offset`. * * Integers read from a `Buffer` are interpreted as two's complement signed values. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([0, 0, 0, 5]); * * console.log(buf.readInt32LE(0)); * // Prints: 83886080 * console.log(buf.readInt32LE(1)); * // Throws ERR_OUT_OF_RANGE. * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. */ readInt32LE(offset?: number): number; /** * Reads a signed, big-endian 32-bit integer from `buf` at the specified `offset`. * * Integers read from a `Buffer` are interpreted as two's complement signed values. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([0, 0, 0, 5]); * * console.log(buf.readInt32BE(0)); * // Prints: 5 * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. */ readInt32BE(offset?: number): number; /** * Reads a 32-bit, little-endian float from `buf` at the specified `offset`. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([1, 2, 3, 4]); * * console.log(buf.readFloatLE(0)); * // Prints: 1.539989614439558e-36 * console.log(buf.readFloatLE(1)); * // Throws ERR_OUT_OF_RANGE. * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. */ readFloatLE(offset?: number): number; /** * Reads a 32-bit, big-endian float from `buf` at the specified `offset`. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([1, 2, 3, 4]); * * console.log(buf.readFloatBE(0)); * // Prints: 2.387939260590663e-38 * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. */ readFloatBE(offset?: number): number; /** * Reads a 64-bit, little-endian double from `buf` at the specified `offset`. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]); * * console.log(buf.readDoubleLE(0)); * // Prints: 5.447603722011605e-270 * console.log(buf.readDoubleLE(1)); * // Throws ERR_OUT_OF_RANGE. * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 8`. */ readDoubleLE(offset?: number): number; /** * Reads a 64-bit, big-endian double from `buf` at the specified `offset`. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]); * * console.log(buf.readDoubleBE(0)); * // Prints: 8.20788039913184e-304 * ``` * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 8`. */ readDoubleBE(offset?: number): number; /** * Writes `value` to `buf` at the specified `offset`. `value` must be a * valid unsigned 8-bit integer. Behavior is undefined when `value` is anything * other than an unsigned 8-bit integer. * * This function is also available under the `writeUint8` alias. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(4); * * buf.writeUInt8(0x3, 0); * buf.writeUInt8(0x4, 1); * buf.writeUInt8(0x23, 2); * buf.writeUInt8(0x42, 3); * * console.log(buf); * // Prints: <Buffer 03 04 23 42> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 1`. * @return `offset` plus the number of bytes written. */ writeUInt8(value: number, offset?: number): number; /** * @alias Buffer.writeUInt8 */ writeUint8(value: number, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset` as little-endian. The `value` must be a valid unsigned 16-bit integer. Behavior is undefined when `value` is * anything other than an unsigned 16-bit integer. * * This function is also available under the `writeUint16LE` alias. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(4); * * buf.writeUInt16LE(0xdead, 0); * buf.writeUInt16LE(0xbeef, 2); * * console.log(buf); * // Prints: <Buffer ad de ef be> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`. * @return `offset` plus the number of bytes written. */ writeUInt16LE(value: number, offset?: number): number; /** * @alias Buffer.writeUInt16LE */ writeUint16LE(value: number, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset` as big-endian. The `value` must be a valid unsigned 16-bit integer. Behavior is undefined when `value`is anything other than an * unsigned 16-bit integer. * * This function is also available under the `writeUint16BE` alias. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(4); * * buf.writeUInt16BE(0xdead, 0); * buf.writeUInt16BE(0xbeef, 2); * * console.log(buf); * // Prints: <Buffer de ad be ef> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`. * @return `offset` plus the number of bytes written. */ writeUInt16BE(value: number, offset?: number): number; /** * @alias Buffer.writeUInt16BE */ writeUint16BE(value: number, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset` as little-endian. The `value` must be a valid unsigned 32-bit integer. Behavior is undefined when `value` is * anything other than an unsigned 32-bit integer. * * This function is also available under the `writeUint32LE` alias. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(4); * * buf.writeUInt32LE(0xfeedface, 0); * * console.log(buf); * // Prints: <Buffer ce fa ed fe> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. * @return `offset` plus the number of bytes written. */ writeUInt32LE(value: number, offset?: number): number; /** * @alias Buffer.writeUInt32LE */ writeUint32LE(value: number, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset` as big-endian. The `value` must be a valid unsigned 32-bit integer. Behavior is undefined when `value`is anything other than an * unsigned 32-bit integer. * * This function is also available under the `writeUint32BE` alias. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(4); * * buf.writeUInt32BE(0xfeedface, 0); * * console.log(buf); * // Prints: <Buffer fe ed fa ce> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. * @return `offset` plus the number of bytes written. */ writeUInt32BE(value: number, offset?: number): number; /** * @alias Buffer.writeUInt32BE */ writeUint32BE(value: number, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset`. `value` must be a valid * signed 8-bit integer. Behavior is undefined when `value` is anything other than * a signed 8-bit integer. * * `value` is interpreted and written as a two's complement signed integer. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(2); * * buf.writeInt8(2, 0); * buf.writeInt8(-2, 1); * * console.log(buf); * // Prints: <Buffer 02 fe> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 1`. * @return `offset` plus the number of bytes written. */ writeInt8(value: number, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset` as little-endian. The `value` must be a valid signed 16-bit integer. Behavior is undefined when `value` is * anything other than a signed 16-bit integer. * * The `value` is interpreted and written as a two's complement signed integer. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(2); * * buf.writeInt16LE(0x0304, 0); * * console.log(buf); * // Prints: <Buffer 04 03> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`. * @return `offset` plus the number of bytes written. */ writeInt16LE(value: number, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset` as big-endian. The `value` must be a valid signed 16-bit integer. Behavior is undefined when `value` is * anything other than a signed 16-bit integer. * * The `value` is interpreted and written as a two's complement signed integer. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(2); * * buf.writeInt16BE(0x0102, 0); * * console.log(buf); * // Prints: <Buffer 01 02> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`. * @return `offset` plus the number of bytes written. */ writeInt16BE(value: number, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset` as little-endian. The `value` must be a valid signed 32-bit integer. Behavior is undefined when `value` is * anything other than a signed 32-bit integer. * * The `value` is interpreted and written as a two's complement signed integer. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(4); * * buf.writeInt32LE(0x05060708, 0); * * console.log(buf); * // Prints: <Buffer 08 07 06 05> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. * @return `offset` plus the number of bytes written. */ writeInt32LE(value: number, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset` as big-endian. The `value` must be a valid signed 32-bit integer. Behavior is undefined when `value` is * anything other than a signed 32-bit integer. * * The `value` is interpreted and written as a two's complement signed integer. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(4); * * buf.writeInt32BE(0x01020304, 0); * * console.log(buf); * // Prints: <Buffer 01 02 03 04> * ``` * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. * @return `offset` plus the number of bytes written. */ writeInt32BE(value: number, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset` as little-endian. Behavior is * undefined when `value` is anything other than a JavaScript number. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(4); * * buf.writeFloatLE(0xcafebabe, 0); * * console.log(buf); * // Prints: <Buffer bb fe 4a 4f> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. * @return `offset` plus the number of bytes written. */ writeFloatLE(value: number, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset` as big-endian. Behavior is * undefined when `value` is anything other than a JavaScript number. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(4); * * buf.writeFloatBE(0xcafebabe, 0); * * console.log(buf); * // Prints: <Buffer 4f 4a fe bb> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. * @return `offset` plus the number of bytes written. */ writeFloatBE(value: number, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset` as little-endian. The `value` must be a JavaScript number. Behavior is undefined when `value` is anything * other than a JavaScript number. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(8); * * buf.writeDoubleLE(123.456, 0); * * console.log(buf); * // Prints: <Buffer 77 be 9f 1a 2f dd 5e 40> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 8`. * @return `offset` plus the number of bytes written. */ writeDoubleLE(value: number, offset?: number): number; /** * Writes `value` to `buf` at the specified `offset` as big-endian. The `value` must be a JavaScript number. Behavior is undefined when `value` is anything * other than a JavaScript number. * * ```js * import { Buffer } from 'buffer'; * * const buf = Buffer.allocUnsafe(8); * * buf.writeDoubleBE(123.456, 0); * * console.log(buf); * // Prints: <Buffer 40 5e dd 2f 1a 9f be 77> * ``` * @param value Number to be written to `buf`. * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 8`. * @return `offset` plus the number of bytes written. */ writeDoubleBE(value: number, offset?: number): number; } export var Buffer: BufferConstructor; /** * Decodes a string of Base64-encoded data into bytes, and encodes those bytes * into a string using UTF-8. * * The `data` may be any JavaScript-value that can be coerced into a string. * * @legacy Use `Buffer.from(data, 'base64')` instead. * @param data The Base64-encoded input string. */ export function atob(data: string): string; /** * Decodes a string into bytes using UTF-8, and encodes those bytes * into a string using Base64. * * The `data` may be any JavaScript-value that can be coerced into a string. * * @legacy Use `buf.toString('base64')` instead. * @param data An ASCII (Latin1) string. */ export function btoa(data: string): string; global { /** * Decodes a string of Base64-encoded data into bytes, and encodes those bytes * into a string using UTF-8. * * The `data` may be any JavaScript-value that can be coerced into a string. * * @legacy Use `Buffer.from(data, 'base64')` instead. * @param data The Base64-encoded input string. */ function atob(data: string): string; /** * Decodes a string into bytes using UTF-8, and encodes those bytes * into a string using Base64. * * The `data` may be any JavaScript-value that can be coerced into a string. * * @legacy Use `buf.toString('base64')` instead. * @param data An ASCII (Latin1) string. */ function btoa(data: string): string; } const _default: { Buffer: typeof Buffer; atob: typeof atob; btoa: typeof btoa; constants: typeof constants; }; export default _default; }