bireader 3.1.5 → 3.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/index.browser.d.ts +4 -4
- package/dist/index.browser.js +4 -4
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs.d.ts +5 -5
- package/dist/index.cjs.js +8 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.esm.d.ts +5 -5
- package/dist/index.esm.js +8 -8
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
- package/dist/BiReader.d.ts +0 -339
- package/dist/BiReaderStream.d.ts +0 -340
- package/dist/BiWriter.d.ts +0 -344
- package/dist/BiWriterStream.d.ts +0 -347
- package/dist/aliases/BinaryAliasReader.d.ts +0 -4678
- package/dist/aliases/BinaryAliasWriter.d.ts +0 -4648
- package/dist/common.d.ts +0 -91
- package/dist/core/BiBase.d.ts +0 -1336
- package/dist/core/BiBaseStream.d.ts +0 -1383
- package/dist/indexBrowser.d.ts +0 -35
- package/dist/indexImport.d.ts +0 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.browser.js","sources":["../src/common.ts","../src/core/BiBase.ts","../src/aliases/BinaryAliasReader.ts","../src/BiReader.ts","../src/aliases/BinaryAliasWriter.ts","../src/BiWriter.ts","../src/indexBrowser.ts"],"sourcesContent":["export type endian = \"little\"|\"big\";\r\n\r\nexport type BigValue = number|bigint;\r\n\r\nexport type BiOptions = {\r\n /**\r\n * Byte offset to start writer, default is 0 \r\n */\r\n byteOffset? : number,\r\n /**\r\n * Byte offset to start writer, default is 0 \r\n */\r\n bitOffset? :number,\r\n /**\r\n * Endianness ``big`` or ``little`` (default little)\r\n */\r\n endianness? : endian,\r\n /**\r\n * Strict mode: if ``true`` does not extend supplied array on outside write (default ``false``)\r\n */\r\n strict?: boolean,\r\n /**\r\n * Amount of data to add when extending the buffer array when strict mode is false. Note: Changes login in ``.get`` and ``.return``.\r\n */\r\n extendBufferSize?: number\r\n};\r\n\r\nexport function isBuffer(obj: Buffer | Uint8Array): boolean {\r\n return buffcheck(obj);\r\n}\r\n\r\nfunction buffcheck(obj: Buffer | Uint8Array): boolean {\r\n return (typeof Buffer !== 'undefined' && obj instanceof Buffer);\r\n}\r\n\r\nexport function arraybuffcheck(obj: Buffer | Uint8Array): boolean {\r\n return obj instanceof Uint8Array || isBuffer(obj);\r\n}\r\n\r\nexport type hexdumpOptions = {\r\n /**\r\n * number of bytes to log, default ``192`` or end of data\r\n */\r\n length?: number,\r\n /**\r\n * byte to start dump (default ``0``)\r\n */\r\n startByte?: number, \r\n /**\r\n * Supress unicode character preview for even columns.\r\n */\r\n supressUnicode?: boolean,\r\n /**\r\n * Returns the hex dump string instead of logging it.\r\n */\r\n returnString?: boolean\r\n}\r\n\r\n/**\r\n * Creates hex dump string. Will console log or return string if set in options.\r\n * \r\n * @param {Uint8Array|Buffer} src - Uint8Array or Buffer\r\n * @param {hexdumpOptions?} options - hex dump options\r\n * @param {number?} options.length - number of bytes to log, default ``192`` or end of data\r\n * @param {number?} options.startByte - byte to start dump (default ``0``)\r\n * @param {boolean?} options.supressUnicode - Supress unicode character preview for even columns.\r\n * @param {boolean?} options.returnString - Returns the hex dump string instead of logging it.\r\n */\r\nexport function hexdump(src: Uint8Array | Buffer, options: hexdumpOptions = {}): void|string {\r\n\r\n if (!(src instanceof Uint8Array || isBuffer(src))) {\r\n throw new Error(\"Write data must be Uint8Array or Buffer.\");\r\n }\r\n\r\n const ctx = {\r\n data: src,\r\n size: src.length,\r\n offset: options && options.startByte || 0,\r\n errorDump: true\r\n };\r\n\r\n var length: any = options && options.length;\r\n var startByte: any = options && options.startByte;\r\n\r\n if ((startByte || 0) > ctx.size) {\r\n throw new Error(\"Hexdump start is outside of data size: \" + startByte + \" of \" + ctx.size);\r\n }\r\n const start = startByte || ctx.offset;\r\n const end = Math.min(start + (length || 192), ctx.size);\r\n if (start + (length || 0) > ctx.size) {\r\n throw new Error(\"Hexdump amount is outside of data size: \" + (start + (length || 0)) + \" of \" + end);\r\n }\r\n\r\n const data = ctx.data;\r\n\r\n return _hexDump(data, options, start, end);\r\n}\r\n\r\nexport function _hexDump(data:Buffer | Uint8Array, options: hexdumpOptions = {}, start:number, end:number): string{\r\n function hex_check(byte: number, bits: number,): number {\r\n var value = 0;\r\n for (var i = 0; i < bits;) {\r\n var remaining = bits - i;\r\n var bitOffset = 0;\r\n var currentByte = byte;\r\n var read = Math.min(remaining, 8 - bitOffset);\r\n var mask: number, readBits: number;\r\n mask = ~(0xFF << read);\r\n readBits = (currentByte >> (8 - read - bitOffset)) & mask;\r\n value <<= read;\r\n value |= readBits;\r\n i += read;\r\n }\r\n value = value >>> 0;\r\n return value;\r\n }\r\n var supressUnicode: any = options && options.supressUnicode || false;\r\n const rows: Array<string> = [];\r\n var header = \" 0 1 2 3 4 5 6 7 8 9 A B C D E F \";\r\n var ending = \"0123456789ABCDEF\";\r\n var addr: string = \"\";\r\n for (let i = start; i < end; i += 16) {\r\n addr = i.toString(16).padStart(5, '0');\r\n var row = <unknown>data.slice(i, i + 16) as number[] || [];\r\n var hex = Array.from(row, (byte) => byte.toString(16).padStart(2, '0')).join(' ');\r\n rows.push(`${addr} ${hex.padEnd(47)} `);\r\n }\r\n let result = '';\r\n let make_wide: boolean = false;\r\n let i = start;\r\n while (i < end) \r\n {\r\n const byte = data[i] as number;\r\n if (byte < 32 || byte == 127) \r\n {\r\n result += '.';\r\n } \r\n else if (byte < 127) \r\n {\r\n // Valid UTF-8 start byte or single-byte character\r\n // Convert the byte to a character and add it to the result\r\n result += String.fromCharCode(byte);\r\n } \r\n else if (supressUnicode) \r\n {\r\n result += '.';\r\n } \r\n else if (hex_check(byte, 1) == 0) \r\n {\r\n //Byte 1\r\n result += String.fromCharCode(byte);\r\n } \r\n else if (hex_check(byte, 3) == 6) \r\n {\r\n //Byte 2\r\n if (i + 1 <= end) \r\n {\r\n //check second byte\r\n const byte2 = data[i + 1] as number;\r\n if (hex_check(byte2, 2) == 2) \r\n {\r\n const charCode = ((byte & 0x1f) << 6) | (byte2 & 0x3f);\r\n i++;\r\n make_wide = true;\r\n const read = \" \" + String.fromCharCode(charCode);\r\n result += read;\r\n } \r\n else \r\n {\r\n result += \".\";\r\n }\r\n } \r\n else \r\n {\r\n result += \".\";\r\n }\r\n } \r\n else if (hex_check(byte, 4) == 14) \r\n {\r\n //Byte 3\r\n if (i + 1 <= end) \r\n {\r\n //check second byte\r\n const byte2 = data[i + 1] as number;\r\n if (hex_check(byte2, 2) == 2)\r\n {\r\n if (i + 2 <= end) \r\n {\r\n //check third byte\r\n const byte3 = data[i + 2] as number;\r\n if (hex_check(byte3, 2) == 2) \r\n {\r\n const charCode =\r\n ((byte & 0x0f) << 12) |\r\n ((byte2 & 0x3f) << 6) |\r\n (byte3 & 0x3f);\r\n i += 2;\r\n make_wide = true;\r\n const read = \" \" + String.fromCharCode(charCode);\r\n result += read;\r\n } \r\n else \r\n {\r\n i++;\r\n result += \" .\";\r\n }\r\n } \r\n else \r\n {\r\n i++;\r\n result += \" .\";\r\n }\r\n } \r\n else \r\n {\r\n result += \".\";\r\n }\r\n } \r\n else \r\n {\r\n result += \".\";\r\n }\r\n }\r\n else if (hex_check(byte, 5) == 28) \r\n {\r\n //Byte 4\r\n if (i + 1 <= end) \r\n {\r\n //check second byte\r\n const byte2 = data[i + 1] as number;\r\n if (hex_check(byte2, 2) == 2) \r\n {\r\n if (i + 2 <= end) \r\n {\r\n //check third byte\r\n const byte3 = data[i + 2] as number;\r\n if (hex_check(byte3, 2) == 2) \r\n {\r\n if (i + 3 <= end) \r\n {\r\n //check fourth byte\r\n const byte4 = data[i + 2] as number;\r\n if (hex_check(byte4, 2) == 2) \r\n {\r\n const charCode = (((byte4 & 0xFF) << 24) | ((byte3 & 0xFF) << 16) | ((byte2 & 0xFF) << 8) | (byte & 0xFF));\r\n i += 3\r\n make_wide = true;\r\n const read = \" \" + String.fromCharCode(charCode);\r\n result += read;\r\n } \r\n else \r\n {\r\n i += 2\r\n result += \" .\";\r\n }\r\n } \r\n else \r\n {\r\n i += 2\r\n result += \" .\";\r\n }\r\n } \r\n else \r\n {\r\n i++;\r\n result += \" .\";\r\n }\r\n } \r\n else \r\n {\r\n i++;\r\n result += \" .\";\r\n }\r\n } \r\n else \r\n {\r\n result += \".\";\r\n }\r\n } \r\n else \r\n {\r\n result += \".\";\r\n }\r\n } \r\n else \r\n {\r\n // Invalid UTF-8 byte, add a period to the result\r\n result += '.';\r\n }\r\n i++;\r\n }\r\n const chunks = result.match(new RegExp(`.{1,${16}}`, 'g'));\r\n chunks?.forEach((self, i) => {\r\n rows[i] = rows[i] + (make_wide ? \"|\" + self + \"|\" : self);\r\n })\r\n header = \"\".padStart(addr.length) + header + (make_wide ? \"\" : ending);\r\n rows.unshift(header);\r\n if (make_wide) \r\n {\r\n rows.push(\"*Removed character byte header on unicode detection\");\r\n }\r\n if(options && options.returnString)\r\n {\r\n return rows.join(\"\\n\");\r\n }\r\n else\r\n {\r\n const retVal = rows.join(\"\\n\");\r\n console.log(retVal);\r\n return retVal;\r\n }\r\n}\r\n\r\nexport type stringOptions = {\r\n /**\r\n * for fixed length, non-terminate value utf strings\r\n */\r\n length?: number,\r\n /**\r\n * utf-8, utf-16, pascal or wide-pascal\r\n */\r\n stringType?: \"utf-8\"|\"utf-16\"|\"pascal\"|\"wide-pascal\"\r\n /**\r\n * only with stringType: \"utf\"\r\n */\r\n terminateValue?: number,\r\n /**\r\n * for pascal strings. 1, 2 or 4 byte length read size\r\n */\r\n lengthReadSize?: 1|2|4,\r\n /**\r\n * for pascal strings. 1, 2 or 4 byte length write size\r\n */\r\n lengthWriteSize?: 1|2|4,\r\n /**\r\n * removes 0x00 characters\r\n */\r\n stripNull?: boolean,\r\n /**\r\n * TextEncoder accepted types \r\n */\r\n encoding?: string,\r\n /**\r\n * for wide-pascal and utf-16\r\n */\r\n endian?: \"big\"|\"little\",\r\n};","import { \r\n BigValue,\r\n isBuffer,\r\n endian,\r\n arraybuffcheck,\r\n hexdumpOptions,\r\n _hexDump,\r\n stringOptions\r\n} from '../common.js';\r\n\r\nfunction hexDumpBase(ctx: BiBase, options: hexdumpOptions = {}): string {\r\n var length: any = options && options.length;\r\n var startByte: any = options && options.startByte;\r\n\r\n if ((startByte || 0) > ctx.size) {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"Hexdump start is outside of data size: \" + startByte + \" of \" + ctx.size);\r\n }\r\n const start = startByte || ctx.offset;\r\n const end = Math.min(start + (length || 192), ctx.size);\r\n if (start + (length || 0) > ctx.size) {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"Hexdump amount is outside of data size: \" + (start + (length || 0)) + \" of \" + end);\r\n }\r\n const data = ctx.data;\r\n\r\n return _hexDump(data, options, start, end);\r\n}\r\n\r\nfunction skip(ctx: BiBase, bytes: number, bits?: number): void {\r\n var new_size = (((bytes || 0) + ctx.offset) + Math.ceil((ctx.bitoffset + (bits || 0)) / 8));\r\n if (bits && bits < 0) {\r\n new_size = Math.floor(((((bytes || 0) + ctx.offset) * 8) + ctx.bitoffset + (bits || 0)) / 8);\r\n }\r\n\r\n if (new_size > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray(new_size - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: Seek of range of data: seek \" + new_size + \" of \" + ctx.size);\r\n }\r\n }\r\n\r\n // Adjust byte offset based on bit overflow\r\n ctx.offset += Math.floor((ctx.bitoffset + (bits || 0)) / 8);\r\n // Adjust bit offset\r\n ctx.bitoffset = (ctx.bitoffset + (bits || 0) + 64) % 8;\r\n // Adjust byte offset based on byte overflow\r\n ctx.offset += bytes;\r\n // Ensure bit offset stays between 0-7\r\n ctx.bitoffset = Math.min(Math.max(ctx.bitoffset, 0), 7);\r\n // Ensure offset doesn't go negative\r\n ctx.offset = Math.max(ctx.offset, 0);\r\n}\r\n\r\nfunction align(ctx: BiBase, n: number) {\r\n var a = ctx.offset % n;\r\n if (a) {\r\n ctx.skip(n - a);\r\n }\r\n}\r\n\r\nfunction alignRev(ctx: BiBase, n: number) {\r\n var a = ctx.offset % n;\r\n if (a) {\r\n ctx.skip(a * -1);\r\n }\r\n}\r\n\r\nfunction goto(ctx: BiBase, bytes: number, bits?: number): void {\r\n var new_size = (((bytes || 0)) + Math.ceil(((bits || 0)) / 8));\r\n if (bits && bits < 0) {\r\n new_size = Math.floor(((((bytes || 0)) * 8) + (bits || 0)) / 8);\r\n }\r\n if (new_size > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray(new_size - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: Goto utside of range of data: goto \" + new_size + \" of \" + ctx.size);\r\n }\r\n }\r\n ctx.offset = bytes;\r\n // Adjust byte offset based on bit overflow\r\n ctx.offset += Math.floor(((bits || 0)) / 8);\r\n // Adjust bit offset\r\n ctx.bitoffset = ((bits || 0) + 64) % 8;\r\n // Ensure bit offset stays between 0-7\r\n ctx.bitoffset = Math.min(Math.max(ctx.bitoffset, 0), 7);\r\n // Ensure offset doesn't go negative\r\n ctx.offset = Math.max(ctx.offset, 0);\r\n}\r\n\r\nfunction check_size(ctx: BiBase, write_bytes: number, write_bit?: number, offset?: number): number {\r\n return checkSize(ctx, write_bytes || 0, write_bit || 0, offset || ctx.offset);\r\n}\r\n\r\nfunction checkSize(ctx: BiBase, write_bytes: number, write_bit?: number, offset?: number): number {\r\n const bits: number = (write_bit || 0) + ctx.bitoffset;\r\n var new_off = (offset || ctx.offset);\r\n var writesize = write_bytes || 0;\r\n if (bits != 0) {\r\n //add bits\r\n writesize += Math.ceil(bits / 8);\r\n }\r\n //if biger extend\r\n const needed_size: number = new_off + writesize;\r\n if (needed_size > ctx.size) {\r\n const dif = needed_size - ctx.size;\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray(dif);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(`\\x1b[33m[Strict mode]\\x1b[0m: Reached end of data: writing to ` + needed_size + \" at \" + ctx.offset + \" of \" + ctx.size);\r\n }\r\n }\r\n //start read location\r\n return new_off;\r\n}\r\n\r\nfunction extendarray(ctx: BiBase, to_padd: number): void {\r\n if ((typeof Buffer !== 'undefined' && ctx.data instanceof Buffer)) {\r\n var paddbuffer = Buffer.alloc(to_padd);\r\n ctx.data = Buffer.concat([ctx.data, paddbuffer]);\r\n } else {\r\n const addArray = new Array(to_padd);\r\n ctx.data = new Uint8Array([...ctx.data, ...addArray]);\r\n }\r\n ctx.size = ctx.data.length;\r\n ctx.sizeB = ctx.data.length * 8;\r\n}\r\n\r\nfunction remove(ctx: BiBase, startOffset?: number, endOffset?: number, consume?: boolean, remove?: boolean, fillValue?: number): any {\r\n const new_start = Math.abs(startOffset || 0);\r\n const new_offset = (endOffset || ctx.offset);\r\n if (new_offset > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray(new_offset - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + endOffset + \" of \" + ctx.size);\r\n }\r\n }\r\n if (ctx.strict == true && remove == true) {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: Can not remove data in strict mode: endOffset \" + endOffset + \" of \" + ctx.size);\r\n }\r\n const data_removed = ctx.data.slice(new_start, new_offset);\r\n if (remove) {\r\n const part1 = ctx.data.subarray(0, new_start);\r\n const part2 = ctx.data.subarray(new_offset, ctx.size);\r\n if (isBuffer(ctx.data)) {\r\n ctx.data = Buffer.concat([part1, part2]);\r\n } else {\r\n ctx.data = new Uint8Array([...part1, ...part2]);\r\n }\r\n ctx.size = ctx.data.length;\r\n ctx.sizeB = ctx.data.length * 8;\r\n }\r\n if (fillValue != undefined && remove == false) {\r\n const part1 = ctx.data.subarray(0, new_start);\r\n const part2 = ctx.data.subarray(new_offset, ctx.size);\r\n const replacement = new Array(data_removed.length).fill(fillValue & 0xff);\r\n if (isBuffer(ctx.data)) {\r\n const buff_placement = Buffer.from(replacement);\r\n ctx.data = Buffer.concat([part1, buff_placement, part2]);\r\n } else {\r\n ctx.data = new Uint8Array([...part1, ...replacement, ...part2]);\r\n }\r\n ctx.size = ctx.data.length;\r\n ctx.sizeB = ctx.data.length * 8;\r\n }\r\n if (consume == true) {\r\n if (remove != true) {\r\n ctx.offset = new_offset;\r\n ctx.bitoffset = 0;\r\n } else {\r\n ctx.offset = new_start;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n return data_removed;\r\n}\r\n\r\nfunction addData(ctx: BiBase, data: Buffer | Uint8Array, consume?: boolean, offset?: number, replace?: boolean): void {\r\n if (ctx.strict == true) {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(`\\x1b[33m[Strict mode]\\x1b[0m: Can not insert data in strict mode. Use unrestrict() to enable.`);\r\n }\r\n if (typeof Buffer !== 'undefined' && data instanceof Buffer && !(ctx.data instanceof Buffer)) {\r\n data = Buffer.from(data);\r\n }\r\n if (data instanceof Uint8Array && !(ctx.data instanceof Uint8Array)) {\r\n data = new Uint8Array(data);\r\n }\r\n var needed_size: number = offset || ctx.offset;\r\n if (replace) {\r\n needed_size = (offset || ctx.offset) + data.length;\r\n const part1 = ctx.data.subarray(0, needed_size - data.length);\r\n const part2 = ctx.data.subarray(needed_size, ctx.size);\r\n if (isBuffer(ctx.data)) {\r\n ctx.data = Buffer.concat([part1, data, part2]);\r\n } else {\r\n ctx.data = new Uint8Array([...part1, ...data, ...part2]);\r\n }\r\n ctx.size = ctx.data.length;\r\n ctx.sizeB = ctx.data.length * 8;\r\n } else {\r\n const part1 = ctx.data.subarray(0, needed_size);\r\n const part2 = ctx.data.subarray(needed_size, ctx.size);\r\n if (isBuffer(ctx.data)) {\r\n ctx.data = Buffer.concat([part1, data, part2]);\r\n } else {\r\n ctx.data = new Uint8Array([...part1, ...data, ...part2]);\r\n }\r\n ctx.size = ctx.data.length;\r\n ctx.sizeB = ctx.data.length * 8;\r\n }\r\n if (consume) {\r\n ctx.offset = (offset || ctx.offset) + data.length;\r\n ctx.bitoffset = 0;\r\n }\r\n}\r\n\r\nfunction AND(ctx: BiBase, and_key: any, start?: number, end?: number, consume?: boolean): any {\r\n const input = ctx.data;\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n if (typeof and_key == \"number\") {\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n input[i] = input[i] & (and_key & 0xff);\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n if (arraybuffcheck(and_key)) {\r\n let number = -1;\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n if (number != and_key.length - 1) {\r\n number = number + 1;\r\n } else {\r\n number = 0;\r\n }\r\n input[i] = input[i] & and_key[number]\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n throw new Error(\"AND key must be a byte value, string, Uint8Array or Buffer\");\r\n }\r\n }\r\n}\r\n\r\nfunction OR(ctx: BiBase, or_key: any, start?: number, end?: number, consume?: boolean): any {\r\n const input = ctx.data;\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n if (typeof or_key == \"number\") {\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n input[i] = input[i] | (or_key & 0xff);\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n if (arraybuffcheck(or_key)) {\r\n let number = -1;\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n if (number != or_key.length - 1) {\r\n number = number + 1;\r\n } else {\r\n number = 0;\r\n }\r\n input[i] = input[i] | or_key[number];\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n throw new Error(\"OR key must be a byte value, string, Uint8Array or Buffer\");\r\n }\r\n }\r\n}\r\n\r\nfunction XOR(ctx: BiBase, xor_key: any, start?: number, end?: number, consume?: boolean): any {\r\n const input = ctx.data;\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n if (typeof xor_key == \"number\") {\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n input[i] = input[i] ^ (xor_key & 0xff);\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n if (arraybuffcheck(xor_key)) {\r\n let number = -1;\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n if (number != xor_key.length - 1) {\r\n number = number + 1;\r\n } else {\r\n number = 0;\r\n }\r\n input[i] = input[i] ^ xor_key[number];\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n throw new Error(\"XOR key must be a byte value, string, Uint8Array or Buffer\");\r\n }\r\n }\r\n}\r\n\r\nfunction NOT(ctx: BiBase, start?: number, end?: number, consume?: boolean): any {\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n ctx.data[i] = ~ctx.data[i];\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n}\r\n\r\nfunction LSHIFT(ctx: BiBase, shift_key: any, start?: number, end?: number, consume?: boolean): any {\r\n const input = ctx.data;\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n if (typeof shift_key == \"number\") {\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n input[i] = input[i] << shift_key;\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n if (arraybuffcheck(shift_key)) {\r\n let number = -1;\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n if (number != shift_key.length - 1) {\r\n number = number + 1;\r\n } else {\r\n number = 0;\r\n }\r\n input[i] = input[i] << shift_key[number];\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n throw new Error(\"XOR key must be a byte value, string, Uint8Array or Buffer\");\r\n }\r\n }\r\n}\r\n\r\nfunction RSHIFT(ctx: BiBase, shift_key: any, start?: number, end?: number, consume?: boolean): any {\r\n const input = ctx.data;\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n if (typeof shift_key == \"number\") {\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n input[i] = input[i] >> shift_key;\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n if (arraybuffcheck(shift_key)) {\r\n let number = -1;\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n if (number != shift_key.length - 1) {\r\n number = number + 1;\r\n } else {\r\n number = 0;\r\n }\r\n input[i] = input[i] >> shift_key[number];\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n throw new Error(\"XOR key must be a byte value, string, Uint8Array or Buffer\");\r\n }\r\n }\r\n}\r\n\r\nfunction ADD(ctx: BiBase, add_key: any, start?: number, end?: number, consume?: boolean): any {\r\n const input = ctx.data;\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n if (typeof add_key == \"number\") {\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n input[i] = input[i] + add_key;\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n if (arraybuffcheck(add_key)) {\r\n let number = -1;\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n if (number != add_key.length - 1) {\r\n number = number + 1;\r\n } else {\r\n number = 0;\r\n }\r\n input[i] = input[i] + add_key[number];\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n throw new Error(\"XOR key must be a byte value, string, Uint8Array or Buffer\");\r\n }\r\n }\r\n}\r\n\r\nfunction fString(ctx: BiBase, searchString: string): number {\r\n // Convert the searchString to Uint8Array\r\n const searchArray = new TextEncoder().encode(searchString);\r\n\r\n for (let i = ctx.offset; i <= ctx.size - searchArray.length; i++) {\r\n let match = true;\r\n\r\n for (let j = 0; j < searchArray.length; j++) {\r\n if (ctx.data[i + j] !== searchArray[j]) {\r\n match = false;\r\n break;\r\n }\r\n }\r\n\r\n if (match) {\r\n return i; // Found the string, return the index\r\n }\r\n }\r\n\r\n return -1; // String not found\r\n}\r\n\r\nfunction fNumber(ctx: BiBase, targetNumber: number, bits: number, unsigned: boolean, endian?: string): number {\r\n\r\n check_size(ctx, Math.floor(bits / 8), 0);\r\n\r\n for (let z = ctx.offset; z <= (ctx.size - (bits / 8)); z++) {\r\n\r\n var off_in_bits = 0;\r\n\r\n var value = 0;\r\n\r\n for (var i = 0; i < bits;) {\r\n var remaining = bits - i;\r\n var bitOffset = off_in_bits & 7;\r\n var currentByte = <unknown>ctx.data[z + (off_in_bits >> 3)] as number;\r\n\r\n var read = Math.min(remaining, 8 - bitOffset);\r\n\r\n var mask: number, readBits: number;\r\n\r\n if ((endian != undefined ? endian : ctx.endian) == \"big\") {\r\n\r\n mask = ~(0xFF << read);\r\n readBits = (currentByte >> (8 - read - bitOffset)) & mask;\r\n value <<= read;\r\n value |= readBits;\r\n\r\n } else {\r\n\r\n mask = ~(0xFF << read);\r\n readBits = (currentByte >> bitOffset) & mask;\r\n value |= readBits << i;\r\n\r\n }\r\n\r\n off_in_bits += read;\r\n i += read;\r\n }\r\n\r\n if (unsigned == true || bits <= 7) {\r\n\r\n value = value >>> 0;\r\n\r\n } else {\r\n if (bits !== 32 && value & (1 << (bits - 1))) {\r\n value |= -1 ^ ((1 << bits) - 1);\r\n }\r\n }\r\n\r\n if (value === targetNumber) {\r\n return z - ctx.offset; // Found the byte, return the index from current\r\n }\r\n }\r\n\r\n return -1; // number not found\r\n}\r\n\r\nfunction fHalfFloat(ctx: BiBase, targetNumber: number, endian?: string): number {\r\n\r\n check_size(ctx, 2, 0);\r\n\r\n for (let z = ctx.offset; z <= (ctx.size - 2); z++) {\r\n\r\n var value = 0;\r\n\r\n if ((endian != undefined ? endian : ctx.endian) == \"little\") {\r\n value = ((<unknown>ctx.data[z + 1] as number & 0xFFFF) << 8) | (<unknown>ctx.data[z] as number & 0xFFFF);\r\n } else {\r\n value = ((<unknown>ctx.data[z] as number & 0xFFFF) << 8) | (<unknown>ctx.data[z + 1] as number & 0xFFFF);\r\n }\r\n\r\n const sign = (value & 0x8000) >> 15;\r\n const exponent = (value & 0x7C00) >> 10;\r\n const fraction = value & 0x03FF;\r\n\r\n let floatValue: number;\r\n\r\n if (exponent === 0) {\r\n if (fraction === 0) {\r\n floatValue = (sign === 0) ? 0 : -0; // +/-0\r\n } else {\r\n // Denormalized number\r\n floatValue = (sign === 0 ? 1 : -1) * Math.pow(2, -14) * (fraction / 0x0400);\r\n }\r\n } else if (exponent === 0x1F) {\r\n if (fraction === 0) {\r\n floatValue = (sign === 0) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\r\n } else {\r\n floatValue = Number.NaN;\r\n }\r\n } else {\r\n // Normalized number\r\n floatValue = (sign === 0 ? 1 : -1) * Math.pow(2, exponent - 15) * (1 + fraction / 0x0400);\r\n }\r\n\r\n if (floatValue === targetNumber) {\r\n return z; // Found the number, return the index\r\n }\r\n }\r\n\r\n return -1; // number not found\r\n}\r\n\r\nfunction fFloat(ctx: BiBase, targetNumber: number, endian?: string): number {\r\n\r\n check_size(ctx, 4, 0);\r\n\r\n for (let z = ctx.offset; z <= (ctx.size - 4); z++) {\r\n\r\n var value = 0;\r\n\r\n if ((endian != undefined ? endian : ctx.endian) == \"little\") {\r\n value = (((<unknown>ctx.data[z + 3] as number & 0xFF) << 24) | ((<unknown>ctx.data[z + 2] as number & 0xFF) << 16) | ((<unknown>ctx.data[z + 1] as number & 0xFF) << 8) | (<unknown>ctx.data[z] as number & 0xFF));\r\n } else {\r\n value = ((<unknown>ctx.data[z] as number & 0xFF) << 24) | ((<unknown>ctx.data[z + 1] as number & 0xFF) << 16) | ((<unknown>ctx.data[z + 2] as number & 0xFF) << 8) | (<unknown>ctx.data[z + 3] as number & 0xFF);\r\n }\r\n\r\n const isNegative = (value & 0x80000000) !== 0 ? 1 : 0;\r\n\r\n // Extract the exponent and fraction parts\r\n const exponent = (value >> 23) & 0xFF;\r\n const fraction = value & 0x7FFFFF;\r\n\r\n // Calculate the float value\r\n let floatValue: number;\r\n\r\n if (exponent === 0) {\r\n // Denormalized number (exponent is 0)\r\n floatValue = Math.pow(-1, isNegative) * Math.pow(2, -126) * (fraction / Math.pow(2, 23));\r\n } else if (exponent === 0xFF) {\r\n // Infinity or NaN (exponent is 255)\r\n floatValue = fraction === 0 ? (isNegative ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY) : Number.NaN;\r\n } else {\r\n // Normalized number\r\n floatValue = Math.pow(-1, isNegative) * Math.pow(2, exponent - 127) * (1 + fraction / Math.pow(2, 23));\r\n }\r\n\r\n if (floatValue === targetNumber) {\r\n return z; // Found the number, return the index\r\n }\r\n\r\n }\r\n\r\n return -1; // number not found\r\n}\r\n\r\nfunction fBigInt(ctx: BiBase, targetNumber: BigValue, unsigned: boolean, endian?: string): number {\r\n\r\n check_size(ctx, 8, 0);\r\n\r\n for (let z = ctx.offset; z <= (ctx.size - 8); z++) {\r\n let value: bigint = BigInt(0);\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n for (let i = 0; i < 8; i++) {\r\n value = value | BigInt((<unknown>ctx.data[z + i] as number & 0xFF)) << BigInt(8 * i);\r\n }\r\n if (unsigned == undefined || unsigned == false) {\r\n if (value & (BigInt(1) << BigInt(63))) {\r\n value -= BigInt(1) << BigInt(64);\r\n }\r\n }\r\n } else {\r\n for (let i = 0; i < 8; i++) {\r\n value = (value << BigInt(8)) | BigInt((<unknown>ctx.data[z + i] as number & 0xFF));\r\n }\r\n if (unsigned == undefined || unsigned == false) {\r\n if (value & (BigInt(1) << BigInt(63))) {\r\n value -= BigInt(1) << BigInt(64);\r\n }\r\n }\r\n }\r\n\r\n if (value == BigInt(targetNumber)) {\r\n return z;\r\n }\r\n }\r\n\r\n return -1;// number not found\r\n}\r\n\r\nfunction fDoubleFloat(ctx: BiBase, targetNumber: number, endian?: string): number {\r\n\r\n check_size(ctx, 8, 0);\r\n\r\n for (let z = ctx.offset; z <= (ctx.size - 8); z++) {\r\n\r\n let value = BigInt(0);\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n for (let i = 0; i < 8; i++) {\r\n value = value | BigInt((<unknown>ctx.data[z + i] as number & 0xFF)) << BigInt(8 * i);\r\n }\r\n } else {\r\n for (let i = 0; i < 8; i++) {\r\n value = (value << BigInt(8)) | BigInt((<unknown>ctx.data[z + i] as number & 0xFF));\r\n }\r\n }\r\n\r\n const sign = (value & 0x8000000000000000n) >> 63n;\r\n const exponent = Number((value & 0x7FF0000000000000n) >> 52n) - 1023;\r\n const fraction = Number(value & 0x000FFFFFFFFFFFFFn) / Math.pow(2, 52);\r\n\r\n var floatValue: number;\r\n\r\n if (exponent == -1023) {\r\n if (fraction == 0) {\r\n floatValue = (sign == 0n) ? 0 : -0; // +/-0\r\n } else {\r\n // Denormalized number\r\n floatValue = (sign == 0n ? 1 : -1) * Math.pow(2, -1022) * fraction;\r\n }\r\n } else if (exponent == 1024) {\r\n if (fraction == 0) {\r\n floatValue = (sign == 0n) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\r\n } else {\r\n floatValue = Number.NaN;\r\n }\r\n } else {\r\n // Normalized number\r\n floatValue = (sign == 0n ? 1 : -1) * Math.pow(2, exponent) * (1 + fraction);\r\n }\r\n\r\n if (floatValue == targetNumber) {\r\n return z;\r\n }\r\n\r\n }\r\n\r\n return -1; // number not found\r\n}\r\n\r\nfunction wbit(ctx: BiBase, value: number, bits: number, unsigned?: boolean, endian?: string) {\r\n if (value == undefined) {\r\n throw new Error('Must supply value.');\r\n }\r\n if (bits == undefined) {\r\n throw new Error(\"Enter number of bits to write\")\r\n }\r\n if (bits == 0) {\r\n return;\r\n }\r\n if (bits <= 0 || bits > 32) {\r\n throw new Error('Bit length must be between 1 and 32. Got ' + bits);\r\n }\r\n if (unsigned == true) {\r\n if (value < 0 || value > Math.pow(2, bits)) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error(`Value is out of range for the specified ${bits}bit length.` + \" min: \" + 0 + \" max: \" + Math.pow(2, bits) + \" value: \" + value);\r\n }\r\n } else {\r\n const maxValue = Math.pow(2, bits - 1) - 1;\r\n const minValue = -maxValue - 1;\r\n if (value < minValue || value > maxValue) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error(`Value is out of range for the specified ${bits}bit length.` + \" min: \" + minValue + \" max: \" + maxValue + \" value: \" + value);\r\n }\r\n }\r\n if (unsigned == true) {\r\n const maxValue = Math.pow(2, bits) - 1;\r\n value = value & maxValue;\r\n }\r\n\r\n const size_needed = ((((bits - 1) + ctx.bitoffset) / 8) + ctx.offset);\r\n if (size_needed > ctx.size) {\r\n //add size\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray(size_needed - ctx.size);\r\n }\r\n }\r\n\r\n var off_in_bits = (ctx.offset * 8) + ctx.bitoffset;\r\n\r\n for (var i = 0; i < bits;) {\r\n var remaining = bits - i;\r\n var bitOffset = off_in_bits & 7;\r\n var byteOffset = off_in_bits >> 3;\r\n var written = Math.min(remaining, 8 - bitOffset);\r\n\r\n var mask: number, writeBits: number, destMask: number;\r\n if ((endian != undefined ? endian : ctx.endian) == \"big\") {\r\n\r\n mask = ~(~0 << written);\r\n writeBits = (value >> (bits - i - written)) & mask;\r\n var destShift = 8 - bitOffset - written;\r\n destMask = ~(mask << destShift);\r\n ctx.data[byteOffset] = (ctx.data[byteOffset] & destMask) | (writeBits << destShift);\r\n\r\n } else {\r\n\r\n mask = ~(0xFF << written);\r\n writeBits = value & mask;\r\n value >>= written;\r\n destMask = ~(mask << bitOffset);\r\n ctx.data[byteOffset] = (ctx.data[byteOffset] & destMask) | (writeBits << bitOffset);\r\n\r\n }\r\n\r\n off_in_bits += written;\r\n i += written;\r\n }\r\n\r\n ctx.offset = ctx.offset + Math.floor(((bits) + ctx.bitoffset) / 8); //end byte\r\n ctx.bitoffset = ((bits) + ctx.bitoffset) % 8;\r\n}\r\n\r\nfunction rbit(ctx: BiBase, bits?: number, unsigned?: boolean, endian?: string): number {\r\n if (bits == undefined || typeof bits != \"number\") {\r\n throw new Error(\"Enter number of bits to read\");\r\n }\r\n if (bits == 0) {\r\n return 0;\r\n }\r\n if (bits <= 0 || bits > 32) {\r\n throw new Error('Bit length must be between 1 and 32. Got ' + bits);\r\n }\r\n const size_needed = ((((bits - 1) + ctx.bitoffset) / 8) + ctx.offset);\r\n if (bits <= 0 || size_needed > ctx.size) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error(\"Invalid number of bits to read: \" + size_needed + \" of \" + ctx.size);\r\n }\r\n\r\n var off_in_bits = (ctx.offset * 8) + ctx.bitoffset;\r\n\r\n var value = 0;\r\n\r\n for (var i = 0; i < bits;) {\r\n var remaining = bits - i;\r\n var bitOffset = off_in_bits & 7;\r\n var currentByte = <unknown>ctx.data[off_in_bits >> 3] as number;\r\n\r\n var read = Math.min(remaining, 8 - bitOffset);\r\n\r\n var mask: number, readBits: number;\r\n\r\n if ((endian != undefined ? endian : ctx.endian) == \"big\") {\r\n\r\n mask = ~(0xFF << read);\r\n readBits = (currentByte >> (8 - read - bitOffset)) & mask;\r\n value <<= read;\r\n value |= readBits;\r\n\r\n } else {\r\n\r\n mask = ~(0xFF << read);\r\n readBits = (currentByte >> bitOffset) & mask;\r\n value |= readBits << i;\r\n\r\n }\r\n\r\n off_in_bits += read;\r\n i += read;\r\n }\r\n\r\n ctx.offset = ctx.offset + Math.floor(((bits) + ctx.bitoffset) / 8); //end byte\r\n ctx.bitoffset = ((bits) + ctx.bitoffset) % 8;\r\n\r\n if (unsigned == true || bits <= 7) {\r\n\r\n return value >>> 0;\r\n\r\n }\r\n\r\n if (bits !== 32 && value & (1 << (bits - 1))) {\r\n value |= -1 ^ ((1 << bits) - 1);\r\n }\r\n\r\n return value;\r\n}\r\n\r\nfunction wbyte(ctx: BiBase, value: number, unsigned?: boolean): void {\r\n\r\n check_size(ctx, 1, 0);\r\n\r\n if (unsigned == true) {\r\n if (value < 0 || value > 255) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 8bit length.' + \" min: \" + 0 + \" max: \" + 255 + \" value: \" + value);\r\n }\r\n } else {\r\n const maxValue = Math.pow(2, 8 - 1) - 1;\r\n const minValue = -maxValue - 1;\r\n if (value < minValue || value > maxValue) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 8bit length.' + \" min: \" + minValue + \" max: \" + maxValue + \" value: \" + value);\r\n }\r\n }\r\n ctx.data[ctx.offset] = (unsigned == undefined || unsigned == false) ? value : value & 0xFF;\r\n ctx.offset += 1;\r\n ctx.bitoffset = 0;\r\n}\r\n\r\nfunction rbyte(ctx: BiBase, unsigned?: boolean): number {\r\n\r\n check_size(ctx, 1);\r\n\r\n const read = <unknown>ctx.data[ctx.offset] as number;\r\n ctx.offset += 1;\r\n ctx.bitoffset = 0;\r\n if (unsigned == true) {\r\n return read & 0xFF;\r\n } else {\r\n return read > 127 ? read - 256 : read;\r\n }\r\n}\r\n\r\nfunction wint16(ctx: BiBase, value: number, unsigned?: boolean, endian?: string): void {\r\n\r\n check_size(ctx, 2, 0);\r\n\r\n if (unsigned == true) {\r\n if (value < 0 || value > 65535) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 16bit length.' + \" min: \" + 0 + \" max: \" + 65535 + \" value: \" + value);\r\n }\r\n } else {\r\n const maxValue = Math.pow(2, 16 - 1) - 1;\r\n const minValue = -maxValue - 1;\r\n if (value < minValue || value > maxValue) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 16bit length.' + \" min: \" + minValue + \" max: \" + maxValue + \" value: \" + value);\r\n }\r\n }\r\n if ((endian != undefined ? endian : ctx.endian) == \"little\") {\r\n ctx.data[ctx.offset] = (unsigned == undefined || unsigned == false) ? value : value & 0xff;\r\n ctx.data[ctx.offset + 1] = (unsigned == undefined || unsigned == false) ? (value >> 8) : (value >> 8) & 0xff;\r\n } else {\r\n ctx.data[ctx.offset] = (unsigned == undefined || unsigned == false) ? (value >> 8) : (value >> 8) & 0xff;\r\n ctx.data[ctx.offset + 1] = (unsigned == undefined || unsigned == false) ? value : value & 0xff;\r\n }\r\n ctx.offset += 2;\r\n ctx.bitoffset = 0;\r\n}\r\n\r\nfunction rint16(ctx: BiBase, unsigned?: boolean, endian?: string): number {\r\n\r\n check_size(ctx, 2);\r\n\r\n var read: number;\r\n if ((endian != undefined ? endian : ctx.endian) == \"little\") {\r\n read = ((<unknown>ctx.data[ctx.offset + 1] as number & 0xFFFF) << 8) | (<unknown>ctx.data[ctx.offset] as number & 0xFFFF);\r\n } else {\r\n read = ((<unknown>ctx.data[ctx.offset] as number & 0xFFFF) << 8) | (<unknown>ctx.data[ctx.offset + 1] as number & 0xFFFF);\r\n }\r\n ctx.offset += 2;\r\n ctx.bitoffset = 0;\r\n if (unsigned == undefined || unsigned == false) {\r\n return read & 0x8000 ? -(0x10000 - read) : read;\r\n } else {\r\n return read & 0xFFFF;\r\n }\r\n}\r\n\r\nfunction rhalffloat(ctx: BiBase, endian?: endian): number {\r\n\r\n var uint16Value = ctx.readInt16(true, (endian != undefined ? endian : ctx.endian));\r\n const sign = (uint16Value & 0x8000) >> 15;\r\n const exponent = (uint16Value & 0x7C00) >> 10;\r\n const fraction = uint16Value & 0x03FF;\r\n\r\n let floatValue: number;\r\n\r\n if (exponent === 0) {\r\n if (fraction === 0) {\r\n floatValue = (sign === 0) ? 0 : -0; // +/-0\r\n } else {\r\n // Denormalized number\r\n floatValue = (sign === 0 ? 1 : -1) * Math.pow(2, -14) * (fraction / 0x0400);\r\n }\r\n } else if (exponent === 0x1F) {\r\n if (fraction === 0) {\r\n floatValue = (sign === 0) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\r\n } else {\r\n floatValue = Number.NaN;\r\n }\r\n } else {\r\n // Normalized number\r\n floatValue = (sign === 0 ? 1 : -1) * Math.pow(2, exponent - 15) * (1 + fraction / 0x0400);\r\n }\r\n\r\n return floatValue;\r\n}\r\n\r\nfunction whalffloat(ctx: BiBase, value: number, endian?: string): void {\r\n\r\n check_size(ctx, 2, 0);\r\n\r\n const maxValue = 65504;\r\n const minValue = 5.96e-08;\r\n if (value < minValue || value > maxValue) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified half float length.' + \" min: \" + minValue + \" max: \" + maxValue + \" value: \" + value);\r\n }\r\n const signMask = 0x8000;\r\n const exponentMask = 0x7C00;\r\n const fractionMask = 0x03FF;\r\n\r\n // Determine sign, exponent, and fraction bits\r\n let signBit = (value & signMask) >> 15;\r\n let exponentBits = (value & exponentMask) >> 10;\r\n let fractionBits = value & fractionMask;\r\n\r\n // Special cases for NaN and Infinity\r\n if (exponentBits === 0x1F) {\r\n // NaN or Infinity, copy exponent and fraction\r\n exponentBits = 0xFF;\r\n } else if (exponentBits === 0x00) {\r\n // Denormalized numbers, exponent is 0, adjust exponent bits\r\n exponentBits = 0x00;\r\n fractionBits = 0x00; // Clear fraction for denormals\r\n } else {\r\n // Normalized number, subtract exponent bias\r\n exponentBits -= 15;\r\n }\r\n\r\n // Combine sign, exponent, and fraction bits into half float format\r\n let halfFloatBits = (signBit << 15) | (exponentBits << 10) | fractionBits;\r\n\r\n // Write bytes based on endianness\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n ctx.data[ctx.offset] = halfFloatBits & 0xFF;\r\n ctx.data[ctx.offset + 1] = (halfFloatBits >> 8) & 0xFF;\r\n } else {\r\n ctx.data[ctx.offset] = (halfFloatBits >> 8) & 0xFF;\r\n ctx.data[ctx.offset + 1] = halfFloatBits & 0xFF;\r\n }\r\n\r\n ctx.offset += 2;\r\n ctx.bitoffset = 0;\r\n}\r\n\r\nfunction wint32(ctx: BiBase, value: number, unsigned?: boolean, endian?: string): void {\r\n\r\n check_size(ctx, 4, 0);\r\n\r\n if (unsigned == true) {\r\n if (value < 0 || value > 4294967295) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 32bit length.' + \" min: \" + 0 + \" max: \" + 4294967295 + \" value: \" + value);\r\n }\r\n } else {\r\n const maxValue = Math.pow(2, 32 - 1) - 1;\r\n const minValue = -maxValue - 1;\r\n if (value < minValue || value > maxValue) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 32bit length.' + \" min: \" + minValue + \" max: \" + maxValue + \" value: \" + value);\r\n }\r\n }\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n ctx.data[ctx.offset] = (unsigned == undefined || unsigned == false) ? value : value & 0xFF;\r\n ctx.data[ctx.offset + 1] = (unsigned == undefined || unsigned == false) ? (value >> 8) : (value >> 8) & 0xFF;\r\n ctx.data[ctx.offset + 2] = (unsigned == undefined || unsigned == false) ? (value >> 16) : (value >> 16) & 0xFF;\r\n ctx.data[ctx.offset + 3] = (unsigned == undefined || unsigned == false) ? (value >> 24) : (value >> 24) & 0xFF;\r\n } else {\r\n ctx.data[ctx.offset] = (unsigned == undefined || unsigned == false) ? (value >> 24) : (value >> 24) & 0xFF;\r\n ctx.data[ctx.offset + 1] = (unsigned == undefined || unsigned == false) ? (value >> 16) : (value >> 16) & 0xFF;\r\n ctx.data[ctx.offset + 2] = (unsigned == undefined || unsigned == false) ? (value >> 8) : (value >> 8) & 0xFF;\r\n ctx.data[ctx.offset + 3] = (unsigned == undefined || unsigned == false) ? value : value & 0xFF;\r\n }\r\n ctx.offset += 4;\r\n ctx.bitoffset = 0;\r\n}\r\n\r\nfunction rint32(ctx: BiBase, unsigned?: boolean, endian?: string): number {\r\n\r\n check_size(ctx, 4);\r\n\r\n var read: number;\r\n if ((endian != undefined ? endian : ctx.endian) == \"little\") {\r\n read = (((<unknown>ctx.data[ctx.offset + 3] as number & 0xFF) << 24) | ((<unknown>ctx.data[ctx.offset + 2] as number & 0xFF) << 16) | ((<unknown>ctx.data[ctx.offset + 1] as number & 0xFF) << 8) | (<unknown>ctx.data[ctx.offset] as number & 0xFF));\r\n } else {\r\n read = ((<unknown>ctx.data[ctx.offset] as number & 0xFF) << 24) | ((<unknown>ctx.data[ctx.offset + 1] as number & 0xFF) << 16) | ((<unknown>ctx.data[ctx.offset + 2] as number & 0xFF) << 8) | (<unknown>ctx.data[ctx.offset + 3] as number & 0xFF);\r\n }\r\n ctx.offset += 4;\r\n ctx.bitoffset = 0;\r\n if (unsigned == undefined || unsigned == false) {\r\n return read;\r\n } else {\r\n return read >>> 0;\r\n }\r\n}\r\n\r\nfunction rfloat(ctx: BiBase, endian?: endian): number {\r\n\r\n var uint32Value = ctx.readInt32(true, (endian == undefined ? ctx.endian : endian));\r\n // Check if the value is negative (i.e., the most significant bit is set)\r\n const isNegative = (uint32Value & 0x80000000) !== 0 ? 1 : 0;\r\n\r\n // Extract the exponent and fraction parts\r\n const exponent = (uint32Value >> 23) & 0xFF;\r\n const fraction = uint32Value & 0x7FFFFF;\r\n\r\n // Calculate the float value\r\n let floatValue: number;\r\n\r\n if (exponent === 0) {\r\n // Denormalized number (exponent is 0)\r\n floatValue = Math.pow(-1, isNegative) * Math.pow(2, -126) * (fraction / Math.pow(2, 23));\r\n } else if (exponent === 0xFF) {\r\n // Infinity or NaN (exponent is 255)\r\n floatValue = fraction === 0 ? (isNegative ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY) : Number.NaN;\r\n } else {\r\n // Normalized number\r\n floatValue = Math.pow(-1, isNegative) * Math.pow(2, exponent - 127) * (1 + fraction / Math.pow(2, 23));\r\n }\r\n\r\n return floatValue;\r\n}\r\n\r\nfunction wfloat(ctx: BiBase, value: number, endian?: string): void {\r\n\r\n check_size(ctx, 4, 0);\r\n\r\n const MIN_POSITIVE_FLOAT32 = Number.MIN_VALUE;\r\n const MAX_POSITIVE_FLOAT32 = 3.4028235e+38;\r\n const MIN_NEGATIVE_FLOAT32 = -3.4028235e+38;\r\n const MAX_NEGATIVE_FLOAT32 = -Number.MIN_VALUE;\r\n if (!((value === 0) ||\r\n (value >= MIN_POSITIVE_FLOAT32 && value <= MAX_POSITIVE_FLOAT32) ||\r\n (value >= MIN_NEGATIVE_FLOAT32 && value <= MAX_NEGATIVE_FLOAT32))) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified float length.' + \" min: \" + MIN_NEGATIVE_FLOAT32 + \" max: \" + MAX_POSITIVE_FLOAT32 + \" value: \" + value);\r\n }\r\n\r\n const dataView = new DataView(new Uint8Array(4).buffer);\r\n dataView.setFloat32(0, value, true);\r\n let intValue = dataView.getInt32(0, true);\r\n\r\n let shift = 0;\r\n for (let i = 0; i < 4; i++) {\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n ctx.data[ctx.offset + i] = (intValue >> shift) & 0xFF;\r\n } else {\r\n ctx.data[ctx.offset + (3 - i)] = (intValue >> shift) & 0xFF;\r\n }\r\n shift += 8;\r\n }\r\n\r\n ctx.offset += 4;\r\n ctx.bitoffset = 0;\r\n}\r\n\r\nfunction rint64(ctx: BiBase, unsigned?: boolean, endian?: string): bigint {\r\n\r\n check_size(ctx, 8);\r\n\r\n // Convert the byte array to a BigInt\r\n let value: bigint = BigInt(0);\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n for (let i = 0; i < 8; i++) {\r\n value = value | BigInt((<unknown>ctx.data[ctx.offset] as number & 0xFF)) << BigInt(8 * i);\r\n ctx.offset += 1;\r\n }\r\n if (unsigned == undefined || unsigned == false) {\r\n if (value & (BigInt(1) << BigInt(63))) {\r\n value -= BigInt(1) << BigInt(64);\r\n }\r\n }\r\n } else {\r\n for (let i = 0; i < 8; i++) {\r\n value = (value << BigInt(8)) | BigInt((<unknown>ctx.data[ctx.offset] as number & 0xFF));\r\n ctx.offset += 1;\r\n }\r\n if (unsigned == undefined || unsigned == false) {\r\n if (value & (BigInt(1) << BigInt(63))) {\r\n value -= BigInt(1) << BigInt(64);\r\n }\r\n }\r\n }\r\n ctx.bitoffset = 0;\r\n return value\r\n}\r\n\r\nfunction wint64(ctx: BiBase, value: BigValue, unsigned?: boolean, endian?: string): void {\r\n\r\n check_size(ctx, 8, 0);\r\n\r\n if (unsigned == true) {\r\n if (value < 0 || value > Math.pow(2, 64) - 1) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 64bit length.' + \" min: \" + 0 + \" max: \" + (Math.pow(2, 64) - 1) + \" value: \" + value);\r\n }\r\n } else {\r\n const maxValue = Math.pow(2, 63) - 1;\r\n const minValue = -Math.pow(2, 63);\r\n if (value < minValue || value > maxValue) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 64bit length.' + \" min: \" + minValue + \" max: \" + maxValue + \" value: \" + value);\r\n }\r\n }\r\n // Convert the BigInt to a 64-bit signed integer\r\n const bigIntArray = new BigInt64Array(1);\r\n bigIntArray[0] = BigInt(value);\r\n\r\n // Use two 32-bit views to write the Int64\r\n const int32Array = new Int32Array(bigIntArray.buffer);\r\n\r\n for (let i = 0; i < 2; i++) {\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n if (unsigned == undefined || unsigned == false) {\r\n ctx.data[ctx.offset + i * 4 + 0] = int32Array[i];\r\n ctx.data[ctx.offset + i * 4 + 1] = (int32Array[i] >> 8);\r\n ctx.data[ctx.offset + i * 4 + 2] = (int32Array[i] >> 16);\r\n ctx.data[ctx.offset + i * 4 + 3] = (int32Array[i] >> 24);\r\n } else {\r\n ctx.data[ctx.offset + i * 4 + 0] = int32Array[i] & 0xFF;\r\n ctx.data[ctx.offset + i * 4 + 1] = (int32Array[i] >> 8) & 0xFF;\r\n ctx.data[ctx.offset + i * 4 + 2] = (int32Array[i] >> 16) & 0xFF;\r\n ctx.data[ctx.offset + i * 4 + 3] = (int32Array[i] >> 24) & 0xFF;\r\n }\r\n } else {\r\n if (unsigned == undefined || unsigned == false) {\r\n ctx.data[ctx.offset + (1 - i) * 4 + 0] = int32Array[i];\r\n ctx.data[ctx.offset + (1 - i) * 4 + 1] = (int32Array[i] >> 8);\r\n ctx.data[ctx.offset + (1 - i) * 4 + 2] = (int32Array[i] >> 16);\r\n ctx.data[ctx.offset + (1 - i) * 4 + 3] = (int32Array[i] >> 24);\r\n } else {\r\n ctx.data[ctx.offset + (1 - i) * 4 + 0] = int32Array[i] & 0xFF;\r\n ctx.data[ctx.offset + (1 - i) * 4 + 1] = (int32Array[i] >> 8) & 0xFF;\r\n ctx.data[ctx.offset + (1 - i) * 4 + 2] = (int32Array[i] >> 16) & 0xFF;\r\n ctx.data[ctx.offset + (1 - i) * 4 + 3] = (int32Array[i] >> 24) & 0xFF;\r\n }\r\n }\r\n }\r\n\r\n ctx.offset += 8;\r\n ctx.bitoffset = 0;\r\n}\r\n\r\nfunction wdfloat(ctx: BiBase, value: number, endian?: string): void {\r\n\r\n check_size(ctx, 8, 0);\r\n\r\n const MIN_POSITIVE_FLOAT64 = 2.2250738585072014e-308;\r\n const MAX_POSITIVE_FLOAT64 = Number.MAX_VALUE;\r\n const MIN_NEGATIVE_FLOAT64 = -Number.MAX_VALUE;\r\n const MAX_NEGATIVE_FLOAT64 = -2.2250738585072014e-308;\r\n if (!((value === 0) ||\r\n (value >= MIN_POSITIVE_FLOAT64 && value <= MAX_POSITIVE_FLOAT64) ||\r\n (value >= MIN_NEGATIVE_FLOAT64 && value <= MAX_NEGATIVE_FLOAT64))) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 64bit length.' + \" min: \" + MIN_NEGATIVE_FLOAT64 + \" max: \" + MAX_POSITIVE_FLOAT64 + \" value: \" + value);\r\n }\r\n const intArray = new Int32Array(2);\r\n const floatArray = new Float64Array(intArray.buffer);\r\n\r\n floatArray[0] = value;\r\n\r\n const bytes = new Uint8Array(intArray.buffer);\r\n\r\n for (let i = 0; i < 8; i++) {\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n ctx.data[ctx.offset + i] = bytes[i];\r\n } else {\r\n ctx.data[ctx.offset + (7 - i)] = bytes[i];\r\n }\r\n }\r\n\r\n ctx.offset += 8\r\n ctx.bitoffset = 0\r\n}\r\n\r\nfunction rdfloat(ctx: BiBase, endian?: endian): number {\r\n endian = (endian == undefined ? ctx.endian : endian);\r\n var uint64Value = ctx.readInt64(true, endian);\r\n const sign = (uint64Value & 0x8000000000000000n) >> 63n;\r\n const exponent = Number((uint64Value & 0x7FF0000000000000n) >> 52n) - 1023;\r\n const fraction = Number(uint64Value & 0x000FFFFFFFFFFFFFn) / Math.pow(2, 52);\r\n\r\n var floatValue: number;\r\n\r\n if (exponent == -1023) {\r\n if (fraction == 0) {\r\n floatValue = (sign == 0n) ? 0 : -0; // +/-0\r\n } else {\r\n // Denormalized number\r\n floatValue = (sign == 0n ? 1 : -1) * Math.pow(2, -1022) * fraction;\r\n }\r\n } else if (exponent == 1024) {\r\n if (fraction == 0) {\r\n floatValue = (sign == 0n) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\r\n } else {\r\n floatValue = Number.NaN;\r\n }\r\n } else {\r\n // Normalized number\r\n floatValue = (sign == 0n ? 1 : -1) * Math.pow(2, exponent) * (1 + fraction);\r\n }\r\n\r\n return floatValue;\r\n}\r\n\r\nfunction rstring(ctx: BiBase, options?: stringOptions): string {\r\n\r\n var length: any = options && options.length;\r\n var stringType: any = options && options.stringType || 'utf-8';\r\n var terminateValue: any = options && options.terminateValue;\r\n var lengthReadSize: any = options && options.lengthReadSize || 1;\r\n var stripNull: any = options && options.stripNull || true;\r\n var encoding: any = options && options.encoding || 'utf-8';\r\n var endian: any = options && options.endian || ctx.endian;\r\n\r\n var terminate = terminateValue;\r\n\r\n if (length != undefined) {\r\n check_size(ctx, length);\r\n }\r\n\r\n if (typeof terminateValue == \"number\") {\r\n terminate = terminateValue & 0xFF;\r\n } else {\r\n if (terminateValue != undefined) {\r\n throw new Error(\"terminateValue must be a number\");\r\n }\r\n }\r\n\r\n if (stringType == 'utf-8' || stringType == 'utf-16') {\r\n\r\n if (encoding == undefined) {\r\n if (stringType == 'utf-8') {\r\n encoding = 'utf-8';\r\n }\r\n if (stringType == 'utf-16') {\r\n encoding = 'utf-16';\r\n }\r\n }\r\n\r\n // Read the string as UTF-8 encoded untill 0 or terminateValue\r\n const encodedBytes: Array<number> = [];\r\n\r\n if (length == undefined && terminateValue == undefined) {\r\n terminate = 0;\r\n }\r\n\r\n var read_length = 0;\r\n\r\n if (length != undefined) {\r\n read_length = length;\r\n } else {\r\n read_length = ctx.data.length - ctx.offset;\r\n }\r\n\r\n for (let i = 0; i < read_length; i++) {\r\n if (stringType === 'utf-8') {\r\n var read = ctx.readUByte();\r\n if (read == terminate) {\r\n break;\r\n } else {\r\n if (!(stripNull == true && read == 0)) {\r\n encodedBytes.push(read);\r\n }\r\n }\r\n } else {\r\n var read = ctx.readInt16(true, endian);\r\n var read1 = read & 0xFF;\r\n var read2 = (read >> 8) & 0xFF;\r\n if (read == terminate) {\r\n break;\r\n } else {\r\n if (!(stripNull == true && read == 0)) {\r\n encodedBytes.push(read1);\r\n encodedBytes.push(read2);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return new TextDecoder(encoding).decode(new Uint8Array(encodedBytes));\r\n\r\n } else if (stringType == 'pascal' || stringType == 'wide-pascal') {\r\n\r\n if (encoding == undefined) {\r\n if (stringType == 'pascal') {\r\n encoding = 'utf-8';\r\n }\r\n if (stringType == 'wide-pascal') {\r\n encoding = 'utf-16';\r\n }\r\n }\r\n\r\n var maxBytes: number;\r\n if (lengthReadSize == 1) {\r\n maxBytes = ctx.readUByte();\r\n } else if (lengthReadSize == 2) {\r\n maxBytes = ctx.readInt16(true, endian);\r\n } else if (lengthReadSize == 4) {\r\n maxBytes = ctx.readInt32(true, endian);\r\n } else {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\"\r\n throw new Error(\"Invalid length read size: \" + lengthReadSize);\r\n }\r\n\r\n // Read the string as Pascal or Delphi encoded\r\n const encodedBytes: Array<number> = [];\r\n for (let i = 0; i < maxBytes; i++) {\r\n if (stringType == 'wide-pascal') {\r\n const read = ctx.readInt16(true, endian);\r\n if (!(stripNull == true && read == 0)) {\r\n encodedBytes.push(read);\r\n }\r\n } else {\r\n const read = ctx.readUByte()\r\n if (!(stripNull == true && read == 0)) {\r\n encodedBytes.push(read);\r\n }\r\n }\r\n }\r\n var str_return: string;\r\n if (stringType == 'wide-pascal') {\r\n str_return = new TextDecoder(encoding).decode(new Uint16Array(encodedBytes));\r\n } else {\r\n str_return = new TextDecoder(encoding).decode(new Uint8Array(encodedBytes));\r\n }\r\n\r\n return str_return;\r\n } else {\r\n throw new Error('Unsupported string type: ' + stringType);\r\n }\r\n}\r\n\r\nfunction wstring(ctx: BiBase, string: string, options?: stringOptions): void {\r\n var length: any = options && options.length;\r\n var stringType: any = options && options.stringType || 'utf-8';\r\n var terminateValue: any = options && options.terminateValue;\r\n var lengthWriteSize: any = options && options.lengthWriteSize || 1;\r\n var encoding: any = options && options.encoding || 'utf-8';\r\n var endian: any = options && options.endian || ctx.endian;\r\n\r\n if (stringType === 'utf-8' || stringType === 'utf-16') {\r\n // Encode the string in the specified encoding\r\n\r\n if (encoding == undefined) {\r\n if (stringType == 'utf-8') {\r\n encoding = 'utf-8';\r\n }\r\n if (stringType == 'utf-16') {\r\n encoding = 'utf-16';\r\n }\r\n }\r\n\r\n const encoder = new TextEncoder();\r\n\r\n const encodedString = encoder.encode(string);\r\n\r\n if (length == undefined && terminateValue == undefined) {\r\n terminateValue = 0;\r\n }\r\n\r\n var totalLength = (length || encodedString.length) + (terminateValue != undefined ? 1 : 0);\r\n\r\n if (stringType == 'utf-16') {\r\n totalLength = (length || (encodedString.length * 2)) + (terminateValue != undefined ? 2 : 0);\r\n }\r\n\r\n check_size(ctx, totalLength, 0);\r\n\r\n // Write the string bytes to the Uint8Array\r\n for (let i = 0; i < encodedString.length; i++) {\r\n if (stringType === 'utf-16') {\r\n const charCode = encodedString[i];\r\n if (endian == \"little\") {\r\n ctx.data[ctx.offset + i * 2] = charCode & 0xFF;\r\n ctx.data[ctx.offset + i * 2 + 1] = (charCode >> 8) & 0xFF;\r\n } else {\r\n ctx.data[ctx.offset + i * 2 + 1] = charCode & 0xFF;\r\n ctx.data[ctx.offset + i * 2] = (charCode >> 8) & 0xFF;\r\n }\r\n } else {\r\n ctx.data[ctx.offset + i] = encodedString[i];\r\n }\r\n }\r\n\r\n if (terminateValue != undefined) {\r\n if (stringType === 'utf-16') {\r\n ctx.data[ctx.offset + totalLength - 1] = terminateValue & 0xFF;\r\n ctx.data[ctx.offset + totalLength] = (terminateValue >> 8) & 0xFF;\r\n } else {\r\n ctx.data[ctx.offset + totalLength] = terminateValue;\r\n }\r\n }\r\n\r\n ctx.offset += totalLength;\r\n ctx.bitoffset = 0;\r\n\r\n } else if (stringType == 'pascal' || stringType == 'wide-pascal') {\r\n\r\n if (encoding == undefined) {\r\n if (stringType == 'pascal') {\r\n encoding = 'utf-8';\r\n }\r\n if (stringType == 'wide-pascal') {\r\n encoding = 'utf-16';\r\n }\r\n }\r\n\r\n const encoder = new TextEncoder();\r\n\r\n // Calculate the length of the string based on the specified max length\r\n var maxLength: number;\r\n\r\n // Encode the string in the specified encoding\r\n if (lengthWriteSize == 1) {\r\n maxLength = 255;\r\n } else if (lengthWriteSize == 2) {\r\n maxLength = 65535;\r\n } else if (lengthWriteSize == 4) {\r\n maxLength = 4294967295;\r\n } else {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error(\"Invalid length write size: \" + lengthWriteSize);\r\n }\r\n if (string.length > maxLength || (length || 0) > maxLength) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error(\"String outsize of max write length: \" + maxLength);\r\n }\r\n var maxBytes = Math.min(string.length, maxLength);\r\n const encodedString = encoder.encode(string.substring(0, maxBytes));\r\n\r\n var totalLength = (length || encodedString.length);\r\n\r\n if (stringType == 'wide-pascal') {\r\n totalLength = (length || (encodedString.length * 2));\r\n }\r\n\r\n if (lengthWriteSize == 1) {\r\n ctx.writeUByte(maxBytes);\r\n } else if (lengthWriteSize == 2) {\r\n ctx.writeUInt16(maxBytes, endian);\r\n } else if (lengthWriteSize == 4) {\r\n ctx.writeUInt32(maxBytes, endian);\r\n }\r\n\r\n check_size(ctx, totalLength, 0)\r\n\r\n // Write the string bytes to the Uint8Array\r\n for (let i = 0; i < encodedString.length; i++) {\r\n if (stringType == 'wide-pascal') {\r\n const charCode = encodedString[i];\r\n if (endian == \"little\") {\r\n ctx.data[ctx.offset + i * 2] = charCode & 0xFF;\r\n ctx.data[ctx.offset + i * 2 + 1] = (charCode >> 8) & 0xFF;\r\n } else {\r\n ctx.data[ctx.offset + i * 2 + 1] = charCode & 0xFF;\r\n ctx.data[ctx.offset + i * 2] = (charCode >> 8) & 0xFF;\r\n }\r\n } else {\r\n ctx.data[ctx.offset + i] = encodedString[i];\r\n }\r\n }\r\n\r\n ctx.offset += totalLength;\r\n ctx.bitoffset = 0;\r\n } else {\r\n throw new Error('Unsupported string type: ' + stringType);\r\n }\r\n}\r\n\r\nexport class BiBase{\r\n /**\r\n * Endianness of default read. \r\n * @type {endian}\r\n */\r\n public endian: endian = \"little\";\r\n /**\r\n * Current read byte location.\r\n */\r\n public offset: number = 0;\r\n /**\r\n * Current read byte's bit location.\r\n */\r\n public bitoffset: number = 0;\r\n /**\r\n * Size in bytes of the current buffer.\r\n */\r\n public size: number = 0;\r\n /**\r\n * Size in bits of the current buffer.\r\n */\r\n public sizeB: number = 0;\r\n /**\r\n * Allows the buffer to extend reading or writing outside of current size\r\n */\r\n public strict: boolean = false;\r\n /**\r\n * Console log a hexdump on error.\r\n */\r\n public errorDump: boolean = true;\r\n /**\r\n * Current buffer data.\r\n * @type {Buffer|Uint8Array|null}\r\n */\r\n public data: Buffer|Uint8Array|null = null;\r\n /**\r\n * When the data buffer needs to be extended while strict mode is ``false``, this will be the amount it extends.\r\n * \r\n * Otherwise it extends just the amount of the next written value.\r\n * \r\n * This can greatly speed up data writes when large files are being written.\r\n * \r\n * NOTE: Using ``BiWriter.get`` or ``BiWriter.return`` will now remove all data after the current write position. Use ``BiWriter.data`` to get the full buffer instead.\r\n */ \r\n public extendBufferSize: number = 0;\r\n \r\n public fd = null;\r\n\r\n public filePath = \"\";\r\n\r\n public fsMode = \"\";\r\n\r\n /**\r\n * The settings that used when using the .str getter / setter\r\n */\r\n private strDefaults: stringOptions = {stringType: \"utf-8\", terminateValue: 0x0};\r\n\r\n public maxFileSize: number | null = null;\r\n\r\n constructor(){\r\n\r\n }\r\n\r\n /**\r\n * Settings for when using .str\r\n * \r\n * @param {stringOptions} settings options to use with .str\r\n */\r\n set strSettings(settings:stringOptions){\r\n this.strDefaults.encoding = settings.encoding;\r\n this.strDefaults.endian = settings.endian;\r\n this.strDefaults.length = settings.length;\r\n this.strDefaults.lengthReadSize = settings.lengthReadSize;\r\n this.strDefaults.lengthWriteSize = settings.lengthWriteSize;\r\n this.strDefaults.stringType = settings.stringType;\r\n this.strDefaults.stripNull = settings.stripNull;\r\n this.strDefaults.terminateValue = settings.terminateValue;\r\n }\r\n\r\n /**\r\n * Enables expanding in reader (changes strict)\r\n * \r\n * @param {boolean} mode - Enable expanding in reader (changes strict)\r\n */\r\n writeMode(mode: boolean) {\r\n if (mode) {\r\n this.strict = false;\r\n return;\r\n }\r\n else \r\n {\r\n this.strict = true;\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n open():number{\r\n return this.size;\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n updateSize():void{\r\n this.return;\r\n }\r\n\r\n /**\r\n * removes data.\r\n */\r\n close(): void {\r\n this.data = undefined;\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n read(start: number, length: number, consume: boolean = false){\r\n return this.lift(start, start+length, consume);\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n write(start: number, data: Buffer, consume: boolean = false): number {\r\n this.insert(data, consume, start);\r\n return data.length;\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n renameFile(){\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n deleteFile(){\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n commit(consume: boolean = true): number {\r\n return consume ? 0 : 1;\r\n }\r\n\r\n extendArray(to_padd: number): void {\r\n return extendarray(this, to_padd);\r\n }\r\n\r\n isBufferOrUint8Array(obj: Buffer | Uint8Array): boolean {\r\n return arraybuffcheck(obj);\r\n }\r\n\r\n ///////////////////////////////\r\n // ENDIANNESS //\r\n ///////////////////////////////\r\n \r\n /**\r\n *\r\n * Change endian, defaults to little.\r\n * \r\n * Can be changed at any time, doesn't loose position.\r\n *\r\n * @param {endian} endian - endianness ``big`` or ``little``\r\n */\r\n endianness(endian: endian): void {\r\n if (endian == undefined || typeof endian != \"string\") {\r\n throw new Error(\"Endian must be big or little\");\r\n }\r\n if (endian != undefined && !(endian == \"big\" || endian == \"little\")) {\r\n throw new Error(\"Endian must be big or little\");\r\n }\r\n this.endian = endian;\r\n }\r\n\r\n /**\r\n * Sets endian to big.\r\n */\r\n bigEndian(): void {\r\n this.endianness(\"big\");\r\n }\r\n\r\n /**\r\n * Sets endian to big.\r\n */\r\n big(): void {\r\n this.endianness(\"big\");\r\n }\r\n\r\n /**\r\n * Sets endian to big.\r\n */\r\n be(): void {\r\n this.endianness(\"big\");\r\n }\r\n\r\n /**\r\n * Sets endian to little.\r\n */\r\n littleEndian(): void {\r\n this.endianness(\"little\");\r\n }\r\n\r\n /**\r\n * Sets endian to little.\r\n */\r\n little(): void {\r\n this.endianness(\"little\");\r\n }\r\n\r\n /**\r\n * Sets endian to little.\r\n */\r\n le(): void {\r\n this.endianness(\"little\");\r\n }\r\n\r\n ///////////////////////////////\r\n // SIZE //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Size in bytes of the current buffer.\r\n * \r\n * @returns {number} size\r\n */\r\n get length(): number {\r\n return this.size;\r\n }\r\n\r\n /**\r\n * Size in bytes of the current buffer.\r\n * \r\n * @returns {number} size\r\n */\r\n get len(): number {\r\n return this.size;\r\n }\r\n\r\n /**\r\n * Size in bytes of the current buffer.\r\n * \r\n * @returns {number} size\r\n */\r\n get FileSize(): number {\r\n return this.size;\r\n }\r\n\r\n /**\r\n * Size in bits of the current buffer.\r\n * \r\n * @returns {number} size\r\n */\r\n get lengthB(): number {\r\n return this.sizeB;\r\n }\r\n\r\n /**\r\n * Size in bits of the current buffer.\r\n * \r\n * @returns {number} size\r\n */\r\n get FileSizeB(): number {\r\n return this.sizeB;\r\n }\r\n\r\n /**\r\n * Size in bits of the current buffer.\r\n * \r\n * @returns {number} size\r\n */\r\n get lenb(): number {\r\n return this.sizeB;\r\n }\r\n\r\n ///////////////////////////////\r\n // POSITION //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Get the current byte position.\r\n *\r\n * @return {number} current byte position\r\n */\r\n get tell(): number {\r\n return this.offset;\r\n }\r\n\r\n /**\r\n * Get the current byte position.\r\n *\r\n * @return {number} current byte position\r\n */\r\n get FTell(): number {\r\n return this.offset;\r\n }\r\n\r\n /**\r\n * Get the current byte position.\r\n *\r\n * @return {number} current byte position\r\n */\r\n get getOffset(): number {\r\n return this.offset;\r\n }\r\n\r\n /**\r\n * Get the current byte position;\r\n *\r\n * @return {number} current byte position\r\n */\r\n get saveOffset(): number {\r\n return this.offset;\r\n }\r\n\r\n /**\r\n * Get the current byte position;\r\n *\r\n * @return {number} current byte position\r\n */\r\n get off(): number{\r\n return this.offset;\r\n }\r\n\r\n /**\r\n * Get the current bit position (0-7).\r\n *\r\n * @return {number} current bit position\r\n */\r\n get getOffsetBit(): number {\r\n return this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current bit position (0-7).\r\n *\r\n * @return {number} current bit position\r\n */\r\n get tellB(): number {\r\n return this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current bit position (0-7).\r\n *\r\n * @return {number} current bit position\r\n */\r\n get FTellB(): number {\r\n return this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current bit position (0-7).\r\n *\r\n * @return {number} current bit position\r\n */\r\n get offb():number{\r\n return this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current absolute bit position (from start of data).\r\n *\r\n * @return {number} current absolute bit position\r\n */\r\n get getOffsetAbsBit(): number {\r\n return (this.offset * 8) + this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current absolute bit position (from start of data).\r\n *\r\n * @return {number} current bit position\r\n */\r\n get saveOffsetAbsBit(): number {\r\n return (this.offset * 8) + this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current absolute bit position (from start of data).\r\n *\r\n * @return {number} current absolute bit position\r\n */\r\n get tellAbsB(): number {\r\n return (this.offset * 8) + this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current absolute bit position (from start of data).\r\n *\r\n * @return {number} current absolute bit position\r\n */\r\n get saveOffsetBit(): number {\r\n return (this.offset * 8) + this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current absolute bit position (from start of data).\r\n *\r\n * @return {number} current absolute bit position\r\n */\r\n get offab():number{\r\n return (this.offset * 8) + this.bitoffset;\r\n }\r\n\r\n /**\r\n * Size in bytes of current read position to the end\r\n * \r\n * @returns {number} size\r\n */\r\n get remain(): number {\r\n return this.size - this.offset;\r\n }\r\n\r\n /**\r\n * Size in bytes of current read position to the end\r\n * \r\n * @returns {number} size\r\n */\r\n get FEoF(): number {\r\n return this.size - this.offset;\r\n }\r\n\r\n /**\r\n * Size in bits of current read position to the end\r\n * \r\n * @returns {number} size\r\n */\r\n get remainB(): number {\r\n return (this.size * 8) - this.saveOffsetAbsBit;\r\n }\r\n\r\n /**\r\n * Size in bits of current read position to the end\r\n * \r\n * @returns {number} size\r\n */\r\n get FEoFB(): number {\r\n return (this.size * 8) - this.saveOffsetAbsBit;\r\n }\r\n\r\n /**\r\n * Row line of the file (16 bytes per row).\r\n * \r\n * @returns {number} size\r\n */\r\n get getLine(): number {\r\n return Math.abs(Math.floor((this.offset - 1) / 16));\r\n }\r\n\r\n /**\r\n * Row line of the file (16 bytes per row).\r\n * \r\n * @returns {number} size\r\n */\r\n get row(): number {\r\n return Math.abs(Math.floor((this.offset - 1) / 16));\r\n }\r\n\r\n ///////////////////////////////\r\n // FINISHING //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Returns current data.\r\n * \r\n * Note: Will remove all data after current position if ``extendBufferSize`` was set.\r\n * \r\n * Use ``.data`` instead if you want the full buffer data.\r\n * \r\n * @returns {Buffer|Uint8Array} ``Buffer`` or ``Uint8Array``\r\n */\r\n get get(): Buffer | Uint8Array {\r\n if(this.extendBufferSize != 0)\r\n {\r\n this.trim();\r\n }\r\n return this.data;\r\n }\r\n\r\n /**\r\n * Returns current data.\r\n * \r\n * Note: Will remove all data after current position if ``extendBufferSize`` was set.\r\n * \r\n * Use ``.data`` instead if you want the full buffer data.\r\n * \r\n * @returns {Buffer|Uint8Array} ``Buffer`` or ``Uint8Array``\r\n */\r\n get return(): Buffer | Uint8Array {\r\n if(this.extendBufferSize != 0)\r\n {\r\n this.trim();\r\n }\r\n return this.data;\r\n }\r\n\r\n /**\r\n * Creates hex dump string. Will console log or return string if set in options.\r\n * \r\n * @param {object} options \r\n * @param {hexdumpOptions?} options - hex dump options\r\n * @param {number?} options.length - number of bytes to log, default ``192`` or end of data\r\n * @param {number?} options.startByte - byte to start dump (default ``0``)\r\n * @param {boolean?} options.supressUnicode - Supress unicode character preview for even columns.\r\n * @param {boolean?} options.returnString - Returns the hex dump string instead of logging it.\r\n */\r\n hexdump(options: hexdumpOptions = {}): void|string {\r\n return hexDumpBase(this, options);\r\n }\r\n\r\n /**\r\n * Turn hexdump on error off (default on).\r\n */\r\n errorDumpOff(): void {\r\n this.errorDump = false;\r\n }\r\n\r\n /**\r\n * Turn hexdump on error on (default on).\r\n */\r\n errorDumpOn(): void {\r\n this.errorDump = true;\r\n }\r\n\r\n ///////////////////////////////\r\n // STRICTMODE //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Disallows extending data if position is outside of max size.\r\n */\r\n restrict(): void {\r\n this.strict = true;\r\n }\r\n\r\n /**\r\n * Allows extending data if position is outside of max size.\r\n */\r\n unrestrict(): void {\r\n this.strict = false;\r\n }\r\n\r\n /**\r\n * removes data.\r\n */\r\n end(): void {\r\n this.data = undefined;\r\n }\r\n\r\n /**\r\n * removes data.\r\n */\r\n done(): void {\r\n this.data = undefined;\r\n }\r\n\r\n /**\r\n * removes data.\r\n */\r\n finished(): void {\r\n this.data = undefined;\r\n }\r\n\r\n ///////////////////////////////\r\n // FIND //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Searches for byte position of string from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {string} string - String to search for.\r\n */\r\n findString(string: string): number {\r\n return fString(this, string);\r\n }\r\n\r\n /**\r\n * Searches for byte value (can be signed or unsigned) position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {number} value - Number to search for.\r\n * @param {boolean} unsigned - If the number is unsigned (default true)\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findByte(value: number, unsigned?: boolean, endian?: endian): number {\r\n return fNumber(this, value, 8, unsigned == undefined ? true : unsigned, endian);\r\n }\r\n\r\n /**\r\n * Searches for short value (can be signed or unsigned) position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {number} value - Number to search for.\r\n * @param {boolean} unsigned - If the number is unsigned (default true)\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findShort(value: number, unsigned?: boolean, endian?: endian): number {\r\n return fNumber(this, value, 16, unsigned == undefined ? true : unsigned, endian);\r\n }\r\n\r\n /**\r\n * Searches for integer value (can be signed or unsigned) position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {number} value - Number to search for.\r\n * @param {boolean} unsigned - If the number is unsigned (default true)\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findInt(value: number, unsigned?: boolean, endian?: endian): number {\r\n return fNumber(this, value, 32, unsigned == undefined ? true : unsigned, endian);\r\n }\r\n\r\n /**\r\n * Searches for 64 bit value (can be signed or unsigned) position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {BigValue} value - Number to search for.\r\n * @param {boolean} unsigned - If the number is unsigned (default true)\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findInt64(value: BigValue, unsigned?: boolean, endian?: endian): number {\r\n return fBigInt(this, value, unsigned == undefined ? true : unsigned, endian);\r\n }\r\n\r\n /**\r\n * Searches for half float value position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {number} value - Number to search for.\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findHalfFloat(value: number, endian?: endian): number {\r\n return fHalfFloat(this, value, endian);\r\n }\r\n\r\n /**\r\n * Searches for float value position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {number} value - Number to search for.\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findFloat(value: number, endian?: endian): number {\r\n return fFloat(this, value, endian);\r\n }\r\n\r\n /**\r\n * Searches for double float value position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {number} value - Number to search for.\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findDoubleFloat(value: number, endian?: endian): number {\r\n return fDoubleFloat(this, value, endian);\r\n }\r\n\r\n ///////////////////////////////\r\n // MOVE TO //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Aligns current byte position.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} number - Byte to align\r\n */\r\n align(number: number): void {\r\n return align(this, number);\r\n }\r\n\r\n /**\r\n * Reverse aligns current byte position.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} number - Byte to align\r\n */\r\n alignRev(number: number): void {\r\n return alignRev(this, number);\r\n }\r\n\r\n /**\r\n * Offset current byte or bit position.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} bytes - Bytes to skip\r\n * @param {number} bits - Bits to skip\r\n */\r\n skip(bytes: number, bits?: number): void {\r\n return skip(this, bytes, bits);\r\n }\r\n\r\n /**\r\n * Offset current byte or bit position.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} bytes - Bytes to skip\r\n * @param {number} bits - Bits to skip\r\n */\r\n jump(bytes: number, bits?: number): void {\r\n this.skip(bytes, bits);\r\n }\r\n\r\n /**\r\n * Change position directly to address.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} byte - byte to set to\r\n * @param {number} bit - bit to set to\r\n */\r\n FSeek(byte: number, bit?: number): void {\r\n return goto(this, byte, bit)\r\n }\r\n\r\n /**\r\n * Offset current byte or bit position.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} bytes - Bytes to skip\r\n * @param {number} bits - Bits to skip\r\n */\r\n seek(bytes: number, bits?: number): void {\r\n return this.skip(bytes, bits)\r\n }\r\n\r\n /**\r\n * Change position directly to address.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} byte - byte to set to\r\n * @param {number} bit - bit to set to\r\n */\r\n goto(byte: number, bit?: number): void {\r\n return goto(this, byte, bit);\r\n }\r\n\r\n /**\r\n * Change position directly to address.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} byte - byte to set to\r\n * @param {number} bit - bit to set to\r\n */\r\n pointer(byte: number, bit?: number): void {\r\n return this.goto(byte, bit)\r\n }\r\n\r\n /**\r\n * Change position directly to address.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} byte - byte to set to\r\n * @param {number} bit - bit to set to\r\n */\r\n warp(byte: number, bit?: number): void {\r\n return this.goto(byte, bit)\r\n }\r\n\r\n /**\r\n * Set byte and bit position to start of data.\r\n */\r\n rewind(): void {\r\n this.offset = 0;\r\n this.bitoffset = 0;\r\n }\r\n\r\n /**\r\n * Set byte and bit position to start of data.\r\n */\r\n gotoStart(): void {\r\n return this.rewind();\r\n }\r\n\r\n /**\r\n * Set current byte and bit position to end of data.\r\n */\r\n last(): void {\r\n this.offset = this.size;\r\n this.bitoffset = 0;\r\n }\r\n\r\n /**\r\n * Set current byte and bit position to end of data.\r\n */\r\n gotoEnd(): void {\r\n this.offset = this.size;\r\n this.bitoffset = 0;\r\n }\r\n\r\n /**\r\n * Set byte and bit position to start of data.\r\n */\r\n EoF(): void {\r\n this.offset = this.size;\r\n this.bitoffset = 0;\r\n }\r\n\r\n ///////////////////////////////\r\n // REMOVE //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Deletes part of data from start to current byte position unless supplied, returns removed.\r\n * \r\n * Note: Errors in strict mode.\r\n * \r\n * @param {number} startOffset - Start location (default 0)\r\n * @param {number} endOffset - End location (default current position)\r\n * @param {boolean} consume - Move position to end of removed data (default false)\r\n * @returns {Buffer|Uint8Array} Removed data as ``Buffer`` or ``Uint8Array``\r\n */\r\n delete(startOffset?: number, endOffset?: number, consume?: boolean): Buffer | Uint8Array {\r\n return remove(this, startOffset || 0, endOffset || this.offset, consume || false, true);\r\n }\r\n\r\n /**\r\n * Deletes part of data from current byte position to end, returns removed.\r\n * \r\n * Note: Errors in strict mode.\r\n * \r\n * @returns {Buffer|Uint8Array} Removed data as ``Buffer`` or ``Uint8Array``\r\n */\r\n clip(): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.size, false, true);\r\n }\r\n\r\n /**\r\n * Deletes part of data from current byte position to end, returns removed.\r\n * \r\n * Note: Errors in strict mode.\r\n * \r\n * @returns {Buffer|Uint8Array} Removed data as ``Buffer`` or ``Uint8Array``\r\n */\r\n trim(): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.size, false, true);\r\n }\r\n\r\n /**\r\n * Deletes part of data from current byte position to supplied length, returns removed.\r\n * \r\n * Note: Errors in strict mode.\r\n * \r\n * @param {number} length - Length of data in bytes to remove\r\n * @param {boolean} consume - Move position to end of removed data (default false)\r\n * @returns {Buffer|Uint8Array} Removed data as ``Buffer`` or ``Uint8Array``\r\n */\r\n crop(length: number, consume?: boolean): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.offset + (length || 0), consume || false, true);\r\n }\r\n\r\n /**\r\n * Deletes part of data from current position to supplied length, returns removed.\r\n * \r\n * Note: Only works in strict mode.\r\n * \r\n * @param {number} length - Length of data in bytes to remove\r\n * @param {boolean} consume - Move position to end of removed data (default false)\r\n * @returns {Buffer|Uint8Array} Removed data as ``Buffer`` or ``Uint8Array``\r\n */\r\n drop(length: number, consume?: boolean): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.offset + (length || 0), consume || false, true);\r\n }\r\n\r\n /**\r\n * Replaces data in data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to replace in data\r\n * @param {boolean} consume - Move current byte position to end of data (default false)\r\n * @param {number} offset - Offset to add it at (defaults to current position)\r\n */\r\n replace(data: Buffer | Uint8Array, consume?: boolean, offset?: number): void {\r\n return addData(this, data, consume || false, offset || this.offset, true);\r\n }\r\n\r\n /**\r\n * Replaces data in data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to replace in data\r\n * @param {boolean} consume - Move current byte position to end of data (default false)\r\n * @param {number} offset - Offset to add it at (defaults to current position)\r\n */\r\n overwrite(data: Buffer | Uint8Array, consume?: boolean, offset?: number): void {\r\n return addData(this, data, consume || false, offset || this.offset, true);\r\n }\r\n\r\n ///////////////////////////////\r\n // COPY OUT //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Returns part of data from current byte position to end of data unless supplied.\r\n * \r\n * @param {number} startOffset - Start location (default current position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move position to end of lifted data (default false)\r\n * @param {number} fillValue - Byte value to to fill returned data (does NOT fill unless supplied)\r\n * @returns {Buffer|Uint8Array} Selected data as ``Uint8Array`` or ``Buffer``\r\n */\r\n lift(startOffset?: number, endOffset?: number, consume?: boolean, fillValue?: number): Buffer | Uint8Array {\r\n return remove(this, startOffset || this.offset, endOffset || this.size, consume || false, false, fillValue);\r\n }\r\n\r\n /**\r\n * Returns part of data from current byte position to end of data unless supplied.\r\n * \r\n * @param {number} startOffset - Start location (default current position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move position to end of lifted data (default false)\r\n * @param {number} fillValue - Byte value to to fill returned data (does NOT fill unless supplied)\r\n * @returns {Buffer|Uint8Array} Selected data as ``Uint8Array`` or ``Buffer``\r\n */\r\n fill(startOffset?: number, endOffset?: number, consume?: boolean, fillValue?: number): Buffer | Uint8Array {\r\n return remove(this, startOffset || this.offset, endOffset || this.size, consume || false, false, fillValue);\r\n }\r\n\r\n /**\r\n * Extract data from current position to length supplied.\r\n * \r\n * Note: Does not affect supplied data.\r\n * \r\n * @param {number} length - Length of data in bytes to copy from current offset\r\n * @param {number} consume - Moves offset to end of length\r\n * @returns {Buffer|Uint8Array} Selected data as ``Uint8Array`` or ``Buffer``\r\n */\r\n extract(length: number, consume?: boolean): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.offset + (length || 0), consume || false, false);\r\n }\r\n\r\n /**\r\n * Extract data from current position to length supplied.\r\n * \r\n * Note: Does not affect supplied data.\r\n * \r\n * @param {number} length - Length of data in bytes to copy from current offset\r\n * @param {number} consume - Moves offset to end of length\r\n * @returns {Buffer|Uint8Array} Selected data as ``Uint8Array`` or ``Buffer``\r\n */\r\n slice(length: number, consume?: boolean): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.offset + (length || 0), consume || false, false);\r\n }\r\n\r\n /**\r\n * Extract data from current position to length supplied.\r\n * \r\n * Note: Does not affect supplied data.\r\n * \r\n * @param {number} length - Length of data in bytes to copy from current offset\r\n * @param {number} consume - Moves offset to end of length\r\n * @returns {Buffer|Uint8Array} Selected data as ``Uint8Array`` or ``Buffer``\r\n */\r\n wrap(length: number, consume?: boolean): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.offset + (length || 0), consume || false, false);\r\n }\r\n\r\n ///////////////////////////////\r\n // INSERT //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Inserts data into data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to add to data\r\n * @param {boolean} consume - Move current byte position to end of data (default false)\r\n * @param {number} offset - Byte position to add at (defaults to current position)\r\n */\r\n insert(data: Buffer | Uint8Array, consume?: boolean, offset?: number): void {\r\n return addData(this, data, consume || false, offset || this.offset, false);\r\n }\r\n\r\n /**\r\n * Inserts data into data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to add to data\r\n * @param {boolean} consume - Move current byte position to end of data (default false)\r\n * @param {number} offset - Byte position to add at (defaults to current position)\r\n */\r\n place(data: Buffer | Uint8Array, consume?: boolean, offset?: number): void {\r\n return addData(this, data, consume || false, offset || this.offset, false);\r\n }\r\n\r\n /**\r\n * Adds data to start of supplied data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to add to data\r\n * @param {boolean} consume - Move current write position to end of data (default false)\r\n */\r\n unshift(data: Buffer | Uint8Array, consume?: boolean): void {\r\n return addData(this, data, consume || false, 0, false);\r\n }\r\n\r\n /**\r\n * Adds data to start of supplied data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to add to data\r\n * @param {boolean} consume - Move current write position to end of data (default false)\r\n */\r\n prepend(data: Buffer | Uint8Array, consume?: boolean): void {\r\n return addData(this, data, consume || false, 0, false);\r\n }\r\n\r\n /**\r\n * Adds data to end of supplied data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to add to data\r\n * @param {boolean} consume - Move current write position to end of data (default false)\r\n */\r\n push(data: Buffer | Uint8Array, consume?: boolean): void {\r\n return addData(this, data, consume || false, this.size, false);\r\n }\r\n\r\n /**\r\n * Adds data to end of supplied data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to add to data\r\n * @param {boolean} consume - Move current write position to end of data (default false)\r\n */\r\n append(data: Buffer | Uint8Array, consume?: boolean): void {\r\n return addData(this, data, consume || false, this.size, false);\r\n }\r\n\r\n ///////////////////////////////\r\n // MATH //\r\n ///////////////////////////////\r\n\r\n /**\r\n * XOR data.\r\n * \r\n * @param {number|string|Uint8Array|Buffer} xorKey - Value, string or array to XOR\r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n xor(xorKey: number | string | Uint8Array | Buffer, startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n var XORKey: any = xorKey;\r\n if (typeof xorKey == \"number\")\r\n {\r\n //pass\r\n } \r\n else if (typeof xorKey == \"string\") \r\n {\r\n xorKey = new TextEncoder().encode(xorKey);\r\n } \r\n else if (this.isBufferOrUint8Array(XORKey)) \r\n {\r\n //pass\r\n } \r\n else \r\n {\r\n throw new Error(\"XOR must be a number, string, Uint8Array or Buffer\");\r\n }\r\n return XOR(this, xorKey, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * XOR data.\r\n * \r\n * @param {number|string|Uint8Array|Buffer} xorKey - Value, string or array to XOR\r\n * @param {number} length - Length in bytes to XOR from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n xorThis(xorKey: number | string | Uint8Array | Buffer, length?: number, consume?: boolean): void {\r\n var Length: number = length || 1;\r\n var XORKey: any = xorKey;\r\n if (typeof xorKey == \"number\") \r\n {\r\n Length = length || 1;\r\n } \r\n else if (typeof xorKey == \"string\") \r\n {\r\n const encoder = new TextEncoder().encode(xorKey);\r\n XORKey = encoder;\r\n Length = length || encoder.length;\r\n } \r\n else if (this.isBufferOrUint8Array(XORKey)) \r\n {\r\n Length = length || xorKey.length;\r\n } \r\n else \r\n {\r\n throw new Error(\"XOR must be a number, string, Uint8Array or Buffer\");\r\n }\r\n return XOR(this, XORKey, this.offset, this.offset + Length, consume || false);\r\n }\r\n\r\n /**\r\n * OR data\r\n * \r\n * @param {number|string|Uint8Array|Buffer} orKey - Value, string or array to OR\r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n or(orKey: number | string | Uint8Array | Buffer, startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n var ORKey: any = orKey;\r\n if (typeof orKey == \"number\") \r\n {\r\n //pass\r\n } \r\n else if (typeof orKey == \"string\") \r\n {\r\n orKey = new TextEncoder().encode(orKey);\r\n } \r\n else if (this.isBufferOrUint8Array(ORKey)) \r\n {\r\n //pass\r\n } \r\n else \r\n {\r\n throw new Error(\"OR must be a number, string, Uint8Array or Buffer\");\r\n }\r\n return OR(this, orKey, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * OR data.\r\n * \r\n * @param {number|string|Uint8Array|Buffer} orKey - Value, string or array to OR\r\n * @param {number} length - Length in bytes to OR from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n orThis(orKey: number | string | Uint8Array | Buffer, length?: number, consume?: boolean): void {\r\n var Length: number = length || 1;\r\n var ORKey: any = orKey;\r\n if (typeof orKey == \"number\") \r\n {\r\n Length = length || 1;\r\n } \r\n else if (typeof orKey == \"string\") \r\n {\r\n const encoder = new TextEncoder().encode(orKey);\r\n ORKey = encoder;\r\n Length = length || encoder.length;\r\n } \r\n else if (this.isBufferOrUint8Array(ORKey)) \r\n {\r\n Length = length || orKey.length\r\n } \r\n else \r\n {\r\n throw new Error(\"OR must be a number, string, Uint8Array or Buffer\");\r\n }\r\n return OR(this, ORKey, this.offset, this.offset + Length, consume || false);\r\n }\r\n\r\n /**\r\n * AND data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} andKey - Value, string or array to AND\r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n and(andKey: number | string | Array<number> | Buffer, startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n var ANDKey: any = andKey;\r\n if (typeof ANDKey == \"number\") \r\n {\r\n //pass\r\n }\r\n else if (typeof ANDKey == \"string\") \r\n {\r\n ANDKey = new TextEncoder().encode(ANDKey);\r\n } \r\n else if (typeof ANDKey == \"object\") \r\n {\r\n //pass\r\n } \r\n else \r\n {\r\n throw new Error(\"AND must be a number, string, number array or Buffer\");\r\n }\r\n return AND(this, andKey, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * AND data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} andKey - Value, string or array to AND\r\n * @param {number} length - Length in bytes to AND from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n andThis(andKey: number | string | Array<number> | Buffer, length?: number, consume?: boolean): void {\r\n var Length: number = length || 1;\r\n var ANDKey: any = andKey;\r\n if (typeof andKey == \"number\") \r\n {\r\n Length = length || 1;\r\n } \r\n else if (typeof andKey == \"string\") \r\n {\r\n const encoder = new TextEncoder().encode(andKey);\r\n ANDKey = encoder;\r\n Length = length || encoder.length;\r\n } \r\n else if (typeof andKey == \"object\") \r\n {\r\n Length = length || andKey.length;\r\n } \r\n else \r\n {\r\n throw new Error(\"AND must be a number, string, number array or Buffer\");\r\n }\r\n return AND(this, ANDKey, this.offset, this.offset + Length, consume || false);\r\n }\r\n\r\n /**\r\n * Add value to data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} addKey - Value, string or array to add to data\r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n add(addKey: number | string | Array<number> | Buffer, startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n var addedKey: any = addKey;\r\n if (typeof addedKey == \"number\") {\r\n //pass\r\n } \r\n else if (typeof addedKey == \"string\") \r\n {\r\n addedKey = new TextEncoder().encode(addedKey);\r\n } \r\n else if (typeof addedKey == \"object\") \r\n {\r\n //pass\r\n } \r\n else \r\n {\r\n throw new Error(\"Add key must be a number, string, number array or Buffer\");\r\n }\r\n return ADD(this, addedKey, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * Add value to data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} addKey - Value, string or array to add to data\r\n * @param {number} length - Length in bytes to add from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n addThis(addKey: number | string | Array<number> | Buffer, length?: number, consume?: boolean): void {\r\n var Length: number = length || 1;\r\n var AddedKey: any = addKey;\r\n if (typeof AddedKey == \"number\") \r\n {\r\n Length = length || 1;\r\n } else if (typeof AddedKey == \"string\") \r\n {\r\n const encoder = new TextEncoder().encode(AddedKey);\r\n AddedKey = encoder;\r\n Length = length || encoder.length;\r\n } \r\n else if (typeof AddedKey == \"object\") \r\n {\r\n Length = length || AddedKey.length;\r\n } \r\n else \r\n {\r\n throw new Error(\"Add key must be a number, string, number array or Buffer\");\r\n }\r\n return ADD(this, AddedKey, this.offset, this.offset + Length, consume || false);\r\n }\r\n\r\n /**\r\n * Not data.\r\n * \r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n not(startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n return NOT(this, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * Not data.\r\n * \r\n * @param {number} length - Length in bytes to NOT from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n notThis(length?: number, consume?: boolean): void {\r\n return NOT(this, this.offset, this.offset + (length || 1), consume || false);\r\n }\r\n\r\n /**\r\n * Left shift data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} shiftKey - Value, string or array to left shift data\r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n lShift(shiftKey: number | string | Array<number> | Buffer, startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n var lShiftKey: any = shiftKey;\r\n if (typeof lShiftKey == \"number\") \r\n {\r\n //pass\r\n } \r\n else if (typeof lShiftKey == \"string\") \r\n {\r\n lShiftKey = new TextEncoder().encode(lShiftKey);\r\n } \r\n else if (typeof lShiftKey == \"object\") \r\n {\r\n //pass\r\n } \r\n else \r\n {\r\n throw new Error(\"Left shift must be a number, string, number array or Buffer\");\r\n }\r\n return LSHIFT(this, lShiftKey, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * Left shift data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} shiftKey - Value, string or array to left shift data\r\n * @param {number} length - Length in bytes to left shift from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n lShiftThis(shiftKey: number | string | Array<number> | Buffer, length?: number, consume?: boolean): void {\r\n var Length: number = length || 1;\r\n var lShiftKey: any = shiftKey;\r\n if (typeof lShiftKey == \"number\") \r\n {\r\n Length = length || 1;\r\n } \r\n else if (typeof lShiftKey == \"string\") \r\n {\r\n const encoder = new TextEncoder().encode(lShiftKey);\r\n lShiftKey = encoder;\r\n Length = length || encoder.length;\r\n } else if (typeof lShiftKey == \"object\") \r\n {\r\n Length = length || lShiftKey.length;\r\n } \r\n else \r\n {\r\n throw new Error(\"Left shift must be a number, string, number array or Buffer\");\r\n }\r\n return LSHIFT(this, shiftKey, this.offset, this.offset + Length, consume || false);\r\n }\r\n\r\n /**\r\n * Right shift data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} shiftKey - Value, string or array to right shift data\r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n rShift(shiftKey: number | string | Array<number> | Buffer, startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n var rShiftKey: any = shiftKey;\r\n if (typeof rShiftKey == \"number\") \r\n {\r\n //pass\r\n } \r\n else if (typeof rShiftKey == \"string\") \r\n {\r\n rShiftKey = new TextEncoder().encode(rShiftKey);\r\n } \r\n else if (typeof rShiftKey == \"object\")\r\n {\r\n //pass\r\n } else {\r\n throw new Error(\"Right shift must be a number, string, number array or Buffer\");\r\n }\r\n return RSHIFT(this, rShiftKey, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * Right shift data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} shiftKey - Value, string or array to right shift data\r\n * @param {number} length - Length in bytes to right shift from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n rShiftThis(shiftKey: number | string | Array<number> | Buffer, length?: number, consume?: boolean): void {\r\n var Length: number = length || 1;\r\n var lShiftKey: any = shiftKey;\r\n if (typeof lShiftKey == \"number\") \r\n {\r\n Length = length || 1;\r\n } \r\n else if (typeof lShiftKey == \"string\") \r\n {\r\n const encoder = new TextEncoder().encode(lShiftKey);\r\n lShiftKey = encoder;\r\n Length = length || encoder.length;\r\n } \r\n else if (typeof lShiftKey == \"object\") \r\n {\r\n Length = length || lShiftKey.length;\r\n } \r\n else \r\n {\r\n throw new Error(\"Right shift must be a number, string, number array or Buffer\");\r\n }\r\n return RSHIFT(this, lShiftKey, this.offset, this.offset + Length, consume || false);\r\n }\r\n\r\n ///////////////////////////////\r\n // BIT READER //\r\n ///////////////////////////////\r\n\r\n /**\r\n *\r\n * Write bits, must have at least value and number of bits.\r\n * \r\n * ``Note``: When returning to a byte write, remaining bits are skipped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - number of bits to write\r\n * @param {boolean} unsigned - if value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeBit(value: number, bits: number, unsigned?: boolean, endian?: endian): void {\r\n return wbit(this, value, bits, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @returns number\r\n */\r\n writeUBitBE(value: number, bits: number): void{\r\n return wbit(this, value, bits, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns number\r\n */\r\n writeBitBE(value: number, bits: number, unsigned?: boolean): void{\r\n return wbit(this, value, bits, unsigned, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @returns number\r\n */\r\n writeUBitLE(value: number,bits: number): void{\r\n return wbit(this, value, bits, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns number\r\n */\r\n writeBitLE(value: number,bits: number, unsigned?: boolean): void{\r\n return wbit(this, value, bits, unsigned, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n readBit(bits?: number, unsigned?: boolean, endian?: endian): number {\r\n return rbit(this, bits, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n readUBitBE(bits: number): number {\r\n return this.readBit(bits, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n readBitBE(bits: number, unsigned?: boolean): number {\r\n return this.readBit(bits, unsigned, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n readUBitLE(bits: number): number {\r\n return this.readBit(bits, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n readBitLE(bits: number, unsigned?: boolean): number {\r\n return this.readBit(bits, unsigned, \"little\");\r\n }\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @param {boolean} unsigned - if value is unsigned or not\r\n * @returns {number}\r\n */\r\n readByte(unsigned?: boolean): number {\r\n return rbyte(this, unsigned);\r\n }\r\n\r\n /**\r\n * Read multiple bytes.\r\n * \r\n * @param {number} amount - amount of bytes to read\r\n * @param {boolean} unsigned - if value is unsigned or not\r\n * @returns {number[]}\r\n */\r\n readBytes(amount:number, unsigned?: boolean): number[] {\r\n return Array.from({length: amount}, () => rbyte(this, unsigned));\r\n }\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n * @param {boolean} unsigned - if the value is unsigned\r\n */\r\n writeByte(value: number, unsigned?: boolean): void {\r\n return wbyte(this, value, unsigned);\r\n }\r\n\r\n /**\r\n * Write multiple bytes.\r\n * \r\n * @param {number[]} values - array of values as int\r\n * @param {boolean} unsigned - if the value is unsigned\r\n */\r\n writeBytes(values: number[], unsigned?: boolean): void {\r\n for (let i = 0; i < values.length; i++) {\r\n wbyte(this, values[i], unsigned);\r\n }\r\n }\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeUByte(value: number): void {\r\n return wbyte(this, value, true);\r\n }\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n readUByte(): number {\r\n return this.readByte(true);\r\n }\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @param {boolean} unsigned - if value is unsigned or not\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n readInt16(unsigned?: boolean, endian?: endian): number {\r\n return rint16(this, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeInt16(value: number, unsigned?: boolean, endian?: endian): void {\r\n return wint16(this, value, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeUInt16(value: number, endian?: endian): void {\r\n return wint16(this, value, true, endian);\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeUInt16BE(value: number): void {\r\n return this.writeInt16(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeUInt16LE(value: number): void {\r\n return this.writeInt16(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeInt16LE(value: number): void {\r\n return this.writeInt16(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @param {endian} endian - ``big`` or ``little``\r\n * \r\n * @returns {number}\r\n */\r\n readUInt16(endian?: endian): number {\r\n return this.readInt16(true, endian);\r\n }\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n readUInt16LE(): number {\r\n return this.readInt16(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n readInt16LE(): number {\r\n return this.readInt16(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n readUInt16BE(): number {\r\n return this.readInt16(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n readInt16BE(): number {\r\n return this.readInt16(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n readHalfFloat(endian?: endian): number {\r\n return rhalffloat(this, endian);\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeHalfFloat(value: number, endian?: endian): void {\r\n return whalffloat(this, value, endian);\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n writeHalfFloatBE(value: number): void{\r\n return this.writeHalfFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n writeHalfFloatLE(value: number): void{\r\n return this.writeHalfFloat(value, \"little\");\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n readHalfFloatBE(): number {\r\n return this.readHalfFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n readHalfFloatLE(): number {\r\n return this.readHalfFloat(\"little\");\r\n }\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @param {boolean} unsigned - if value is unsigned or not\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n readInt32(unsigned?: boolean, endian?: endian): number {\r\n return rint32(this, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeInt32(value: number, unsigned?: boolean, endian?: endian): void {\r\n return wint32(this, value, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeUInt32(value: number, endian?: endian): void {\r\n return wint32(this, value, true, endian);\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeInt32LE(value: number): void {\r\n return this.writeInt32(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeUInt32LE(value: number): void {\r\n return this.writeInt32(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeInt32BE(value: number): void {\r\n return this.writeInt32(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n readInt32BE(): number {\r\n return this.readInt32(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n readUInt32BE(): number {\r\n return this.readInt32(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n readInt32LE(): number {\r\n return this.readInt32(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n readUInt32LE(): number {\r\n return this.readInt32(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n readUInt(): number {\r\n return this.readInt32(true);\r\n }\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n readFloat(endian?: endian): number {\r\n return rfloat(this, endian);\r\n }\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeFloat(value: number, endian?: endian): void {\r\n return wfloat(this, value, endian);\r\n }\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n writeFloatLE(value: number): void{\r\n return this.writeFloat(value, \"little\");\r\n }\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n writeFloatBE(value: number): void{\r\n return this.writeFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n readFloatBE(): number {\r\n return this.readFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n readFloatLE(): number {\r\n return this.readFloat(\"little\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @param {boolean} unsigned - if value is unsigned or not\r\n * @param {endian?} endian - ``big`` or ``little``\r\n * @returns {bigint}\r\n */\r\n readInt64(unsigned?: boolean, endian?: endian): bigint {\r\n return rint64(this, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeInt64(value: BigValue, unsigned?: boolean, endian?: endian): void {\r\n return wint64(this, value, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeUInt64(value: BigValue, endian?: endian) {\r\n return this.writeInt64(value, true, endian);\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n writeInt64LE(value: BigValue): void {\r\n return this.writeInt64(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n writeUInt64LE(value: BigValue): void {\r\n return this.writeInt64(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n writeInt64BE(value: BigValue): void {\r\n return this.writeInt64(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n writeUInt64BE(value: BigValue): void {\r\n return this.writeInt64(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n readUInt64(): bigint {\r\n return this.readInt64(true);\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n readInt64BE(): bigint {\r\n return this.readInt64(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n readUInt64BE(): bigint {\r\n return this.readInt64(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n readInt64LE(): bigint {\r\n return this.readInt64(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n readUInt64LE(): bigint {\r\n return this.readInt64(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n readDoubleFloat(endian?: endian): number {\r\n return rdfloat(this, endian);\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeDoubleFloat(value: number, endian?: endian): void {\r\n return wdfloat(this, value, endian);\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n writeDoubleFloatBE(value: number): void{\r\n return this.writeDoubleFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n writeDoubleFloatLE(value: number): void{\r\n return this.writeDoubleFloat(value, \"little\");\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n readDoubleFloatBE(): number {\r\n return this.readDoubleFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n readDoubleFloatLE(): number {\r\n return this.readDoubleFloat(\"little\");\r\n }\r\n\r\n /**\r\n * Reads string, use options object for different types.\r\n * \r\n * @param {stringOptions} options \r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthReadSize\"]?} options.lengthReadSize - for pascal strings. 1, 2 or 4 byte length read size\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n * @return {Promise<string>}\r\n */\r\n readString(options?: stringOptions): string {\r\n return rstring(this, options);\r\n }\r\n\r\n /**\r\n * Writes string, use options object for different types.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions?} options\r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthWriteSize\"]?} options.lengthWriteSize - for pascal strings. 1, 2 or 4 byte length write size\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n */\r\n writeString(string: string, options?: stringOptions): void {\r\n return wstring(this, string, options);\r\n }\r\n};","import {\r\n stringOptions,\r\n endian\r\n} from \"../common.js\";\r\nimport { BiBase } from '../core/BiBase.js';\r\nimport { BiBaseStreamer } from '../core/BiBaseStream.js';\r\n\r\n\r\nexport interface BinaryAliasReader extends BiBase {\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n bit(bits: number, unsigned?: boolean, endian?: endian): number;\r\n\r\n /**\r\n * Bit field reader. Unsigned read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n ubit(bits: number, endian?: endian): number;\r\n\r\n /**\r\n * Bit field reader. Unsigned big endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n ubitbe(bits: number): number;\r\n\r\n /**\r\n * Bit field reader. Big endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitbe(bits: number, unsigned?: boolean): number;\r\n\r\n /**\r\n * Bit field reader. Unsigned little endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n ubitle(bits: number): number;\r\n\r\n /**\r\n * Bit field reader. Little endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitle(bits: number, unsigned?: boolean): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32be(): number;\r\n\r\n //\r\n // byte read\r\n //\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @returns {number}\r\n */\r\n get byte(): number;\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @returns {number}\r\n */\r\n get int8(): number;\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n get uint8(): number;\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n get ubyte(): number;\r\n\r\n //\r\n //short16 read\r\n //\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get int16(): number;\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get short(): number;\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get word(): number;\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16(): number;\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get ushort(): number;\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get uword(): number;\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16le(): number;\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get ushortle(): number;\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uwordle(): number;\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get int16le(): number;\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get shortle(): number;\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get wordle(): number;\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16be(): number;\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get ushortbe(): number;\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uwordbe(): number;\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get int16be(): number;\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get shortbe(): number;\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get wordbe(): number;\r\n\r\n //\r\n //half float read\r\n //\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloat(): number;\r\n\r\n /**\r\n * Read half float\r\n * \r\n * @returns {number}\r\n */\r\n get half(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloatbe(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halfbe(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloatle(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halfle(): number;\r\n\r\n //\r\n //int read\r\n //\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int(): number;\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get double(): number;\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32(): number;\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get long(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udouble(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulong(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get intbe(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get doublebe(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32be(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get longbe(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uintbe(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udoublebe(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32be(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulongbe(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get intle(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get doublele(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32le(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get longle(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uintle(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udoublele(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32le(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulongle(): number;\r\n\r\n //\r\n //float read\r\n //\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get float(): number;\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get floatbe(): number;\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get floatle(): number;\r\n\r\n //\r\n //int64 reader\r\n //\r\n\r\n /**\r\n * Read signed 64 bit integer\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigint(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quad(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigint(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquad(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64be(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigintbe(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quadbe(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64be(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigintbe(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquadbe(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64le(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigintle(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quadle(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64le(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigintle(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquadle(): bigint;\r\n\r\n //\r\n //doublefloat reader\r\n //\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloat(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloat(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloatebe(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloatbe(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloatle(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloatle(): number;\r\n\r\n //\r\n //string reader\r\n //\r\n\r\n /**\r\n * Reads string, use options object for different types.\r\n * \r\n * @param {stringOptions} options \r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthReadSize\"]?} options.lengthReadSize - for pascal strings. 1, 2 or 4 byte length read size\r\n * @param {stringOptions[\"stripNull\"]?} options.stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n * @return {string}\r\n */\r\n string(options?: stringOptions): string;\r\n\r\n /**\r\n * Reads string using setting from .strSettings\r\n * \r\n * Default is ``utf-8``\r\n * \r\n * @return {string}\r\n */\r\n get str(): string;\r\n\r\n /**\r\n * Reads UTF-8 (C) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf8string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-8 (C) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n cstring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads ANSI string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n ansistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param ;\r\n */\r\n utf16string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n unistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf16stringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n unistringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf16stringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n unistringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string.\r\n * \r\n * @param {stringOptions[\"lengthReadSize\"]} lengthReadSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring1le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring1be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring2le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring2be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring4le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring4be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string.\r\n * \r\n * @param {stringOptions[\"lengthReadSize\"]} lengthReadSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 1 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring2le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring2be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring4be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring4le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n};\r\nexport interface BinaryAliasReaderStreamer extends BiBaseStreamer {\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n bit(bits: number, unsigned?: boolean, endian?: endian): number;\r\n\r\n /**\r\n * Bit field reader. Unsigned read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n ubit(bits: number, endian?: endian): number;\r\n\r\n /**\r\n * Bit field reader. Unsigned big endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n ubitbe(bits: number): number;\r\n\r\n /**\r\n * Bit field reader. Big endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitbe(bits: number, unsigned?: boolean): number;\r\n\r\n /**\r\n * Bit field reader. Unsigned little endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n ubitle(bits: number): number;\r\n\r\n /**\r\n * Bit field reader. Little endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitle(bits: number, unsigned?: boolean): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32be(): number;\r\n\r\n //\r\n // byte read\r\n //\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @returns {number}\r\n */\r\n get byte(): number;\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @returns {number}\r\n */\r\n get int8(): number;\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n get uint8(): number;\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n get ubyte(): number;\r\n\r\n //\r\n //short16 read\r\n //\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get int16(): number;\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get short(): number;\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get word(): number;\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16(): number;\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get ushort(): number;\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get uword(): number;\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16le(): number;\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get ushortle(): number;\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uwordle(): number;\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get int16le(): number;\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get shortle(): number;\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get wordle(): number;\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16be(): number;\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get ushortbe(): number;\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uwordbe(): number;\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get int16be(): number;\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get shortbe(): number;\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get wordbe(): number;\r\n\r\n //\r\n //half float read\r\n //\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloat(): number;\r\n\r\n /**\r\n * Read half float\r\n * \r\n * @returns {number}\r\n */\r\n get half(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloatbe(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halfbe(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloatle(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halfle(): number;\r\n\r\n //\r\n //int read\r\n //\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int(): number;\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get double(): number;\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32(): number;\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get long(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udouble(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulong(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get intbe(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get doublebe(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32be(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get longbe(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uintbe(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udoublebe(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32be(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulongbe(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get intle(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get doublele(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32le(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get longle(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uintle(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udoublele(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32le(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulongle(): number;\r\n\r\n //\r\n //float read\r\n //\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get float(): number;\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get floatbe(): number;\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get floatle(): number;\r\n\r\n //\r\n //int64 reader\r\n //\r\n\r\n /**\r\n * Read signed 64 bit integer\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigint(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quad(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigint(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquad(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64be(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigintbe(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quadbe(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64be(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigintbe(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquadbe(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64le(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigintle(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quadle(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64le(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigintle(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquadle(): bigint;\r\n\r\n //\r\n //doublefloat reader\r\n //\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloat(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloat(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloatebe(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloatbe(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloatle(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloatle(): number;\r\n\r\n //\r\n //string reader\r\n //\r\n\r\n /**\r\n * Reads string, use options object for different types.\r\n * \r\n * @param {stringOptions} options \r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthReadSize\"]?} options.lengthReadSize - for pascal strings. 1, 2 or 4 byte length read size\r\n * @param {stringOptions[\"stripNull\"]?} options.stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n * @return {string}\r\n */\r\n string(options?: stringOptions): string;\r\n\r\n /**\r\n * Reads string using setting from .strSettings\r\n * \r\n * Default is ``utf-8``\r\n * \r\n * @return {string}\r\n */\r\n get str(): string;\r\n\r\n /**\r\n * Reads UTF-8 (C) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf8string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-8 (C) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n cstring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads ANSI string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n ansistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param ;\r\n */\r\n utf16string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n unistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf16stringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n unistringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf16stringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n unistringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string.\r\n * \r\n * @param {stringOptions[\"lengthReadSize\"]} lengthReadSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring1le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring1be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring2le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring2be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring4le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring4be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string.\r\n * \r\n * @param {stringOptions[\"lengthReadSize\"]} lengthReadSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 1 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring2le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring2be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring4be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring4le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n};\r\n\r\nexport function applyBinaryAliasReader<T extends new (...args: any[]) => any>(Base: T) {\r\n return class extends Base {\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n //\r\n // Bit Aliases\r\n //\r\n\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n bit(bits: number, unsigned?: boolean, endian?: endian): number {\r\n return this.readBit(bits, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Bit field reader. Unsigned read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n ubit(bits: number, endian?: endian): number {\r\n return this.readBit(bits, true, endian);\r\n }\r\n\r\n /**\r\n * Bit field reader. Unsigned big endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n ubitbe(bits: number): number {\r\n return this.bit(bits, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Big endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitbe(bits: number, unsigned?: boolean): number {\r\n return this.bit(bits, unsigned, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Unsigned little endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n ubitle(bits: number): number {\r\n return this.bit(bits, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Little endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitle(bits: number, unsigned?: boolean): number {\r\n return this.bit(bits, unsigned, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1(): number {\r\n return this.bit(1);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1le(): number {\r\n return this.bit(1, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1be(): number {\r\n return this.bit(1, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1(): number {\r\n return this.bit(1, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1le(): number {\r\n return this.bit(1, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1be(): number {\r\n return this.bit(1, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2(): number {\r\n return this.bit(2);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2le(): number {\r\n return this.bit(2, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2be(): number {\r\n return this.bit(2, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2(): number {\r\n return this.bit(2, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2le(): number {\r\n return this.bit(2, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2be(): number {\r\n return this.bit(2, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3(): number {\r\n return this.bit(3);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3le(): number {\r\n return this.bit(3, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3be(): number {\r\n return this.bit(3, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3(): number {\r\n return this.bit(3, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3le(): number {\r\n return this.bit(3, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3be(): number {\r\n return this.bit(3, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4(): number {\r\n return this.bit(4);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4le(): number {\r\n return this.bit(4, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4be(): number {\r\n return this.bit(4, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4(): number {\r\n return this.bit(4, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4le(): number {\r\n return this.bit(4, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4be(): number {\r\n return this.bit(4, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5(): number {\r\n return this.bit(5);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5le(): number {\r\n return this.bit(5, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5be(): number {\r\n return this.bit(5, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5(): number {\r\n return this.bit(5, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5le(): number {\r\n return this.bit(5, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5be(): number {\r\n return this.bit(5, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6(): number {\r\n return this.bit(6);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6le(): number {\r\n return this.bit(6, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6be(): number {\r\n return this.bit(6, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6(): number {\r\n return this.bit(6, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6le(): number {\r\n return this.bit(6, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6be(): number {\r\n return this.bit(6, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7(): number {\r\n return this.bit(7);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7le(): number {\r\n return this.bit(7, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7be(): number {\r\n return this.bit(7, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7(): number {\r\n return this.bit(7, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7le(): number {\r\n return this.bit(7, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7be(): number {\r\n return this.bit(7, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8(): number {\r\n return this.bit(8);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8le(): number {\r\n return this.bit(8, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8be(): number {\r\n return this.bit(8, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8(): number {\r\n return this.bit(8, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8le(): number {\r\n return this.bit(8, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8be(): number {\r\n return this.bit(8, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9(): number {\r\n return this.bit(9);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9le(): number {\r\n return this.bit(9, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9be(): number {\r\n return this.bit(9, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9(): number {\r\n return this.bit(9, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9le(): number {\r\n return this.bit(9, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9be(): number {\r\n return this.bit(9, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10(): number {\r\n return this.bit(10);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10le(): number {\r\n return this.bit(10, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10be(): number {\r\n return this.bit(10, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10(): number {\r\n return this.bit(10, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10le(): number {\r\n return this.bit(10, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10be(): number {\r\n return this.bit(10, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11(): number {\r\n return this.bit(11);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11le(): number {\r\n return this.bit(11, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11be(): number {\r\n return this.bit(11, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11(): number {\r\n return this.bit(11, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11le(): number {\r\n return this.bit(11, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11be(): number {\r\n return this.bit(11, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12(): number {\r\n return this.bit(12);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12le(): number {\r\n return this.bit(12, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12be(): number {\r\n return this.bit(12, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12(): number {\r\n return this.bit(12, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12le(): number {\r\n return this.bit(12, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12be(): number {\r\n return this.bit(12, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13(): number {\r\n return this.bit(13);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13le(): number {\r\n return this.bit(13, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13be(): number {\r\n return this.bit(13, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13(): number {\r\n return this.bit(13, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13le(): number {\r\n return this.bit(13, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13be(): number {\r\n return this.bit(13, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14(): number {\r\n return this.bit(14);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14le(): number {\r\n return this.bit(14, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14be(): number {\r\n return this.bit(14, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14(): number {\r\n return this.bit(14, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14le(): number {\r\n return this.bit(14, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14be(): number {\r\n return this.bit(14, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15(): number {\r\n return this.bit(15);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15le(): number {\r\n return this.bit(15, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15be(): number {\r\n return this.bit(15, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15(): number {\r\n return this.bit(15, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15le(): number {\r\n return this.bit(15, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15be(): number {\r\n return this.bit(15, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16(): number {\r\n return this.bit(16);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16le(): number {\r\n return this.bit(16, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16be(): number {\r\n return this.bit(16, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16(): number {\r\n return this.bit(16, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16le(): number {\r\n return this.bit(16, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16be(): number {\r\n return this.bit(16, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17(): number {\r\n return this.bit(17);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17le(): number {\r\n return this.bit(17, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17be(): number {\r\n return this.bit(17, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17(): number {\r\n return this.bit(17, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17le(): number {\r\n return this.bit(17, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17be(): number {\r\n return this.bit(17, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18(): number {\r\n return this.bit(18);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18le(): number {\r\n return this.bit(18, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18be(): number {\r\n return this.bit(18, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18(): number {\r\n return this.bit(18, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18le(): number {\r\n return this.bit(18, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18be(): number {\r\n return this.bit(18, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19(): number {\r\n return this.bit(19);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19le(): number {\r\n return this.bit(19, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19be(): number {\r\n return this.bit(19, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19(): number {\r\n return this.bit(19, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19le(): number {\r\n return this.bit(19, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19be(): number {\r\n return this.bit(19, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20(): number {\r\n return this.bit(20);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20le(): number {\r\n return this.bit(20, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20be(): number {\r\n return this.bit(20, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20(): number {\r\n return this.bit(20, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20le(): number {\r\n return this.bit(20, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20be(): number {\r\n return this.bit(20, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21(): number {\r\n return this.bit(21);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21le(): number {\r\n return this.bit(21, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21be(): number {\r\n return this.bit(21, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21(): number {\r\n return this.bit(21, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21le(): number {\r\n return this.bit(21, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21be(): number {\r\n return this.bit(21, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22(): number {\r\n return this.bit(22);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22le(): number {\r\n return this.bit(22, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22be(): number {\r\n return this.bit(22, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22(): number {\r\n return this.bit(22, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22le(): number {\r\n return this.bit(22, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22be(): number {\r\n return this.bit(22, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23(): number {\r\n return this.bit(23);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23le(): number {\r\n return this.bit(23, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23be(): number {\r\n return this.bit(23, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23(): number {\r\n return this.bit(23, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23le(): number {\r\n return this.bit(23, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23be(): number {\r\n return this.bit(23, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24(): number {\r\n return this.bit(24);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24le(): number {\r\n return this.bit(24, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24be(): number {\r\n return this.bit(24, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24(): number {\r\n return this.bit(24, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24le(): number {\r\n return this.bit(24, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24be(): number {\r\n return this.bit(24, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25(): number {\r\n return this.bit(25);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25le(): number {\r\n return this.bit(25, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25be(): number {\r\n return this.bit(25, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25(): number {\r\n return this.bit(25, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25le(): number {\r\n return this.bit(25, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25be(): number {\r\n return this.bit(25, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26(): number {\r\n return this.bit(26);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26le(): number {\r\n return this.bit(26, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26be(): number {\r\n return this.bit(26, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26(): number {\r\n return this.bit(26, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26le(): number {\r\n return this.bit(26, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26be(): number {\r\n return this.bit(26, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27(): number {\r\n return this.bit(27);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27le(): number {\r\n return this.bit(27, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27be(): number {\r\n return this.bit(27, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27(): number {\r\n return this.bit(27, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27le(): number {\r\n return this.bit(27, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27be(): number {\r\n return this.bit(27, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28(): number {\r\n return this.bit(28);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28le(): number {\r\n return this.bit(28, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28be(): number {\r\n return this.bit(28, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28(): number {\r\n return this.bit(28, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28le(): number {\r\n return this.bit(28, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28be(): number {\r\n return this.bit(28, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29(): number {\r\n return this.bit(29);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29le(): number {\r\n return this.bit(29, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29be(): number {\r\n return this.bit(29, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29(): number {\r\n return this.bit(29, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29le(): number {\r\n return this.bit(29, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29be(): number {\r\n return this.bit(29, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30(): number {\r\n return this.bit(30);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30le(): number {\r\n return this.bit(30, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30be(): number {\r\n return this.bit(30, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30(): number {\r\n return this.bit(30, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30le(): number {\r\n return this.bit(30, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30be(): number {\r\n return this.bit(30, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31(): number {\r\n return this.bit(31);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31le(): number {\r\n return this.bit(31, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31be(): number {\r\n return this.bit(31, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31(): number {\r\n return this.bit(31, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31le(): number {\r\n return this.bit(31, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31be(): number {\r\n return this.bit(31, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32(): number {\r\n return this.bit(32);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32le(): number {\r\n return this.bit(32, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32be(): number {\r\n return this.bit(32, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32(): number {\r\n return this.bit(32, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32le(): number {\r\n return this.bit(32, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32be(): number {\r\n return this.bit(32, true, \"big\");\r\n }\r\n\r\n //\r\n // byte read\r\n //\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @returns {number}\r\n */\r\n get byte(): number {\r\n return this.readByte();\r\n }\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @returns {number}\r\n */\r\n get int8(): number {\r\n return this.readByte();\r\n }\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n get uint8(): number {\r\n return this.readByte(true);\r\n }\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n get ubyte(): number {\r\n return this.readByte(true);\r\n }\r\n\r\n //\r\n //short16 read\r\n //\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get int16(): number {\r\n return this.readInt16();\r\n }\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get short(): number {\r\n return this.readInt16();\r\n }\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get word(): number {\r\n return this.readInt16();\r\n }\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16(): number {\r\n return this.readInt16(true);\r\n }\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get ushort(): number {\r\n return this.readInt16(true);\r\n }\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get uword(): number {\r\n return this.readInt16(true);\r\n }\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16le(): number {\r\n return this.readInt16(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get ushortle(): number {\r\n return this.readInt16(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uwordle(): number {\r\n return this.readInt16(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get int16le(): number {\r\n return this.readInt16(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get shortle(): number {\r\n return this.readInt16(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get wordle(): number {\r\n return this.readInt16(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16be(): number {\r\n return this.readInt16(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get ushortbe(): number {\r\n return this.readInt16(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uwordbe(): number {\r\n return this.readInt16(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get int16be(): number {\r\n return this.readInt16(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get shortbe(): number {\r\n return this.readInt16(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get wordbe(): number {\r\n return this.readInt16(false, \"big\");\r\n }\r\n\r\n //\r\n //half float read\r\n //\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloat(): number {\r\n return this.readHalfFloat();\r\n }\r\n\r\n /**\r\n * Read half float\r\n * \r\n * @returns {number}\r\n */\r\n get half(): number {\r\n return this.readHalfFloat();\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloatbe(): number {\r\n return this.readHalfFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halfbe(): number {\r\n return this.readHalfFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloatle(): number {\r\n return this.readHalfFloat(\"little\");\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halfle(): number {\r\n return this.readHalfFloat(\"little\");\r\n }\r\n\r\n //\r\n //int read\r\n //\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int(): number {\r\n return this.readInt32();\r\n }\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get double(): number {\r\n return this.readInt32();\r\n }\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32(): number {\r\n return this.readInt32();\r\n }\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get long(): number {\r\n return this.readInt32();\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint(): number {\r\n return this.readInt32(true);\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udouble(): number {\r\n return this.readInt32(true);\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32(): number {\r\n return this.readInt32(true);\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulong(): number {\r\n return this.readInt32(true);\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get intbe(): number {\r\n return this.readInt32(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get doublebe(): number {\r\n return this.readInt32(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32be(): number {\r\n return this.readInt32(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get longbe(): number {\r\n return this.readInt32(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uintbe(): number {\r\n return this.readInt32(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udoublebe(): number {\r\n return this.readInt32(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32be(): number {\r\n return this.readInt32(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulongbe(): number {\r\n return this.readInt32(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get intle(): number {\r\n return this.readInt32(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get doublele(): number {\r\n return this.readInt32(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32le(): number {\r\n return this.readInt32(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get longle(): number {\r\n return this.readInt32(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uintle(): number {\r\n return this.readInt32(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udoublele(): number {\r\n return this.readInt32(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32le(): number {\r\n return this.readInt32(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulongle(): number {\r\n return this.readInt32(true, \"little\");\r\n }\r\n\r\n //\r\n //float read\r\n //\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get float(): number {\r\n return this.readFloat();\r\n }\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get floatbe(): number {\r\n return this.readFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get floatle(): number {\r\n return this.readFloat(\"little\");\r\n }\r\n\r\n //\r\n //int64 reader\r\n //\r\n\r\n /**\r\n * Read signed 64 bit integer\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64(): bigint {\r\n return this.readInt64();\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigint(): bigint {\r\n return this.readInt64();\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quad(): bigint {\r\n return this.readInt64();\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64(): bigint {\r\n return this.readInt64(true);\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigint(): bigint {\r\n return this.readInt64(true);\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquad(): bigint {\r\n return this.readInt64(true);\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64be(): bigint {\r\n return this.readInt64(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigintbe(): bigint {\r\n return this.readInt64(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quadbe(): bigint {\r\n return this.readInt64(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64be(): bigint {\r\n return this.readInt64(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigintbe(): bigint {\r\n return this.readInt64(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquadbe(): bigint {\r\n return this.readInt64(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64le(): bigint {\r\n return this.readInt64(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigintle(): bigint {\r\n return this.readInt64(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quadle(): bigint {\r\n return this.readInt64(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64le(): bigint {\r\n return this.readInt64(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigintle(): bigint {\r\n return this.readInt64(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquadle(): bigint {\r\n return this.readInt64(true, \"little\");\r\n }\r\n\r\n //\r\n //doublefloat reader\r\n //\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloat(): number {\r\n return this.readDoubleFloat();\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloat(): number {\r\n return this.readDoubleFloat();\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloatebe(): number {\r\n return this.readDoubleFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloatbe(): number {\r\n return this.readDoubleFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloatle(): number {\r\n return this.readDoubleFloat(\"little\");\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloatle(): number {\r\n return this.readDoubleFloat(\"little\");\r\n }\r\n\r\n //\r\n //string reader\r\n //\r\n\r\n /**\r\n * Reads string, use options object for different types.\r\n * \r\n * @param {stringOptions} options \r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthReadSize\"]?} options.lengthReadSize - for pascal strings. 1, 2 or 4 byte length read size\r\n * @param {stringOptions[\"stripNull\"]?} options.stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n * @return {string}\r\n */\r\n string(options?: stringOptions): string {\r\n return this.readString(options);\r\n }\r\n\r\n /**\r\n * Reads string using setting from .strSettings\r\n * \r\n * Default is ``utf-8``\r\n * \r\n * @return {string}\r\n */\r\n get str(): string {\r\n return this.readString(this.strSettings);\r\n }\r\n\r\n /**\r\n * Reads UTF-8 (C) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf8string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-8\", encoding: \"utf-8\", length: length, terminateValue: terminateValue, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-8 (C) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n cstring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-8\", encoding: \"utf-8\", length: length, terminateValue: terminateValue, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads ANSI string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n ansistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-8\", encoding: \"windows-1252\", length: length, terminateValue: terminateValue, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n utf16string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: endian, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n unistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: endian, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf16stringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"little\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n unistringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"little\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf16stringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"big\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n unistringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"big\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Pascal string.\r\n * \r\n * @param {stringOptions[\"lengthReadSize\"]} lengthReadSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: lengthReadSize, stripNull: stripNull, endian: endian });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 1, stripNull: stripNull, endian: endian });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring1le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 1, stripNull: stripNull, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring1be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 1, stripNull: stripNull, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 2, stripNull: stripNull, endian: endian });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring2le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 2, stripNull: stripNull, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring2be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 2, stripNull: stripNull, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 4, stripNull: stripNull, endian: endian });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring4le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 4, stripNull: stripNull, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring4be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 4, stripNull: stripNull, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string.\r\n * \r\n * @param {stringOptions[\"lengthReadSize\"]} lengthReadSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: lengthReadSize, endian: endian, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 1 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 1, endian: endian, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 2, endian: endian, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring2le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 2, endian: \"little\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring2be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 2, endian: \"big\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 4, endian: endian, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring4be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 4, endian: \"big\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring4le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 4, endian: \"little\", stripNull: stripNull });\r\n }\r\n } as T;\r\n}\r\n","import { BiOptions, endian, stringOptions } from \"./common.js\";\r\nimport { BiBase } from './core/BiBase.js';\r\nimport { applyBinaryAliasReader, BinaryAliasReader } from \"./aliases/BinaryAliasReader.js\";\r\n\r\nconst BiReaderBase = applyBinaryAliasReader(BiBase);\r\n\r\n/**\r\n * Binary reader, includes bitfields and strings.\r\n *\r\n * @param {Buffer|Uint8Array} data - ``Buffer`` or ``Uint8Array``. Always found in ``BiReader.data``\r\n * @param {BiOptions?} options - Any options to set at start\r\n * @param {number?} options.byteOffset - Byte offset to start reader (default ``0``)\r\n * @param {number?} options.bitOffset - Bit offset 0-7 to start reader (default ``0``)\r\n * @param {string?} options.endianness - Endianness ``big`` or ``little`` (default ``little``)\r\n * @param {boolean?} options.strict - Strict mode: if ``true`` does not extend supplied array on outside write (default ``true``)\r\n * @param {number?} options.extendBufferSize - Amount of data to add when extending the buffer array when strict mode is false. Note: Changes logic in ``.get`` and ``.return``.\r\n * \r\n * @since 2.0\r\n */\r\nexport class BiReader extends BiReaderBase implements BinaryAliasReader {\r\n\r\n /**\r\n * Binary reader, includes bitfields and strings.\r\n *\r\n * @param {Buffer|Uint8Array} data - ``Buffer`` or ``Uint8Array``. Always found in ``BiReader.data``\r\n * @param {BiOptions?} options - Any options to set at start\r\n * @param {number?} options.byteOffset - Byte offset to start reader (default ``0``)\r\n * @param {number?} options.bitOffset - Bit offset 0-7 to start reader (default ``0``)\r\n * @param {string?} options.endianness - Endianness ``big`` or ``little`` (default ``little``)\r\n * @param {boolean?} options.strict - Strict mode: if ``true`` does not extend supplied array on outside write (default ``true``)\r\n * @param {number?} options.extendBufferSize - Amount of data to add when extending the buffer array when strict mode is false. Note: Changes logic in ``.get`` and ``.return``.\r\n */\r\n constructor(data: Buffer | Uint8Array, options: BiOptions = {}) {\r\n super();\r\n this.strict = true;\r\n if (data == undefined) {\r\n throw new Error(\"Data required\");\r\n } else {\r\n if (!this.isBufferOrUint8Array(data)) {\r\n throw new Error(\"Write data must be Uint8Array or Buffer\");\r\n }\r\n this.data = data;\r\n }\r\n\r\n if(options.extendBufferSize != undefined && options.extendBufferSize != 0)\r\n {\r\n this.extendBufferSize = options.extendBufferSize;\r\n }\r\n\r\n this.size = this.data.length;\r\n this.sizeB = this.data.length * 8;\r\n\r\n if (options.endianness != undefined && typeof options.endianness != \"string\") {\r\n throw new Error(\"Endian must be big or little\");\r\n }\r\n if (options.endianness != undefined && !(options.endianness == \"big\" || options.endianness == \"little\")) {\r\n throw new Error(\"Byte order must be big or little\");\r\n }\r\n\r\n this.endian = options.endianness || \"little\";\r\n\r\n if (typeof options.strict == \"boolean\") {\r\n this.strict = options.strict;\r\n } else {\r\n if (options.strict != undefined) {\r\n throw new Error(\"Strict mode must be true of false\");\r\n }\r\n }\r\n\r\n if (options.byteOffset != undefined || options.bitOffset != undefined) {\r\n this.offset = ((Math.abs(options.byteOffset || 0)) + Math.ceil((Math.abs(options.bitOffset || 0)) / 8));\r\n // Adjust byte offset based on bit overflow\r\n this.offset += Math.floor((Math.abs(options.bitOffset || 0)) / 8);\r\n // Adjust bit offset\r\n this.bitoffset = (Math.abs(options.bitOffset || 0) + 64) % 8;\r\n // Ensure bit offset stays between 0-7\r\n this.bitoffset = Math.min(Math.max(this.bitoffset, 0), 7);\r\n // Ensure offset doesn't go negative\r\n this.offset = Math.max(this.offset, 0);\r\n if (this.offset > this.size) {\r\n if (this.strict == false) {\r\n if(this.extendBufferSize != 0)\r\n {\r\n this.extendArray(this.extendBufferSize);\r\n }\r\n else \r\n {\r\n this.extendArray(this.offset - this.size);\r\n }\r\n } else {\r\n throw new Error(`Starting offset outside of size: ${this.offset} of ${this.size}`);\r\n }\r\n }\r\n }\r\n }\r\n bit(bits: number, unsigned?: boolean, endian?: endian): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ubit(bits: number, endian?: endian): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ubitbe(bits: number): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n bitbe(bits: number, unsigned?: boolean): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ubitle(bits: number): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n bitle(bits: number, unsigned?: boolean): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit1(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit1le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit1be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit1(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit1le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit1be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit2(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit2le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit2be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit2(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit2le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit2be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit3(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit3le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit3be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit3(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit3le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit3be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit4(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit4le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit4be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit4(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit4le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit4be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit5(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit5le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit5be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit5(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit5le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit5be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit6(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit6le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit6be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit6(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit6le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit6be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit7(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit7le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit7be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit7(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit7le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit7be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit8(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit8le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit8be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit8(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit8le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit8be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit9(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit9le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit9be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit9(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit9le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit9be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit10(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit10le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit10be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit10(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit10le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit10be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit11(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit11le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit11be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit11(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit11le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit11be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit12(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit12le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit12be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit12(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit12le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit12be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit13(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit13le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit13be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit13(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit13le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit13be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit14(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit14le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit14be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit14(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit14le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit14be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit15(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit15le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit15be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit15(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit15le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit15be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit16(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit16le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit16be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit16(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit16le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit16be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit17(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit17le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit17be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit17(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit17le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit17be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit18(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit18le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit18be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit18(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit18le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit18be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit19(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit19le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit19be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit19(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit19le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit19be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit20(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit20le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit20be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit20(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit20le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit20be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit21(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit21le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit21be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit21(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit21le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit21be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit22(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit22le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit22be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit22(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit22le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit22be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit23(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit23le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit23be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit23(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit23le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit23be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit24(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit24le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit24be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit24(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit24le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit24be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit25(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit25le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit25be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit25(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit25le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit25be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit26(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit26le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit26be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit26(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit26le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit26be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit27(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit27le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit27be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit27(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit27le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit27be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit28(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit28le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit28be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit28(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit28le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit28be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit29(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit29le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit29be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit29(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit29le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit29be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit30(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit30le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit30be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit30(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit30le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit30be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit31(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit31le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit31be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit31(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit31le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit31be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit32(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit32le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit32be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit32(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit32le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit32be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get byte(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int8(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint8(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubyte(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int16(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get short(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get word(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint16(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ushort(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uword(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint16le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ushortle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uwordle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int16le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get shortle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get wordle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint16be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ushortbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uwordbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int16be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get shortbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get wordbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get halffloat(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get half(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get halffloatbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get halfbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get halffloatle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get halfle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get double(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int32(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get long(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get udouble(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint32(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ulong(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get intbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get doublebe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int32be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get longbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uintbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get udoublebe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint32be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ulongbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get intle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get doublele(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int32le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get longle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uintle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get udoublele(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint32le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ulongle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get float(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get floatbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get floatle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int64(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bigint(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get quad(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint64(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubigint(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uquad(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int64be(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bigintbe(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get quadbe(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint64be(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubigintbe(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uquadbe(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int64le(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bigintle(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get quadle(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint64le(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubigintle(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uquadle(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get doublefloat(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get dfloat(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get dfloatebe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get doublefloatbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get dfloatle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get doublefloatle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n string(options?: stringOptions): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get str(): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf8string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n cstring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ansistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf16string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n unistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf16stringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n unistringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf16stringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n unistringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring1le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring1be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring2le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring2be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring4le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring4be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring2le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring2be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring4be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring4le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n};","import {\r\n BigValue,\r\n stringOptions,\r\n endian\r\n} from \"../common.js\";\r\nimport { BiBase } from '../core/BiBase.js';\r\nimport { BiBaseStreamer } from '../core/BiBaseStream.js';\r\n\r\nexport interface BinaryAliasWriter extends BiBase {\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n bit(value: number, bits: number, unsigned?: boolean, endian?: endian): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n ubit(value: number, bits: number, endian?: endian): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitbe(value: number, bits: number, unsigned?: boolean): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @returns {number}\r\n */\r\n ubitbe(value: number, bits: number): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @returns {number}\r\n */\r\n ubitle(value: number, bits: number): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitle(value: number, bits: number, unsigned?: boolean): void;\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32be(value: number);\r\n\r\n //\r\n // byte write\r\n //\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set byte(value: number);\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int8(value: number);\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint8(value: number);\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ubyte(value: number);\r\n\r\n //\r\n // short writes\r\n //\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16(value: number);\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set short(value: number);\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set word(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushort(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uword(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16be(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set shortbe(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set wordbe(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16be(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushortbe(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uwordbe(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16le(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set shortle(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set wordle(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16le(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushortle(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uwordle(value: number);\r\n\r\n //\r\n // half float\r\n //\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set half(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloat(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloatbe(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halfbe(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloatle(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halfle(value: number);\r\n\r\n //\r\n // int32 write\r\n //\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int(value: number);\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32(value: number);\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set double(value: number);\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set long(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udouble(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ulong(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32le(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set intle(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set doublele(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set longle(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32le(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uintle(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udoublele(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ulongle(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set intbe(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32be(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set doublebe(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set longbe(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set writeUInt32BE(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32be(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uintbe(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udoublebe(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int\r\n */\r\n set ulongbe(value: number);\r\n\r\n //\r\n // float write\r\n //\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set float(value: number);\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set floatle(value: number);\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set floatbe(value: number);\r\n\r\n //\r\n // int64 write\r\n //\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64(value: BigValue);\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quad(value: BigValue);\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigint(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigint(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquad(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64le(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigintle(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quadle(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64le(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigintle(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquadle(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64be(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigintbe(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quadbe(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64be(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigintbe(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquadbe(value: BigValue);\r\n\r\n //\r\n // doublefloat\r\n //\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloat(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloat(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloatbe(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloatbe(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloatle(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloatle(value: number);\r\n\r\n //\r\n // string\r\n //\r\n\r\n /**\r\n * Writes string, use options object for different types.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions?} options\r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthWriteSize\"]?} options.lengthWriteSize - for pascal strings. 1, 2 or 4 byte length write size\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n */\r\n string(string: string, options?: stringOptions): void;\r\n\r\n /**\r\n * Writes string using setting from .strSettings\r\n * \r\n * Default is ``utf-8``\r\n * \r\n * @param {string} string - text string\r\n */\r\n set str(string: string);\r\n\r\n /**\r\n * Writes UTF-8 (C) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf8string(string: string, length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-8 (C) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n cstring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes ANSI string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n ansistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"endian\"]} endian - for wide-pascal and utf-16\r\n */\r\n utf16string(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"endian\"]} endian - for wide-pascal and utf-16\r\n */\r\n unistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf16stringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n unistringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf16stringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n unistringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little`` for 2 or 4 byte length write size\r\n */\r\n pstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little`` for 2 or 4 byte length write size\r\n */\r\n pstring1(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring1le(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring1be(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n pstring2(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring2le(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring2be(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n pstring4(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring4be(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring4le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n */\r\n wpstringbe(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n */\r\n wpstringle(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring1(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring1be(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring1le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring2(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring2le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring2be(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring4(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring4le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring4be(string: string): void;\r\n};\r\nexport interface BinaryAliasWriterStreamer extends BiBaseStreamer {\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n bit(value: number, bits: number, unsigned?: boolean, endian?: endian): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n ubit(value: number, bits: number, endian?: endian): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitbe(value: number, bits: number, unsigned?: boolean): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @returns {number}\r\n */\r\n ubitbe(value: number, bits: number): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @returns {number}\r\n */\r\n ubitle(value: number, bits: number): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitle(value: number, bits: number, unsigned?: boolean): void;\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32be(value: number);\r\n\r\n //\r\n // byte write\r\n //\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set byte(value: number);\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int8(value: number);\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint8(value: number);\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ubyte(value: number);\r\n\r\n //\r\n // short writes\r\n //\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16(value: number);\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set short(value: number);\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set word(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushort(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uword(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16be(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set shortbe(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set wordbe(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16be(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushortbe(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uwordbe(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16le(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set shortle(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set wordle(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16le(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushortle(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uwordle(value: number);\r\n\r\n //\r\n // half float\r\n //\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set half(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloat(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloatbe(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halfbe(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloatle(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halfle(value: number);\r\n\r\n //\r\n // int32 write\r\n //\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int(value: number);\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32(value: number);\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set double(value: number);\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set long(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udouble(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ulong(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32le(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set intle(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set doublele(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set longle(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32le(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uintle(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udoublele(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ulongle(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set intbe(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32be(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set doublebe(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set longbe(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set writeUInt32BE(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32be(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uintbe(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udoublebe(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int\r\n */\r\n set ulongbe(value: number);\r\n\r\n //\r\n // float write\r\n //\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set float(value: number);\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set floatle(value: number);\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set floatbe(value: number);\r\n\r\n //\r\n // int64 write\r\n //\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64(value: BigValue);\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quad(value: BigValue);\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigint(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigint(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquad(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64le(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigintle(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quadle(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64le(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigintle(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquadle(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64be(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigintbe(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quadbe(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64be(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigintbe(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquadbe(value: BigValue);\r\n\r\n //\r\n // doublefloat\r\n //\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloat(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloat(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloatbe(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloatbe(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloatle(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloatle(value: number);\r\n\r\n //\r\n // string\r\n //\r\n\r\n /**\r\n * Writes string, use options object for different types.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions?} options\r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthWriteSize\"]?} options.lengthWriteSize - for pascal strings. 1, 2 or 4 byte length write size\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n */\r\n string(string: string, options?: stringOptions): void;\r\n\r\n /**\r\n * Writes string using setting from .strSettings\r\n * \r\n * Default is ``utf-8``\r\n * \r\n * @param {string} string - text string\r\n */\r\n set str(string: string);\r\n\r\n /**\r\n * Writes UTF-8 (C) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf8string(string: string, length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-8 (C) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n cstring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes ANSI string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n ansistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"endian\"]} endian - for wide-pascal and utf-16\r\n */\r\n utf16string(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"endian\"]} endian - for wide-pascal and utf-16\r\n */\r\n unistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf16stringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n unistringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf16stringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n unistringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little`` for 2 or 4 byte length write size\r\n */\r\n pstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little`` for 2 or 4 byte length write size\r\n */\r\n pstring1(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring1le(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring1be(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n pstring2(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring2le(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring2be(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n pstring4(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring4be(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring4le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n */\r\n wpstringbe(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n */\r\n wpstringle(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring1(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring1be(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring1le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring2(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring2le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring2be(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring4(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring4le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring4be(string: string): void;\r\n};\r\n\r\nexport function applyBinaryAliasWriter<T extends new (...args: any[]) => any>(Base: T) {\r\n return class extends Base {\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n //\r\n // Bit Aliases\r\n //\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n bit(value: number, bits: number, unsigned?: boolean, endian?: endian): void {\r\n return this.writeBit(value, bits, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n ubit(value: number, bits: number, endian?: endian): void {\r\n return this.writeBit(value, bits, true, endian);\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitbe(value: number, bits: number, unsigned?: boolean): void {\r\n return this.bit(value, bits, unsigned, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @returns {number}\r\n */\r\n ubitbe(value: number, bits: number): void {\r\n return this.bit(value, bits, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @returns {number}\r\n */\r\n ubitle(value: number, bits: number): void {\r\n return this.bit(value, bits, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitle(value: number, bits: number, unsigned?: boolean): void {\r\n return this.bit(value, bits, unsigned, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1(value: number) {\r\n this.bit(value, 1);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1le(value: number) {\r\n this.bit(value, 1, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1be(value: number) {\r\n this.bit(value, 1, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1(value: number) {\r\n this.bit(value, 1, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1le(value: number) {\r\n this.bit(value, 1, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1be(value: number) {\r\n this.bit(value, 1, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2(value: number) {\r\n this.bit(value, 2);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2le(value: number) {\r\n this.bit(value, 2, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2be(value: number) {\r\n this.bit(value, 2, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2(value: number) {\r\n this.bit(value, 2, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2le(value: number) {\r\n this.bit(value, 2, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2be(value: number) {\r\n this.bit(value, 2, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3(value: number) {\r\n this.bit(value, 3);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3le(value: number) {\r\n this.bit(value, 3, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3be(value: number) {\r\n this.bit(value, 3, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3(value: number) {\r\n this.bit(value, 3, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3le(value: number) {\r\n this.bit(value, 3, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3be(value: number) {\r\n this.bit(value, 3, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4(value: number) {\r\n this.bit(value, 4);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4le(value: number) {\r\n this.bit(value, 4, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4be(value: number) {\r\n this.bit(value, 4, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4(value: number) {\r\n this.bit(value, 4, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4le(value: number) {\r\n this.bit(value, 4, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4be(value: number) {\r\n this.bit(value, 4, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5(value: number) {\r\n this.bit(value, 5);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5le(value: number) {\r\n this.bit(value, 5, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5be(value: number) {\r\n this.bit(value, 5, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5(value: number) {\r\n this.bit(value, 5, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5le(value: number) {\r\n this.bit(value, 5, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5be(value: number) {\r\n this.bit(value, 5, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6(value: number) {\r\n this.bit(value, 6);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6le(value: number) {\r\n this.bit(value, 6, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6be(value: number) {\r\n this.bit(value, 6, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6(value: number) {\r\n this.bit(value, 6, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6le(value: number) {\r\n this.bit(value, 6, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6be(value: number) {\r\n this.bit(value, 6, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7(value: number) {\r\n this.bit(value, 7);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7le(value: number) {\r\n this.bit(value, 7, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7be(value: number) {\r\n this.bit(value, 7, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7(value: number) {\r\n this.bit(value, 7, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7le(value: number) {\r\n this.bit(value, 7, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7be(value: number) {\r\n this.bit(value, 7, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8(value: number) {\r\n this.bit(value, 8);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8le(value: number) {\r\n this.bit(value, 8, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8be(value: number) {\r\n this.bit(value, 8, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8(value: number) {\r\n this.bit(value, 8, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8le(value: number) {\r\n this.bit(value, 8, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8be(value: number) {\r\n this.bit(value, 8, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9(value: number) {\r\n this.bit(value, 9);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9le(value: number) {\r\n this.bit(value, 9, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9be(value: number) {\r\n this.bit(value, 9, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9(value: number) {\r\n this.bit(value, 9, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9le(value: number) {\r\n this.bit(value, 9, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9be(value: number) {\r\n this.bit(value, 9, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10(value: number) {\r\n this.bit(value, 10);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10le(value: number) {\r\n this.bit(value, 10, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10be(value: number) {\r\n this.bit(value, 10, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10(value: number) {\r\n this.bit(value, 10, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10le(value: number) {\r\n this.bit(value, 10, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10be(value: number) {\r\n this.bit(value, 10, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11(value: number) {\r\n this.bit(value, 11);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11le(value: number) {\r\n this.bit(value, 11, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11be(value: number) {\r\n this.bit(value, 11, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11(value: number) {\r\n this.bit(value, 11, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11le(value: number) {\r\n this.bit(value, 11, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11be(value: number) {\r\n this.bit(value, 11, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12(value: number) {\r\n this.bit(value, 12);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12le(value: number) {\r\n this.bit(value, 12, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12be(value: number) {\r\n this.bit(value, 12, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12(value: number) {\r\n this.bit(value, 12, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12le(value: number) {\r\n this.bit(value, 12, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12be(value: number) {\r\n this.bit(value, 12, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13(value: number) {\r\n this.bit(value, 13);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13le(value: number) {\r\n this.bit(value, 13, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13be(value: number) {\r\n this.bit(value, 13, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13(value: number) {\r\n this.bit(value, 13, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13le(value: number) {\r\n this.bit(value, 13, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13be(value: number) {\r\n this.bit(value, 13, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14(value: number) {\r\n this.bit(value, 14);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14le(value: number) {\r\n this.bit(value, 14, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14be(value: number) {\r\n this.bit(value, 14, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14(value: number) {\r\n this.bit(value, 14, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14le(value: number) {\r\n this.bit(value, 14, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14be(value: number) {\r\n this.bit(value, 14, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15(value: number) {\r\n this.bit(value, 15);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15le(value: number) {\r\n this.bit(value, 15, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15be(value: number) {\r\n this.bit(value, 15, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15(value: number) {\r\n this.bit(value, 15, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15le(value: number) {\r\n this.bit(value, 15, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15be(value: number) {\r\n this.bit(value, 15, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16(value: number) {\r\n this.bit(value, 16);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16le(value: number) {\r\n this.bit(value, 16, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16be(value: number) {\r\n this.bit(value, 16, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16(value: number) {\r\n this.bit(value, 16, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16le(value: number) {\r\n this.bit(value, 16, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16be(value: number) {\r\n this.bit(value, 16, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17(value: number) {\r\n this.bit(value, 17);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17le(value: number) {\r\n this.bit(value, 17, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17be(value: number) {\r\n this.bit(value, 17, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17(value: number) {\r\n this.bit(value, 17, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17le(value: number) {\r\n this.bit(value, 17, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17be(value: number) {\r\n this.bit(value, 17, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18(value: number) {\r\n this.bit(value, 18);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18le(value: number) {\r\n this.bit(value, 18, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18be(value: number) {\r\n this.bit(value, 18, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18(value: number) {\r\n this.bit(value, 18, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18le(value: number) {\r\n this.bit(value, 18, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18be(value: number) {\r\n this.bit(value, 18, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19(value: number) {\r\n this.bit(value, 19);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19le(value: number) {\r\n this.bit(value, 19, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19be(value: number) {\r\n this.bit(value, 19, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19(value: number) {\r\n this.bit(value, 19, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19le(value: number) {\r\n this.bit(value, 19, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19be(value: number) {\r\n this.bit(value, 19, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20(value: number) {\r\n this.bit(value, 20);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20le(value: number) {\r\n this.bit(value, 20, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20be(value: number) {\r\n this.bit(value, 20, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20(value: number) {\r\n this.bit(value, 20, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20le(value: number) {\r\n this.bit(value, 20, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20be(value: number) {\r\n this.bit(value, 20, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21(value: number) {\r\n this.bit(value, 21);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21le(value: number) {\r\n this.bit(value, 21, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21be(value: number) {\r\n this.bit(value, 21, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21(value: number) {\r\n this.bit(value, 21, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21le(value: number) {\r\n this.bit(value, 21, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21be(value: number) {\r\n this.bit(value, 21, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22(value: number) {\r\n this.bit(value, 22);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22le(value: number) {\r\n this.bit(value, 22, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22be(value: number) {\r\n this.bit(value, 22, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22(value: number) {\r\n this.bit(value, 22, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22le(value: number) {\r\n this.bit(value, 22, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22be(value: number) {\r\n this.bit(value, 22, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23(value: number) {\r\n this.bit(value, 23);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23le(value: number) {\r\n this.bit(value, 23, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23be(value: number) {\r\n this.bit(value, 23, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23(value: number) {\r\n this.bit(value, 23, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23le(value: number) {\r\n this.bit(value, 23, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23be(value: number) {\r\n this.bit(value, 23, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24(value: number) {\r\n this.bit(value, 24);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24le(value: number) {\r\n this.bit(value, 24, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24be(value: number) {\r\n this.bit(value, 24, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24(value: number) {\r\n this.bit(value, 24, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24le(value: number) {\r\n this.bit(value, 24, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24be(value: number) {\r\n this.bit(value, 24, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25(value: number) {\r\n this.bit(value, 25);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25le(value: number) {\r\n this.bit(value, 25, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25be(value: number) {\r\n this.bit(value, 25, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25(value: number) {\r\n this.bit(value, 25, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25le(value: number) {\r\n this.bit(value, 25, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25be(value: number) {\r\n this.bit(value, 25, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26(value: number) {\r\n this.bit(value, 26);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26le(value: number) {\r\n this.bit(value, 26, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26be(value: number) {\r\n this.bit(value, 26, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26(value: number) {\r\n this.bit(value, 26, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26le(value: number) {\r\n this.bit(value, 26, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26be(value: number) {\r\n this.bit(value, 26, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27(value: number) {\r\n this.bit(value, 27);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27le(value: number) {\r\n this.bit(value, 27, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27be(value: number) {\r\n this.bit(value, 27, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27(value: number) {\r\n this.bit(value, 27, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27le(value: number) {\r\n this.bit(value, 27, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27be(value: number) {\r\n this.bit(value, 27, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28(value: number) {\r\n this.bit(value, 28);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28le(value: number) {\r\n this.bit(value, 28, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28be(value: number) {\r\n this.bit(value, 28, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28(value: number) {\r\n this.bit(value, 28, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28le(value: number) {\r\n this.bit(value, 28, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28be(value: number) {\r\n this.bit(value, 28, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29(value: number) {\r\n this.bit(value, 29);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29le(value: number) {\r\n this.bit(value, 29, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29be(value: number) {\r\n this.bit(value, 29, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29(value: number) {\r\n this.bit(value, 29, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29le(value: number) {\r\n this.bit(value, 29, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29be(value: number) {\r\n this.bit(value, 29, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30(value: number) {\r\n this.bit(value, 30);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30le(value: number) {\r\n this.bit(value, 30, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30be(value: number) {\r\n this.bit(value, 30, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30(value: number) {\r\n this.bit(value, 30, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30le(value: number) {\r\n this.bit(value, 30, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30be(value: number) {\r\n this.bit(value, 30, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31(value: number) {\r\n this.bit(value, 31);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31le(value: number) {\r\n this.bit(value, 31, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31be(value: number) {\r\n this.bit(value, 31, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31(value: number) {\r\n this.bit(value, 31, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31le(value: number) {\r\n this.bit(value, 31, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31be(value: number) {\r\n this.bit(value, 31, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32(value: number) {\r\n this.bit(value, 32);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32le(value: number) {\r\n this.bit(value, 32, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32be(value: number) {\r\n this.bit(value, 32, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32(value: number) {\r\n this.bit(value, 32, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32le(value: number) {\r\n this.bit(value, 32, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32be(value: number) {\r\n this.bit(value, 32, true, \"big\");\r\n }\r\n\r\n //\r\n // byte write\r\n //\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set byte(value: number) {\r\n this.writeByte(value);\r\n }\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int8(value: number) {\r\n this.writeByte(value);\r\n }\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint8(value: number) {\r\n this.writeByte(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ubyte(value: number) {\r\n this.writeByte(value, true);\r\n }\r\n\r\n //\r\n // short writes\r\n //\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16(value: number) {\r\n this.writeInt16(value);\r\n }\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set short(value: number) {\r\n this.writeInt16(value);\r\n }\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set word(value: number) {\r\n this.writeInt16(value);\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16(value: number) {\r\n this.writeInt16(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushort(value: number) {\r\n this.writeInt16(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uword(value: number) {\r\n this.writeInt16(value, true);\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16be(value: number) {\r\n this.writeInt16(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set shortbe(value: number) {\r\n this.writeInt16(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set wordbe(value: number) {\r\n this.writeInt16(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16be(value: number) {\r\n this.writeInt16(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushortbe(value: number) {\r\n this.writeInt16(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uwordbe(value: number) {\r\n this.writeInt16(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16le(value: number) {\r\n this.writeInt16(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set shortle(value: number) {\r\n this.writeInt16(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set wordle(value: number) {\r\n this.writeInt16(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16le(value: number) {\r\n this.writeInt16(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushortle(value: number) {\r\n this.writeInt16(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uwordle(value: number) {\r\n this.writeInt16(value, true, \"little\");\r\n }\r\n\r\n //\r\n // half float\r\n //\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set half(value: number) {\r\n this.writeHalfFloat(value);\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloat(value: number) {\r\n this.writeHalfFloat(value);\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloatbe(value: number) {\r\n this.writeHalfFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halfbe(value: number) {\r\n this.writeHalfFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloatle(value: number) {\r\n this.writeHalfFloat(value, \"little\");\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halfle(value: number) {\r\n this.writeHalfFloat(value, \"little\");\r\n }\r\n\r\n //\r\n // int32 write\r\n //\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int(value: number) {\r\n this.writeInt32(value);\r\n }\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32(value: number) {\r\n this.writeInt32(value);\r\n }\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set double(value: number) {\r\n this.writeInt32(value);\r\n }\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set long(value: number) {\r\n this.writeInt32(value);\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32(value: number) {\r\n this.writeInt32(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint(value: number) {\r\n this.writeInt32(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udouble(value: number) {\r\n this.writeInt32(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ulong(value: number) {\r\n this.writeInt32(value, true);\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32le(value: number) {\r\n this.writeInt32(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set intle(value: number) {\r\n this.writeInt32(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set doublele(value: number) {\r\n this.writeInt32(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set longle(value: number) {\r\n this.writeInt32(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32le(value: number) {\r\n this.writeInt32(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uintle(value: number) {\r\n this.writeInt32(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udoublele(value: number) {\r\n this.writeInt32(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ulongle(value: number) {\r\n this.writeInt32(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set intbe(value: number) {\r\n this.writeInt32(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32be(value: number) {\r\n this.writeInt32(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set doublebe(value: number) {\r\n this.writeInt32(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set longbe(value: number) {\r\n this.writeInt32(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set writeUInt32BE(value: number) {\r\n this.writeInt32(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32be(value: number) {\r\n this.writeInt32(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uintbe(value: number) {\r\n this.writeInt32(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udoublebe(value: number) {\r\n this.writeInt32(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int\r\n */\r\n set ulongbe(value: number) {\r\n this.writeInt32(value, true, \"big\");\r\n }\r\n\r\n //\r\n // float write\r\n //\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set float(value: number) {\r\n this.writeFloat(value);\r\n }\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set floatle(value: number) {\r\n this.writeFloat(value, \"little\");\r\n }\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set floatbe(value: number) {\r\n this.writeFloat(value, \"big\");\r\n }\r\n\r\n //\r\n // int64 write\r\n //\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64(value: BigValue) {\r\n this.writeInt64(value);\r\n }\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quad(value: BigValue) {\r\n this.writeInt64(value);\r\n }\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigint(value: BigValue) {\r\n this.writeInt64(value);\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64(value: BigValue) {\r\n this.writeInt64(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigint(value: BigValue) {\r\n this.writeInt64(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquad(value: BigValue) {\r\n this.writeInt64(value, true,);\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64le(value: BigValue) {\r\n this.writeInt64(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigintle(value: BigValue) {\r\n this.writeInt64(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quadle(value: BigValue) {\r\n this.writeInt64(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64le(value: BigValue) {\r\n this.writeInt64(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigintle(value: BigValue) {\r\n this.writeInt64(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquadle(value: BigValue) {\r\n this.writeInt64(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64be(value: BigValue) {\r\n this.writeInt64(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigintbe(value: BigValue) {\r\n this.writeInt64(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quadbe(value: BigValue) {\r\n this.writeInt64(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64be(value: BigValue) {\r\n this.writeInt64(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigintbe(value: BigValue) {\r\n this.writeInt64(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquadbe(value: BigValue) {\r\n this.writeInt64(value, true, \"big\");\r\n }\r\n\r\n //\r\n // doublefloat\r\n //\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloat(value: number) {\r\n this.writeDoubleFloat(value);\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloat(value: number) {\r\n this.writeDoubleFloat(value);\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloatbe(value: number) {\r\n this.writeDoubleFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloatbe(value: number) {\r\n this.writeDoubleFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloatle(value: number) {\r\n this.writeDoubleFloat(value, \"little\");\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloatle(value: number) {\r\n this.writeDoubleFloat(value, \"little\");\r\n }\r\n\r\n //\r\n // string\r\n //\r\n\r\n /**\r\n * Writes string, use options object for different types.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions?} options\r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthWriteSize\"]?} options.lengthWriteSize - for pascal strings. 1, 2 or 4 byte length write size\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n */\r\n string(string: string, options?: stringOptions): void {\r\n return this.writeString(string, options);\r\n }\r\n\r\n /**\r\n * Writes string using setting from .strSettings\r\n * \r\n * Default is ``utf-8``\r\n * \r\n * @param {string} string - text string\r\n */\r\n set str(string: string) {\r\n this.writeString(string, this.strSettings);\r\n }\r\n\r\n /**\r\n * Writes UTF-8 (C) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf8string(string: string, length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-8\", encoding: \"utf-8\", length: length, terminateValue: terminateValue });\r\n }\r\n\r\n /**\r\n * Writes UTF-8 (C) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n cstring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-8\", encoding: \"utf-8\", length: length, terminateValue: terminateValue });\r\n }\r\n\r\n /**\r\n * Writes ANSI string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n ansistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-8\", encoding: \"windows-1252\", length: length, terminateValue: terminateValue });\r\n }\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"endian\"]} endian - for wide-pascal and utf-16\r\n */\r\n utf16string(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"endian\"]} endian - for wide-pascal and utf-16\r\n */\r\n unistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf16stringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n unistringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf16stringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n unistringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little`` for 2 or 4 byte length write size\r\n */\r\n pstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: lengthWriteSize, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little`` for 2 or 4 byte length write size\r\n */\r\n pstring1(string: string, endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 1, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring1le(string: string): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 1, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring1be(string: string): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 1, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n pstring2(string: string, endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 2, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring2le(string: string): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 2, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring2be(string: string): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 2, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n pstring4(string: string, endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 4, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring4be(string: string): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 4, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring4le(string: string): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 4, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: lengthWriteSize, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n */\r\n wpstringbe(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: lengthWriteSize, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n */\r\n wpstringle(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: lengthWriteSize, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring1(string: string, endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 1, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring1be(string: string): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 1, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring1le(string: string): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 1, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring2(string: string, endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 2, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring2le(string: string): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 2, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring2be(string: string): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 2, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring4(string: string, endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 4, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring4le(string: string): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 4, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring4be(string: string): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 4, endian: \"big\" });\r\n }\r\n } as T;\r\n}","import { BigValue, BiOptions, endian, stringOptions } from \"./common.js\";\r\nimport { BiBase } from './core/BiBase.js';\r\nimport { applyBinaryAliasWriter, BinaryAliasWriter } from \"./aliases/BinaryAliasWriter.js\";\r\n\r\nconst BiWriterBase = applyBinaryAliasWriter(BiBase);\r\n\r\n/**\r\n * Binary writer, includes bitfields and strings.\r\n *\r\n * @param {Buffer|Uint8Array} data - ``Buffer`` or ``Uint8Array``. Always found in ``BiWriter.data``\r\n * @param {BiOptions?} options - Any options to set at start\r\n * @param {BiOptions[\"byteOffset\"]?} options.byteOffset - Byte offset to start writer (default ``0``)\r\n * @param {BiOptions[\"bitOffset\"]?} options.bitOffset - Bit offset 0-7 to start writer (default ``0``)\r\n * @param {BiOptions[\"endianness\"]?} options.endianness - Endianness ``big`` or ``little`` (default ``little``)\r\n * @param {BiOptions[\"strict\"]?} options.strict - Strict mode: if ``true`` does not extend supplied array on outside write (default ``false``)\r\n * @param {BiOptions[\"extendBufferSize\"]?} options.extendBufferSize - Amount of data to add when extending the buffer array when strict mode is false. Note: Changes logic in ``.get`` and ``.return``.\r\n * \r\n * @since 2.0\r\n */\r\nexport class BiWriter extends BiWriterBase implements BinaryAliasWriter {\r\n /**\r\n * Binary writer, includes bitfields and strings.\r\n *\r\n * @param {Buffer|Uint8Array} data - ``Buffer`` or ``Uint8Array``. Always found in ``BiWriter.data``\r\n * @param {BiOptions?} options - Any options to set at start\r\n * @param {BiOptions[\"byteOffset\"]?} options.byteOffset - Byte offset to start writer (default ``0``)\r\n * @param {BiOptions[\"bitOffset\"]?} options.bitOffset - Bit offset 0-7 to start writer (default ``0``)\r\n * @param {BiOptions[\"endianness\"]?} options.endianness - Endianness ``big`` or ``little`` (default ``little``)\r\n * @param {BiOptions[\"strict\"]?} options.strict - Strict mode: if ``true`` does not extend supplied array on outside write (default ``false``)\r\n * @param {BiOptions[\"extendBufferSize\"]?} options.extendBufferSize - Amount of data to add when extending the buffer array when strict mode is false. Note: Changes logic in ``.get`` and ``.return``.\r\n */\r\n constructor(data?: Buffer|Uint8Array, options: BiOptions = {}) {\r\n super();\r\n this.strict = false;\r\n if(data == undefined){\r\n if(typeof Buffer !== 'undefined'){\r\n this.data = Buffer.alloc(this.offset||1+(this.bitoffset!=0?1:0));\r\n } else {\r\n this.data = new Uint8Array(this.offset||1+(this.bitoffset!=0?1:0));\r\n }\r\n } else {\r\n if(!this.isBufferOrUint8Array(data)){\r\n throw new Error(\"Write data must be Uint8Array or Buffer.\");\r\n }\r\n this.data = data; \r\n }\r\n\r\n if(options.extendBufferSize != undefined && options.extendBufferSize != 0)\r\n {\r\n this.extendBufferSize = options.extendBufferSize;\r\n }\r\n\r\n this.size = this.data.length;\r\n this.sizeB = this.data.length * 8;\r\n\r\n if(typeof options.strict == \"boolean\"){\r\n this.strict = options.strict;\r\n } else {\r\n if(options.strict != undefined){\r\n throw new Error(\"Strict mode must be true of false.\");\r\n }\r\n }\r\n\r\n if(options.endianness != undefined && typeof options.endianness != \"string\"){\r\n throw new Error(\"endianness must be big or little.\");\r\n }\r\n if(options.endianness != undefined && !(options.endianness == \"big\" || options.endianness == \"little\")){\r\n throw new Error(\"Endianness must be big or little.\");\r\n }\r\n\r\n this.endian = options.endianness || \"little\";\r\n\r\n if(options.byteOffset != undefined || options.bitOffset!= undefined){\r\n this.offset = ((Math.abs(options.byteOffset|| 0)) + Math.ceil(( Math.abs(options.bitOffset||0)) /8) )\r\n // Adjust byte offset based on bit overflow\r\n this.offset += Math.floor((Math.abs(options.bitOffset||0)) / 8);\r\n // Adjust bit offset\r\n this.bitoffset = (Math.abs(options.bitOffset||0) + 64) % 8; \r\n // Ensure bit offset stays between 0-7\r\n this.bitoffset = Math.min(Math.max(this.bitoffset, 0), 7);\r\n // Ensure offset doesn't go negative\r\n this.offset = Math.max(this.offset, 0);\r\n if(this.offset > this.size){\r\n if(this.strict == false){\r\n if(this.extendBufferSize != 0)\r\n {\r\n this.extendArray(this.extendBufferSize);\r\n }\r\n else \r\n {\r\n this.extendArray(this.offset - this.size);\r\n }\r\n } else {\r\n throw new Error(`Starting offset outside of size: ${this.offset} of ${this.size}`);\r\n }\r\n }\r\n }\r\n }\r\n bit(value: number, bits: number, unsigned?: boolean, endian?: endian): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ubit(value: number, bits: number, endian?: endian): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n bitbe(value: number, bits: number, unsigned?: boolean): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ubitbe(value: number, bits: number): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ubitle(value: number, bits: number): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n bitle(value: number, bits: number, unsigned?: boolean): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit1(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit1le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit1be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit1(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit1le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit1be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit2(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit2le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit2be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit2(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit2le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit2be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit3(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit3le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit3be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit3(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit3le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit3be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit4(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit4le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit4be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit4(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit4le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit4be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit5(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit5le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit5be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit5(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit5le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit5be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit6(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit6le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit6be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit6(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit6le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit6be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit7(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit7le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit7be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit7(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit7le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit7be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit8(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit8le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit8be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit8(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit8le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit8be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit9(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit9le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit9be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit9(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit9le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit9be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit10(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit10le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit10be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit10(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit10le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit10be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit11(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit11le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit11be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit11(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit11le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit11be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit12(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit12le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit12be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit12(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit12le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit12be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit13(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit13le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit13be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit13(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit13le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit13be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit14(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit14le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit14be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit14(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit14le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit14be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit15(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit15le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit15be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit15(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit15le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit15be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit16(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit16le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit16be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit16(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit16le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit16be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit17(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit17le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit17be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit17(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit17le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit17be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit18(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit18le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit18be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit18(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit18le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit18be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit19(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit19le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit19be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit19(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit19le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit19be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit20(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit20le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit20be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit20(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit20le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit20be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit21(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit21le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit21be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit21(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit21le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit21be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit22(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit22le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit22be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit22(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit22le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit22be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit23(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit23le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit23be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit23(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit23le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit23be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit24(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit24le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit24be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit24(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit24le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit24be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit25(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit25le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit25be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit25(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit25le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit25be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit26(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit26le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit26be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit26(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit26le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit26be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit27(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit27le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit27be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit27(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit27le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit27be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit28(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit28le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit28be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit28(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit28le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit28be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit29(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit29le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit29be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit29(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit29le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit29be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit30(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit30le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit30be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit30(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit30le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit30be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit31(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit31le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit31be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit31(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit31le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit31be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit32(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit32le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit32be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit32(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit32le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit32be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set byte(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int8(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint8(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubyte(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int16(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set short(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set word(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint16(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ushort(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uword(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int16be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set shortbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set wordbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint16be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ushortbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uwordbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int16le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set shortle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set wordle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint16le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ushortle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uwordle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set half(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set halffloat(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set halffloatbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set halfbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set halffloatle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set halfle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int32(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set double(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set long(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint32(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set udouble(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ulong(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int32le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set intle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set doublele(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set longle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint32le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uintle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set udoublele(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ulongle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set intbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int32be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set doublebe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set longbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set writeUInt32BE(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint32be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uintbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set udoublebe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ulongbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set float(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set floatle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set floatbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int64(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set quad(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bigint(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint64(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubigint(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uquad(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int64le(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bigintle(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set quadle(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint64le(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubigintle(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uquadle(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int64be(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bigintbe(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set quadbe(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint64be(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubigintbe(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uquadbe(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set doublefloat(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set dfloat(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set dfloatbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set doublefloatbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set dfloatle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set doublefloatle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n string(string: string, options?: stringOptions): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set str(string: string) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf8string(string: string, length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n cstring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ansistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf16string(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n unistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf16stringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n unistringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf16stringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n unistringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring1(string: string, endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring1le(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring1be(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring2(string: string, endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring2le(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring2be(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring4(string: string, endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring4be(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring4le(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstringbe(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstringle(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring1(string: string, endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring1be(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring1le(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring2(string: string, endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring2le(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring2be(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring4(string: string, endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring4le(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring4be(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n};","export { BiReader } from './BiReader.js';\r\nexport { BiWriter } from './BiWriter.js';\r\nexport { hexdump } from './common.js';\r\n\r\n/**\r\n * Isn't usable in browser.\r\n * @since 3.0 \r\n * @deprecated Use ``BiReader`` instead.\r\n */\r\nexport class BiReaderStream{\r\n constructor(){\r\n throw new Error(\"BiReaderStream isn't usable in browser. Use BiReader instead.\");\r\n }\r\n}\r\n\r\n/**\r\n * Isn't usable in browser.\r\n * @since 3.0 \r\n * @deprecated Use ``BiWriter`` instead.\r\n */\r\nexport class BiWriterStream{\r\n constructor(){\r\n throw new Error(\"BiReaderStream isn't usable in browser. Use BiReader instead.\");\r\n }\r\n}\r\n\r\n/**\r\n * Not in use anymore.\r\n * @since 3.0 \r\n * @deprecated Use ``BiReader`` instead.\r\n */\r\nexport class bireader{\r\n constructor(){\r\n throw new Error(\"bireader is deprecated. Use BiReader instead.\");\r\n }\r\n}\r\n\r\n/**\r\n * Not in use anymore.\r\n * @since 3.0 \r\n * @deprecated Use ``BiWriter`` instead.\r\n */\r\nexport class biwriter{\r\n constructor(){\r\n throw new Error(\"biwriter is deprecated. Use BiWriter instead.\");\r\n }\r\n}"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.browser.js","sources":["../src/common.ts","../src/core/BiBase.ts","../src/aliases/BinaryAliasReader.ts","../src/BiReader.ts","../src/aliases/BinaryAliasWriter.ts","../src/BiWriter.ts","../src/indexBrowser.ts"],"sourcesContent":["export type endian = \"little\"|\"big\";\r\n\r\nexport type BigValue = number|bigint;\r\n\r\nexport type BiOptions = {\r\n /**\r\n * Byte offset to start writer, default is 0 \r\n */\r\n byteOffset? : number,\r\n /**\r\n * Byte offset to start writer, default is 0 \r\n */\r\n bitOffset? :number,\r\n /**\r\n * Endianness ``big`` or ``little`` (default little)\r\n */\r\n endianness? : endian,\r\n /**\r\n * Strict mode: if ``true`` does not extend supplied array on outside write (default ``false``)\r\n */\r\n strict?: boolean,\r\n /**\r\n * Amount of data to add when extending the buffer array when strict mode is false. Note: Changes login in ``.get`` and ``.return``.\r\n */\r\n extendBufferSize?: number\r\n};\r\n\r\nexport function isBuffer(obj: Buffer | Uint8Array): boolean {\r\n return buffcheck(obj);\r\n}\r\n\r\nfunction buffcheck(obj: Buffer | Uint8Array): boolean {\r\n return (typeof Buffer !== 'undefined' && obj instanceof Buffer);\r\n}\r\n\r\nexport function arraybuffcheck(obj: Buffer | Uint8Array): boolean {\r\n return obj instanceof Uint8Array || isBuffer(obj);\r\n}\r\n\r\nexport type hexdumpOptions = {\r\n /**\r\n * number of bytes to log, default ``192`` or end of data\r\n */\r\n length?: number,\r\n /**\r\n * byte to start dump (default ``0``)\r\n */\r\n startByte?: number, \r\n /**\r\n * Suppress unicode character preview for even columns.\r\n */\r\n suppressUnicode?: boolean,\r\n /**\r\n * Returns the hex dump string instead of logging it.\r\n */\r\n returnString?: boolean\r\n}\r\n\r\n/**\r\n * Creates hex dump string. Will console log or return string if set in options.\r\n * \r\n * @param {Uint8Array|Buffer} src - Uint8Array or Buffer\r\n * @param {hexdumpOptions?} options - hex dump options\r\n * @param {number?} options.length - number of bytes to log, default ``192`` or end of data\r\n * @param {number?} options.startByte - byte to start dump (default ``0``)\r\n * @param {boolean?} options.suppressUnicode - Suppress unicode character preview for even columns.\r\n * @param {boolean?} options.returnString - Returns the hex dump string instead of logging it.\r\n */\r\nexport function hexdump(src: Uint8Array | Buffer, options: hexdumpOptions = {}): void|string {\r\n\r\n if (!(src instanceof Uint8Array || isBuffer(src))) {\r\n throw new Error(\"Write data must be Uint8Array or Buffer.\");\r\n }\r\n\r\n const ctx = {\r\n data: src,\r\n size: src.length,\r\n offset: options && options.startByte || 0,\r\n errorDump: true\r\n };\r\n\r\n var length: any = options && options.length;\r\n var startByte: any = options && options.startByte;\r\n\r\n if ((startByte || 0) > ctx.size) {\r\n throw new Error(\"Hexdump start is outside of data size: \" + startByte + \" of \" + ctx.size);\r\n }\r\n const start = startByte || ctx.offset;\r\n const end = Math.min(start + (length || 192), ctx.size);\r\n if (start + (length || 0) > ctx.size) {\r\n throw new Error(\"Hexdump amount is outside of data size: \" + (start + (length || 0)) + \" of \" + end);\r\n }\r\n\r\n const data = ctx.data;\r\n\r\n return _hexDump(data, options, start, end);\r\n}\r\n\r\nexport function _hexDump(data:Buffer | Uint8Array, options: hexdumpOptions = {}, start:number, end:number): string{\r\n function hex_check(byte: number, bits: number,): number {\r\n var value = 0;\r\n for (var i = 0; i < bits;) {\r\n var remaining = bits - i;\r\n var bitOffset = 0;\r\n var currentByte = byte;\r\n var read = Math.min(remaining, 8 - bitOffset);\r\n var mask: number, readBits: number;\r\n mask = ~(0xFF << read);\r\n readBits = (currentByte >> (8 - read - bitOffset)) & mask;\r\n value <<= read;\r\n value |= readBits;\r\n i += read;\r\n }\r\n value = value >>> 0;\r\n return value;\r\n }\r\n var suppressUnicode: any = options && options.suppressUnicode || false;\r\n const rows: Array<string> = [];\r\n var header = \" 0 1 2 3 4 5 6 7 8 9 A B C D E F \";\r\n var ending = \"0123456789ABCDEF\";\r\n var addr: string = \"\";\r\n for (let i = start; i < end; i += 16) {\r\n addr = i.toString(16).padStart(5, '0');\r\n var row = <unknown>data.slice(i, i + 16) as number[] || [];\r\n var hex = Array.from(row, (byte) => byte.toString(16).padStart(2, '0')).join(' ');\r\n rows.push(`${addr} ${hex.padEnd(47)} `);\r\n }\r\n let result = '';\r\n let make_wide: boolean = false;\r\n let i = start;\r\n while (i < end) \r\n {\r\n const byte = data[i] as number;\r\n if (byte < 32 || byte == 127) \r\n {\r\n result += '.';\r\n } \r\n else if (byte < 127) \r\n {\r\n // Valid UTF-8 start byte or single-byte character\r\n // Convert the byte to a character and add it to the result\r\n result += String.fromCharCode(byte);\r\n } \r\n else if (suppressUnicode) \r\n {\r\n result += '.';\r\n } \r\n else if (hex_check(byte, 1) == 0) \r\n {\r\n //Byte 1\r\n result += String.fromCharCode(byte);\r\n } \r\n else if (hex_check(byte, 3) == 6) \r\n {\r\n //Byte 2\r\n if (i + 1 <= end) \r\n {\r\n //check second byte\r\n const byte2 = data[i + 1] as number;\r\n if (hex_check(byte2, 2) == 2) \r\n {\r\n const charCode = ((byte & 0x1f) << 6) | (byte2 & 0x3f);\r\n i++;\r\n make_wide = true;\r\n const read = \" \" + String.fromCharCode(charCode);\r\n result += read;\r\n } \r\n else \r\n {\r\n result += \".\";\r\n }\r\n } \r\n else \r\n {\r\n result += \".\";\r\n }\r\n } \r\n else if (hex_check(byte, 4) == 14) \r\n {\r\n //Byte 3\r\n if (i + 1 <= end) \r\n {\r\n //check second byte\r\n const byte2 = data[i + 1] as number;\r\n if (hex_check(byte2, 2) == 2)\r\n {\r\n if (i + 2 <= end) \r\n {\r\n //check third byte\r\n const byte3 = data[i + 2] as number;\r\n if (hex_check(byte3, 2) == 2) \r\n {\r\n const charCode =\r\n ((byte & 0x0f) << 12) |\r\n ((byte2 & 0x3f) << 6) |\r\n (byte3 & 0x3f);\r\n i += 2;\r\n make_wide = true;\r\n const read = \" \" + String.fromCharCode(charCode);\r\n result += read;\r\n } \r\n else \r\n {\r\n i++;\r\n result += \" .\";\r\n }\r\n } \r\n else \r\n {\r\n i++;\r\n result += \" .\";\r\n }\r\n } \r\n else \r\n {\r\n result += \".\";\r\n }\r\n } \r\n else \r\n {\r\n result += \".\";\r\n }\r\n }\r\n else if (hex_check(byte, 5) == 28) \r\n {\r\n //Byte 4\r\n if (i + 1 <= end) \r\n {\r\n //check second byte\r\n const byte2 = data[i + 1] as number;\r\n if (hex_check(byte2, 2) == 2) \r\n {\r\n if (i + 2 <= end) \r\n {\r\n //check third byte\r\n const byte3 = data[i + 2] as number;\r\n if (hex_check(byte3, 2) == 2) \r\n {\r\n if (i + 3 <= end) \r\n {\r\n //check fourth byte\r\n const byte4 = data[i + 2] as number;\r\n if (hex_check(byte4, 2) == 2) \r\n {\r\n const charCode = (((byte4 & 0xFF) << 24) | ((byte3 & 0xFF) << 16) | ((byte2 & 0xFF) << 8) | (byte & 0xFF));\r\n i += 3\r\n make_wide = true;\r\n const read = \" \" + String.fromCharCode(charCode);\r\n result += read;\r\n } \r\n else \r\n {\r\n i += 2\r\n result += \" .\";\r\n }\r\n } \r\n else \r\n {\r\n i += 2\r\n result += \" .\";\r\n }\r\n } \r\n else \r\n {\r\n i++;\r\n result += \" .\";\r\n }\r\n } \r\n else \r\n {\r\n i++;\r\n result += \" .\";\r\n }\r\n } \r\n else \r\n {\r\n result += \".\";\r\n }\r\n } \r\n else \r\n {\r\n result += \".\";\r\n }\r\n } \r\n else \r\n {\r\n // Invalid UTF-8 byte, add a period to the result\r\n result += '.';\r\n }\r\n i++;\r\n }\r\n const chunks = result.match(new RegExp(`.{1,${16}}`, 'g'));\r\n chunks?.forEach((self, i) => {\r\n rows[i] = rows[i] + (make_wide ? \"|\" + self + \"|\" : self);\r\n })\r\n header = \"\".padStart(addr.length) + header + (make_wide ? \"\" : ending);\r\n rows.unshift(header);\r\n if (make_wide) \r\n {\r\n rows.push(\"*Removed character byte header on unicode detection\");\r\n }\r\n if(options && options.returnString)\r\n {\r\n return rows.join(\"\\n\");\r\n }\r\n else\r\n {\r\n const retVal = rows.join(\"\\n\");\r\n console.log(retVal);\r\n return retVal;\r\n }\r\n}\r\n\r\nexport type stringOptions = {\r\n /**\r\n * for fixed length, non-terminate value utf strings\r\n */\r\n length?: number,\r\n /**\r\n * utf-8, utf-16, pascal or wide-pascal\r\n */\r\n stringType?: \"utf-8\"|\"utf-16\"|\"pascal\"|\"wide-pascal\"\r\n /**\r\n * only with stringType: \"utf\"\r\n */\r\n terminateValue?: number,\r\n /**\r\n * for pascal strings. 1, 2 or 4 byte length read size\r\n */\r\n lengthReadSize?: 1|2|4,\r\n /**\r\n * for pascal strings. 1, 2 or 4 byte length write size\r\n */\r\n lengthWriteSize?: 1|2|4,\r\n /**\r\n * removes 0x00 characters\r\n */\r\n stripNull?: boolean,\r\n /**\r\n * TextEncoder accepted types \r\n */\r\n encoding?: string,\r\n /**\r\n * for wide-pascal and utf-16\r\n */\r\n endian?: \"big\"|\"little\",\r\n};","import { \r\n BigValue,\r\n isBuffer,\r\n endian,\r\n arraybuffcheck,\r\n hexdumpOptions,\r\n _hexDump,\r\n stringOptions\r\n} from '../common.js';\r\n\r\nfunction hexDumpBase(ctx: BiBase, options: hexdumpOptions = {}): string {\r\n var length: any = options && options.length;\r\n var startByte: any = options && options.startByte;\r\n\r\n if ((startByte || 0) > ctx.size) {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"Hexdump start is outside of data size: \" + startByte + \" of \" + ctx.size);\r\n }\r\n const start = startByte || ctx.offset;\r\n const end = Math.min(start + (length || 192), ctx.size);\r\n if (start + (length || 0) > ctx.size) {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"Hexdump amount is outside of data size: \" + (start + (length || 0)) + \" of \" + end);\r\n }\r\n const data = ctx.data;\r\n\r\n return _hexDump(data, options, start, end);\r\n}\r\n\r\nfunction skip(ctx: BiBase, bytes: number, bits?: number): void {\r\n var new_size = (((bytes || 0) + ctx.offset) + Math.ceil((ctx.bitoffset + (bits || 0)) / 8));\r\n if (bits && bits < 0) {\r\n new_size = Math.floor(((((bytes || 0) + ctx.offset) * 8) + ctx.bitoffset + (bits || 0)) / 8);\r\n }\r\n\r\n if (new_size > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray(new_size - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: Seek of range of data: seek \" + new_size + \" of \" + ctx.size);\r\n }\r\n }\r\n\r\n // Adjust byte offset based on bit overflow\r\n ctx.offset += Math.floor((ctx.bitoffset + (bits || 0)) / 8);\r\n // Adjust bit offset\r\n ctx.bitoffset = (ctx.bitoffset + (bits || 0) + 64) % 8;\r\n // Adjust byte offset based on byte overflow\r\n ctx.offset += bytes;\r\n // Ensure bit offset stays between 0-7\r\n ctx.bitoffset = Math.min(Math.max(ctx.bitoffset, 0), 7);\r\n // Ensure offset doesn't go negative\r\n ctx.offset = Math.max(ctx.offset, 0);\r\n}\r\n\r\nfunction align(ctx: BiBase, n: number) {\r\n var a = ctx.offset % n;\r\n if (a) {\r\n ctx.skip(n - a);\r\n }\r\n}\r\n\r\nfunction alignRev(ctx: BiBase, n: number) {\r\n var a = ctx.offset % n;\r\n if (a) {\r\n ctx.skip(a * -1);\r\n }\r\n}\r\n\r\nfunction goto(ctx: BiBase, bytes: number, bits?: number): void {\r\n var new_size = (((bytes || 0)) + Math.ceil(((bits || 0)) / 8));\r\n if (bits && bits < 0) {\r\n new_size = Math.floor(((((bytes || 0)) * 8) + (bits || 0)) / 8);\r\n }\r\n if (new_size > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray(new_size - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: Goto utside of range of data: goto \" + new_size + \" of \" + ctx.size);\r\n }\r\n }\r\n ctx.offset = bytes;\r\n // Adjust byte offset based on bit overflow\r\n ctx.offset += Math.floor(((bits || 0)) / 8);\r\n // Adjust bit offset\r\n ctx.bitoffset = ((bits || 0) + 64) % 8;\r\n // Ensure bit offset stays between 0-7\r\n ctx.bitoffset = Math.min(Math.max(ctx.bitoffset, 0), 7);\r\n // Ensure offset doesn't go negative\r\n ctx.offset = Math.max(ctx.offset, 0);\r\n}\r\n\r\nfunction check_size(ctx: BiBase, write_bytes: number, write_bit?: number, offset?: number): number {\r\n return checkSize(ctx, write_bytes || 0, write_bit || 0, offset || ctx.offset);\r\n}\r\n\r\nfunction checkSize(ctx: BiBase, write_bytes: number, write_bit?: number, offset?: number): number {\r\n const bits: number = (write_bit || 0) + ctx.bitoffset;\r\n var new_off = (offset || ctx.offset);\r\n var writesize = write_bytes || 0;\r\n if (bits != 0) {\r\n //add bits\r\n writesize += Math.ceil(bits / 8);\r\n }\r\n //if biger extend\r\n const needed_size: number = new_off + writesize;\r\n if (needed_size > ctx.size) {\r\n const dif = needed_size - ctx.size;\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray(dif);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(`\\x1b[33m[Strict mode]\\x1b[0m: Reached end of data: writing to ` + needed_size + \" at \" + ctx.offset + \" of \" + ctx.size);\r\n }\r\n }\r\n //start read location\r\n return new_off;\r\n}\r\n\r\nfunction extendarray(ctx: BiBase, to_padd: number): void {\r\n if ((typeof Buffer !== 'undefined' && ctx.data instanceof Buffer)) {\r\n var paddbuffer = Buffer.alloc(to_padd);\r\n ctx.data = Buffer.concat([ctx.data, paddbuffer]);\r\n } else {\r\n const addArray = new Array(to_padd);\r\n ctx.data = new Uint8Array([...ctx.data, ...addArray]);\r\n }\r\n ctx.size = ctx.data.length;\r\n ctx.sizeB = ctx.data.length * 8;\r\n}\r\n\r\nfunction remove(ctx: BiBase, startOffset?: number, endOffset?: number, consume?: boolean, remove?: boolean, fillValue?: number): any {\r\n const new_start = Math.abs(startOffset || 0);\r\n const new_offset = (endOffset || ctx.offset);\r\n if (new_offset > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray(new_offset - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + endOffset + \" of \" + ctx.size);\r\n }\r\n }\r\n if (ctx.strict == true && remove == true) {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: Can not remove data in strict mode: endOffset \" + endOffset + \" of \" + ctx.size);\r\n }\r\n const data_removed = ctx.data.slice(new_start, new_offset);\r\n if (remove) {\r\n const part1 = ctx.data.subarray(0, new_start);\r\n const part2 = ctx.data.subarray(new_offset, ctx.size);\r\n if (isBuffer(ctx.data)) {\r\n ctx.data = Buffer.concat([part1, part2]);\r\n } else {\r\n ctx.data = new Uint8Array([...part1, ...part2]);\r\n }\r\n ctx.size = ctx.data.length;\r\n ctx.sizeB = ctx.data.length * 8;\r\n }\r\n if (fillValue != undefined && remove == false) {\r\n const part1 = ctx.data.subarray(0, new_start);\r\n const part2 = ctx.data.subarray(new_offset, ctx.size);\r\n const replacement = new Array(data_removed.length).fill(fillValue & 0xff);\r\n if (isBuffer(ctx.data)) {\r\n const buff_placement = Buffer.from(replacement);\r\n ctx.data = Buffer.concat([part1, buff_placement, part2]);\r\n } else {\r\n ctx.data = new Uint8Array([...part1, ...replacement, ...part2]);\r\n }\r\n ctx.size = ctx.data.length;\r\n ctx.sizeB = ctx.data.length * 8;\r\n }\r\n if (consume == true) {\r\n if (remove != true) {\r\n ctx.offset = new_offset;\r\n ctx.bitoffset = 0;\r\n } else {\r\n ctx.offset = new_start;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n return data_removed;\r\n}\r\n\r\nfunction addData(ctx: BiBase, data: Buffer | Uint8Array, consume?: boolean, offset?: number, replace?: boolean): void {\r\n if (ctx.strict == true) {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(`\\x1b[33m[Strict mode]\\x1b[0m: Can not insert data in strict mode. Use unrestrict() to enable.`);\r\n }\r\n if (typeof Buffer !== 'undefined' && data instanceof Buffer && !(ctx.data instanceof Buffer)) {\r\n data = Buffer.from(data);\r\n }\r\n if (data instanceof Uint8Array && !(ctx.data instanceof Uint8Array)) {\r\n data = new Uint8Array(data);\r\n }\r\n var needed_size: number = offset || ctx.offset;\r\n if (replace) {\r\n needed_size = (offset || ctx.offset) + data.length;\r\n const part1 = ctx.data.subarray(0, needed_size - data.length);\r\n const part2 = ctx.data.subarray(needed_size, ctx.size);\r\n if (isBuffer(ctx.data)) {\r\n ctx.data = Buffer.concat([part1, data, part2]);\r\n } else {\r\n ctx.data = new Uint8Array([...part1, ...data, ...part2]);\r\n }\r\n ctx.size = ctx.data.length;\r\n ctx.sizeB = ctx.data.length * 8;\r\n } else {\r\n const part1 = ctx.data.subarray(0, needed_size);\r\n const part2 = ctx.data.subarray(needed_size, ctx.size);\r\n if (isBuffer(ctx.data)) {\r\n ctx.data = Buffer.concat([part1, data, part2]);\r\n } else {\r\n ctx.data = new Uint8Array([...part1, ...data, ...part2]);\r\n }\r\n ctx.size = ctx.data.length;\r\n ctx.sizeB = ctx.data.length * 8;\r\n }\r\n if (consume) {\r\n ctx.offset = (offset || ctx.offset) + data.length;\r\n ctx.bitoffset = 0;\r\n }\r\n}\r\n\r\nfunction AND(ctx: BiBase, and_key: any, start?: number, end?: number, consume?: boolean): any {\r\n const input = ctx.data;\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n if (typeof and_key == \"number\") {\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n input[i] = input[i] & (and_key & 0xff);\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n if (arraybuffcheck(and_key)) {\r\n let number = -1;\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n if (number != and_key.length - 1) {\r\n number = number + 1;\r\n } else {\r\n number = 0;\r\n }\r\n input[i] = input[i] & and_key[number]\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n throw new Error(\"AND key must be a byte value, string, Uint8Array or Buffer\");\r\n }\r\n }\r\n}\r\n\r\nfunction OR(ctx: BiBase, or_key: any, start?: number, end?: number, consume?: boolean): any {\r\n const input = ctx.data;\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n if (typeof or_key == \"number\") {\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n input[i] = input[i] | (or_key & 0xff);\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n if (arraybuffcheck(or_key)) {\r\n let number = -1;\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n if (number != or_key.length - 1) {\r\n number = number + 1;\r\n } else {\r\n number = 0;\r\n }\r\n input[i] = input[i] | or_key[number];\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n throw new Error(\"OR key must be a byte value, string, Uint8Array or Buffer\");\r\n }\r\n }\r\n}\r\n\r\nfunction XOR(ctx: BiBase, xor_key: any, start?: number, end?: number, consume?: boolean): any {\r\n const input = ctx.data;\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n if (typeof xor_key == \"number\") {\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n input[i] = input[i] ^ (xor_key & 0xff);\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n if (arraybuffcheck(xor_key)) {\r\n let number = -1;\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n if (number != xor_key.length - 1) {\r\n number = number + 1;\r\n } else {\r\n number = 0;\r\n }\r\n input[i] = input[i] ^ xor_key[number];\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n throw new Error(\"XOR key must be a byte value, string, Uint8Array or Buffer\");\r\n }\r\n }\r\n}\r\n\r\nfunction NOT(ctx: BiBase, start?: number, end?: number, consume?: boolean): any {\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n ctx.data[i] = ~ctx.data[i];\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n}\r\n\r\nfunction LSHIFT(ctx: BiBase, shift_key: any, start?: number, end?: number, consume?: boolean): any {\r\n const input = ctx.data;\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n if (typeof shift_key == \"number\") {\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n input[i] = input[i] << shift_key;\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n if (arraybuffcheck(shift_key)) {\r\n let number = -1;\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n if (number != shift_key.length - 1) {\r\n number = number + 1;\r\n } else {\r\n number = 0;\r\n }\r\n input[i] = input[i] << shift_key[number];\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n throw new Error(\"XOR key must be a byte value, string, Uint8Array or Buffer\");\r\n }\r\n }\r\n}\r\n\r\nfunction RSHIFT(ctx: BiBase, shift_key: any, start?: number, end?: number, consume?: boolean): any {\r\n const input = ctx.data;\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n if (typeof shift_key == \"number\") {\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n input[i] = input[i] >> shift_key;\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n if (arraybuffcheck(shift_key)) {\r\n let number = -1;\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n if (number != shift_key.length - 1) {\r\n number = number + 1;\r\n } else {\r\n number = 0;\r\n }\r\n input[i] = input[i] >> shift_key[number];\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n throw new Error(\"XOR key must be a byte value, string, Uint8Array or Buffer\");\r\n }\r\n }\r\n}\r\n\r\nfunction ADD(ctx: BiBase, add_key: any, start?: number, end?: number, consume?: boolean): any {\r\n const input = ctx.data;\r\n if ((end || 0) > ctx.size) {\r\n if (ctx.strict == false) {\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray((end || 0) - ctx.size);\r\n }\r\n } else {\r\n ctx.errorDump ? console.log(\"[Error], hexdump:\\n\" + ctx.hexdump({returnString:true})) : \"\";\r\n throw new Error(\"\\x1b[33m[Strict mode]\\x1b[0m: End offset outside of data: endOffset \" + (end || 0) + \" of \" + ctx.size);\r\n }\r\n }\r\n if (typeof add_key == \"number\") {\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n input[i] = input[i] + add_key;\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n if (arraybuffcheck(add_key)) {\r\n let number = -1;\r\n for (let i = (start || 0); i < Math.min(end || ctx.size, ctx.size); i++) {\r\n if (number != add_key.length - 1) {\r\n number = number + 1;\r\n } else {\r\n number = 0;\r\n }\r\n input[i] = input[i] + add_key[number];\r\n if (consume) {\r\n ctx.offset = i;\r\n ctx.bitoffset = 0;\r\n }\r\n }\r\n } else {\r\n throw new Error(\"XOR key must be a byte value, string, Uint8Array or Buffer\");\r\n }\r\n }\r\n}\r\n\r\nfunction fString(ctx: BiBase, searchString: string): number {\r\n // Convert the searchString to Uint8Array\r\n const searchArray = new TextEncoder().encode(searchString);\r\n\r\n for (let i = ctx.offset; i <= ctx.size - searchArray.length; i++) {\r\n let match = true;\r\n\r\n for (let j = 0; j < searchArray.length; j++) {\r\n if (ctx.data[i + j] !== searchArray[j]) {\r\n match = false;\r\n break;\r\n }\r\n }\r\n\r\n if (match) {\r\n return i; // Found the string, return the index\r\n }\r\n }\r\n\r\n return -1; // String not found\r\n}\r\n\r\nfunction fNumber(ctx: BiBase, targetNumber: number, bits: number, unsigned: boolean, endian?: string): number {\r\n\r\n check_size(ctx, Math.floor(bits / 8), 0);\r\n\r\n for (let z = ctx.offset; z <= (ctx.size - (bits / 8)); z++) {\r\n\r\n var off_in_bits = 0;\r\n\r\n var value = 0;\r\n\r\n for (var i = 0; i < bits;) {\r\n var remaining = bits - i;\r\n var bitOffset = off_in_bits & 7;\r\n var currentByte = <unknown>ctx.data[z + (off_in_bits >> 3)] as number;\r\n\r\n var read = Math.min(remaining, 8 - bitOffset);\r\n\r\n var mask: number, readBits: number;\r\n\r\n if ((endian != undefined ? endian : ctx.endian) == \"big\") {\r\n\r\n mask = ~(0xFF << read);\r\n readBits = (currentByte >> (8 - read - bitOffset)) & mask;\r\n value <<= read;\r\n value |= readBits;\r\n\r\n } else {\r\n\r\n mask = ~(0xFF << read);\r\n readBits = (currentByte >> bitOffset) & mask;\r\n value |= readBits << i;\r\n\r\n }\r\n\r\n off_in_bits += read;\r\n i += read;\r\n }\r\n\r\n if (unsigned == true || bits <= 7) {\r\n\r\n value = value >>> 0;\r\n\r\n } else {\r\n if (bits !== 32 && value & (1 << (bits - 1))) {\r\n value |= -1 ^ ((1 << bits) - 1);\r\n }\r\n }\r\n\r\n if (value === targetNumber) {\r\n return z - ctx.offset; // Found the byte, return the index from current\r\n }\r\n }\r\n\r\n return -1; // number not found\r\n}\r\n\r\nfunction fHalfFloat(ctx: BiBase, targetNumber: number, endian?: string): number {\r\n\r\n check_size(ctx, 2, 0);\r\n\r\n for (let z = ctx.offset; z <= (ctx.size - 2); z++) {\r\n\r\n var value = 0;\r\n\r\n if ((endian != undefined ? endian : ctx.endian) == \"little\") {\r\n value = ((<unknown>ctx.data[z + 1] as number & 0xFFFF) << 8) | (<unknown>ctx.data[z] as number & 0xFFFF);\r\n } else {\r\n value = ((<unknown>ctx.data[z] as number & 0xFFFF) << 8) | (<unknown>ctx.data[z + 1] as number & 0xFFFF);\r\n }\r\n\r\n const sign = (value & 0x8000) >> 15;\r\n const exponent = (value & 0x7C00) >> 10;\r\n const fraction = value & 0x03FF;\r\n\r\n let floatValue: number;\r\n\r\n if (exponent === 0) {\r\n if (fraction === 0) {\r\n floatValue = (sign === 0) ? 0 : -0; // +/-0\r\n } else {\r\n // Denormalized number\r\n floatValue = (sign === 0 ? 1 : -1) * Math.pow(2, -14) * (fraction / 0x0400);\r\n }\r\n } else if (exponent === 0x1F) {\r\n if (fraction === 0) {\r\n floatValue = (sign === 0) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\r\n } else {\r\n floatValue = Number.NaN;\r\n }\r\n } else {\r\n // Normalized number\r\n floatValue = (sign === 0 ? 1 : -1) * Math.pow(2, exponent - 15) * (1 + fraction / 0x0400);\r\n }\r\n\r\n if (floatValue === targetNumber) {\r\n return z; // Found the number, return the index\r\n }\r\n }\r\n\r\n return -1; // number not found\r\n}\r\n\r\nfunction fFloat(ctx: BiBase, targetNumber: number, endian?: string): number {\r\n\r\n check_size(ctx, 4, 0);\r\n\r\n for (let z = ctx.offset; z <= (ctx.size - 4); z++) {\r\n\r\n var value = 0;\r\n\r\n if ((endian != undefined ? endian : ctx.endian) == \"little\") {\r\n value = (((<unknown>ctx.data[z + 3] as number & 0xFF) << 24) | ((<unknown>ctx.data[z + 2] as number & 0xFF) << 16) | ((<unknown>ctx.data[z + 1] as number & 0xFF) << 8) | (<unknown>ctx.data[z] as number & 0xFF));\r\n } else {\r\n value = ((<unknown>ctx.data[z] as number & 0xFF) << 24) | ((<unknown>ctx.data[z + 1] as number & 0xFF) << 16) | ((<unknown>ctx.data[z + 2] as number & 0xFF) << 8) | (<unknown>ctx.data[z + 3] as number & 0xFF);\r\n }\r\n\r\n const isNegative = (value & 0x80000000) !== 0 ? 1 : 0;\r\n\r\n // Extract the exponent and fraction parts\r\n const exponent = (value >> 23) & 0xFF;\r\n const fraction = value & 0x7FFFFF;\r\n\r\n // Calculate the float value\r\n let floatValue: number;\r\n\r\n if (exponent === 0) {\r\n // Denormalized number (exponent is 0)\r\n floatValue = Math.pow(-1, isNegative) * Math.pow(2, -126) * (fraction / Math.pow(2, 23));\r\n } else if (exponent === 0xFF) {\r\n // Infinity or NaN (exponent is 255)\r\n floatValue = fraction === 0 ? (isNegative ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY) : Number.NaN;\r\n } else {\r\n // Normalized number\r\n floatValue = Math.pow(-1, isNegative) * Math.pow(2, exponent - 127) * (1 + fraction / Math.pow(2, 23));\r\n }\r\n\r\n if (floatValue === targetNumber) {\r\n return z; // Found the number, return the index\r\n }\r\n\r\n }\r\n\r\n return -1; // number not found\r\n}\r\n\r\nfunction fBigInt(ctx: BiBase, targetNumber: BigValue, unsigned: boolean, endian?: string): number {\r\n\r\n check_size(ctx, 8, 0);\r\n\r\n for (let z = ctx.offset; z <= (ctx.size - 8); z++) {\r\n let value: bigint = BigInt(0);\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n for (let i = 0; i < 8; i++) {\r\n value = value | BigInt((<unknown>ctx.data[z + i] as number & 0xFF)) << BigInt(8 * i);\r\n }\r\n if (unsigned == undefined || unsigned == false) {\r\n if (value & (BigInt(1) << BigInt(63))) {\r\n value -= BigInt(1) << BigInt(64);\r\n }\r\n }\r\n } else {\r\n for (let i = 0; i < 8; i++) {\r\n value = (value << BigInt(8)) | BigInt((<unknown>ctx.data[z + i] as number & 0xFF));\r\n }\r\n if (unsigned == undefined || unsigned == false) {\r\n if (value & (BigInt(1) << BigInt(63))) {\r\n value -= BigInt(1) << BigInt(64);\r\n }\r\n }\r\n }\r\n\r\n if (value == BigInt(targetNumber)) {\r\n return z;\r\n }\r\n }\r\n\r\n return -1;// number not found\r\n}\r\n\r\nfunction fDoubleFloat(ctx: BiBase, targetNumber: number, endian?: string): number {\r\n\r\n check_size(ctx, 8, 0);\r\n\r\n for (let z = ctx.offset; z <= (ctx.size - 8); z++) {\r\n\r\n let value = BigInt(0);\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n for (let i = 0; i < 8; i++) {\r\n value = value | BigInt((<unknown>ctx.data[z + i] as number & 0xFF)) << BigInt(8 * i);\r\n }\r\n } else {\r\n for (let i = 0; i < 8; i++) {\r\n value = (value << BigInt(8)) | BigInt((<unknown>ctx.data[z + i] as number & 0xFF));\r\n }\r\n }\r\n\r\n const sign = (value & 0x8000000000000000n) >> 63n;\r\n const exponent = Number((value & 0x7FF0000000000000n) >> 52n) - 1023;\r\n const fraction = Number(value & 0x000FFFFFFFFFFFFFn) / Math.pow(2, 52);\r\n\r\n var floatValue: number;\r\n\r\n if (exponent == -1023) {\r\n if (fraction == 0) {\r\n floatValue = (sign == 0n) ? 0 : -0; // +/-0\r\n } else {\r\n // Denormalized number\r\n floatValue = (sign == 0n ? 1 : -1) * Math.pow(2, -1022) * fraction;\r\n }\r\n } else if (exponent == 1024) {\r\n if (fraction == 0) {\r\n floatValue = (sign == 0n) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\r\n } else {\r\n floatValue = Number.NaN;\r\n }\r\n } else {\r\n // Normalized number\r\n floatValue = (sign == 0n ? 1 : -1) * Math.pow(2, exponent) * (1 + fraction);\r\n }\r\n\r\n if (floatValue == targetNumber) {\r\n return z;\r\n }\r\n\r\n }\r\n\r\n return -1; // number not found\r\n}\r\n\r\nfunction wbit(ctx: BiBase, value: number, bits: number, unsigned?: boolean, endian?: string) {\r\n if (value == undefined) {\r\n throw new Error('Must supply value.');\r\n }\r\n if (bits == undefined) {\r\n throw new Error(\"Enter number of bits to write\")\r\n }\r\n if (bits == 0) {\r\n return;\r\n }\r\n if (bits <= 0 || bits > 32) {\r\n throw new Error('Bit length must be between 1 and 32. Got ' + bits);\r\n }\r\n if (unsigned == true) {\r\n if (value < 0 || value > Math.pow(2, bits)) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error(`Value is out of range for the specified ${bits}bit length.` + \" min: \" + 0 + \" max: \" + Math.pow(2, bits) + \" value: \" + value);\r\n }\r\n } else {\r\n const maxValue = Math.pow(2, bits - 1) - 1;\r\n const minValue = -maxValue - 1;\r\n if (value < minValue || value > maxValue) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error(`Value is out of range for the specified ${bits}bit length.` + \" min: \" + minValue + \" max: \" + maxValue + \" value: \" + value);\r\n }\r\n }\r\n if (unsigned == true) {\r\n const maxValue = Math.pow(2, bits) - 1;\r\n value = value & maxValue;\r\n }\r\n\r\n const size_needed = ((((bits - 1) + ctx.bitoffset) / 8) + ctx.offset);\r\n if (size_needed > ctx.size) {\r\n //add size\r\n if(ctx.extendBufferSize != 0)\r\n {\r\n ctx.extendArray(ctx.extendBufferSize);\r\n }\r\n else \r\n {\r\n ctx.extendArray(size_needed - ctx.size);\r\n }\r\n }\r\n\r\n var off_in_bits = (ctx.offset * 8) + ctx.bitoffset;\r\n\r\n for (var i = 0; i < bits;) {\r\n var remaining = bits - i;\r\n var bitOffset = off_in_bits & 7;\r\n var byteOffset = off_in_bits >> 3;\r\n var written = Math.min(remaining, 8 - bitOffset);\r\n\r\n var mask: number, writeBits: number, destMask: number;\r\n if ((endian != undefined ? endian : ctx.endian) == \"big\") {\r\n\r\n mask = ~(~0 << written);\r\n writeBits = (value >> (bits - i - written)) & mask;\r\n var destShift = 8 - bitOffset - written;\r\n destMask = ~(mask << destShift);\r\n ctx.data[byteOffset] = (ctx.data[byteOffset] & destMask) | (writeBits << destShift);\r\n\r\n } else {\r\n\r\n mask = ~(0xFF << written);\r\n writeBits = value & mask;\r\n value >>= written;\r\n destMask = ~(mask << bitOffset);\r\n ctx.data[byteOffset] = (ctx.data[byteOffset] & destMask) | (writeBits << bitOffset);\r\n\r\n }\r\n\r\n off_in_bits += written;\r\n i += written;\r\n }\r\n\r\n ctx.offset = ctx.offset + Math.floor(((bits) + ctx.bitoffset) / 8); //end byte\r\n ctx.bitoffset = ((bits) + ctx.bitoffset) % 8;\r\n}\r\n\r\nfunction rbit(ctx: BiBase, bits?: number, unsigned?: boolean, endian?: string): number {\r\n if (bits == undefined || typeof bits != \"number\") {\r\n throw new Error(\"Enter number of bits to read\");\r\n }\r\n if (bits == 0) {\r\n return 0;\r\n }\r\n if (bits <= 0 || bits > 32) {\r\n throw new Error('Bit length must be between 1 and 32. Got ' + bits);\r\n }\r\n const size_needed = ((((bits - 1) + ctx.bitoffset) / 8) + ctx.offset);\r\n if (bits <= 0 || size_needed > ctx.size) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error(\"Invalid number of bits to read: \" + size_needed + \" of \" + ctx.size);\r\n }\r\n\r\n var off_in_bits = (ctx.offset * 8) + ctx.bitoffset;\r\n\r\n var value = 0;\r\n\r\n for (var i = 0; i < bits;) {\r\n var remaining = bits - i;\r\n var bitOffset = off_in_bits & 7;\r\n var currentByte = <unknown>ctx.data[off_in_bits >> 3] as number;\r\n\r\n var read = Math.min(remaining, 8 - bitOffset);\r\n\r\n var mask: number, readBits: number;\r\n\r\n if ((endian != undefined ? endian : ctx.endian) == \"big\") {\r\n\r\n mask = ~(0xFF << read);\r\n readBits = (currentByte >> (8 - read - bitOffset)) & mask;\r\n value <<= read;\r\n value |= readBits;\r\n\r\n } else {\r\n\r\n mask = ~(0xFF << read);\r\n readBits = (currentByte >> bitOffset) & mask;\r\n value |= readBits << i;\r\n\r\n }\r\n\r\n off_in_bits += read;\r\n i += read;\r\n }\r\n\r\n ctx.offset = ctx.offset + Math.floor(((bits) + ctx.bitoffset) / 8); //end byte\r\n ctx.bitoffset = ((bits) + ctx.bitoffset) % 8;\r\n\r\n if (unsigned == true || bits <= 7) {\r\n\r\n return value >>> 0;\r\n\r\n }\r\n\r\n if (bits !== 32 && value & (1 << (bits - 1))) {\r\n value |= -1 ^ ((1 << bits) - 1);\r\n }\r\n\r\n return value;\r\n}\r\n\r\nfunction wbyte(ctx: BiBase, value: number, unsigned?: boolean): void {\r\n\r\n check_size(ctx, 1, 0);\r\n\r\n if (unsigned == true) {\r\n if (value < 0 || value > 255) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 8bit length.' + \" min: \" + 0 + \" max: \" + 255 + \" value: \" + value);\r\n }\r\n } else {\r\n const maxValue = Math.pow(2, 8 - 1) - 1;\r\n const minValue = -maxValue - 1;\r\n if (value < minValue || value > maxValue) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 8bit length.' + \" min: \" + minValue + \" max: \" + maxValue + \" value: \" + value);\r\n }\r\n }\r\n ctx.data[ctx.offset] = (unsigned == undefined || unsigned == false) ? value : value & 0xFF;\r\n ctx.offset += 1;\r\n ctx.bitoffset = 0;\r\n}\r\n\r\nfunction rbyte(ctx: BiBase, unsigned?: boolean): number {\r\n\r\n check_size(ctx, 1);\r\n\r\n const read = <unknown>ctx.data[ctx.offset] as number;\r\n ctx.offset += 1;\r\n ctx.bitoffset = 0;\r\n if (unsigned == true) {\r\n return read & 0xFF;\r\n } else {\r\n return read > 127 ? read - 256 : read;\r\n }\r\n}\r\n\r\nfunction wint16(ctx: BiBase, value: number, unsigned?: boolean, endian?: string): void {\r\n\r\n check_size(ctx, 2, 0);\r\n\r\n if (unsigned == true) {\r\n if (value < 0 || value > 65535) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 16bit length.' + \" min: \" + 0 + \" max: \" + 65535 + \" value: \" + value);\r\n }\r\n } else {\r\n const maxValue = Math.pow(2, 16 - 1) - 1;\r\n const minValue = -maxValue - 1;\r\n if (value < minValue || value > maxValue) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 16bit length.' + \" min: \" + minValue + \" max: \" + maxValue + \" value: \" + value);\r\n }\r\n }\r\n if ((endian != undefined ? endian : ctx.endian) == \"little\") {\r\n ctx.data[ctx.offset] = (unsigned == undefined || unsigned == false) ? value : value & 0xff;\r\n ctx.data[ctx.offset + 1] = (unsigned == undefined || unsigned == false) ? (value >> 8) : (value >> 8) & 0xff;\r\n } else {\r\n ctx.data[ctx.offset] = (unsigned == undefined || unsigned == false) ? (value >> 8) : (value >> 8) & 0xff;\r\n ctx.data[ctx.offset + 1] = (unsigned == undefined || unsigned == false) ? value : value & 0xff;\r\n }\r\n ctx.offset += 2;\r\n ctx.bitoffset = 0;\r\n}\r\n\r\nfunction rint16(ctx: BiBase, unsigned?: boolean, endian?: string): number {\r\n\r\n check_size(ctx, 2);\r\n\r\n var read: number;\r\n if ((endian != undefined ? endian : ctx.endian) == \"little\") {\r\n read = ((<unknown>ctx.data[ctx.offset + 1] as number & 0xFFFF) << 8) | (<unknown>ctx.data[ctx.offset] as number & 0xFFFF);\r\n } else {\r\n read = ((<unknown>ctx.data[ctx.offset] as number & 0xFFFF) << 8) | (<unknown>ctx.data[ctx.offset + 1] as number & 0xFFFF);\r\n }\r\n ctx.offset += 2;\r\n ctx.bitoffset = 0;\r\n if (unsigned == undefined || unsigned == false) {\r\n return read & 0x8000 ? -(0x10000 - read) : read;\r\n } else {\r\n return read & 0xFFFF;\r\n }\r\n}\r\n\r\nfunction rhalffloat(ctx: BiBase, endian?: endian): number {\r\n\r\n var uint16Value = ctx.readInt16(true, (endian != undefined ? endian : ctx.endian));\r\n const sign = (uint16Value & 0x8000) >> 15;\r\n const exponent = (uint16Value & 0x7C00) >> 10;\r\n const fraction = uint16Value & 0x03FF;\r\n\r\n let floatValue: number;\r\n\r\n if (exponent === 0) {\r\n if (fraction === 0) {\r\n floatValue = (sign === 0) ? 0 : -0; // +/-0\r\n } else {\r\n // Denormalized number\r\n floatValue = (sign === 0 ? 1 : -1) * Math.pow(2, -14) * (fraction / 0x0400);\r\n }\r\n } else if (exponent === 0x1F) {\r\n if (fraction === 0) {\r\n floatValue = (sign === 0) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\r\n } else {\r\n floatValue = Number.NaN;\r\n }\r\n } else {\r\n // Normalized number\r\n floatValue = (sign === 0 ? 1 : -1) * Math.pow(2, exponent - 15) * (1 + fraction / 0x0400);\r\n }\r\n\r\n return floatValue;\r\n}\r\n\r\nfunction whalffloat(ctx: BiBase, value: number, endian?: string): void {\r\n\r\n check_size(ctx, 2, 0);\r\n\r\n const maxValue = 65504;\r\n const minValue = 5.96e-08;\r\n if (value < minValue || value > maxValue) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified half float length.' + \" min: \" + minValue + \" max: \" + maxValue + \" value: \" + value);\r\n }\r\n const signMask = 0x8000;\r\n const exponentMask = 0x7C00;\r\n const fractionMask = 0x03FF;\r\n\r\n // Determine sign, exponent, and fraction bits\r\n let signBit = (value & signMask) >> 15;\r\n let exponentBits = (value & exponentMask) >> 10;\r\n let fractionBits = value & fractionMask;\r\n\r\n // Special cases for NaN and Infinity\r\n if (exponentBits === 0x1F) {\r\n // NaN or Infinity, copy exponent and fraction\r\n exponentBits = 0xFF;\r\n } else if (exponentBits === 0x00) {\r\n // Denormalized numbers, exponent is 0, adjust exponent bits\r\n exponentBits = 0x00;\r\n fractionBits = 0x00; // Clear fraction for denormals\r\n } else {\r\n // Normalized number, subtract exponent bias\r\n exponentBits -= 15;\r\n }\r\n\r\n // Combine sign, exponent, and fraction bits into half float format\r\n let halfFloatBits = (signBit << 15) | (exponentBits << 10) | fractionBits;\r\n\r\n // Write bytes based on endianness\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n ctx.data[ctx.offset] = halfFloatBits & 0xFF;\r\n ctx.data[ctx.offset + 1] = (halfFloatBits >> 8) & 0xFF;\r\n } else {\r\n ctx.data[ctx.offset] = (halfFloatBits >> 8) & 0xFF;\r\n ctx.data[ctx.offset + 1] = halfFloatBits & 0xFF;\r\n }\r\n\r\n ctx.offset += 2;\r\n ctx.bitoffset = 0;\r\n}\r\n\r\nfunction wint32(ctx: BiBase, value: number, unsigned?: boolean, endian?: string): void {\r\n\r\n check_size(ctx, 4, 0);\r\n\r\n if (unsigned == true) {\r\n if (value < 0 || value > 4294967295) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 32bit length.' + \" min: \" + 0 + \" max: \" + 4294967295 + \" value: \" + value);\r\n }\r\n } else {\r\n const maxValue = Math.pow(2, 32 - 1) - 1;\r\n const minValue = -maxValue - 1;\r\n if (value < minValue || value > maxValue) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 32bit length.' + \" min: \" + minValue + \" max: \" + maxValue + \" value: \" + value);\r\n }\r\n }\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n ctx.data[ctx.offset] = (unsigned == undefined || unsigned == false) ? value : value & 0xFF;\r\n ctx.data[ctx.offset + 1] = (unsigned == undefined || unsigned == false) ? (value >> 8) : (value >> 8) & 0xFF;\r\n ctx.data[ctx.offset + 2] = (unsigned == undefined || unsigned == false) ? (value >> 16) : (value >> 16) & 0xFF;\r\n ctx.data[ctx.offset + 3] = (unsigned == undefined || unsigned == false) ? (value >> 24) : (value >> 24) & 0xFF;\r\n } else {\r\n ctx.data[ctx.offset] = (unsigned == undefined || unsigned == false) ? (value >> 24) : (value >> 24) & 0xFF;\r\n ctx.data[ctx.offset + 1] = (unsigned == undefined || unsigned == false) ? (value >> 16) : (value >> 16) & 0xFF;\r\n ctx.data[ctx.offset + 2] = (unsigned == undefined || unsigned == false) ? (value >> 8) : (value >> 8) & 0xFF;\r\n ctx.data[ctx.offset + 3] = (unsigned == undefined || unsigned == false) ? value : value & 0xFF;\r\n }\r\n ctx.offset += 4;\r\n ctx.bitoffset = 0;\r\n}\r\n\r\nfunction rint32(ctx: BiBase, unsigned?: boolean, endian?: string): number {\r\n\r\n check_size(ctx, 4);\r\n\r\n var read: number;\r\n if ((endian != undefined ? endian : ctx.endian) == \"little\") {\r\n read = (((<unknown>ctx.data[ctx.offset + 3] as number & 0xFF) << 24) | ((<unknown>ctx.data[ctx.offset + 2] as number & 0xFF) << 16) | ((<unknown>ctx.data[ctx.offset + 1] as number & 0xFF) << 8) | (<unknown>ctx.data[ctx.offset] as number & 0xFF));\r\n } else {\r\n read = ((<unknown>ctx.data[ctx.offset] as number & 0xFF) << 24) | ((<unknown>ctx.data[ctx.offset + 1] as number & 0xFF) << 16) | ((<unknown>ctx.data[ctx.offset + 2] as number & 0xFF) << 8) | (<unknown>ctx.data[ctx.offset + 3] as number & 0xFF);\r\n }\r\n ctx.offset += 4;\r\n ctx.bitoffset = 0;\r\n if (unsigned == undefined || unsigned == false) {\r\n return read;\r\n } else {\r\n return read >>> 0;\r\n }\r\n}\r\n\r\nfunction rfloat(ctx: BiBase, endian?: endian): number {\r\n\r\n var uint32Value = ctx.readInt32(true, (endian == undefined ? ctx.endian : endian));\r\n // Check if the value is negative (i.e., the most significant bit is set)\r\n const isNegative = (uint32Value & 0x80000000) !== 0 ? 1 : 0;\r\n\r\n // Extract the exponent and fraction parts\r\n const exponent = (uint32Value >> 23) & 0xFF;\r\n const fraction = uint32Value & 0x7FFFFF;\r\n\r\n // Calculate the float value\r\n let floatValue: number;\r\n\r\n if (exponent === 0) {\r\n // Denormalized number (exponent is 0)\r\n floatValue = Math.pow(-1, isNegative) * Math.pow(2, -126) * (fraction / Math.pow(2, 23));\r\n } else if (exponent === 0xFF) {\r\n // Infinity or NaN (exponent is 255)\r\n floatValue = fraction === 0 ? (isNegative ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY) : Number.NaN;\r\n } else {\r\n // Normalized number\r\n floatValue = Math.pow(-1, isNegative) * Math.pow(2, exponent - 127) * (1 + fraction / Math.pow(2, 23));\r\n }\r\n\r\n return floatValue;\r\n}\r\n\r\nfunction wfloat(ctx: BiBase, value: number, endian?: string): void {\r\n\r\n check_size(ctx, 4, 0);\r\n\r\n const MIN_POSITIVE_FLOAT32 = Number.MIN_VALUE;\r\n const MAX_POSITIVE_FLOAT32 = 3.4028235e+38;\r\n const MIN_NEGATIVE_FLOAT32 = -3.4028235e+38;\r\n const MAX_NEGATIVE_FLOAT32 = -Number.MIN_VALUE;\r\n if (!((value === 0) ||\r\n (value >= MIN_POSITIVE_FLOAT32 && value <= MAX_POSITIVE_FLOAT32) ||\r\n (value >= MIN_NEGATIVE_FLOAT32 && value <= MAX_NEGATIVE_FLOAT32))) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified float length.' + \" min: \" + MIN_NEGATIVE_FLOAT32 + \" max: \" + MAX_POSITIVE_FLOAT32 + \" value: \" + value);\r\n }\r\n\r\n const dataView = new DataView(new Uint8Array(4).buffer);\r\n dataView.setFloat32(0, value, true);\r\n let intValue = dataView.getInt32(0, true);\r\n\r\n let shift = 0;\r\n for (let i = 0; i < 4; i++) {\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n ctx.data[ctx.offset + i] = (intValue >> shift) & 0xFF;\r\n } else {\r\n ctx.data[ctx.offset + (3 - i)] = (intValue >> shift) & 0xFF;\r\n }\r\n shift += 8;\r\n }\r\n\r\n ctx.offset += 4;\r\n ctx.bitoffset = 0;\r\n}\r\n\r\nfunction rint64(ctx: BiBase, unsigned?: boolean, endian?: string): bigint {\r\n\r\n check_size(ctx, 8);\r\n\r\n // Convert the byte array to a BigInt\r\n let value: bigint = BigInt(0);\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n for (let i = 0; i < 8; i++) {\r\n value = value | BigInt((<unknown>ctx.data[ctx.offset] as number & 0xFF)) << BigInt(8 * i);\r\n ctx.offset += 1;\r\n }\r\n if (unsigned == undefined || unsigned == false) {\r\n if (value & (BigInt(1) << BigInt(63))) {\r\n value -= BigInt(1) << BigInt(64);\r\n }\r\n }\r\n } else {\r\n for (let i = 0; i < 8; i++) {\r\n value = (value << BigInt(8)) | BigInt((<unknown>ctx.data[ctx.offset] as number & 0xFF));\r\n ctx.offset += 1;\r\n }\r\n if (unsigned == undefined || unsigned == false) {\r\n if (value & (BigInt(1) << BigInt(63))) {\r\n value -= BigInt(1) << BigInt(64);\r\n }\r\n }\r\n }\r\n ctx.bitoffset = 0;\r\n return value\r\n}\r\n\r\nfunction wint64(ctx: BiBase, value: BigValue, unsigned?: boolean, endian?: string): void {\r\n\r\n check_size(ctx, 8, 0);\r\n\r\n if (unsigned == true) {\r\n if (value < 0 || value > Math.pow(2, 64) - 1) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 64bit length.' + \" min: \" + 0 + \" max: \" + (Math.pow(2, 64) - 1) + \" value: \" + value);\r\n }\r\n } else {\r\n const maxValue = Math.pow(2, 63) - 1;\r\n const minValue = -Math.pow(2, 63);\r\n if (value < minValue || value > maxValue) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 64bit length.' + \" min: \" + minValue + \" max: \" + maxValue + \" value: \" + value);\r\n }\r\n }\r\n // Convert the BigInt to a 64-bit signed integer\r\n const bigIntArray = new BigInt64Array(1);\r\n bigIntArray[0] = BigInt(value);\r\n\r\n // Use two 32-bit views to write the Int64\r\n const int32Array = new Int32Array(bigIntArray.buffer);\r\n\r\n for (let i = 0; i < 2; i++) {\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n if (unsigned == undefined || unsigned == false) {\r\n ctx.data[ctx.offset + i * 4 + 0] = int32Array[i];\r\n ctx.data[ctx.offset + i * 4 + 1] = (int32Array[i] >> 8);\r\n ctx.data[ctx.offset + i * 4 + 2] = (int32Array[i] >> 16);\r\n ctx.data[ctx.offset + i * 4 + 3] = (int32Array[i] >> 24);\r\n } else {\r\n ctx.data[ctx.offset + i * 4 + 0] = int32Array[i] & 0xFF;\r\n ctx.data[ctx.offset + i * 4 + 1] = (int32Array[i] >> 8) & 0xFF;\r\n ctx.data[ctx.offset + i * 4 + 2] = (int32Array[i] >> 16) & 0xFF;\r\n ctx.data[ctx.offset + i * 4 + 3] = (int32Array[i] >> 24) & 0xFF;\r\n }\r\n } else {\r\n if (unsigned == undefined || unsigned == false) {\r\n ctx.data[ctx.offset + (1 - i) * 4 + 0] = int32Array[i];\r\n ctx.data[ctx.offset + (1 - i) * 4 + 1] = (int32Array[i] >> 8);\r\n ctx.data[ctx.offset + (1 - i) * 4 + 2] = (int32Array[i] >> 16);\r\n ctx.data[ctx.offset + (1 - i) * 4 + 3] = (int32Array[i] >> 24);\r\n } else {\r\n ctx.data[ctx.offset + (1 - i) * 4 + 0] = int32Array[i] & 0xFF;\r\n ctx.data[ctx.offset + (1 - i) * 4 + 1] = (int32Array[i] >> 8) & 0xFF;\r\n ctx.data[ctx.offset + (1 - i) * 4 + 2] = (int32Array[i] >> 16) & 0xFF;\r\n ctx.data[ctx.offset + (1 - i) * 4 + 3] = (int32Array[i] >> 24) & 0xFF;\r\n }\r\n }\r\n }\r\n\r\n ctx.offset += 8;\r\n ctx.bitoffset = 0;\r\n}\r\n\r\nfunction wdfloat(ctx: BiBase, value: number, endian?: string): void {\r\n\r\n check_size(ctx, 8, 0);\r\n\r\n const MIN_POSITIVE_FLOAT64 = 2.2250738585072014e-308;\r\n const MAX_POSITIVE_FLOAT64 = Number.MAX_VALUE;\r\n const MIN_NEGATIVE_FLOAT64 = -Number.MAX_VALUE;\r\n const MAX_NEGATIVE_FLOAT64 = -2.2250738585072014e-308;\r\n if (!((value === 0) ||\r\n (value >= MIN_POSITIVE_FLOAT64 && value <= MAX_POSITIVE_FLOAT64) ||\r\n (value >= MIN_NEGATIVE_FLOAT64 && value <= MAX_NEGATIVE_FLOAT64))) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error('Value is out of range for the specified 64bit length.' + \" min: \" + MIN_NEGATIVE_FLOAT64 + \" max: \" + MAX_POSITIVE_FLOAT64 + \" value: \" + value);\r\n }\r\n const intArray = new Int32Array(2);\r\n const floatArray = new Float64Array(intArray.buffer);\r\n\r\n floatArray[0] = value;\r\n\r\n const bytes = new Uint8Array(intArray.buffer);\r\n\r\n for (let i = 0; i < 8; i++) {\r\n if ((endian == undefined ? ctx.endian : endian) == \"little\") {\r\n ctx.data[ctx.offset + i] = bytes[i];\r\n } else {\r\n ctx.data[ctx.offset + (7 - i)] = bytes[i];\r\n }\r\n }\r\n\r\n ctx.offset += 8\r\n ctx.bitoffset = 0\r\n}\r\n\r\nfunction rdfloat(ctx: BiBase, endian?: endian): number {\r\n endian = (endian == undefined ? ctx.endian : endian);\r\n var uint64Value = ctx.readInt64(true, endian);\r\n const sign = (uint64Value & 0x8000000000000000n) >> 63n;\r\n const exponent = Number((uint64Value & 0x7FF0000000000000n) >> 52n) - 1023;\r\n const fraction = Number(uint64Value & 0x000FFFFFFFFFFFFFn) / Math.pow(2, 52);\r\n\r\n var floatValue: number;\r\n\r\n if (exponent == -1023) {\r\n if (fraction == 0) {\r\n floatValue = (sign == 0n) ? 0 : -0; // +/-0\r\n } else {\r\n // Denormalized number\r\n floatValue = (sign == 0n ? 1 : -1) * Math.pow(2, -1022) * fraction;\r\n }\r\n } else if (exponent == 1024) {\r\n if (fraction == 0) {\r\n floatValue = (sign == 0n) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\r\n } else {\r\n floatValue = Number.NaN;\r\n }\r\n } else {\r\n // Normalized number\r\n floatValue = (sign == 0n ? 1 : -1) * Math.pow(2, exponent) * (1 + fraction);\r\n }\r\n\r\n return floatValue;\r\n}\r\n\r\nfunction rstring(ctx: BiBase, options?: stringOptions): string {\r\n\r\n var length: any = options && options.length;\r\n var stringType: any = options && options.stringType || 'utf-8';\r\n var terminateValue: any = options && options.terminateValue;\r\n var lengthReadSize: any = options && options.lengthReadSize || 1;\r\n var stripNull: any = options && options.stripNull || true;\r\n var encoding: any = options && options.encoding || 'utf-8';\r\n var endian: any = options && options.endian || ctx.endian;\r\n\r\n var terminate = terminateValue;\r\n\r\n if (length != undefined) {\r\n check_size(ctx, length);\r\n }\r\n\r\n if (typeof terminateValue == \"number\") {\r\n terminate = terminateValue & 0xFF;\r\n } else {\r\n if (terminateValue != undefined) {\r\n throw new Error(\"terminateValue must be a number\");\r\n }\r\n }\r\n\r\n if (stringType == 'utf-8' || stringType == 'utf-16') {\r\n\r\n if (encoding == undefined) {\r\n if (stringType == 'utf-8') {\r\n encoding = 'utf-8';\r\n }\r\n if (stringType == 'utf-16') {\r\n encoding = 'utf-16';\r\n }\r\n }\r\n\r\n // Read the string as UTF-8 encoded untill 0 or terminateValue\r\n const encodedBytes: Array<number> = [];\r\n\r\n if (length == undefined && terminateValue == undefined) {\r\n terminate = 0;\r\n }\r\n\r\n var read_length = 0;\r\n\r\n if (length != undefined) {\r\n read_length = length;\r\n } else {\r\n read_length = ctx.data.length - ctx.offset;\r\n }\r\n\r\n for (let i = 0; i < read_length; i++) {\r\n if (stringType === 'utf-8') {\r\n var read = ctx.readUByte();\r\n if (read == terminate) {\r\n break;\r\n } else {\r\n if (!(stripNull == true && read == 0)) {\r\n encodedBytes.push(read);\r\n }\r\n }\r\n } else {\r\n var read = ctx.readInt16(true, endian);\r\n var read1 = read & 0xFF;\r\n var read2 = (read >> 8) & 0xFF;\r\n if (read == terminate) {\r\n break;\r\n } else {\r\n if (!(stripNull == true && read == 0)) {\r\n encodedBytes.push(read1);\r\n encodedBytes.push(read2);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return new TextDecoder(encoding).decode(new Uint8Array(encodedBytes));\r\n\r\n } else if (stringType == 'pascal' || stringType == 'wide-pascal') {\r\n\r\n if (encoding == undefined) {\r\n if (stringType == 'pascal') {\r\n encoding = 'utf-8';\r\n }\r\n if (stringType == 'wide-pascal') {\r\n encoding = 'utf-16';\r\n }\r\n }\r\n\r\n var maxBytes: number;\r\n if (lengthReadSize == 1) {\r\n maxBytes = ctx.readUByte();\r\n } else if (lengthReadSize == 2) {\r\n maxBytes = ctx.readInt16(true, endian);\r\n } else if (lengthReadSize == 4) {\r\n maxBytes = ctx.readInt32(true, endian);\r\n } else {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\"\r\n throw new Error(\"Invalid length read size: \" + lengthReadSize);\r\n }\r\n\r\n // Read the string as Pascal or Delphi encoded\r\n const encodedBytes: Array<number> = [];\r\n for (let i = 0; i < maxBytes; i++) {\r\n if (stringType == 'wide-pascal') {\r\n const read = ctx.readInt16(true, endian);\r\n if (!(stripNull == true && read == 0)) {\r\n encodedBytes.push(read);\r\n }\r\n } else {\r\n const read = ctx.readUByte()\r\n if (!(stripNull == true && read == 0)) {\r\n encodedBytes.push(read);\r\n }\r\n }\r\n }\r\n var str_return: string;\r\n if (stringType == 'wide-pascal') {\r\n str_return = new TextDecoder(encoding).decode(new Uint16Array(encodedBytes));\r\n } else {\r\n str_return = new TextDecoder(encoding).decode(new Uint8Array(encodedBytes));\r\n }\r\n\r\n return str_return;\r\n } else {\r\n throw new Error('Unsupported string type: ' + stringType);\r\n }\r\n}\r\n\r\nfunction wstring(ctx: BiBase, string: string, options?: stringOptions): void {\r\n var length: any = options && options.length;\r\n var stringType: any = options && options.stringType || 'utf-8';\r\n var terminateValue: any = options && options.terminateValue;\r\n var lengthWriteSize: any = options && options.lengthWriteSize || 1;\r\n var encoding: any = options && options.encoding || 'utf-8';\r\n var endian: any = options && options.endian || ctx.endian;\r\n\r\n if (stringType === 'utf-8' || stringType === 'utf-16') {\r\n // Encode the string in the specified encoding\r\n\r\n if (encoding == undefined) {\r\n if (stringType == 'utf-8') {\r\n encoding = 'utf-8';\r\n }\r\n if (stringType == 'utf-16') {\r\n encoding = 'utf-16';\r\n }\r\n }\r\n\r\n const encoder = new TextEncoder();\r\n\r\n const encodedString = encoder.encode(string);\r\n\r\n if (length == undefined && terminateValue == undefined) {\r\n terminateValue = 0;\r\n }\r\n\r\n var totalLength = (length || encodedString.length) + (terminateValue != undefined ? 1 : 0);\r\n\r\n if (stringType == 'utf-16') {\r\n totalLength = (length || (encodedString.length * 2)) + (terminateValue != undefined ? 2 : 0);\r\n }\r\n\r\n check_size(ctx, totalLength, 0);\r\n\r\n // Write the string bytes to the Uint8Array\r\n for (let i = 0; i < encodedString.length; i++) {\r\n if (stringType === 'utf-16') {\r\n const charCode = encodedString[i];\r\n if (endian == \"little\") {\r\n ctx.data[ctx.offset + i * 2] = charCode & 0xFF;\r\n ctx.data[ctx.offset + i * 2 + 1] = (charCode >> 8) & 0xFF;\r\n } else {\r\n ctx.data[ctx.offset + i * 2 + 1] = charCode & 0xFF;\r\n ctx.data[ctx.offset + i * 2] = (charCode >> 8) & 0xFF;\r\n }\r\n } else {\r\n ctx.data[ctx.offset + i] = encodedString[i];\r\n }\r\n }\r\n\r\n if (terminateValue != undefined) {\r\n if (stringType === 'utf-16') {\r\n ctx.data[ctx.offset + totalLength - 1] = terminateValue & 0xFF;\r\n ctx.data[ctx.offset + totalLength] = (terminateValue >> 8) & 0xFF;\r\n } else {\r\n ctx.data[ctx.offset + totalLength] = terminateValue;\r\n }\r\n }\r\n\r\n ctx.offset += totalLength;\r\n ctx.bitoffset = 0;\r\n\r\n } else if (stringType == 'pascal' || stringType == 'wide-pascal') {\r\n\r\n if (encoding == undefined) {\r\n if (stringType == 'pascal') {\r\n encoding = 'utf-8';\r\n }\r\n if (stringType == 'wide-pascal') {\r\n encoding = 'utf-16';\r\n }\r\n }\r\n\r\n const encoder = new TextEncoder();\r\n\r\n // Calculate the length of the string based on the specified max length\r\n var maxLength: number;\r\n\r\n // Encode the string in the specified encoding\r\n if (lengthWriteSize == 1) {\r\n maxLength = 255;\r\n } else if (lengthWriteSize == 2) {\r\n maxLength = 65535;\r\n } else if (lengthWriteSize == 4) {\r\n maxLength = 4294967295;\r\n } else {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error(\"Invalid length write size: \" + lengthWriteSize);\r\n }\r\n if (string.length > maxLength || (length || 0) > maxLength) {\r\n ctx.errorDump ? \"[Error], hexdump:\\n\" + ctx.hexdump() : \"\";\r\n throw new Error(\"String outsize of max write length: \" + maxLength);\r\n }\r\n var maxBytes = Math.min(string.length, maxLength);\r\n const encodedString = encoder.encode(string.substring(0, maxBytes));\r\n\r\n var totalLength = (length || encodedString.length);\r\n\r\n if (stringType == 'wide-pascal') {\r\n totalLength = (length || (encodedString.length * 2));\r\n }\r\n\r\n if (lengthWriteSize == 1) {\r\n ctx.writeUByte(maxBytes);\r\n } else if (lengthWriteSize == 2) {\r\n ctx.writeUInt16(maxBytes, endian);\r\n } else if (lengthWriteSize == 4) {\r\n ctx.writeUInt32(maxBytes, endian);\r\n }\r\n\r\n check_size(ctx, totalLength, 0)\r\n\r\n // Write the string bytes to the Uint8Array\r\n for (let i = 0; i < encodedString.length; i++) {\r\n if (stringType == 'wide-pascal') {\r\n const charCode = encodedString[i];\r\n if (endian == \"little\") {\r\n ctx.data[ctx.offset + i * 2] = charCode & 0xFF;\r\n ctx.data[ctx.offset + i * 2 + 1] = (charCode >> 8) & 0xFF;\r\n } else {\r\n ctx.data[ctx.offset + i * 2 + 1] = charCode & 0xFF;\r\n ctx.data[ctx.offset + i * 2] = (charCode >> 8) & 0xFF;\r\n }\r\n } else {\r\n ctx.data[ctx.offset + i] = encodedString[i];\r\n }\r\n }\r\n\r\n ctx.offset += totalLength;\r\n ctx.bitoffset = 0;\r\n } else {\r\n throw new Error('Unsupported string type: ' + stringType);\r\n }\r\n}\r\n\r\nexport class BiBase{\r\n /**\r\n * Endianness of default read. \r\n * @type {endian}\r\n */\r\n public endian: endian = \"little\";\r\n /**\r\n * Current read byte location.\r\n */\r\n public offset: number = 0;\r\n /**\r\n * Current read byte's bit location.\r\n */\r\n public bitoffset: number = 0;\r\n /**\r\n * Size in bytes of the current buffer.\r\n */\r\n public size: number = 0;\r\n /**\r\n * Size in bits of the current buffer.\r\n */\r\n public sizeB: number = 0;\r\n /**\r\n * Allows the buffer to extend reading or writing outside of current size\r\n */\r\n public strict: boolean = false;\r\n /**\r\n * Console log a hexdump on error.\r\n */\r\n public errorDump: boolean = true;\r\n /**\r\n * Current buffer data.\r\n * @type {Buffer|Uint8Array|null}\r\n */\r\n public data: Buffer|Uint8Array|null = null;\r\n /**\r\n * When the data buffer needs to be extended while strict mode is ``false``, this will be the amount it extends.\r\n * \r\n * Otherwise it extends just the amount of the next written value.\r\n * \r\n * This can greatly speed up data writes when large files are being written.\r\n * \r\n * NOTE: Using ``BiWriter.get`` or ``BiWriter.return`` will now remove all data after the current write position. Use ``BiWriter.data`` to get the full buffer instead.\r\n */ \r\n public extendBufferSize: number = 0;\r\n \r\n public fd = null;\r\n\r\n public filePath = \"\";\r\n\r\n public fsMode = \"\";\r\n\r\n /**\r\n * The settings that used when using the .str getter / setter\r\n */\r\n private strDefaults: stringOptions = {stringType: \"utf-8\", terminateValue: 0x0};\r\n\r\n public maxFileSize: number | null = null;\r\n\r\n constructor(){\r\n\r\n }\r\n\r\n /**\r\n * Settings for when using .str\r\n * \r\n * @param {stringOptions} settings options to use with .str\r\n */\r\n set strSettings(settings:stringOptions){\r\n this.strDefaults.encoding = settings.encoding;\r\n this.strDefaults.endian = settings.endian;\r\n this.strDefaults.length = settings.length;\r\n this.strDefaults.lengthReadSize = settings.lengthReadSize;\r\n this.strDefaults.lengthWriteSize = settings.lengthWriteSize;\r\n this.strDefaults.stringType = settings.stringType;\r\n this.strDefaults.stripNull = settings.stripNull;\r\n this.strDefaults.terminateValue = settings.terminateValue;\r\n }\r\n\r\n /**\r\n * Enables expanding in reader (changes strict)\r\n * \r\n * @param {boolean} mode - Enable expanding in reader (changes strict)\r\n */\r\n writeMode(mode: boolean) {\r\n if (mode) {\r\n this.strict = false;\r\n return;\r\n }\r\n else \r\n {\r\n this.strict = true;\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n open():number{\r\n return this.size;\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n updateSize():void{\r\n this.return;\r\n }\r\n\r\n /**\r\n * removes data.\r\n */\r\n close(): void {\r\n this.data = undefined;\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n read(start: number, length: number, consume: boolean = false){\r\n return this.lift(start, start+length, consume);\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n write(start: number, data: Buffer, consume: boolean = false): number {\r\n this.insert(data, consume, start);\r\n return data.length;\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n renameFile(){\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n deleteFile(){\r\n }\r\n\r\n /**\r\n * Dummy function, not needed on Non-Stream\r\n */\r\n commit(consume: boolean = true): number {\r\n return consume ? 0 : 1;\r\n }\r\n\r\n extendArray(to_padd: number): void {\r\n return extendarray(this, to_padd);\r\n }\r\n\r\n isBufferOrUint8Array(obj: Buffer | Uint8Array): boolean {\r\n return arraybuffcheck(obj);\r\n }\r\n\r\n ///////////////////////////////\r\n // ENDIANNESS //\r\n ///////////////////////////////\r\n \r\n /**\r\n *\r\n * Change endian, defaults to little.\r\n * \r\n * Can be changed at any time, doesn't loose position.\r\n *\r\n * @param {endian} endian - endianness ``big`` or ``little``\r\n */\r\n endianness(endian: endian): void {\r\n if (endian == undefined || typeof endian != \"string\") {\r\n throw new Error(\"Endian must be big or little\");\r\n }\r\n if (endian != undefined && !(endian == \"big\" || endian == \"little\")) {\r\n throw new Error(\"Endian must be big or little\");\r\n }\r\n this.endian = endian;\r\n }\r\n\r\n /**\r\n * Sets endian to big.\r\n */\r\n bigEndian(): void {\r\n this.endianness(\"big\");\r\n }\r\n\r\n /**\r\n * Sets endian to big.\r\n */\r\n big(): void {\r\n this.endianness(\"big\");\r\n }\r\n\r\n /**\r\n * Sets endian to big.\r\n */\r\n be(): void {\r\n this.endianness(\"big\");\r\n }\r\n\r\n /**\r\n * Sets endian to little.\r\n */\r\n littleEndian(): void {\r\n this.endianness(\"little\");\r\n }\r\n\r\n /**\r\n * Sets endian to little.\r\n */\r\n little(): void {\r\n this.endianness(\"little\");\r\n }\r\n\r\n /**\r\n * Sets endian to little.\r\n */\r\n le(): void {\r\n this.endianness(\"little\");\r\n }\r\n\r\n ///////////////////////////////\r\n // SIZE //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Size in bytes of the current buffer.\r\n * \r\n * @returns {number} size\r\n */\r\n get length(): number {\r\n return this.size;\r\n }\r\n\r\n /**\r\n * Size in bytes of the current buffer.\r\n * \r\n * @returns {number} size\r\n */\r\n get len(): number {\r\n return this.size;\r\n }\r\n\r\n /**\r\n * Size in bytes of the current buffer.\r\n * \r\n * @returns {number} size\r\n */\r\n get FileSize(): number {\r\n return this.size;\r\n }\r\n\r\n /**\r\n * Size in bits of the current buffer.\r\n * \r\n * @returns {number} size\r\n */\r\n get lengthB(): number {\r\n return this.sizeB;\r\n }\r\n\r\n /**\r\n * Size in bits of the current buffer.\r\n * \r\n * @returns {number} size\r\n */\r\n get FileSizeB(): number {\r\n return this.sizeB;\r\n }\r\n\r\n /**\r\n * Size in bits of the current buffer.\r\n * \r\n * @returns {number} size\r\n */\r\n get lenb(): number {\r\n return this.sizeB;\r\n }\r\n\r\n ///////////////////////////////\r\n // POSITION //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Get the current byte position.\r\n *\r\n * @return {number} current byte position\r\n */\r\n get tell(): number {\r\n return this.offset;\r\n }\r\n\r\n /**\r\n * Get the current byte position.\r\n *\r\n * @return {number} current byte position\r\n */\r\n get FTell(): number {\r\n return this.offset;\r\n }\r\n\r\n /**\r\n * Get the current byte position.\r\n *\r\n * @return {number} current byte position\r\n */\r\n get getOffset(): number {\r\n return this.offset;\r\n }\r\n\r\n /**\r\n * Get the current byte position;\r\n *\r\n * @return {number} current byte position\r\n */\r\n get saveOffset(): number {\r\n return this.offset;\r\n }\r\n\r\n /**\r\n * Get the current byte position;\r\n *\r\n * @return {number} current byte position\r\n */\r\n get off(): number{\r\n return this.offset;\r\n }\r\n\r\n /**\r\n * Get the current bit position (0-7).\r\n *\r\n * @return {number} current bit position\r\n */\r\n get getOffsetBit(): number {\r\n return this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current bit position (0-7).\r\n *\r\n * @return {number} current bit position\r\n */\r\n get tellB(): number {\r\n return this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current bit position (0-7).\r\n *\r\n * @return {number} current bit position\r\n */\r\n get FTellB(): number {\r\n return this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current bit position (0-7).\r\n *\r\n * @return {number} current bit position\r\n */\r\n get offb():number{\r\n return this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current absolute bit position (from start of data).\r\n *\r\n * @return {number} current absolute bit position\r\n */\r\n get getOffsetAbsBit(): number {\r\n return (this.offset * 8) + this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current absolute bit position (from start of data).\r\n *\r\n * @return {number} current bit position\r\n */\r\n get saveOffsetAbsBit(): number {\r\n return (this.offset * 8) + this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current absolute bit position (from start of data).\r\n *\r\n * @return {number} current absolute bit position\r\n */\r\n get tellAbsB(): number {\r\n return (this.offset * 8) + this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current absolute bit position (from start of data).\r\n *\r\n * @return {number} current absolute bit position\r\n */\r\n get saveOffsetBit(): number {\r\n return (this.offset * 8) + this.bitoffset;\r\n }\r\n\r\n /**\r\n * Get the current absolute bit position (from start of data).\r\n *\r\n * @return {number} current absolute bit position\r\n */\r\n get offab():number{\r\n return (this.offset * 8) + this.bitoffset;\r\n }\r\n\r\n /**\r\n * Size in bytes of current read position to the end\r\n * \r\n * @returns {number} size\r\n */\r\n get remain(): number {\r\n return this.size - this.offset;\r\n }\r\n\r\n /**\r\n * Size in bytes of current read position to the end\r\n * \r\n * @returns {number} size\r\n */\r\n get FEoF(): number {\r\n return this.size - this.offset;\r\n }\r\n\r\n /**\r\n * Size in bits of current read position to the end\r\n * \r\n * @returns {number} size\r\n */\r\n get remainB(): number {\r\n return (this.size * 8) - this.saveOffsetAbsBit;\r\n }\r\n\r\n /**\r\n * Size in bits of current read position to the end\r\n * \r\n * @returns {number} size\r\n */\r\n get FEoFB(): number {\r\n return (this.size * 8) - this.saveOffsetAbsBit;\r\n }\r\n\r\n /**\r\n * Row line of the file (16 bytes per row).\r\n * \r\n * @returns {number} size\r\n */\r\n get getLine(): number {\r\n return Math.abs(Math.floor((this.offset - 1) / 16));\r\n }\r\n\r\n /**\r\n * Row line of the file (16 bytes per row).\r\n * \r\n * @returns {number} size\r\n */\r\n get row(): number {\r\n return Math.abs(Math.floor((this.offset - 1) / 16));\r\n }\r\n\r\n ///////////////////////////////\r\n // FINISHING //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Returns current data.\r\n * \r\n * Note: Will remove all data after current position if ``extendBufferSize`` was set.\r\n * \r\n * Use ``.data`` instead if you want the full buffer data.\r\n * \r\n * @returns {Buffer|Uint8Array} ``Buffer`` or ``Uint8Array``\r\n */\r\n get get(): Buffer | Uint8Array {\r\n if(this.extendBufferSize != 0)\r\n {\r\n this.trim();\r\n }\r\n return this.data;\r\n }\r\n\r\n /**\r\n * Returns current data.\r\n * \r\n * Note: Will remove all data after current position if ``extendBufferSize`` was set.\r\n * \r\n * Use ``.data`` instead if you want the full buffer data.\r\n * \r\n * @returns {Buffer|Uint8Array} ``Buffer`` or ``Uint8Array``\r\n */\r\n get return(): Buffer | Uint8Array {\r\n if(this.extendBufferSize != 0)\r\n {\r\n this.trim();\r\n }\r\n return this.data;\r\n }\r\n\r\n /**\r\n * Creates hex dump string. Will console log or return string if set in options.\r\n * \r\n * @param {object} options \r\n * @param {hexdumpOptions?} options - hex dump options\r\n * @param {number?} options.length - number of bytes to log, default ``192`` or end of data\r\n * @param {number?} options.startByte - byte to start dump (default ``0``)\r\n * @param {boolean?} options.suppressUnicode - Suppress unicode character preview for even columns.\r\n * @param {boolean?} options.returnString - Returns the hex dump string instead of logging it.\r\n */\r\n hexdump(options: hexdumpOptions = {}): void|string {\r\n return hexDumpBase(this, options);\r\n }\r\n\r\n /**\r\n * Turn hexdump on error off (default on).\r\n */\r\n errorDumpOff(): void {\r\n this.errorDump = false;\r\n }\r\n\r\n /**\r\n * Turn hexdump on error on (default on).\r\n */\r\n errorDumpOn(): void {\r\n this.errorDump = true;\r\n }\r\n\r\n ///////////////////////////////\r\n // STRICTMODE //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Disallows extending data if position is outside of max size.\r\n */\r\n restrict(): void {\r\n this.strict = true;\r\n }\r\n\r\n /**\r\n * Allows extending data if position is outside of max size.\r\n */\r\n unrestrict(): void {\r\n this.strict = false;\r\n }\r\n\r\n /**\r\n * removes data.\r\n */\r\n end(): void {\r\n this.data = undefined;\r\n }\r\n\r\n /**\r\n * removes data.\r\n */\r\n done(): void {\r\n this.data = undefined;\r\n }\r\n\r\n /**\r\n * removes data.\r\n */\r\n finished(): void {\r\n this.data = undefined;\r\n }\r\n\r\n ///////////////////////////////\r\n // FIND //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Searches for byte position of string from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {string} string - String to search for.\r\n */\r\n findString(string: string): number {\r\n return fString(this, string);\r\n }\r\n\r\n /**\r\n * Searches for byte value (can be signed or unsigned) position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {number} value - Number to search for.\r\n * @param {boolean} unsigned - If the number is unsigned (default true)\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findByte(value: number, unsigned?: boolean, endian?: endian): number {\r\n return fNumber(this, value, 8, unsigned == undefined ? true : unsigned, endian);\r\n }\r\n\r\n /**\r\n * Searches for short value (can be signed or unsigned) position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {number} value - Number to search for.\r\n * @param {boolean} unsigned - If the number is unsigned (default true)\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findShort(value: number, unsigned?: boolean, endian?: endian): number {\r\n return fNumber(this, value, 16, unsigned == undefined ? true : unsigned, endian);\r\n }\r\n\r\n /**\r\n * Searches for integer value (can be signed or unsigned) position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {number} value - Number to search for.\r\n * @param {boolean} unsigned - If the number is unsigned (default true)\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findInt(value: number, unsigned?: boolean, endian?: endian): number {\r\n return fNumber(this, value, 32, unsigned == undefined ? true : unsigned, endian);\r\n }\r\n\r\n /**\r\n * Searches for 64 bit value (can be signed or unsigned) position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {BigValue} value - Number to search for.\r\n * @param {boolean} unsigned - If the number is unsigned (default true)\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findInt64(value: BigValue, unsigned?: boolean, endian?: endian): number {\r\n return fBigInt(this, value, unsigned == undefined ? true : unsigned, endian);\r\n }\r\n\r\n /**\r\n * Searches for half float value position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {number} value - Number to search for.\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findHalfFloat(value: number, endian?: endian): number {\r\n return fHalfFloat(this, value, endian);\r\n }\r\n\r\n /**\r\n * Searches for float value position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {number} value - Number to search for.\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findFloat(value: number, endian?: endian): number {\r\n return fFloat(this, value, endian);\r\n }\r\n\r\n /**\r\n * Searches for double float value position from current read position.\r\n * \r\n * Returns -1 if not found.\r\n * \r\n * Does not change current read position.\r\n * \r\n * @param {number} value - Number to search for.\r\n * @param {endian} endian - endianness of value (default set endian).\r\n */\r\n findDoubleFloat(value: number, endian?: endian): number {\r\n return fDoubleFloat(this, value, endian);\r\n }\r\n\r\n ///////////////////////////////\r\n // MOVE TO //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Aligns current byte position.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} number - Byte to align\r\n */\r\n align(number: number): void {\r\n return align(this, number);\r\n }\r\n\r\n /**\r\n * Reverse aligns current byte position.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} number - Byte to align\r\n */\r\n alignRev(number: number): void {\r\n return alignRev(this, number);\r\n }\r\n\r\n /**\r\n * Offset current byte or bit position.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} bytes - Bytes to skip\r\n * @param {number} bits - Bits to skip\r\n */\r\n skip(bytes: number, bits?: number): void {\r\n return skip(this, bytes, bits);\r\n }\r\n\r\n /**\r\n * Offset current byte or bit position.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} bytes - Bytes to skip\r\n * @param {number} bits - Bits to skip\r\n */\r\n jump(bytes: number, bits?: number): void {\r\n this.skip(bytes, bits);\r\n }\r\n\r\n /**\r\n * Change position directly to address.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} byte - byte to set to\r\n * @param {number} bit - bit to set to\r\n */\r\n FSeek(byte: number, bit?: number): void {\r\n return goto(this, byte, bit)\r\n }\r\n\r\n /**\r\n * Offset current byte or bit position.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} bytes - Bytes to skip\r\n * @param {number} bits - Bits to skip\r\n */\r\n seek(bytes: number, bits?: number): void {\r\n return this.skip(bytes, bits)\r\n }\r\n\r\n /**\r\n * Change position directly to address.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} byte - byte to set to\r\n * @param {number} bit - bit to set to\r\n */\r\n goto(byte: number, bit?: number): void {\r\n return goto(this, byte, bit);\r\n }\r\n\r\n /**\r\n * Change position directly to address.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} byte - byte to set to\r\n * @param {number} bit - bit to set to\r\n */\r\n pointer(byte: number, bit?: number): void {\r\n return this.goto(byte, bit)\r\n }\r\n\r\n /**\r\n * Change position directly to address.\r\n * \r\n * Note: Will extend array if strict mode is off and outside of max size.\r\n * \r\n * @param {number} byte - byte to set to\r\n * @param {number} bit - bit to set to\r\n */\r\n warp(byte: number, bit?: number): void {\r\n return this.goto(byte, bit)\r\n }\r\n\r\n /**\r\n * Set byte and bit position to start of data.\r\n */\r\n rewind(): void {\r\n this.offset = 0;\r\n this.bitoffset = 0;\r\n }\r\n\r\n /**\r\n * Set byte and bit position to start of data.\r\n */\r\n gotoStart(): void {\r\n return this.rewind();\r\n }\r\n\r\n /**\r\n * Set current byte and bit position to end of data.\r\n */\r\n last(): void {\r\n this.offset = this.size;\r\n this.bitoffset = 0;\r\n }\r\n\r\n /**\r\n * Set current byte and bit position to end of data.\r\n */\r\n gotoEnd(): void {\r\n this.offset = this.size;\r\n this.bitoffset = 0;\r\n }\r\n\r\n /**\r\n * Set byte and bit position to start of data.\r\n */\r\n EoF(): void {\r\n this.offset = this.size;\r\n this.bitoffset = 0;\r\n }\r\n\r\n ///////////////////////////////\r\n // REMOVE //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Deletes part of data from start to current byte position unless supplied, returns removed.\r\n * \r\n * Note: Errors in strict mode.\r\n * \r\n * @param {number} startOffset - Start location (default 0)\r\n * @param {number} endOffset - End location (default current position)\r\n * @param {boolean} consume - Move position to end of removed data (default false)\r\n * @returns {Buffer|Uint8Array} Removed data as ``Buffer`` or ``Uint8Array``\r\n */\r\n delete(startOffset?: number, endOffset?: number, consume?: boolean): Buffer | Uint8Array {\r\n return remove(this, startOffset || 0, endOffset || this.offset, consume || false, true);\r\n }\r\n\r\n /**\r\n * Deletes part of data from current byte position to end, returns removed.\r\n * \r\n * Note: Errors in strict mode.\r\n * \r\n * @returns {Buffer|Uint8Array} Removed data as ``Buffer`` or ``Uint8Array``\r\n */\r\n clip(): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.size, false, true);\r\n }\r\n\r\n /**\r\n * Deletes part of data from current byte position to end, returns removed.\r\n * \r\n * Note: Errors in strict mode.\r\n * \r\n * @returns {Buffer|Uint8Array} Removed data as ``Buffer`` or ``Uint8Array``\r\n */\r\n trim(): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.size, false, true);\r\n }\r\n\r\n /**\r\n * Deletes part of data from current byte position to supplied length, returns removed.\r\n * \r\n * Note: Errors in strict mode.\r\n * \r\n * @param {number} length - Length of data in bytes to remove\r\n * @param {boolean} consume - Move position to end of removed data (default false)\r\n * @returns {Buffer|Uint8Array} Removed data as ``Buffer`` or ``Uint8Array``\r\n */\r\n crop(length: number, consume?: boolean): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.offset + (length || 0), consume || false, true);\r\n }\r\n\r\n /**\r\n * Deletes part of data from current position to supplied length, returns removed.\r\n * \r\n * Note: Only works in strict mode.\r\n * \r\n * @param {number} length - Length of data in bytes to remove\r\n * @param {boolean} consume - Move position to end of removed data (default false)\r\n * @returns {Buffer|Uint8Array} Removed data as ``Buffer`` or ``Uint8Array``\r\n */\r\n drop(length: number, consume?: boolean): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.offset + (length || 0), consume || false, true);\r\n }\r\n\r\n /**\r\n * Replaces data in data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to replace in data\r\n * @param {boolean} consume - Move current byte position to end of data (default false)\r\n * @param {number} offset - Offset to add it at (defaults to current position)\r\n */\r\n replace(data: Buffer | Uint8Array, consume?: boolean, offset?: number): void {\r\n return addData(this, data, consume || false, offset || this.offset, true);\r\n }\r\n\r\n /**\r\n * Replaces data in data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to replace in data\r\n * @param {boolean} consume - Move current byte position to end of data (default false)\r\n * @param {number} offset - Offset to add it at (defaults to current position)\r\n */\r\n overwrite(data: Buffer | Uint8Array, consume?: boolean, offset?: number): void {\r\n return addData(this, data, consume || false, offset || this.offset, true);\r\n }\r\n\r\n ///////////////////////////////\r\n // COPY OUT //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Returns part of data from current byte position to end of data unless supplied.\r\n * \r\n * @param {number} startOffset - Start location (default current position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move position to end of lifted data (default false)\r\n * @param {number} fillValue - Byte value to to fill returned data (does NOT fill unless supplied)\r\n * @returns {Buffer|Uint8Array} Selected data as ``Uint8Array`` or ``Buffer``\r\n */\r\n lift(startOffset?: number, endOffset?: number, consume?: boolean, fillValue?: number): Buffer | Uint8Array {\r\n return remove(this, startOffset || this.offset, endOffset || this.size, consume || false, false, fillValue);\r\n }\r\n\r\n /**\r\n * Returns part of data from current byte position to end of data unless supplied.\r\n * \r\n * @param {number} startOffset - Start location (default current position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move position to end of lifted data (default false)\r\n * @param {number} fillValue - Byte value to to fill returned data (does NOT fill unless supplied)\r\n * @returns {Buffer|Uint8Array} Selected data as ``Uint8Array`` or ``Buffer``\r\n */\r\n fill(startOffset?: number, endOffset?: number, consume?: boolean, fillValue?: number): Buffer | Uint8Array {\r\n return remove(this, startOffset || this.offset, endOffset || this.size, consume || false, false, fillValue);\r\n }\r\n\r\n /**\r\n * Extract data from current position to length supplied.\r\n * \r\n * Note: Does not affect supplied data.\r\n * \r\n * @param {number} length - Length of data in bytes to copy from current offset\r\n * @param {number} consume - Moves offset to end of length\r\n * @returns {Buffer|Uint8Array} Selected data as ``Uint8Array`` or ``Buffer``\r\n */\r\n extract(length: number, consume?: boolean): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.offset + (length || 0), consume || false, false);\r\n }\r\n\r\n /**\r\n * Extract data from current position to length supplied.\r\n * \r\n * Note: Does not affect supplied data.\r\n * \r\n * @param {number} length - Length of data in bytes to copy from current offset\r\n * @param {number} consume - Moves offset to end of length\r\n * @returns {Buffer|Uint8Array} Selected data as ``Uint8Array`` or ``Buffer``\r\n */\r\n slice(length: number, consume?: boolean): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.offset + (length || 0), consume || false, false);\r\n }\r\n\r\n /**\r\n * Extract data from current position to length supplied.\r\n * \r\n * Note: Does not affect supplied data.\r\n * \r\n * @param {number} length - Length of data in bytes to copy from current offset\r\n * @param {number} consume - Moves offset to end of length\r\n * @returns {Buffer|Uint8Array} Selected data as ``Uint8Array`` or ``Buffer``\r\n */\r\n wrap(length: number, consume?: boolean): Buffer | Uint8Array {\r\n return remove(this, this.offset, this.offset + (length || 0), consume || false, false);\r\n }\r\n\r\n ///////////////////////////////\r\n // INSERT //\r\n ///////////////////////////////\r\n\r\n /**\r\n * Inserts data into data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to add to data\r\n * @param {boolean} consume - Move current byte position to end of data (default false)\r\n * @param {number} offset - Byte position to add at (defaults to current position)\r\n */\r\n insert(data: Buffer | Uint8Array, consume?: boolean, offset?: number): void {\r\n return addData(this, data, consume || false, offset || this.offset, false);\r\n }\r\n\r\n /**\r\n * Inserts data into data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to add to data\r\n * @param {boolean} consume - Move current byte position to end of data (default false)\r\n * @param {number} offset - Byte position to add at (defaults to current position)\r\n */\r\n place(data: Buffer | Uint8Array, consume?: boolean, offset?: number): void {\r\n return addData(this, data, consume || false, offset || this.offset, false);\r\n }\r\n\r\n /**\r\n * Adds data to start of supplied data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to add to data\r\n * @param {boolean} consume - Move current write position to end of data (default false)\r\n */\r\n unshift(data: Buffer | Uint8Array, consume?: boolean): void {\r\n return addData(this, data, consume || false, 0, false);\r\n }\r\n\r\n /**\r\n * Adds data to start of supplied data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to add to data\r\n * @param {boolean} consume - Move current write position to end of data (default false)\r\n */\r\n prepend(data: Buffer | Uint8Array, consume?: boolean): void {\r\n return addData(this, data, consume || false, 0, false);\r\n }\r\n\r\n /**\r\n * Adds data to end of supplied data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to add to data\r\n * @param {boolean} consume - Move current write position to end of data (default false)\r\n */\r\n push(data: Buffer | Uint8Array, consume?: boolean): void {\r\n return addData(this, data, consume || false, this.size, false);\r\n }\r\n\r\n /**\r\n * Adds data to end of supplied data.\r\n * \r\n * Note: Errors on strict mode.\r\n * \r\n * @param {Buffer|Uint8Array} data - ``Uint8Array`` or ``Buffer`` to add to data\r\n * @param {boolean} consume - Move current write position to end of data (default false)\r\n */\r\n append(data: Buffer | Uint8Array, consume?: boolean): void {\r\n return addData(this, data, consume || false, this.size, false);\r\n }\r\n\r\n ///////////////////////////////\r\n // MATH //\r\n ///////////////////////////////\r\n\r\n /**\r\n * XOR data.\r\n * \r\n * @param {number|string|Uint8Array|Buffer} xorKey - Value, string or array to XOR\r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n xor(xorKey: number | string | Uint8Array | Buffer, startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n var XORKey: any = xorKey;\r\n if (typeof xorKey == \"number\")\r\n {\r\n //pass\r\n } \r\n else if (typeof xorKey == \"string\") \r\n {\r\n xorKey = new TextEncoder().encode(xorKey);\r\n } \r\n else if (this.isBufferOrUint8Array(XORKey)) \r\n {\r\n //pass\r\n } \r\n else \r\n {\r\n throw new Error(\"XOR must be a number, string, Uint8Array or Buffer\");\r\n }\r\n return XOR(this, xorKey, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * XOR data.\r\n * \r\n * @param {number|string|Uint8Array|Buffer} xorKey - Value, string or array to XOR\r\n * @param {number} length - Length in bytes to XOR from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n xorThis(xorKey: number | string | Uint8Array | Buffer, length?: number, consume?: boolean): void {\r\n var Length: number = length || 1;\r\n var XORKey: any = xorKey;\r\n if (typeof xorKey == \"number\") \r\n {\r\n Length = length || 1;\r\n } \r\n else if (typeof xorKey == \"string\") \r\n {\r\n const encoder = new TextEncoder().encode(xorKey);\r\n XORKey = encoder;\r\n Length = length || encoder.length;\r\n } \r\n else if (this.isBufferOrUint8Array(XORKey)) \r\n {\r\n Length = length || xorKey.length;\r\n } \r\n else \r\n {\r\n throw new Error(\"XOR must be a number, string, Uint8Array or Buffer\");\r\n }\r\n return XOR(this, XORKey, this.offset, this.offset + Length, consume || false);\r\n }\r\n\r\n /**\r\n * OR data\r\n * \r\n * @param {number|string|Uint8Array|Buffer} orKey - Value, string or array to OR\r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n or(orKey: number | string | Uint8Array | Buffer, startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n var ORKey: any = orKey;\r\n if (typeof orKey == \"number\") \r\n {\r\n //pass\r\n } \r\n else if (typeof orKey == \"string\") \r\n {\r\n orKey = new TextEncoder().encode(orKey);\r\n } \r\n else if (this.isBufferOrUint8Array(ORKey)) \r\n {\r\n //pass\r\n } \r\n else \r\n {\r\n throw new Error(\"OR must be a number, string, Uint8Array or Buffer\");\r\n }\r\n return OR(this, orKey, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * OR data.\r\n * \r\n * @param {number|string|Uint8Array|Buffer} orKey - Value, string or array to OR\r\n * @param {number} length - Length in bytes to OR from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n orThis(orKey: number | string | Uint8Array | Buffer, length?: number, consume?: boolean): void {\r\n var Length: number = length || 1;\r\n var ORKey: any = orKey;\r\n if (typeof orKey == \"number\") \r\n {\r\n Length = length || 1;\r\n } \r\n else if (typeof orKey == \"string\") \r\n {\r\n const encoder = new TextEncoder().encode(orKey);\r\n ORKey = encoder;\r\n Length = length || encoder.length;\r\n } \r\n else if (this.isBufferOrUint8Array(ORKey)) \r\n {\r\n Length = length || orKey.length\r\n } \r\n else \r\n {\r\n throw new Error(\"OR must be a number, string, Uint8Array or Buffer\");\r\n }\r\n return OR(this, ORKey, this.offset, this.offset + Length, consume || false);\r\n }\r\n\r\n /**\r\n * AND data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} andKey - Value, string or array to AND\r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n and(andKey: number | string | Array<number> | Buffer, startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n var ANDKey: any = andKey;\r\n if (typeof ANDKey == \"number\") \r\n {\r\n //pass\r\n }\r\n else if (typeof ANDKey == \"string\") \r\n {\r\n ANDKey = new TextEncoder().encode(ANDKey);\r\n } \r\n else if (typeof ANDKey == \"object\") \r\n {\r\n //pass\r\n } \r\n else \r\n {\r\n throw new Error(\"AND must be a number, string, number array or Buffer\");\r\n }\r\n return AND(this, andKey, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * AND data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} andKey - Value, string or array to AND\r\n * @param {number} length - Length in bytes to AND from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n andThis(andKey: number | string | Array<number> | Buffer, length?: number, consume?: boolean): void {\r\n var Length: number = length || 1;\r\n var ANDKey: any = andKey;\r\n if (typeof andKey == \"number\") \r\n {\r\n Length = length || 1;\r\n } \r\n else if (typeof andKey == \"string\") \r\n {\r\n const encoder = new TextEncoder().encode(andKey);\r\n ANDKey = encoder;\r\n Length = length || encoder.length;\r\n } \r\n else if (typeof andKey == \"object\") \r\n {\r\n Length = length || andKey.length;\r\n } \r\n else \r\n {\r\n throw new Error(\"AND must be a number, string, number array or Buffer\");\r\n }\r\n return AND(this, ANDKey, this.offset, this.offset + Length, consume || false);\r\n }\r\n\r\n /**\r\n * Add value to data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} addKey - Value, string or array to add to data\r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n add(addKey: number | string | Array<number> | Buffer, startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n var addedKey: any = addKey;\r\n if (typeof addedKey == \"number\") {\r\n //pass\r\n } \r\n else if (typeof addedKey == \"string\") \r\n {\r\n addedKey = new TextEncoder().encode(addedKey);\r\n } \r\n else if (typeof addedKey == \"object\") \r\n {\r\n //pass\r\n } \r\n else \r\n {\r\n throw new Error(\"Add key must be a number, string, number array or Buffer\");\r\n }\r\n return ADD(this, addedKey, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * Add value to data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} addKey - Value, string or array to add to data\r\n * @param {number} length - Length in bytes to add from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n addThis(addKey: number | string | Array<number> | Buffer, length?: number, consume?: boolean): void {\r\n var Length: number = length || 1;\r\n var AddedKey: any = addKey;\r\n if (typeof AddedKey == \"number\") \r\n {\r\n Length = length || 1;\r\n } else if (typeof AddedKey == \"string\") \r\n {\r\n const encoder = new TextEncoder().encode(AddedKey);\r\n AddedKey = encoder;\r\n Length = length || encoder.length;\r\n } \r\n else if (typeof AddedKey == \"object\") \r\n {\r\n Length = length || AddedKey.length;\r\n } \r\n else \r\n {\r\n throw new Error(\"Add key must be a number, string, number array or Buffer\");\r\n }\r\n return ADD(this, AddedKey, this.offset, this.offset + Length, consume || false);\r\n }\r\n\r\n /**\r\n * Not data.\r\n * \r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n not(startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n return NOT(this, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * Not data.\r\n * \r\n * @param {number} length - Length in bytes to NOT from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n notThis(length?: number, consume?: boolean): void {\r\n return NOT(this, this.offset, this.offset + (length || 1), consume || false);\r\n }\r\n\r\n /**\r\n * Left shift data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} shiftKey - Value, string or array to left shift data\r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n lShift(shiftKey: number | string | Array<number> | Buffer, startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n var lShiftKey: any = shiftKey;\r\n if (typeof lShiftKey == \"number\") \r\n {\r\n //pass\r\n } \r\n else if (typeof lShiftKey == \"string\") \r\n {\r\n lShiftKey = new TextEncoder().encode(lShiftKey);\r\n } \r\n else if (typeof lShiftKey == \"object\") \r\n {\r\n //pass\r\n } \r\n else \r\n {\r\n throw new Error(\"Left shift must be a number, string, number array or Buffer\");\r\n }\r\n return LSHIFT(this, lShiftKey, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * Left shift data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} shiftKey - Value, string or array to left shift data\r\n * @param {number} length - Length in bytes to left shift from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n lShiftThis(shiftKey: number | string | Array<number> | Buffer, length?: number, consume?: boolean): void {\r\n var Length: number = length || 1;\r\n var lShiftKey: any = shiftKey;\r\n if (typeof lShiftKey == \"number\") \r\n {\r\n Length = length || 1;\r\n } \r\n else if (typeof lShiftKey == \"string\") \r\n {\r\n const encoder = new TextEncoder().encode(lShiftKey);\r\n lShiftKey = encoder;\r\n Length = length || encoder.length;\r\n } else if (typeof lShiftKey == \"object\") \r\n {\r\n Length = length || lShiftKey.length;\r\n } \r\n else \r\n {\r\n throw new Error(\"Left shift must be a number, string, number array or Buffer\");\r\n }\r\n return LSHIFT(this, shiftKey, this.offset, this.offset + Length, consume || false);\r\n }\r\n\r\n /**\r\n * Right shift data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} shiftKey - Value, string or array to right shift data\r\n * @param {number} startOffset - Start location (default current byte position)\r\n * @param {number} endOffset - End location (default end of data)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n rShift(shiftKey: number | string | Array<number> | Buffer, startOffset?: number, endOffset?: number, consume?: boolean): void {\r\n var rShiftKey: any = shiftKey;\r\n if (typeof rShiftKey == \"number\") \r\n {\r\n //pass\r\n } \r\n else if (typeof rShiftKey == \"string\") \r\n {\r\n rShiftKey = new TextEncoder().encode(rShiftKey);\r\n } \r\n else if (typeof rShiftKey == \"object\")\r\n {\r\n //pass\r\n } else {\r\n throw new Error(\"Right shift must be a number, string, number array or Buffer\");\r\n }\r\n return RSHIFT(this, rShiftKey, startOffset || this.offset, endOffset || this.size, consume || false);\r\n }\r\n\r\n /**\r\n * Right shift data.\r\n * \r\n * @param {number|string|Array<number>|Buffer} shiftKey - Value, string or array to right shift data\r\n * @param {number} length - Length in bytes to right shift from curent position (default 1 byte for value, length of string or array for Uint8Array or Buffer)\r\n * @param {boolean} consume - Move current position to end of data (default false)\r\n */\r\n rShiftThis(shiftKey: number | string | Array<number> | Buffer, length?: number, consume?: boolean): void {\r\n var Length: number = length || 1;\r\n var lShiftKey: any = shiftKey;\r\n if (typeof lShiftKey == \"number\") \r\n {\r\n Length = length || 1;\r\n } \r\n else if (typeof lShiftKey == \"string\") \r\n {\r\n const encoder = new TextEncoder().encode(lShiftKey);\r\n lShiftKey = encoder;\r\n Length = length || encoder.length;\r\n } \r\n else if (typeof lShiftKey == \"object\") \r\n {\r\n Length = length || lShiftKey.length;\r\n } \r\n else \r\n {\r\n throw new Error(\"Right shift must be a number, string, number array or Buffer\");\r\n }\r\n return RSHIFT(this, lShiftKey, this.offset, this.offset + Length, consume || false);\r\n }\r\n\r\n ///////////////////////////////\r\n // BIT READER //\r\n ///////////////////////////////\r\n\r\n /**\r\n *\r\n * Write bits, must have at least value and number of bits.\r\n * \r\n * ``Note``: When returning to a byte write, remaining bits are skipped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - number of bits to write\r\n * @param {boolean} unsigned - if value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeBit(value: number, bits: number, unsigned?: boolean, endian?: endian): void {\r\n return wbit(this, value, bits, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @returns number\r\n */\r\n writeUBitBE(value: number, bits: number): void{\r\n return wbit(this, value, bits, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns number\r\n */\r\n writeBitBE(value: number, bits: number, unsigned?: boolean): void{\r\n return wbit(this, value, bits, unsigned, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @returns number\r\n */\r\n writeUBitLE(value: number,bits: number): void{\r\n return wbit(this, value, bits, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns number\r\n */\r\n writeBitLE(value: number,bits: number, unsigned?: boolean): void{\r\n return wbit(this, value, bits, unsigned, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n readBit(bits?: number, unsigned?: boolean, endian?: endian): number {\r\n return rbit(this, bits, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n readUBitBE(bits: number): number {\r\n return this.readBit(bits, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n readBitBE(bits: number, unsigned?: boolean): number {\r\n return this.readBit(bits, unsigned, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n readUBitLE(bits: number): number {\r\n return this.readBit(bits, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n readBitLE(bits: number, unsigned?: boolean): number {\r\n return this.readBit(bits, unsigned, \"little\");\r\n }\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @param {boolean} unsigned - if value is unsigned or not\r\n * @returns {number}\r\n */\r\n readByte(unsigned?: boolean): number {\r\n return rbyte(this, unsigned);\r\n }\r\n\r\n /**\r\n * Read multiple bytes.\r\n * \r\n * @param {number} amount - amount of bytes to read\r\n * @param {boolean} unsigned - if value is unsigned or not\r\n * @returns {number[]}\r\n */\r\n readBytes(amount:number, unsigned?: boolean): number[] {\r\n return Array.from({length: amount}, () => rbyte(this, unsigned));\r\n }\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n * @param {boolean} unsigned - if the value is unsigned\r\n */\r\n writeByte(value: number, unsigned?: boolean): void {\r\n return wbyte(this, value, unsigned);\r\n }\r\n\r\n /**\r\n * Write multiple bytes.\r\n * \r\n * @param {number[]} values - array of values as int\r\n * @param {boolean} unsigned - if the value is unsigned\r\n */\r\n writeBytes(values: number[], unsigned?: boolean): void {\r\n for (let i = 0; i < values.length; i++) {\r\n wbyte(this, values[i], unsigned);\r\n }\r\n }\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeUByte(value: number): void {\r\n return wbyte(this, value, true);\r\n }\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n readUByte(): number {\r\n return this.readByte(true);\r\n }\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @param {boolean} unsigned - if value is unsigned or not\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n readInt16(unsigned?: boolean, endian?: endian): number {\r\n return rint16(this, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeInt16(value: number, unsigned?: boolean, endian?: endian): void {\r\n return wint16(this, value, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeUInt16(value: number, endian?: endian): void {\r\n return wint16(this, value, true, endian);\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeUInt16BE(value: number): void {\r\n return this.writeInt16(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeUInt16LE(value: number): void {\r\n return this.writeInt16(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeInt16LE(value: number): void {\r\n return this.writeInt16(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @param {endian} endian - ``big`` or ``little``\r\n * \r\n * @returns {number}\r\n */\r\n readUInt16(endian?: endian): number {\r\n return this.readInt16(true, endian);\r\n }\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n readUInt16LE(): number {\r\n return this.readInt16(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n readInt16LE(): number {\r\n return this.readInt16(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n readUInt16BE(): number {\r\n return this.readInt16(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n readInt16BE(): number {\r\n return this.readInt16(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n readHalfFloat(endian?: endian): number {\r\n return rhalffloat(this, endian);\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeHalfFloat(value: number, endian?: endian): void {\r\n return whalffloat(this, value, endian);\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n writeHalfFloatBE(value: number): void{\r\n return this.writeHalfFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n writeHalfFloatLE(value: number): void{\r\n return this.writeHalfFloat(value, \"little\");\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n readHalfFloatBE(): number {\r\n return this.readHalfFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n readHalfFloatLE(): number {\r\n return this.readHalfFloat(\"little\");\r\n }\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @param {boolean} unsigned - if value is unsigned or not\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n readInt32(unsigned?: boolean, endian?: endian): number {\r\n return rint32(this, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeInt32(value: number, unsigned?: boolean, endian?: endian): void {\r\n return wint32(this, value, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeUInt32(value: number, endian?: endian): void {\r\n return wint32(this, value, true, endian);\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeInt32LE(value: number): void {\r\n return this.writeInt32(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeUInt32LE(value: number): void {\r\n return this.writeInt32(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n writeInt32BE(value: number): void {\r\n return this.writeInt32(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n readInt32BE(): number {\r\n return this.readInt32(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n readUInt32BE(): number {\r\n return this.readInt32(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n readInt32LE(): number {\r\n return this.readInt32(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n readUInt32LE(): number {\r\n return this.readInt32(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n readUInt(): number {\r\n return this.readInt32(true);\r\n }\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n readFloat(endian?: endian): number {\r\n return rfloat(this, endian);\r\n }\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeFloat(value: number, endian?: endian): void {\r\n return wfloat(this, value, endian);\r\n }\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n writeFloatLE(value: number): void{\r\n return this.writeFloat(value, \"little\");\r\n }\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n writeFloatBE(value: number): void{\r\n return this.writeFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n readFloatBE(): number {\r\n return this.readFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n readFloatLE(): number {\r\n return this.readFloat(\"little\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @param {boolean} unsigned - if value is unsigned or not\r\n * @param {endian?} endian - ``big`` or ``little``\r\n * @returns {bigint}\r\n */\r\n readInt64(unsigned?: boolean, endian?: endian): bigint {\r\n return rint64(this, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeInt64(value: BigValue, unsigned?: boolean, endian?: endian): void {\r\n return wint64(this, value, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeUInt64(value: BigValue, endian?: endian) {\r\n return this.writeInt64(value, true, endian);\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n writeInt64LE(value: BigValue): void {\r\n return this.writeInt64(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n writeUInt64LE(value: BigValue): void {\r\n return this.writeInt64(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n writeInt64BE(value: BigValue): void {\r\n return this.writeInt64(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n writeUInt64BE(value: BigValue): void {\r\n return this.writeInt64(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n readUInt64(): bigint {\r\n return this.readInt64(true);\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n readInt64BE(): bigint {\r\n return this.readInt64(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n readUInt64BE(): bigint {\r\n return this.readInt64(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n readInt64LE(): bigint {\r\n return this.readInt64(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n readUInt64LE(): bigint {\r\n return this.readInt64(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n readDoubleFloat(endian?: endian): number {\r\n return rdfloat(this, endian);\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n * @param {endian} endian - ``big`` or ``little``\r\n */\r\n writeDoubleFloat(value: number, endian?: endian): void {\r\n return wdfloat(this, value, endian);\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n writeDoubleFloatBE(value: number): void{\r\n return this.writeDoubleFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n writeDoubleFloatLE(value: number): void{\r\n return this.writeDoubleFloat(value, \"little\");\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n readDoubleFloatBE(): number {\r\n return this.readDoubleFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n readDoubleFloatLE(): number {\r\n return this.readDoubleFloat(\"little\");\r\n }\r\n\r\n /**\r\n * Reads string, use options object for different types.\r\n * \r\n * @param {stringOptions} options \r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthReadSize\"]?} options.lengthReadSize - for pascal strings. 1, 2 or 4 byte length read size\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n * @return {Promise<string>}\r\n */\r\n readString(options?: stringOptions): string {\r\n return rstring(this, options);\r\n }\r\n\r\n /**\r\n * Writes string, use options object for different types.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions?} options\r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthWriteSize\"]?} options.lengthWriteSize - for pascal strings. 1, 2 or 4 byte length write size\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n */\r\n writeString(string: string, options?: stringOptions): void {\r\n return wstring(this, string, options);\r\n }\r\n};","import {\r\n stringOptions,\r\n endian\r\n} from \"../common.js\";\r\nimport { BiBase } from '../core/BiBase.js';\r\nimport { BiBaseStreamer } from '../core/BiBaseStream.js';\r\n\r\n\r\nexport interface BinaryAliasReader extends BiBase {\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n bit(bits: number, unsigned?: boolean, endian?: endian): number;\r\n\r\n /**\r\n * Bit field reader. Unsigned read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n ubit(bits: number, endian?: endian): number;\r\n\r\n /**\r\n * Bit field reader. Unsigned big endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n ubitbe(bits: number): number;\r\n\r\n /**\r\n * Bit field reader. Big endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitbe(bits: number, unsigned?: boolean): number;\r\n\r\n /**\r\n * Bit field reader. Unsigned little endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n ubitle(bits: number): number;\r\n\r\n /**\r\n * Bit field reader. Little endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitle(bits: number, unsigned?: boolean): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32be(): number;\r\n\r\n //\r\n // byte read\r\n //\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @returns {number}\r\n */\r\n get byte(): number;\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @returns {number}\r\n */\r\n get int8(): number;\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n get uint8(): number;\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n get ubyte(): number;\r\n\r\n //\r\n //short16 read\r\n //\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get int16(): number;\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get short(): number;\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get word(): number;\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16(): number;\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get ushort(): number;\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get uword(): number;\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16le(): number;\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get ushortle(): number;\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uwordle(): number;\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get int16le(): number;\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get shortle(): number;\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get wordle(): number;\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16be(): number;\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get ushortbe(): number;\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uwordbe(): number;\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get int16be(): number;\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get shortbe(): number;\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get wordbe(): number;\r\n\r\n //\r\n //half float read\r\n //\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloat(): number;\r\n\r\n /**\r\n * Read half float\r\n * \r\n * @returns {number}\r\n */\r\n get half(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloatbe(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halfbe(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloatle(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halfle(): number;\r\n\r\n //\r\n //int read\r\n //\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int(): number;\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get double(): number;\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32(): number;\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get long(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udouble(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulong(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get intbe(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get doublebe(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32be(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get longbe(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uintbe(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udoublebe(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32be(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulongbe(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get intle(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get doublele(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32le(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get longle(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uintle(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udoublele(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32le(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulongle(): number;\r\n\r\n //\r\n //float read\r\n //\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get float(): number;\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get floatbe(): number;\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get floatle(): number;\r\n\r\n //\r\n //int64 reader\r\n //\r\n\r\n /**\r\n * Read signed 64 bit integer\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigint(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quad(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigint(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquad(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64be(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigintbe(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quadbe(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64be(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigintbe(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquadbe(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64le(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigintle(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quadle(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64le(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigintle(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquadle(): bigint;\r\n\r\n //\r\n //doublefloat reader\r\n //\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloat(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloat(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloatebe(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloatbe(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloatle(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloatle(): number;\r\n\r\n //\r\n //string reader\r\n //\r\n\r\n /**\r\n * Reads string, use options object for different types.\r\n * \r\n * @param {stringOptions} options \r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthReadSize\"]?} options.lengthReadSize - for pascal strings. 1, 2 or 4 byte length read size\r\n * @param {stringOptions[\"stripNull\"]?} options.stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n * @return {string}\r\n */\r\n string(options?: stringOptions): string;\r\n\r\n /**\r\n * Reads string using setting from .strSettings\r\n * \r\n * Default is ``utf-8``\r\n * \r\n * @return {string}\r\n */\r\n get str(): string;\r\n\r\n /**\r\n * Reads UTF-8 (C) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf8string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-8 (C) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n cstring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads ANSI string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n ansistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param ;\r\n */\r\n utf16string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n unistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf16stringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n unistringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf16stringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n unistringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string.\r\n * \r\n * @param {stringOptions[\"lengthReadSize\"]} lengthReadSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring1le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring1be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring2le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring2be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring4le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring4be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string.\r\n * \r\n * @param {stringOptions[\"lengthReadSize\"]} lengthReadSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 1 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring2le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring2be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring4be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring4le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n};\r\nexport interface BinaryAliasReaderStreamer extends BiBaseStreamer {\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n bit(bits: number, unsigned?: boolean, endian?: endian): number;\r\n\r\n /**\r\n * Bit field reader. Unsigned read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n ubit(bits: number, endian?: endian): number;\r\n\r\n /**\r\n * Bit field reader. Unsigned big endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n ubitbe(bits: number): number;\r\n\r\n /**\r\n * Bit field reader. Big endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitbe(bits: number, unsigned?: boolean): number;\r\n\r\n /**\r\n * Bit field reader. Unsigned little endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n ubitle(bits: number): number;\r\n\r\n /**\r\n * Bit field reader. Little endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitle(bits: number, unsigned?: boolean): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32be(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32le(): number;\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32be(): number;\r\n\r\n //\r\n // byte read\r\n //\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @returns {number}\r\n */\r\n get byte(): number;\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @returns {number}\r\n */\r\n get int8(): number;\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n get uint8(): number;\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n get ubyte(): number;\r\n\r\n //\r\n //short16 read\r\n //\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get int16(): number;\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get short(): number;\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get word(): number;\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16(): number;\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get ushort(): number;\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get uword(): number;\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16le(): number;\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get ushortle(): number;\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uwordle(): number;\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get int16le(): number;\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get shortle(): number;\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get wordle(): number;\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16be(): number;\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get ushortbe(): number;\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uwordbe(): number;\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get int16be(): number;\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get shortbe(): number;\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get wordbe(): number;\r\n\r\n //\r\n //half float read\r\n //\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloat(): number;\r\n\r\n /**\r\n * Read half float\r\n * \r\n * @returns {number}\r\n */\r\n get half(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloatbe(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halfbe(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloatle(): number;\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halfle(): number;\r\n\r\n //\r\n //int read\r\n //\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int(): number;\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get double(): number;\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32(): number;\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get long(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udouble(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulong(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get intbe(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get doublebe(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32be(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get longbe(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uintbe(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udoublebe(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32be(): number;\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulongbe(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get intle(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get doublele(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32le(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get longle(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uintle(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udoublele(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32le(): number;\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulongle(): number;\r\n\r\n //\r\n //float read\r\n //\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get float(): number;\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get floatbe(): number;\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get floatle(): number;\r\n\r\n //\r\n //int64 reader\r\n //\r\n\r\n /**\r\n * Read signed 64 bit integer\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigint(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quad(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigint(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquad(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64be(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigintbe(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quadbe(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64be(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigintbe(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquadbe(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64le(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigintle(): bigint;\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quadle(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64le(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigintle(): bigint;\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquadle(): bigint;\r\n\r\n //\r\n //doublefloat reader\r\n //\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloat(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloat(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloatebe(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloatbe(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloatle(): number;\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloatle(): number;\r\n\r\n //\r\n //string reader\r\n //\r\n\r\n /**\r\n * Reads string, use options object for different types.\r\n * \r\n * @param {stringOptions} options \r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthReadSize\"]?} options.lengthReadSize - for pascal strings. 1, 2 or 4 byte length read size\r\n * @param {stringOptions[\"stripNull\"]?} options.stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n * @return {string}\r\n */\r\n string(options?: stringOptions): string;\r\n\r\n /**\r\n * Reads string using setting from .strSettings\r\n * \r\n * Default is ``utf-8``\r\n * \r\n * @return {string}\r\n */\r\n get str(): string;\r\n\r\n /**\r\n * Reads UTF-8 (C) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf8string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-8 (C) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n cstring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads ANSI string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n ansistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param ;\r\n */\r\n utf16string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n unistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf16stringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n unistringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf16stringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n unistringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string.\r\n * \r\n * @param {stringOptions[\"lengthReadSize\"]} lengthReadSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring1le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring1be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring2le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring2be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring4le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring4be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string.\r\n * \r\n * @param {stringOptions[\"lengthReadSize\"]} lengthReadSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 1 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring2le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring2be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring4be(stripNull?: stringOptions[\"stripNull\"]): string;\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring4le(stripNull?: stringOptions[\"stripNull\"]): string;\r\n};\r\n\r\nexport function applyBinaryAliasReader<T extends new (...args: any[]) => any>(Base: T) {\r\n return class extends Base {\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n //\r\n // Bit Aliases\r\n //\r\n\r\n /**\r\n * Bit field reader.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n bit(bits: number, unsigned?: boolean, endian?: endian): number {\r\n return this.readBit(bits, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Bit field reader. Unsigned read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n ubit(bits: number, endian?: endian): number {\r\n return this.readBit(bits, true, endian);\r\n }\r\n\r\n /**\r\n * Bit field reader. Unsigned big endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n ubitbe(bits: number): number {\r\n return this.bit(bits, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Big endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitbe(bits: number, unsigned?: boolean): number {\r\n return this.bit(bits, unsigned, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Unsigned little endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @returns {number}\r\n */\r\n ubitle(bits: number): number {\r\n return this.bit(bits, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Little endian read.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n *\r\n * @param {number} bits - bits to read\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitle(bits: number, unsigned?: boolean): number {\r\n return this.bit(bits, unsigned, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1(): number {\r\n return this.bit(1);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1le(): number {\r\n return this.bit(1, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit1be(): number {\r\n return this.bit(1, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1(): number {\r\n return this.bit(1, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1le(): number {\r\n return this.bit(1, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 1 bit.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit1be(): number {\r\n return this.bit(1, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2(): number {\r\n return this.bit(2);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2le(): number {\r\n return this.bit(2, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit2be(): number {\r\n return this.bit(2, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2(): number {\r\n return this.bit(2, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2le(): number {\r\n return this.bit(2, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 2 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit2be(): number {\r\n return this.bit(2, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3(): number {\r\n return this.bit(3);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3le(): number {\r\n return this.bit(3, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit3be(): number {\r\n return this.bit(3, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3(): number {\r\n return this.bit(3, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3le(): number {\r\n return this.bit(3, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 3 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit3be(): number {\r\n return this.bit(3, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4(): number {\r\n return this.bit(4);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4le(): number {\r\n return this.bit(4, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit4be(): number {\r\n return this.bit(4, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4(): number {\r\n return this.bit(4, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4le(): number {\r\n return this.bit(4, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 4 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit4be(): number {\r\n return this.bit(4, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5(): number {\r\n return this.bit(5);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5le(): number {\r\n return this.bit(5, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit5be(): number {\r\n return this.bit(5, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5(): number {\r\n return this.bit(5, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5le(): number {\r\n return this.bit(5, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 5 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit5be(): number {\r\n return this.bit(5, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6(): number {\r\n return this.bit(6);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6le(): number {\r\n return this.bit(6, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit6be(): number {\r\n return this.bit(6, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6(): number {\r\n return this.bit(6, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6le(): number {\r\n return this.bit(6, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 6 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit6be(): number {\r\n return this.bit(6, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7(): number {\r\n return this.bit(7);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7le(): number {\r\n return this.bit(7, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit7be(): number {\r\n return this.bit(7, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7(): number {\r\n return this.bit(7, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7le(): number {\r\n return this.bit(7, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 7 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit7be(): number {\r\n return this.bit(7, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8(): number {\r\n return this.bit(8);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8le(): number {\r\n return this.bit(8, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit8be(): number {\r\n return this.bit(8, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8(): number {\r\n return this.bit(8, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8le(): number {\r\n return this.bit(8, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 8 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit8be(): number {\r\n return this.bit(8, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9(): number {\r\n return this.bit(9);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9le(): number {\r\n return this.bit(9, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit9be(): number {\r\n return this.bit(9, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9(): number {\r\n return this.bit(9, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9le(): number {\r\n return this.bit(9, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 9 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit9be(): number {\r\n return this.bit(9, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10(): number {\r\n return this.bit(10);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10le(): number {\r\n return this.bit(10, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit10be(): number {\r\n return this.bit(10, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10(): number {\r\n return this.bit(10, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10le(): number {\r\n return this.bit(10, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 10 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit10be(): number {\r\n return this.bit(10, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11(): number {\r\n return this.bit(11);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11le(): number {\r\n return this.bit(11, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit11be(): number {\r\n return this.bit(11, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11(): number {\r\n return this.bit(11, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11le(): number {\r\n return this.bit(11, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 11 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit11be(): number {\r\n return this.bit(11, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12(): number {\r\n return this.bit(12);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12le(): number {\r\n return this.bit(12, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit12be(): number {\r\n return this.bit(12, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12(): number {\r\n return this.bit(12, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12le(): number {\r\n return this.bit(12, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 12 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit12be(): number {\r\n return this.bit(12, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13(): number {\r\n return this.bit(13);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13le(): number {\r\n return this.bit(13, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit13be(): number {\r\n return this.bit(13, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13(): number {\r\n return this.bit(13, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13le(): number {\r\n return this.bit(13, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 13 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit13be(): number {\r\n return this.bit(13, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14(): number {\r\n return this.bit(14);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14le(): number {\r\n return this.bit(14, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit14be(): number {\r\n return this.bit(14, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14(): number {\r\n return this.bit(14, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14le(): number {\r\n return this.bit(14, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 14 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit14be(): number {\r\n return this.bit(14, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15(): number {\r\n return this.bit(15);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15le(): number {\r\n return this.bit(15, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit15be(): number {\r\n return this.bit(15, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15(): number {\r\n return this.bit(15, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15le(): number {\r\n return this.bit(15, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 15 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit15be(): number {\r\n return this.bit(15, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16(): number {\r\n return this.bit(16);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16le(): number {\r\n return this.bit(16, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit16be(): number {\r\n return this.bit(16, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16(): number {\r\n return this.bit(16, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16le(): number {\r\n return this.bit(16, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 16 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit16be(): number {\r\n return this.bit(16, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17(): number {\r\n return this.bit(17);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17le(): number {\r\n return this.bit(17, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit17be(): number {\r\n return this.bit(17, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17(): number {\r\n return this.bit(17, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17le(): number {\r\n return this.bit(17, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 17 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit17be(): number {\r\n return this.bit(17, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18(): number {\r\n return this.bit(18);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18le(): number {\r\n return this.bit(18, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit18be(): number {\r\n return this.bit(18, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18(): number {\r\n return this.bit(18, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18le(): number {\r\n return this.bit(18, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 18 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit18be(): number {\r\n return this.bit(18, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19(): number {\r\n return this.bit(19);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19le(): number {\r\n return this.bit(19, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit19be(): number {\r\n return this.bit(19, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19(): number {\r\n return this.bit(19, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19le(): number {\r\n return this.bit(19, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 19 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit19be(): number {\r\n return this.bit(19, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20(): number {\r\n return this.bit(20);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20le(): number {\r\n return this.bit(20, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit20be(): number {\r\n return this.bit(20, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20(): number {\r\n return this.bit(20, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20le(): number {\r\n return this.bit(20, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 20 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit20be(): number {\r\n return this.bit(20, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21(): number {\r\n return this.bit(21);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21le(): number {\r\n return this.bit(21, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit21be(): number {\r\n return this.bit(21, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21(): number {\r\n return this.bit(21, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21le(): number {\r\n return this.bit(21, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 21 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit21be(): number {\r\n return this.bit(21, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22(): number {\r\n return this.bit(22);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22le(): number {\r\n return this.bit(22, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit22be(): number {\r\n return this.bit(22, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22(): number {\r\n return this.bit(22, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22le(): number {\r\n return this.bit(22, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 22 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit22be(): number {\r\n return this.bit(22, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23(): number {\r\n return this.bit(23);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23le(): number {\r\n return this.bit(23, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit23be(): number {\r\n return this.bit(23, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23(): number {\r\n return this.bit(23, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23le(): number {\r\n return this.bit(23, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 23 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit23be(): number {\r\n return this.bit(23, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24(): number {\r\n return this.bit(24);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24le(): number {\r\n return this.bit(24, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit24be(): number {\r\n return this.bit(24, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24(): number {\r\n return this.bit(24, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24le(): number {\r\n return this.bit(24, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 24 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit24be(): number {\r\n return this.bit(24, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25(): number {\r\n return this.bit(25);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25le(): number {\r\n return this.bit(25, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit25be(): number {\r\n return this.bit(25, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25(): number {\r\n return this.bit(25, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25le(): number {\r\n return this.bit(25, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 25 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit25be(): number {\r\n return this.bit(25, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26(): number {\r\n return this.bit(26);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26le(): number {\r\n return this.bit(26, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit26be(): number {\r\n return this.bit(26, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26(): number {\r\n return this.bit(26, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26le(): number {\r\n return this.bit(26, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 26 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit26be(): number {\r\n return this.bit(26, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27(): number {\r\n return this.bit(27);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27le(): number {\r\n return this.bit(27, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit27be(): number {\r\n return this.bit(27, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27(): number {\r\n return this.bit(27, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27le(): number {\r\n return this.bit(27, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 27 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit27be(): number {\r\n return this.bit(27, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28(): number {\r\n return this.bit(28);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28le(): number {\r\n return this.bit(28, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit28be(): number {\r\n return this.bit(28, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28(): number {\r\n return this.bit(28, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28le(): number {\r\n return this.bit(28, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 28 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit28be(): number {\r\n return this.bit(28, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29(): number {\r\n return this.bit(29);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29le(): number {\r\n return this.bit(29, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit29be(): number {\r\n return this.bit(29, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29(): number {\r\n return this.bit(29, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29le(): number {\r\n return this.bit(29, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 29 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit29be(): number {\r\n return this.bit(29, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30(): number {\r\n return this.bit(30);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30le(): number {\r\n return this.bit(30, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit30be(): number {\r\n return this.bit(30, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30(): number {\r\n return this.bit(30, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30le(): number {\r\n return this.bit(30, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 30 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit30be(): number {\r\n return this.bit(30, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31(): number {\r\n return this.bit(31);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31le(): number {\r\n return this.bit(31, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit31be(): number {\r\n return this.bit(31, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31(): number {\r\n return this.bit(31, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31le(): number {\r\n return this.bit(31, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 31 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit31be(): number {\r\n return this.bit(31, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32(): number {\r\n return this.bit(32);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32le(): number {\r\n return this.bit(32, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get bit32be(): number {\r\n return this.bit(32, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32(): number {\r\n return this.bit(32, true);\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32le(): number {\r\n return this.bit(32, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field reader. Reads 32 bits.\r\n * \r\n * Note: When returning to a byte read, remaining bits are dropped.\r\n * \r\n * @returns {number}\r\n */\r\n get ubit32be(): number {\r\n return this.bit(32, true, \"big\");\r\n }\r\n\r\n //\r\n // byte read\r\n //\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @returns {number}\r\n */\r\n get byte(): number {\r\n return this.readByte();\r\n }\r\n\r\n /**\r\n * Read byte.\r\n * \r\n * @returns {number}\r\n */\r\n get int8(): number {\r\n return this.readByte();\r\n }\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n get uint8(): number {\r\n return this.readByte(true);\r\n }\r\n\r\n /**\r\n * Read unsigned byte.\r\n * \r\n * @returns {number}\r\n */\r\n get ubyte(): number {\r\n return this.readByte(true);\r\n }\r\n\r\n //\r\n //short16 read\r\n //\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get int16(): number {\r\n return this.readInt16();\r\n }\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get short(): number {\r\n return this.readInt16();\r\n }\r\n\r\n /**\r\n * Read short.\r\n * \r\n * @returns {number}\r\n */\r\n get word(): number {\r\n return this.readInt16();\r\n }\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16(): number {\r\n return this.readInt16(true);\r\n }\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get ushort(): number {\r\n return this.readInt16(true);\r\n }\r\n\r\n /**\r\n * Read unsigned short.\r\n * \r\n * @returns {number}\r\n */\r\n get uword(): number {\r\n return this.readInt16(true);\r\n }\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16le(): number {\r\n return this.readInt16(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get ushortle(): number {\r\n return this.readInt16(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uwordle(): number {\r\n return this.readInt16(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get int16le(): number {\r\n return this.readInt16(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get shortle(): number {\r\n return this.readInt16(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed short in little endian.\r\n * \r\n * @returns {number}\r\n */\r\n get wordle(): number {\r\n return this.readInt16(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uint16be(): number {\r\n return this.readInt16(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get ushortbe(): number {\r\n return this.readInt16(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get uwordbe(): number {\r\n return this.readInt16(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get int16be(): number {\r\n return this.readInt16(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get shortbe(): number {\r\n return this.readInt16(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed short in big endian.\r\n * \r\n * @returns {number}\r\n */\r\n get wordbe(): number {\r\n return this.readInt16(false, \"big\");\r\n }\r\n\r\n //\r\n //half float read\r\n //\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloat(): number {\r\n return this.readHalfFloat();\r\n }\r\n\r\n /**\r\n * Read half float\r\n * \r\n * @returns {number}\r\n */\r\n get half(): number {\r\n return this.readHalfFloat();\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloatbe(): number {\r\n return this.readHalfFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halfbe(): number {\r\n return this.readHalfFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halffloatle(): number {\r\n return this.readHalfFloat(\"little\");\r\n }\r\n\r\n /**\r\n * Read half float.\r\n * \r\n * @returns {number}\r\n */\r\n get halfle(): number {\r\n return this.readHalfFloat(\"little\");\r\n }\r\n\r\n //\r\n //int read\r\n //\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int(): number {\r\n return this.readInt32();\r\n }\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get double(): number {\r\n return this.readInt32();\r\n }\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32(): number {\r\n return this.readInt32();\r\n }\r\n\r\n /**\r\n * Read 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get long(): number {\r\n return this.readInt32();\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint(): number {\r\n return this.readInt32(true);\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udouble(): number {\r\n return this.readInt32(true);\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32(): number {\r\n return this.readInt32(true);\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulong(): number {\r\n return this.readInt32(true);\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get intbe(): number {\r\n return this.readInt32(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get doublebe(): number {\r\n return this.readInt32(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32be(): number {\r\n return this.readInt32(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get longbe(): number {\r\n return this.readInt32(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uintbe(): number {\r\n return this.readInt32(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udoublebe(): number {\r\n return this.readInt32(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32be(): number {\r\n return this.readInt32(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulongbe(): number {\r\n return this.readInt32(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get intle(): number {\r\n return this.readInt32(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get doublele(): number {\r\n return this.readInt32(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get int32le(): number {\r\n return this.readInt32(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get longle(): number {\r\n return this.readInt32(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uintle(): number {\r\n return this.readInt32(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get udoublele(): number {\r\n return this.readInt32(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get uint32le(): number {\r\n return this.readInt32(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 32 bit integer.\r\n * \r\n * @returns {number}\r\n */\r\n get ulongle(): number {\r\n return this.readInt32(true, \"little\");\r\n }\r\n\r\n //\r\n //float read\r\n //\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get float(): number {\r\n return this.readFloat();\r\n }\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get floatbe(): number {\r\n return this.readFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read float.\r\n * \r\n * @returns {number}\r\n */\r\n get floatle(): number {\r\n return this.readFloat(\"little\");\r\n }\r\n\r\n //\r\n //int64 reader\r\n //\r\n\r\n /**\r\n * Read signed 64 bit integer\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64(): bigint {\r\n return this.readInt64();\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigint(): bigint {\r\n return this.readInt64();\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quad(): bigint {\r\n return this.readInt64();\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64(): bigint {\r\n return this.readInt64(true);\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigint(): bigint {\r\n return this.readInt64(true);\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquad(): bigint {\r\n return this.readInt64(true);\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64be(): bigint {\r\n return this.readInt64(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigintbe(): bigint {\r\n return this.readInt64(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quadbe(): bigint {\r\n return this.readInt64(false, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64be(): bigint {\r\n return this.readInt64(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigintbe(): bigint {\r\n return this.readInt64(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquadbe(): bigint {\r\n return this.readInt64(true, \"big\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get int64le(): bigint {\r\n return this.readInt64(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get bigintle(): bigint {\r\n return this.readInt64(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read signed 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get quadle(): bigint {\r\n return this.readInt64(false, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uint64le(): bigint {\r\n return this.readInt64(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get ubigintle(): bigint {\r\n return this.readInt64(true, \"little\");\r\n }\r\n\r\n /**\r\n * Read unsigned 64 bit integer.\r\n * \r\n * @returns {bigint}\r\n */\r\n get uquadle(): bigint {\r\n return this.readInt64(true, \"little\");\r\n }\r\n\r\n //\r\n //doublefloat reader\r\n //\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloat(): number {\r\n return this.readDoubleFloat();\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloat(): number {\r\n return this.readDoubleFloat();\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloatebe(): number {\r\n return this.readDoubleFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloatbe(): number {\r\n return this.readDoubleFloat(\"big\");\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get dfloatle(): number {\r\n return this.readDoubleFloat(\"little\");\r\n }\r\n\r\n /**\r\n * Read double float.\r\n * \r\n * @returns {number}\r\n */\r\n get doublefloatle(): number {\r\n return this.readDoubleFloat(\"little\");\r\n }\r\n\r\n //\r\n //string reader\r\n //\r\n\r\n /**\r\n * Reads string, use options object for different types.\r\n * \r\n * @param {stringOptions} options \r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthReadSize\"]?} options.lengthReadSize - for pascal strings. 1, 2 or 4 byte length read size\r\n * @param {stringOptions[\"stripNull\"]?} options.stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n * @return {string}\r\n */\r\n string(options?: stringOptions): string {\r\n return this.readString(options);\r\n }\r\n\r\n /**\r\n * Reads string using setting from .strSettings\r\n * \r\n * Default is ``utf-8``\r\n * \r\n * @return {string}\r\n */\r\n get str(): string {\r\n return this.readString(this.strSettings);\r\n }\r\n\r\n /**\r\n * Reads UTF-8 (C) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf8string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-8\", encoding: \"utf-8\", length: length, terminateValue: terminateValue, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-8 (C) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n cstring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-8\", encoding: \"utf-8\", length: length, terminateValue: terminateValue, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads ANSI string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n ansistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-8\", encoding: \"windows-1252\", length: length, terminateValue: terminateValue, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n utf16string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: endian, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n unistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: endian, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf16stringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"little\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n unistringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"little\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n utf16stringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"big\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n unistringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"big\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Pascal string.\r\n * \r\n * @param {stringOptions[\"lengthReadSize\"]} lengthReadSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: lengthReadSize, stripNull: stripNull, endian: endian });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 1, stripNull: stripNull, endian: endian });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring1le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 1, stripNull: stripNull, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring1be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 1, stripNull: stripNull, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 2, stripNull: stripNull, endian: endian });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring2le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 2, stripNull: stripNull, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring2be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 2, stripNull: stripNull, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n pstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 4, stripNull: stripNull, endian: endian });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring4le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 4, stripNull: stripNull, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Reads Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n pstring4be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"pascal\", encoding: \"utf-8\", lengthReadSize: 4, stripNull: stripNull, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string.\r\n * \r\n * @param {stringOptions[\"lengthReadSize\"]} lengthReadSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: lengthReadSize, endian: endian, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 1 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 1, endian: endian, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 2, endian: endian, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring2le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 2, endian: \"little\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring2be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 2, endian: \"big\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n * \r\n * @return {string}\r\n */\r\n wpstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 4, endian: endian, stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring4be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 4, endian: \"big\", stripNull: stripNull });\r\n }\r\n\r\n /**\r\n * Reads Wide-Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {stringOptions[\"stripNull\"]} stripNull - removes 0x00 characters\r\n * \r\n * @return {string}\r\n */\r\n wpstring4le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n return this.string({ stringType: \"wide-pascal\", encoding: \"utf-16\", lengthReadSize: 4, endian: \"little\", stripNull: stripNull });\r\n }\r\n } as T;\r\n}\r\n","import { BiOptions, endian, stringOptions } from \"./common.js\";\r\nimport { BiBase } from './core/BiBase.js';\r\nimport { applyBinaryAliasReader, BinaryAliasReader } from \"./aliases/BinaryAliasReader.js\";\r\n\r\nconst BiReaderBase = applyBinaryAliasReader(BiBase);\r\n\r\n/**\r\n * Binary reader, includes bitfields and strings.\r\n *\r\n * @param {Buffer|Uint8Array} data - ``Buffer`` or ``Uint8Array``. Always found in ``BiReader.data``\r\n * @param {BiOptions?} options - Any options to set at start\r\n * @param {number?} options.byteOffset - Byte offset to start reader (default ``0``)\r\n * @param {number?} options.bitOffset - Bit offset 0-7 to start reader (default ``0``)\r\n * @param {string?} options.endianness - Endianness ``big`` or ``little`` (default ``little``)\r\n * @param {boolean?} options.strict - Strict mode: if ``true`` does not extend supplied array on outside write (default ``true``)\r\n * @param {number?} options.extendBufferSize - Amount of data to add when extending the buffer array when strict mode is false. Note: Changes logic in ``.get`` and ``.return``.\r\n * \r\n * @since 2.0\r\n */\r\nexport class BiReader extends BiReaderBase implements BinaryAliasReader {\r\n\r\n /**\r\n * Binary reader, includes bitfields and strings.\r\n *\r\n * @param {Buffer|Uint8Array} data - ``Buffer`` or ``Uint8Array``. Always found in ``BiReader.data``\r\n * @param {BiOptions?} options - Any options to set at start\r\n * @param {number?} options.byteOffset - Byte offset to start reader (default ``0``)\r\n * @param {number?} options.bitOffset - Bit offset 0-7 to start reader (default ``0``)\r\n * @param {string?} options.endianness - Endianness ``big`` or ``little`` (default ``little``)\r\n * @param {boolean?} options.strict - Strict mode: if ``true`` does not extend supplied array on outside write (default ``true``)\r\n * @param {number?} options.extendBufferSize - Amount of data to add when extending the buffer array when strict mode is false. Note: Changes logic in ``.get`` and ``.return``.\r\n */\r\n constructor(data: Buffer | Uint8Array, options: BiOptions = {}) {\r\n super();\r\n this.strict = true;\r\n if (data == undefined) {\r\n throw new Error(\"Data required\");\r\n } else {\r\n if (!this.isBufferOrUint8Array(data)) {\r\n throw new Error(\"Write data must be Uint8Array or Buffer\");\r\n }\r\n this.data = data;\r\n }\r\n\r\n if(options.extendBufferSize != undefined && options.extendBufferSize != 0)\r\n {\r\n this.extendBufferSize = options.extendBufferSize;\r\n }\r\n\r\n this.size = this.data.length;\r\n this.sizeB = this.data.length * 8;\r\n\r\n if (options.endianness != undefined && typeof options.endianness != \"string\") {\r\n throw new Error(\"Endian must be big or little\");\r\n }\r\n if (options.endianness != undefined && !(options.endianness == \"big\" || options.endianness == \"little\")) {\r\n throw new Error(\"Byte order must be big or little\");\r\n }\r\n\r\n this.endian = options.endianness || \"little\";\r\n\r\n if (typeof options.strict == \"boolean\") {\r\n this.strict = options.strict;\r\n } else {\r\n if (options.strict != undefined) {\r\n throw new Error(\"Strict mode must be true of false\");\r\n }\r\n }\r\n\r\n if (options.byteOffset != undefined || options.bitOffset != undefined) {\r\n this.offset = ((Math.abs(options.byteOffset || 0)) + Math.ceil((Math.abs(options.bitOffset || 0)) / 8));\r\n // Adjust byte offset based on bit overflow\r\n this.offset += Math.floor((Math.abs(options.bitOffset || 0)) / 8);\r\n // Adjust bit offset\r\n this.bitoffset = (Math.abs(options.bitOffset || 0) + 64) % 8;\r\n // Ensure bit offset stays between 0-7\r\n this.bitoffset = Math.min(Math.max(this.bitoffset, 0), 7);\r\n // Ensure offset doesn't go negative\r\n this.offset = Math.max(this.offset, 0);\r\n if (this.offset > this.size) {\r\n if (this.strict == false) {\r\n if(this.extendBufferSize != 0)\r\n {\r\n this.extendArray(this.extendBufferSize);\r\n }\r\n else \r\n {\r\n this.extendArray(this.offset - this.size);\r\n }\r\n } else {\r\n throw new Error(`Starting offset outside of size: ${this.offset} of ${this.size}`);\r\n }\r\n }\r\n }\r\n }\r\n bit(bits: number, unsigned?: boolean, endian?: endian): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ubit(bits: number, endian?: endian): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ubitbe(bits: number): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n bitbe(bits: number, unsigned?: boolean): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ubitle(bits: number): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n bitle(bits: number, unsigned?: boolean): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit1(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit1le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit1be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit1(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit1le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit1be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit2(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit2le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit2be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit2(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit2le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit2be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit3(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit3le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit3be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit3(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit3le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit3be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit4(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit4le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit4be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit4(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit4le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit4be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit5(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit5le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit5be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit5(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit5le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit5be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit6(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit6le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit6be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit6(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit6le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit6be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit7(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit7le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit7be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit7(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit7le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit7be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit8(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit8le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit8be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit8(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit8le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit8be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit9(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit9le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit9be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit9(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit9le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit9be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit10(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit10le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit10be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit10(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit10le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit10be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit11(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit11le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit11be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit11(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit11le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit11be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit12(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit12le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit12be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit12(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit12le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit12be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit13(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit13le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit13be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit13(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit13le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit13be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit14(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit14le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit14be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit14(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit14le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit14be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit15(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit15le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit15be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit15(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit15le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit15be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit16(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit16le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit16be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit16(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit16le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit16be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit17(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit17le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit17be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit17(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit17le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit17be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit18(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit18le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit18be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit18(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit18le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit18be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit19(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit19le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit19be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit19(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit19le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit19be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit20(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit20le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit20be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit20(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit20le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit20be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit21(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit21le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit21be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit21(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit21le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit21be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit22(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit22le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit22be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit22(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit22le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit22be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit23(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit23le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit23be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit23(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit23le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit23be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit24(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit24le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit24be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit24(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit24le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit24be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit25(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit25le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit25be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit25(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit25le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit25be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit26(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit26le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit26be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit26(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit26le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit26be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit27(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit27le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit27be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit27(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit27le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit27be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit28(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit28le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit28be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit28(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit28le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit28be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit29(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit29le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit29be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit29(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit29le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit29be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit30(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit30le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit30be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit30(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit30le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit30be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit31(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit31le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit31be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit31(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit31le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit31be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit32(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit32le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bit32be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit32(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit32le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubit32be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get byte(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int8(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint8(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubyte(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int16(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get short(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get word(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint16(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ushort(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uword(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint16le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ushortle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uwordle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int16le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get shortle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get wordle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint16be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ushortbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uwordbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int16be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get shortbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get wordbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get halffloat(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get half(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get halffloatbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get halfbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get halffloatle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get halfle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get double(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int32(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get long(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get udouble(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint32(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ulong(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get intbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get doublebe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int32be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get longbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uintbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get udoublebe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint32be(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ulongbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get intle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get doublele(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int32le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get longle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uintle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get udoublele(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint32le(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ulongle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get float(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get floatbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get floatle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int64(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bigint(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get quad(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint64(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubigint(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uquad(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int64be(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bigintbe(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get quadbe(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint64be(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubigintbe(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uquadbe(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get int64le(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get bigintle(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get quadle(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uint64le(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get ubigintle(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get uquadle(): bigint {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get doublefloat(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get dfloat(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get dfloatebe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get doublefloatbe(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get dfloatle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get doublefloatle(): number {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n string(options?: stringOptions): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n get str(): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf8string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n cstring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ansistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf16string(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n unistring(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf16stringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n unistringle(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf16stringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n unistringbe(length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"], stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring1le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring1be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring2le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring2be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring4le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring4be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring(lengthReadSize?: stringOptions[\"lengthReadSize\"], stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring1(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring2(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring2le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring2be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring4(stripNull?: stringOptions[\"stripNull\"], endian?: stringOptions[\"endian\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring4be(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring4le(stripNull?: stringOptions[\"stripNull\"]): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n};","import {\r\n BigValue,\r\n stringOptions,\r\n endian\r\n} from \"../common.js\";\r\nimport { BiBase } from '../core/BiBase.js';\r\nimport { BiBaseStreamer } from '../core/BiBaseStream.js';\r\n\r\nexport interface BinaryAliasWriter extends BiBase {\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n bit(value: number, bits: number, unsigned?: boolean, endian?: endian): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n ubit(value: number, bits: number, endian?: endian): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitbe(value: number, bits: number, unsigned?: boolean): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @returns {number}\r\n */\r\n ubitbe(value: number, bits: number): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @returns {number}\r\n */\r\n ubitle(value: number, bits: number): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitle(value: number, bits: number, unsigned?: boolean): void;\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32be(value: number);\r\n\r\n //\r\n // byte write\r\n //\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set byte(value: number);\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int8(value: number);\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint8(value: number);\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ubyte(value: number);\r\n\r\n //\r\n // short writes\r\n //\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16(value: number);\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set short(value: number);\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set word(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushort(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uword(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16be(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set shortbe(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set wordbe(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16be(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushortbe(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uwordbe(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16le(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set shortle(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set wordle(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16le(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushortle(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uwordle(value: number);\r\n\r\n //\r\n // half float\r\n //\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set half(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloat(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloatbe(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halfbe(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloatle(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halfle(value: number);\r\n\r\n //\r\n // int32 write\r\n //\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int(value: number);\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32(value: number);\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set double(value: number);\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set long(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udouble(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ulong(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32le(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set intle(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set doublele(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set longle(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32le(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uintle(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udoublele(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ulongle(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set intbe(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32be(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set doublebe(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set longbe(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set writeUInt32BE(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32be(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uintbe(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udoublebe(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int\r\n */\r\n set ulongbe(value: number);\r\n\r\n //\r\n // float write\r\n //\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set float(value: number);\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set floatle(value: number);\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set floatbe(value: number);\r\n\r\n //\r\n // int64 write\r\n //\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64(value: BigValue);\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quad(value: BigValue);\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigint(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigint(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquad(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64le(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigintle(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quadle(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64le(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigintle(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquadle(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64be(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigintbe(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quadbe(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64be(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigintbe(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquadbe(value: BigValue);\r\n\r\n //\r\n // doublefloat\r\n //\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloat(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloat(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloatbe(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloatbe(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloatle(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloatle(value: number);\r\n\r\n //\r\n // string\r\n //\r\n\r\n /**\r\n * Writes string, use options object for different types.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions?} options\r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthWriteSize\"]?} options.lengthWriteSize - for pascal strings. 1, 2 or 4 byte length write size\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n */\r\n string(string: string, options?: stringOptions): void;\r\n\r\n /**\r\n * Writes string using setting from .strSettings\r\n * \r\n * Default is ``utf-8``\r\n * \r\n * @param {string} string - text string\r\n */\r\n set str(string: string);\r\n\r\n /**\r\n * Writes UTF-8 (C) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf8string(string: string, length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-8 (C) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n cstring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes ANSI string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n ansistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"endian\"]} endian - for wide-pascal and utf-16\r\n */\r\n utf16string(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"endian\"]} endian - for wide-pascal and utf-16\r\n */\r\n unistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf16stringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n unistringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf16stringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n unistringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little`` for 2 or 4 byte length write size\r\n */\r\n pstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little`` for 2 or 4 byte length write size\r\n */\r\n pstring1(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring1le(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring1be(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n pstring2(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring2le(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring2be(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n pstring4(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring4be(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring4le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n */\r\n wpstringbe(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n */\r\n wpstringle(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring1(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring1be(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring1le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring2(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring2le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring2be(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring4(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring4le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring4be(string: string): void;\r\n};\r\nexport interface BinaryAliasWriterStreamer extends BiBaseStreamer {\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n bit(value: number, bits: number, unsigned?: boolean, endian?: endian): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n ubit(value: number, bits: number, endian?: endian): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitbe(value: number, bits: number, unsigned?: boolean): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @returns {number}\r\n */\r\n ubitbe(value: number, bits: number): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @returns {number}\r\n */\r\n ubitle(value: number, bits: number): void;\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitle(value: number, bits: number, unsigned?: boolean): void;\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32be(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32le(value: number);\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32be(value: number);\r\n\r\n //\r\n // byte write\r\n //\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set byte(value: number);\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int8(value: number);\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint8(value: number);\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ubyte(value: number);\r\n\r\n //\r\n // short writes\r\n //\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16(value: number);\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set short(value: number);\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set word(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushort(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uword(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16be(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set shortbe(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set wordbe(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16be(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushortbe(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uwordbe(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16le(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set shortle(value: number);\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set wordle(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16le(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushortle(value: number);\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uwordle(value: number);\r\n\r\n //\r\n // half float\r\n //\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set half(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloat(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloatbe(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halfbe(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloatle(value: number);\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halfle(value: number);\r\n\r\n //\r\n // int32 write\r\n //\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int(value: number);\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32(value: number);\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set double(value: number);\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set long(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udouble(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ulong(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32le(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set intle(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set doublele(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set longle(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32le(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uintle(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udoublele(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ulongle(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set intbe(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32be(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set doublebe(value: number);\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set longbe(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set writeUInt32BE(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32be(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uintbe(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udoublebe(value: number);\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int\r\n */\r\n set ulongbe(value: number);\r\n\r\n //\r\n // float write\r\n //\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set float(value: number);\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set floatle(value: number);\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set floatbe(value: number);\r\n\r\n //\r\n // int64 write\r\n //\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64(value: BigValue);\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quad(value: BigValue);\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigint(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigint(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquad(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64le(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigintle(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quadle(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64le(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigintle(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquadle(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64be(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigintbe(value: BigValue);\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quadbe(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64be(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigintbe(value: BigValue);\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquadbe(value: BigValue);\r\n\r\n //\r\n // doublefloat\r\n //\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloat(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloat(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloatbe(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloatbe(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloatle(value: number);\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloatle(value: number);\r\n\r\n //\r\n // string\r\n //\r\n\r\n /**\r\n * Writes string, use options object for different types.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions?} options\r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthWriteSize\"]?} options.lengthWriteSize - for pascal strings. 1, 2 or 4 byte length write size\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n */\r\n string(string: string, options?: stringOptions): void;\r\n\r\n /**\r\n * Writes string using setting from .strSettings\r\n * \r\n * Default is ``utf-8``\r\n * \r\n * @param {string} string - text string\r\n */\r\n set str(string: string);\r\n\r\n /**\r\n * Writes UTF-8 (C) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf8string(string: string, length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-8 (C) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n cstring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes ANSI string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n ansistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"endian\"]} endian - for wide-pascal and utf-16\r\n */\r\n utf16string(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"endian\"]} endian - for wide-pascal and utf-16\r\n */\r\n unistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf16stringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n unistringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf16stringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n unistringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void;\r\n\r\n /**\r\n * Writes Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little`` for 2 or 4 byte length write size\r\n */\r\n pstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little`` for 2 or 4 byte length write size\r\n */\r\n pstring1(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring1le(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring1be(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n pstring2(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring2le(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring2be(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n pstring4(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring4be(string: string): void;\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring4le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n */\r\n wpstringbe(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n */\r\n wpstringle(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring1(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring1be(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring1le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring2(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring2le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring2be(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring4(string: string, endian?: stringOptions[\"endian\"]): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring4le(string: string): void;\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring4be(string: string): void;\r\n};\r\n\r\nexport function applyBinaryAliasWriter<T extends new (...args: any[]) => any>(Base: T) {\r\n return class extends Base {\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n //\r\n // Bit Aliases\r\n //\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n bit(value: number, bits: number, unsigned?: boolean, endian?: endian): void {\r\n return this.writeBit(value, bits, unsigned, endian);\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @param {endian} endian - ``big`` or ``little``\r\n * @returns {number}\r\n */\r\n ubit(value: number, bits: number, endian?: endian): void {\r\n return this.writeBit(value, bits, true, endian);\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitbe(value: number, bits: number, unsigned?: boolean): void {\r\n return this.bit(value, bits, unsigned, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int \r\n * @param {number} bits - bits to write\r\n * @returns {number}\r\n */\r\n ubitbe(value: number, bits: number): void {\r\n return this.bit(value, bits, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @returns {number}\r\n */\r\n ubitle(value: number, bits: number): void {\r\n return this.bit(value, bits, true, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n *\r\n * @param {number} value - value as int\r\n * @param {number} bits - bits to write\r\n * @param {boolean} unsigned - if the value is unsigned\r\n * @returns {number}\r\n */\r\n bitle(value: number, bits: number, unsigned?: boolean): void {\r\n return this.bit(value, bits, unsigned, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1(value: number) {\r\n this.bit(value, 1);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1le(value: number) {\r\n this.bit(value, 1, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit1be(value: number) {\r\n this.bit(value, 1, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1(value: number) {\r\n this.bit(value, 1, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1le(value: number) {\r\n this.bit(value, 1, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 1 bit.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit1be(value: number) {\r\n this.bit(value, 1, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2(value: number) {\r\n this.bit(value, 2);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2le(value: number) {\r\n this.bit(value, 2, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit2be(value: number) {\r\n this.bit(value, 2, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2(value: number) {\r\n this.bit(value, 2, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2le(value: number) {\r\n this.bit(value, 2, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 2 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit2be(value: number) {\r\n this.bit(value, 2, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3(value: number) {\r\n this.bit(value, 3);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3le(value: number) {\r\n this.bit(value, 3, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit3be(value: number) {\r\n this.bit(value, 3, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3(value: number) {\r\n this.bit(value, 3, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3le(value: number) {\r\n this.bit(value, 3, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 3 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit3be(value: number) {\r\n this.bit(value, 3, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4(value: number) {\r\n this.bit(value, 4);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4le(value: number) {\r\n this.bit(value, 4, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit4be(value: number) {\r\n this.bit(value, 4, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4(value: number) {\r\n this.bit(value, 4, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4le(value: number) {\r\n this.bit(value, 4, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 4 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit4be(value: number) {\r\n this.bit(value, 4, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5(value: number) {\r\n this.bit(value, 5);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5le(value: number) {\r\n this.bit(value, 5, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit5be(value: number) {\r\n this.bit(value, 5, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5(value: number) {\r\n this.bit(value, 5, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5le(value: number) {\r\n this.bit(value, 5, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 5 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit5be(value: number) {\r\n this.bit(value, 5, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6(value: number) {\r\n this.bit(value, 6);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6le(value: number) {\r\n this.bit(value, 6, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit6be(value: number) {\r\n this.bit(value, 6, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6(value: number) {\r\n this.bit(value, 6, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6le(value: number) {\r\n this.bit(value, 6, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 6 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit6be(value: number) {\r\n this.bit(value, 6, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7(value: number) {\r\n this.bit(value, 7);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7le(value: number) {\r\n this.bit(value, 7, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit7be(value: number) {\r\n this.bit(value, 7, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7(value: number) {\r\n this.bit(value, 7, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7le(value: number) {\r\n this.bit(value, 7, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 7 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit7be(value: number) {\r\n this.bit(value, 7, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8(value: number) {\r\n this.bit(value, 8);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8le(value: number) {\r\n this.bit(value, 8, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit8be(value: number) {\r\n this.bit(value, 8, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8(value: number) {\r\n this.bit(value, 8, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8le(value: number) {\r\n this.bit(value, 8, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 8 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit8be(value: number) {\r\n this.bit(value, 8, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9(value: number) {\r\n this.bit(value, 9);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9le(value: number) {\r\n this.bit(value, 9, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit9be(value: number) {\r\n this.bit(value, 9, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9(value: number) {\r\n this.bit(value, 9, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9le(value: number) {\r\n this.bit(value, 9, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 9 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit9be(value: number) {\r\n this.bit(value, 9, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10(value: number) {\r\n this.bit(value, 10);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10le(value: number) {\r\n this.bit(value, 10, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit10be(value: number) {\r\n this.bit(value, 10, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10(value: number) {\r\n this.bit(value, 10, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10le(value: number) {\r\n this.bit(value, 10, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 10 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit10be(value: number) {\r\n this.bit(value, 10, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11(value: number) {\r\n this.bit(value, 11);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11le(value: number) {\r\n this.bit(value, 11, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit11be(value: number) {\r\n this.bit(value, 11, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11(value: number) {\r\n this.bit(value, 11, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11le(value: number) {\r\n this.bit(value, 11, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 11 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit11be(value: number) {\r\n this.bit(value, 11, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12(value: number) {\r\n this.bit(value, 12);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12le(value: number) {\r\n this.bit(value, 12, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit12be(value: number) {\r\n this.bit(value, 12, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12(value: number) {\r\n this.bit(value, 12, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12le(value: number) {\r\n this.bit(value, 12, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 12 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit12be(value: number) {\r\n this.bit(value, 12, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13(value: number) {\r\n this.bit(value, 13);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13le(value: number) {\r\n this.bit(value, 13, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit13be(value: number) {\r\n this.bit(value, 13, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13(value: number) {\r\n this.bit(value, 13, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13le(value: number) {\r\n this.bit(value, 13, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 13 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit13be(value: number) {\r\n this.bit(value, 13, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14(value: number) {\r\n this.bit(value, 14);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14le(value: number) {\r\n this.bit(value, 14, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit14be(value: number) {\r\n this.bit(value, 14, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14(value: number) {\r\n this.bit(value, 14, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14le(value: number) {\r\n this.bit(value, 14, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 14 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit14be(value: number) {\r\n this.bit(value, 14, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15(value: number) {\r\n this.bit(value, 15);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15le(value: number) {\r\n this.bit(value, 15, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit15be(value: number) {\r\n this.bit(value, 15, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15(value: number) {\r\n this.bit(value, 15, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15le(value: number) {\r\n this.bit(value, 15, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 15 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit15be(value: number) {\r\n this.bit(value, 15, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16(value: number) {\r\n this.bit(value, 16);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16le(value: number) {\r\n this.bit(value, 16, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit16be(value: number) {\r\n this.bit(value, 16, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16(value: number) {\r\n this.bit(value, 16, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16le(value: number) {\r\n this.bit(value, 16, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 16 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit16be(value: number) {\r\n this.bit(value, 16, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17(value: number) {\r\n this.bit(value, 17);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17le(value: number) {\r\n this.bit(value, 17, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit17be(value: number) {\r\n this.bit(value, 17, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17(value: number) {\r\n this.bit(value, 17, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17le(value: number) {\r\n this.bit(value, 17, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 17 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit17be(value: number) {\r\n this.bit(value, 17, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18(value: number) {\r\n this.bit(value, 18);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18le(value: number) {\r\n this.bit(value, 18, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit18be(value: number) {\r\n this.bit(value, 18, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18(value: number) {\r\n this.bit(value, 18, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18le(value: number) {\r\n this.bit(value, 18, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 18 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit18be(value: number) {\r\n this.bit(value, 18, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19(value: number) {\r\n this.bit(value, 19);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19le(value: number) {\r\n this.bit(value, 19, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit19be(value: number) {\r\n this.bit(value, 19, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19(value: number) {\r\n this.bit(value, 19, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19le(value: number) {\r\n this.bit(value, 19, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 19 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit19be(value: number) {\r\n this.bit(value, 19, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20(value: number) {\r\n this.bit(value, 20);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20le(value: number) {\r\n this.bit(value, 20, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit20be(value: number) {\r\n this.bit(value, 20, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20(value: number) {\r\n this.bit(value, 20, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20le(value: number) {\r\n this.bit(value, 20, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 20 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit20be(value: number) {\r\n this.bit(value, 20, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21(value: number) {\r\n this.bit(value, 21);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21le(value: number) {\r\n this.bit(value, 21, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit21be(value: number) {\r\n this.bit(value, 21, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21(value: number) {\r\n this.bit(value, 21, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21le(value: number) {\r\n this.bit(value, 21, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 21 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit21be(value: number) {\r\n this.bit(value, 21, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22(value: number) {\r\n this.bit(value, 22);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22le(value: number) {\r\n this.bit(value, 22, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit22be(value: number) {\r\n this.bit(value, 22, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22(value: number) {\r\n this.bit(value, 22, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22le(value: number) {\r\n this.bit(value, 22, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 22 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit22be(value: number) {\r\n this.bit(value, 22, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23(value: number) {\r\n this.bit(value, 23);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23le(value: number) {\r\n this.bit(value, 23, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit23be(value: number) {\r\n this.bit(value, 23, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23(value: number) {\r\n this.bit(value, 23, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23le(value: number) {\r\n this.bit(value, 23, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 23 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit23be(value: number) {\r\n this.bit(value, 23, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24(value: number) {\r\n this.bit(value, 24);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24le(value: number) {\r\n this.bit(value, 24, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit24be(value: number) {\r\n this.bit(value, 24, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24(value: number) {\r\n this.bit(value, 24, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24le(value: number) {\r\n this.bit(value, 24, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 24 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit24be(value: number) {\r\n this.bit(value, 24, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25(value: number) {\r\n this.bit(value, 25);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25le(value: number) {\r\n this.bit(value, 25, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit25be(value: number) {\r\n this.bit(value, 25, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25(value: number) {\r\n this.bit(value, 25, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25le(value: number) {\r\n this.bit(value, 25, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 25 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit25be(value: number) {\r\n this.bit(value, 25, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26(value: number) {\r\n this.bit(value, 26);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26le(value: number) {\r\n this.bit(value, 26, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit26be(value: number) {\r\n this.bit(value, 26, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26(value: number) {\r\n this.bit(value, 26, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26le(value: number) {\r\n this.bit(value, 26, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 26 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit26be(value: number) {\r\n this.bit(value, 26, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27(value: number) {\r\n this.bit(value, 27);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27le(value: number) {\r\n this.bit(value, 27, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit27be(value: number) {\r\n this.bit(value, 27, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27(value: number) {\r\n this.bit(value, 27, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27le(value: number) {\r\n this.bit(value, 27, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 27 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit27be(value: number) {\r\n this.bit(value, 27, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28(value: number) {\r\n this.bit(value, 28);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28le(value: number) {\r\n this.bit(value, 28, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit28be(value: number) {\r\n this.bit(value, 28, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28(value: number) {\r\n this.bit(value, 28, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28le(value: number) {\r\n this.bit(value, 28, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 28 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit28be(value: number) {\r\n this.bit(value, 28, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29(value: number) {\r\n this.bit(value, 29);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29le(value: number) {\r\n this.bit(value, 29, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit29be(value: number) {\r\n this.bit(value, 29, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29(value: number) {\r\n this.bit(value, 29, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29le(value: number) {\r\n this.bit(value, 29, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 29 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit29be(value: number) {\r\n this.bit(value, 29, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30(value: number) {\r\n this.bit(value, 30);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30le(value: number) {\r\n this.bit(value, 30, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit30be(value: number) {\r\n this.bit(value, 30, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30(value: number) {\r\n this.bit(value, 30, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30le(value: number) {\r\n this.bit(value, 30, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 30 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit30be(value: number) {\r\n this.bit(value, 30, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31(value: number) {\r\n this.bit(value, 31);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31le(value: number) {\r\n this.bit(value, 31, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit31be(value: number) {\r\n this.bit(value, 31, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31(value: number) {\r\n this.bit(value, 31, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31le(value: number) {\r\n this.bit(value, 31, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 31 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit31be(value: number) {\r\n this.bit(value, 31, true, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32(value: number) {\r\n this.bit(value, 32);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32le(value: number) {\r\n this.bit(value, 32, undefined, \"little\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set bit32be(value: number) {\r\n this.bit(value, 32, undefined, \"big\");\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32(value: number) {\r\n this.bit(value, 32, true);\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32le(value: number) {\r\n this.bit(value, 32, true, \"little\");;\r\n }\r\n\r\n /**\r\n * Bit field writer. Writes 32 bits.\r\n * \r\n * Note: When returning to a byte write, remaining bits are dropped.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set ubit32be(value: number) {\r\n this.bit(value, 32, true, \"big\");\r\n }\r\n\r\n //\r\n // byte write\r\n //\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set byte(value: number) {\r\n this.writeByte(value);\r\n }\r\n\r\n /**\r\n * Write byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int8(value: number) {\r\n this.writeByte(value);\r\n }\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint8(value: number) {\r\n this.writeByte(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned byte.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ubyte(value: number) {\r\n this.writeByte(value, true);\r\n }\r\n\r\n //\r\n // short writes\r\n //\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16(value: number) {\r\n this.writeInt16(value);\r\n }\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set short(value: number) {\r\n this.writeInt16(value);\r\n }\r\n\r\n /**\r\n * Write int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set word(value: number) {\r\n this.writeInt16(value);\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16(value: number) {\r\n this.writeInt16(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushort(value: number) {\r\n this.writeInt16(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uword(value: number) {\r\n this.writeInt16(value, true);\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16be(value: number) {\r\n this.writeInt16(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set shortbe(value: number) {\r\n this.writeInt16(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set wordbe(value: number) {\r\n this.writeInt16(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16be(value: number) {\r\n this.writeInt16(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushortbe(value: number) {\r\n this.writeInt16(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uwordbe(value: number) {\r\n this.writeInt16(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int16le(value: number) {\r\n this.writeInt16(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set shortle(value: number) {\r\n this.writeInt16(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set wordle(value: number) {\r\n this.writeInt16(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint16le(value: number) {\r\n this.writeInt16(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ushortle(value: number) {\r\n this.writeInt16(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int16.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uwordle(value: number) {\r\n this.writeInt16(value, true, \"little\");\r\n }\r\n\r\n //\r\n // half float\r\n //\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set half(value: number) {\r\n this.writeHalfFloat(value);\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloat(value: number) {\r\n this.writeHalfFloat(value);\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloatbe(value: number) {\r\n this.writeHalfFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halfbe(value: number) {\r\n this.writeHalfFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halffloatle(value: number) {\r\n this.writeHalfFloat(value, \"little\");\r\n }\r\n\r\n /**\r\n * Writes half float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set halfle(value: number) {\r\n this.writeHalfFloat(value, \"little\");\r\n }\r\n\r\n //\r\n // int32 write\r\n //\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int(value: number) {\r\n this.writeInt32(value);\r\n }\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32(value: number) {\r\n this.writeInt32(value);\r\n }\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set double(value: number) {\r\n this.writeInt32(value);\r\n }\r\n\r\n /**\r\n * Write int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set long(value: number) {\r\n this.writeInt32(value);\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32(value: number) {\r\n this.writeInt32(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint(value: number) {\r\n this.writeInt32(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udouble(value: number) {\r\n this.writeInt32(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ulong(value: number) {\r\n this.writeInt32(value, true);\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32le(value: number) {\r\n this.writeInt32(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set intle(value: number) {\r\n this.writeInt32(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set doublele(value: number) {\r\n this.writeInt32(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set longle(value: number) {\r\n this.writeInt32(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32le(value: number) {\r\n this.writeInt32(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uintle(value: number) {\r\n this.writeInt32(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udoublele(value: number) {\r\n this.writeInt32(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set ulongle(value: number) {\r\n this.writeInt32(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set intbe(value: number) {\r\n this.writeInt32(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set int32be(value: number) {\r\n this.writeInt32(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set doublebe(value: number) {\r\n this.writeInt32(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set longbe(value: number) {\r\n this.writeInt32(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set writeUInt32BE(value: number) {\r\n this.writeInt32(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uint32be(value: number) {\r\n this.writeInt32(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set uintbe(value: number) {\r\n this.writeInt32(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int \r\n */\r\n set udoublebe(value: number) {\r\n this.writeInt32(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned int32.\r\n *\r\n * @param {number} value - value as int\r\n */\r\n set ulongbe(value: number) {\r\n this.writeInt32(value, true, \"big\");\r\n }\r\n\r\n //\r\n // float write\r\n //\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set float(value: number) {\r\n this.writeFloat(value);\r\n }\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set floatle(value: number) {\r\n this.writeFloat(value, \"little\");\r\n }\r\n\r\n /**\r\n * Write float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set floatbe(value: number) {\r\n this.writeFloat(value, \"big\");\r\n }\r\n\r\n //\r\n // int64 write\r\n //\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64(value: BigValue) {\r\n this.writeInt64(value);\r\n }\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quad(value: BigValue) {\r\n this.writeInt64(value);\r\n }\r\n\r\n /**\r\n * Write 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigint(value: BigValue) {\r\n this.writeInt64(value);\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64(value: BigValue) {\r\n this.writeInt64(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigint(value: BigValue) {\r\n this.writeInt64(value, true);\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquad(value: BigValue) {\r\n this.writeInt64(value, true,);\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64le(value: BigValue) {\r\n this.writeInt64(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigintle(value: BigValue) {\r\n this.writeInt64(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quadle(value: BigValue) {\r\n this.writeInt64(value, false, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64le(value: BigValue) {\r\n this.writeInt64(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigintle(value: BigValue) {\r\n this.writeInt64(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquadle(value: BigValue) {\r\n this.writeInt64(value, true, \"little\");\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set int64be(value: BigValue) {\r\n this.writeInt64(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set bigintbe(value: BigValue) {\r\n this.writeInt64(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write signed 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set quadbe(value: BigValue) {\r\n this.writeInt64(value, false, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uint64be(value: BigValue) {\r\n this.writeInt64(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set ubigintbe(value: BigValue) {\r\n this.writeInt64(value, true, \"big\");\r\n }\r\n\r\n /**\r\n * Write unsigned 64 bit integer.\r\n * \r\n * @param {BigValue} value - value as int \r\n */\r\n set uquadbe(value: BigValue) {\r\n this.writeInt64(value, true, \"big\");\r\n }\r\n\r\n //\r\n // doublefloat\r\n //\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloat(value: number) {\r\n this.writeDoubleFloat(value);\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloat(value: number) {\r\n this.writeDoubleFloat(value);\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloatbe(value: number) {\r\n this.writeDoubleFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloatbe(value: number) {\r\n this.writeDoubleFloat(value, \"big\");\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set dfloatle(value: number) {\r\n this.writeDoubleFloat(value, \"little\");\r\n }\r\n\r\n /**\r\n * Writes double float.\r\n * \r\n * @param {number} value - value as int \r\n */\r\n set doublefloatle(value: number) {\r\n this.writeDoubleFloat(value, \"little\");\r\n }\r\n\r\n //\r\n // string\r\n //\r\n\r\n /**\r\n * Writes string, use options object for different types.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions?} options\r\n * @param {stringOptions[\"length\"]?} options.length - for fixed length, non-terminate value utf strings\r\n * @param {stringOptions[\"stringType\"]?} options.stringType - utf-8, utf-16, pascal or wide-pascal\r\n * @param {stringOptions[\"terminateValue\"]?} options.terminateValue - only with stringType: \"utf\"\r\n * @param {stringOptions[\"lengthWriteSize\"]?} options.lengthWriteSize - for pascal strings. 1, 2 or 4 byte length write size\r\n * @param {stringOptions[\"encoding\"]?} options.encoding - TextEncoder accepted types \r\n * @param {stringOptions[\"endian\"]?} options.endian - for wide-pascal and utf-16\r\n */\r\n string(string: string, options?: stringOptions): void {\r\n return this.writeString(string, options);\r\n }\r\n\r\n /**\r\n * Writes string using setting from .strSettings\r\n * \r\n * Default is ``utf-8``\r\n * \r\n * @param {string} string - text string\r\n */\r\n set str(string: string) {\r\n this.writeString(string, this.strSettings);\r\n }\r\n\r\n /**\r\n * Writes UTF-8 (C) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf8string(string: string, length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-8\", encoding: \"utf-8\", length: length, terminateValue: terminateValue });\r\n }\r\n\r\n /**\r\n * Writes UTF-8 (C) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n cstring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-8\", encoding: \"utf-8\", length: length, terminateValue: terminateValue });\r\n }\r\n\r\n /**\r\n * Writes ANSI string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n ansistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-8\", encoding: \"windows-1252\", length: length, terminateValue: terminateValue });\r\n }\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"endian\"]} endian - for wide-pascal and utf-16\r\n */\r\n utf16string(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n * @param {stringOptions[\"endian\"]} endian - for wide-pascal and utf-16\r\n */\r\n unistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf16stringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n unistringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n utf16stringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes UTF-16 (Unicode) string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"length\"]} length - for fixed length utf strings\r\n * @param {stringOptions[\"terminateValue\"]} terminateValue - for non-fixed length utf strings\r\n */\r\n unistringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n return this.string(string, { stringType: \"utf-16\", encoding: \"utf-16\", length: length, terminateValue: terminateValue, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little`` for 2 or 4 byte length write size\r\n */\r\n pstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: lengthWriteSize, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little`` for 2 or 4 byte length write size\r\n */\r\n pstring1(string: string, endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 1, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring1le(string: string): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 1, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring1be(string: string): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 1, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n pstring2(string: string, endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 2, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring2le(string: string): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 2, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring2be(string: string): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 2, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n pstring4(string: string, endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 4, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring4be(string: string): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 4, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n pstring4le(string: string): void {\r\n return this.string(string, { stringType: \"pascal\", encoding: \"utf-8\", lengthWriteSize: 4, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: lengthWriteSize, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string in big endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n */\r\n wpstringbe(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: lengthWriteSize, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string in little endian order.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"lengthWriteSize\"]} lengthWriteSize - 1, 2 or 4 byte length write size (default 1)\r\n */\r\n wpstringle(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: lengthWriteSize, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring1(string: string, endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 1, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 1 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring1be(string: string): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 1, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 1 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring1le(string: string): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 1, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring2(string: string, endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 2, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring2le(string: string): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 2, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 2 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring2be(string: string): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 2, endian: \"big\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read.\r\n * \r\n * @param {string} string - text string\r\n * @param {stringOptions[\"endian\"]} endian - ``big`` or ``little``\r\n */\r\n wpstring4(string: string, endian?: stringOptions[\"endian\"]): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 4, endian: endian });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read in little endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring4le(string: string): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 4, endian: \"little\" });\r\n }\r\n\r\n /**\r\n * Writes Wide-Pascal string 4 byte length read in big endian order.\r\n * \r\n * @param {string} string - text string\r\n */\r\n wpstring4be(string: string): void {\r\n return this.string(string, { stringType: \"wide-pascal\", encoding: \"utf-16\", lengthWriteSize: 4, endian: \"big\" });\r\n }\r\n } as T;\r\n}","import { BigValue, BiOptions, endian, stringOptions } from \"./common.js\";\r\nimport { BiBase } from './core/BiBase.js';\r\nimport { applyBinaryAliasWriter, BinaryAliasWriter } from \"./aliases/BinaryAliasWriter.js\";\r\n\r\nconst BiWriterBase = applyBinaryAliasWriter(BiBase);\r\n\r\n/**\r\n * Binary writer, includes bitfields and strings.\r\n *\r\n * @param {Buffer|Uint8Array} data - ``Buffer`` or ``Uint8Array``. Always found in ``BiWriter.data``\r\n * @param {BiOptions?} options - Any options to set at start\r\n * @param {BiOptions[\"byteOffset\"]?} options.byteOffset - Byte offset to start writer (default ``0``)\r\n * @param {BiOptions[\"bitOffset\"]?} options.bitOffset - Bit offset 0-7 to start writer (default ``0``)\r\n * @param {BiOptions[\"endianness\"]?} options.endianness - Endianness ``big`` or ``little`` (default ``little``)\r\n * @param {BiOptions[\"strict\"]?} options.strict - Strict mode: if ``true`` does not extend supplied array on outside write (default ``false``)\r\n * @param {BiOptions[\"extendBufferSize\"]?} options.extendBufferSize - Amount of data to add when extending the buffer array when strict mode is false. Note: Changes logic in ``.get`` and ``.return``.\r\n * \r\n * @since 2.0\r\n */\r\nexport class BiWriter extends BiWriterBase implements BinaryAliasWriter {\r\n /**\r\n * Binary writer, includes bitfields and strings.\r\n *\r\n * @param {Buffer|Uint8Array} data - ``Buffer`` or ``Uint8Array``. Always found in ``BiWriter.data``\r\n * @param {BiOptions?} options - Any options to set at start\r\n * @param {BiOptions[\"byteOffset\"]?} options.byteOffset - Byte offset to start writer (default ``0``)\r\n * @param {BiOptions[\"bitOffset\"]?} options.bitOffset - Bit offset 0-7 to start writer (default ``0``)\r\n * @param {BiOptions[\"endianness\"]?} options.endianness - Endianness ``big`` or ``little`` (default ``little``)\r\n * @param {BiOptions[\"strict\"]?} options.strict - Strict mode: if ``true`` does not extend supplied array on outside write (default ``false``)\r\n * @param {BiOptions[\"extendBufferSize\"]?} options.extendBufferSize - Amount of data to add when extending the buffer array when strict mode is false. Note: Changes logic in ``.get`` and ``.return``.\r\n */\r\n constructor(data?: Buffer|Uint8Array, options: BiOptions = {}) {\r\n super();\r\n this.strict = false;\r\n if(data == undefined){\r\n if(typeof Buffer !== 'undefined'){\r\n this.data = Buffer.alloc(this.offset||1+(this.bitoffset!=0?1:0));\r\n } else {\r\n this.data = new Uint8Array(this.offset||1+(this.bitoffset!=0?1:0));\r\n }\r\n } else {\r\n if(!this.isBufferOrUint8Array(data)){\r\n throw new Error(\"Write data must be Uint8Array or Buffer.\");\r\n }\r\n this.data = data; \r\n }\r\n\r\n if(options.extendBufferSize != undefined && options.extendBufferSize != 0)\r\n {\r\n this.extendBufferSize = options.extendBufferSize;\r\n }\r\n\r\n this.size = this.data.length;\r\n this.sizeB = this.data.length * 8;\r\n\r\n if(typeof options.strict == \"boolean\"){\r\n this.strict = options.strict;\r\n } else {\r\n if(options.strict != undefined){\r\n throw new Error(\"Strict mode must be true of false.\");\r\n }\r\n }\r\n\r\n if(options.endianness != undefined && typeof options.endianness != \"string\"){\r\n throw new Error(\"endianness must be big or little.\");\r\n }\r\n if(options.endianness != undefined && !(options.endianness == \"big\" || options.endianness == \"little\")){\r\n throw new Error(\"Endianness must be big or little.\");\r\n }\r\n\r\n this.endian = options.endianness || \"little\";\r\n\r\n if(options.byteOffset != undefined || options.bitOffset!= undefined){\r\n this.offset = ((Math.abs(options.byteOffset|| 0)) + Math.ceil(( Math.abs(options.bitOffset||0)) /8) )\r\n // Adjust byte offset based on bit overflow\r\n this.offset += Math.floor((Math.abs(options.bitOffset||0)) / 8);\r\n // Adjust bit offset\r\n this.bitoffset = (Math.abs(options.bitOffset||0) + 64) % 8; \r\n // Ensure bit offset stays between 0-7\r\n this.bitoffset = Math.min(Math.max(this.bitoffset, 0), 7);\r\n // Ensure offset doesn't go negative\r\n this.offset = Math.max(this.offset, 0);\r\n if(this.offset > this.size){\r\n if(this.strict == false){\r\n if(this.extendBufferSize != 0)\r\n {\r\n this.extendArray(this.extendBufferSize);\r\n }\r\n else \r\n {\r\n this.extendArray(this.offset - this.size);\r\n }\r\n } else {\r\n throw new Error(`Starting offset outside of size: ${this.offset} of ${this.size}`);\r\n }\r\n }\r\n }\r\n }\r\n bit(value: number, bits: number, unsigned?: boolean, endian?: endian): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ubit(value: number, bits: number, endian?: endian): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n bitbe(value: number, bits: number, unsigned?: boolean): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ubitbe(value: number, bits: number): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ubitle(value: number, bits: number): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n bitle(value: number, bits: number, unsigned?: boolean): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit1(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit1le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit1be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit1(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit1le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit1be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit2(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit2le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit2be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit2(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit2le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit2be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit3(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit3le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit3be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit3(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit3le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit3be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit4(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit4le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit4be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit4(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit4le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit4be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit5(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit5le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit5be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit5(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit5le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit5be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit6(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit6le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit6be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit6(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit6le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit6be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit7(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit7le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit7be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit7(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit7le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit7be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit8(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit8le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit8be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit8(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit8le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit8be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit9(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit9le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit9be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit9(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit9le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit9be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit10(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit10le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit10be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit10(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit10le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit10be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit11(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit11le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit11be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit11(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit11le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit11be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit12(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit12le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit12be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit12(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit12le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit12be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit13(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit13le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit13be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit13(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit13le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit13be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit14(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit14le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit14be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit14(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit14le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit14be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit15(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit15le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit15be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit15(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit15le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit15be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit16(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit16le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit16be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit16(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit16le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit16be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit17(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit17le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit17be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit17(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit17le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit17be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit18(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit18le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit18be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit18(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit18le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit18be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit19(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit19le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit19be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit19(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit19le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit19be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit20(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit20le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit20be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit20(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit20le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit20be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit21(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit21le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit21be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit21(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit21le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit21be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit22(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit22le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit22be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit22(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit22le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit22be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit23(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit23le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit23be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit23(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit23le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit23be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit24(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit24le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit24be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit24(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit24le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit24be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit25(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit25le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit25be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit25(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit25le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit25be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit26(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit26le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit26be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit26(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit26le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit26be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit27(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit27le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit27be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit27(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit27le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit27be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit28(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit28le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit28be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit28(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit28le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit28be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit29(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit29le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit29be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit29(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit29le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit29be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit30(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit30le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit30be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit30(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit30le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit30be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit31(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit31le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit31be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit31(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit31le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit31be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit32(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit32le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bit32be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit32(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit32le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubit32be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set byte(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int8(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint8(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubyte(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int16(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set short(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set word(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint16(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ushort(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uword(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int16be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set shortbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set wordbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint16be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ushortbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uwordbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int16le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set shortle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set wordle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint16le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ushortle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uwordle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set half(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set halffloat(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set halffloatbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set halfbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set halffloatle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set halfle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int32(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set double(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set long(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint32(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set udouble(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ulong(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int32le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set intle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set doublele(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set longle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint32le(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uintle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set udoublele(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ulongle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set intbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int32be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set doublebe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set longbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set writeUInt32BE(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint32be(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uintbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set udoublebe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ulongbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set float(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set floatle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set floatbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int64(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set quad(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bigint(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint64(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubigint(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uquad(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int64le(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bigintle(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set quadle(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint64le(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubigintle(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uquadle(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set int64be(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set bigintbe(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set quadbe(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uint64be(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set ubigintbe(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set uquadbe(value: BigValue) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set doublefloat(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set dfloat(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set dfloatbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set doublefloatbe(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set dfloatle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set doublefloatle(value: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n string(string: string, options?: stringOptions): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n set str(string: string) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf8string(string: string, length?: stringOptions[\"length\"], terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n cstring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ansistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf16string(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n unistring(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"], endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf16stringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n unistringle(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n utf16stringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n unistringbe(string: string, length?: number, terminateValue?: stringOptions[\"terminateValue\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring1(string: string, endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring1le(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring1be(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring2(string: string, endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring2le(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring2be(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring4(string: string, endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring4be(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n pstring4le(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"], endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstringbe(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstringle(string: string, lengthWriteSize?: stringOptions[\"lengthWriteSize\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring1(string: string, endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring1be(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring1le(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring2(string: string, endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring2le(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring2be(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring4(string: string, endian?: stringOptions[\"endian\"]): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring4le(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n wpstring4be(string: string): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n};","export { BiReader } from './BiReader.js';\r\nexport { BiWriter } from './BiWriter.js';\r\nexport { hexdump } from './common.js';\r\n\r\n/**\r\n * Isn't usable in browser.\r\n * @since 3.0 \r\n * @deprecated Use ``BiReader`` instead.\r\n */\r\nexport class BiReaderStream{\r\n constructor(){\r\n throw new Error(\"BiReaderStream isn't usable in browser. Use BiReader instead.\");\r\n }\r\n}\r\n\r\n/**\r\n * Isn't usable in browser.\r\n * @since 3.0 \r\n * @deprecated Use ``BiWriter`` instead.\r\n */\r\nexport class BiWriterStream{\r\n constructor(){\r\n throw new Error(\"BiReaderStream isn't usable in browser. Use BiReader instead.\");\r\n }\r\n}\r\n\r\n/**\r\n * Not in use anymore.\r\n * @since 3.0 \r\n * @deprecated Use ``BiReader`` instead.\r\n */\r\nexport class bireader{\r\n constructor(){\r\n throw new Error(\"bireader is deprecated. Use BiReader instead.\");\r\n }\r\n}\r\n\r\n/**\r\n * Not in use anymore.\r\n * @since 3.0 \r\n * @deprecated Use ``BiWriter`` instead.\r\n */\r\nexport class biwriter{\r\n constructor(){\r\n throw new Error(\"biwriter is deprecated. Use BiWriter instead.\");\r\n }\r\n}"],"names":[],"mappings":"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"}
|