You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					756 lines
				
				26 KiB
			
		
		
			
		
	
	
					756 lines
				
				26 KiB
			| 
											3 years ago
										 | /// <reference types="node" />
 | ||
|  | /** | ||
|  |  * Object interface for constructing new SmartBuffer instances. | ||
|  |  */ | ||
|  | interface SmartBufferOptions { | ||
|  |     encoding?: BufferEncoding; | ||
|  |     size?: number; | ||
|  |     buff?: Buffer; | ||
|  | } | ||
|  | declare class SmartBuffer { | ||
|  |     length: number; | ||
|  |     private _encoding; | ||
|  |     private _buff; | ||
|  |     private _writeOffset; | ||
|  |     private _readOffset; | ||
|  |     /** | ||
|  |      * Creates a new SmartBuffer instance. | ||
|  |      * | ||
|  |      * @param options { SmartBufferOptions } The SmartBufferOptions to apply to this instance. | ||
|  |      */ | ||
|  |     constructor(options?: SmartBufferOptions); | ||
|  |     /** | ||
|  |      * Creates a new SmartBuffer instance with the provided internal Buffer size and optional encoding. | ||
|  |      * | ||
|  |      * @param size { Number } The size of the internal Buffer. | ||
|  |      * @param encoding { String } The BufferEncoding to use for strings. | ||
|  |      * | ||
|  |      * @return { SmartBuffer } | ||
|  |      */ | ||
|  |     static fromSize(size: number, encoding?: BufferEncoding): SmartBuffer; | ||
|  |     /** | ||
|  |      * Creates a new SmartBuffer instance with the provided Buffer and optional encoding. | ||
|  |      * | ||
|  |      * @param buffer { Buffer } The Buffer to use as the internal Buffer value. | ||
|  |      * @param encoding { String } The BufferEncoding to use for strings. | ||
|  |      * | ||
|  |      * @return { SmartBuffer } | ||
|  |      */ | ||
|  |     static fromBuffer(buff: Buffer, encoding?: BufferEncoding): SmartBuffer; | ||
|  |     /** | ||
|  |      * Creates a new SmartBuffer instance with the provided SmartBufferOptions options. | ||
|  |      * | ||
|  |      * @param options { SmartBufferOptions } The options to use when creating the SmartBuffer instance. | ||
|  |      */ | ||
|  |     static fromOptions(options: SmartBufferOptions): SmartBuffer; | ||
|  |     /** | ||
|  |      * Type checking function that determines if an object is a SmartBufferOptions object. | ||
|  |      */ | ||
|  |     static isSmartBufferOptions(options: SmartBufferOptions): options is SmartBufferOptions; | ||
|  |     /** | ||
|  |      * Reads an Int8 value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readInt8(offset?: number): number; | ||
|  |     /** | ||
|  |      * Reads an Int16BE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readInt16BE(offset?: number): number; | ||
|  |     /** | ||
|  |      * Reads an Int16LE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readInt16LE(offset?: number): number; | ||
|  |     /** | ||
|  |      * Reads an Int32BE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readInt32BE(offset?: number): number; | ||
|  |     /** | ||
|  |      * Reads an Int32LE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readInt32LE(offset?: number): number; | ||
|  |     /** | ||
|  |      * Reads a BigInt64BE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { BigInt } | ||
|  |      */ | ||
|  |     readBigInt64BE(offset?: number): bigint; | ||
|  |     /** | ||
|  |      * Reads a BigInt64LE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { BigInt } | ||
|  |      */ | ||
|  |     readBigInt64LE(offset?: number): bigint; | ||
|  |     /** | ||
|  |      * Writes an Int8 value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeInt8(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts an Int8 value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertInt8(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes an Int16BE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeInt16BE(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts an Int16BE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertInt16BE(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes an Int16LE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeInt16LE(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts an Int16LE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertInt16LE(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes an Int32BE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeInt32BE(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts an Int32BE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertInt32BE(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes an Int32LE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeInt32LE(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts an Int32LE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertInt32LE(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes a BigInt64BE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { BigInt } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeBigInt64BE(value: bigint, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts a BigInt64BE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { BigInt } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertBigInt64BE(value: bigint, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes a BigInt64LE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { BigInt } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeBigInt64LE(value: bigint, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts a Int64LE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { BigInt } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertBigInt64LE(value: bigint, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Reads an UInt8 value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readUInt8(offset?: number): number; | ||
|  |     /** | ||
|  |      * Reads an UInt16BE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readUInt16BE(offset?: number): number; | ||
|  |     /** | ||
|  |      * Reads an UInt16LE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readUInt16LE(offset?: number): number; | ||
|  |     /** | ||
|  |      * Reads an UInt32BE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readUInt32BE(offset?: number): number; | ||
|  |     /** | ||
|  |      * Reads an UInt32LE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readUInt32LE(offset?: number): number; | ||
|  |     /** | ||
|  |      * Reads a BigUInt64BE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { BigInt } | ||
|  |      */ | ||
|  |     readBigUInt64BE(offset?: number): bigint; | ||
|  |     /** | ||
|  |      * Reads a BigUInt64LE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { BigInt } | ||
|  |      */ | ||
|  |     readBigUInt64LE(offset?: number): bigint; | ||
|  |     /** | ||
|  |      * Writes an UInt8 value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeUInt8(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts an UInt8 value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertUInt8(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes an UInt16BE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeUInt16BE(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts an UInt16BE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertUInt16BE(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes an UInt16LE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeUInt16LE(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts an UInt16LE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertUInt16LE(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes an UInt32BE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeUInt32BE(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts an UInt32BE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertUInt32BE(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes an UInt32LE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeUInt32LE(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts an UInt32LE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertUInt32LE(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes a BigUInt64BE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeBigUInt64BE(value: bigint, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts a BigUInt64BE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertBigUInt64BE(value: bigint, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes a BigUInt64LE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeBigUInt64LE(value: bigint, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts a BigUInt64LE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertBigUInt64LE(value: bigint, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Reads an FloatBE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readFloatBE(offset?: number): number; | ||
|  |     /** | ||
|  |      * Reads an FloatLE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readFloatLE(offset?: number): number; | ||
|  |     /** | ||
|  |      * Writes a FloatBE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeFloatBE(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts a FloatBE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertFloatBE(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes a FloatLE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeFloatLE(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts a FloatLE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertFloatLE(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Reads an DoublEBE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readDoubleBE(offset?: number): number; | ||
|  |     /** | ||
|  |      * Reads an DoubleLE value from the current read position or an optionally provided offset. | ||
|  |      * | ||
|  |      * @param offset { Number } The offset to read data from (optional) | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     readDoubleLE(offset?: number): number; | ||
|  |     /** | ||
|  |      * Writes a DoubleBE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeDoubleBE(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts a DoubleBE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertDoubleBE(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes a DoubleLE value to the current write position (or at optional offset). | ||
|  |      * | ||
|  |      * @param value { Number } The value to write. | ||
|  |      * @param offset { Number } The offset to write the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeDoubleLE(value: number, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Inserts a DoubleLE value at the given offset value. | ||
|  |      * | ||
|  |      * @param value { Number } The value to insert. | ||
|  |      * @param offset { Number } The offset to insert the value at. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertDoubleLE(value: number, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Reads a String from the current read position. | ||
|  |      * | ||
|  |      * @param arg1 { Number | String } The number of bytes to read as a String, or the BufferEncoding to use for | ||
|  |      *             the string (Defaults to instance level encoding). | ||
|  |      * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding). | ||
|  |      * | ||
|  |      * @return { String } | ||
|  |      */ | ||
|  |     readString(arg1?: number | BufferEncoding, encoding?: BufferEncoding): string; | ||
|  |     /** | ||
|  |      * Inserts a String | ||
|  |      * | ||
|  |      * @param value { String } The String value to insert. | ||
|  |      * @param offset { Number } The offset to insert the string at. | ||
|  |      * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding). | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertString(value: string, offset: number, encoding?: BufferEncoding): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes a String | ||
|  |      * | ||
|  |      * @param value { String } The String value to write. | ||
|  |      * @param arg2 { Number | String } The offset to write the string at, or the BufferEncoding to use. | ||
|  |      * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding). | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeString(value: string, arg2?: number | BufferEncoding, encoding?: BufferEncoding): SmartBuffer; | ||
|  |     /** | ||
|  |      * Reads a null-terminated String from the current read position. | ||
|  |      * | ||
|  |      * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding). | ||
|  |      * | ||
|  |      * @return { String } | ||
|  |      */ | ||
|  |     readStringNT(encoding?: BufferEncoding): string; | ||
|  |     /** | ||
|  |      * Inserts a null-terminated String. | ||
|  |      * | ||
|  |      * @param value { String } The String value to write. | ||
|  |      * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use. | ||
|  |      * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding). | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertStringNT(value: string, offset: number, encoding?: BufferEncoding): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes a null-terminated String. | ||
|  |      * | ||
|  |      * @param value { String } The String value to write. | ||
|  |      * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use. | ||
|  |      * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding). | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeStringNT(value: string, arg2?: number | BufferEncoding, encoding?: BufferEncoding): SmartBuffer; | ||
|  |     /** | ||
|  |      * Reads a Buffer from the internal read position. | ||
|  |      * | ||
|  |      * @param length { Number } The length of data to read as a Buffer. | ||
|  |      * | ||
|  |      * @return { Buffer } | ||
|  |      */ | ||
|  |     readBuffer(length?: number): Buffer; | ||
|  |     /** | ||
|  |      * Writes a Buffer to the current write position. | ||
|  |      * | ||
|  |      * @param value { Buffer } The Buffer to write. | ||
|  |      * @param offset { Number } The offset to write the Buffer to. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertBuffer(value: Buffer, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes a Buffer to the current write position. | ||
|  |      * | ||
|  |      * @param value { Buffer } The Buffer to write. | ||
|  |      * @param offset { Number } The offset to write the Buffer to. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeBuffer(value: Buffer, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Reads a null-terminated Buffer from the current read poisiton. | ||
|  |      * | ||
|  |      * @return { Buffer } | ||
|  |      */ | ||
|  |     readBufferNT(): Buffer; | ||
|  |     /** | ||
|  |      * Inserts a null-terminated Buffer. | ||
|  |      * | ||
|  |      * @param value { Buffer } The Buffer to write. | ||
|  |      * @param offset { Number } The offset to write the Buffer to. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     insertBufferNT(value: Buffer, offset: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Writes a null-terminated Buffer. | ||
|  |      * | ||
|  |      * @param value { Buffer } The Buffer to write. | ||
|  |      * @param offset { Number } The offset to write the Buffer to. | ||
|  |      * | ||
|  |      * @return this | ||
|  |      */ | ||
|  |     writeBufferNT(value: Buffer, offset?: number): SmartBuffer; | ||
|  |     /** | ||
|  |      * Clears the SmartBuffer instance to its original empty state. | ||
|  |      */ | ||
|  |     clear(): SmartBuffer; | ||
|  |     /** | ||
|  |      * Gets the remaining data left to be read from the SmartBuffer instance. | ||
|  |      * | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     remaining(): number; | ||
|  |     /** | ||
|  |      * Gets the current read offset value of the SmartBuffer instance. | ||
|  |      * | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     /** | ||
|  |     * Sets the read offset value of the SmartBuffer instance. | ||
|  |     * | ||
|  |     * @param offset { Number } - The offset value to set. | ||
|  |     */ | ||
|  |     readOffset: number; | ||
|  |     /** | ||
|  |      * Gets the current write offset value of the SmartBuffer instance. | ||
|  |      * | ||
|  |      * @return { Number } | ||
|  |      */ | ||
|  |     /** | ||
|  |     * Sets the write offset value of the SmartBuffer instance. | ||
|  |     * | ||
|  |     * @param offset { Number } - The offset value to set. | ||
|  |     */ | ||
|  |     writeOffset: number; | ||
|  |     /** | ||
|  |      * Gets the currently set string encoding of the SmartBuffer instance. | ||
|  |      * | ||
|  |      * @return { BufferEncoding } The string Buffer encoding currently set. | ||
|  |      */ | ||
|  |     /** | ||
|  |     * Sets the string encoding of the SmartBuffer instance. | ||
|  |     * | ||
|  |     * @param encoding { BufferEncoding } The string Buffer encoding to set. | ||
|  |     */ | ||
|  |     encoding: BufferEncoding; | ||
|  |     /** | ||
|  |      * Gets the underlying internal Buffer. (This includes unmanaged data in the Buffer) | ||
|  |      * | ||
|  |      * @return { Buffer } The Buffer value. | ||
|  |      */ | ||
|  |     readonly internalBuffer: Buffer; | ||
|  |     /** | ||
|  |      * Gets the value of the internal managed Buffer (Includes managed data only) | ||
|  |      * | ||
|  |      * @param { Buffer } | ||
|  |      */ | ||
|  |     toBuffer(): Buffer; | ||
|  |     /** | ||
|  |      * Gets the String value of the internal managed Buffer | ||
|  |      * | ||
|  |      * @param encoding { String } The BufferEncoding to display the Buffer as (defaults to instance level encoding). | ||
|  |      */ | ||
|  |     toString(encoding?: BufferEncoding): string; | ||
|  |     /** | ||
|  |      * Destroys the SmartBuffer instance. | ||
|  |      */ | ||
|  |     destroy(): SmartBuffer; | ||
|  |     /** | ||
|  |      * Handles inserting and writing strings. | ||
|  |      * | ||
|  |      * @param value { String } The String value to insert. | ||
|  |      * @param isInsert { Boolean } True if inserting a string, false if writing. | ||
|  |      * @param arg2 { Number | String } The offset to insert the string at, or the BufferEncoding to use. | ||
|  |      * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding). | ||
|  |      */ | ||
|  |     private _handleString; | ||
|  |     /** | ||
|  |      * Handles writing or insert of a Buffer. | ||
|  |      * | ||
|  |      * @param value { Buffer } The Buffer to write. | ||
|  |      * @param offset { Number } The offset to write the Buffer to. | ||
|  |      */ | ||
|  |     private _handleBuffer; | ||
|  |     /** | ||
|  |      * Ensures that the internal Buffer is large enough to read data. | ||
|  |      * | ||
|  |      * @param length { Number } The length of the data that needs to be read. | ||
|  |      * @param offset { Number } The offset of the data that needs to be read. | ||
|  |      */ | ||
|  |     private ensureReadable; | ||
|  |     /** | ||
|  |      * Ensures that the internal Buffer is large enough to insert data. | ||
|  |      * | ||
|  |      * @param dataLength { Number } The length of the data that needs to be written. | ||
|  |      * @param offset { Number } The offset of the data to be written. | ||
|  |      */ | ||
|  |     private ensureInsertable; | ||
|  |     /** | ||
|  |      * Ensures that the internal Buffer is large enough to write data. | ||
|  |      * | ||
|  |      * @param dataLength { Number } The length of the data that needs to be written. | ||
|  |      * @param offset { Number } The offset of the data to be written (defaults to writeOffset). | ||
|  |      */ | ||
|  |     private _ensureWriteable; | ||
|  |     /** | ||
|  |      * Ensures that the internal Buffer is large enough to write at least the given amount of data. | ||
|  |      * | ||
|  |      * @param minLength { Number } The minimum length of the data needs to be written. | ||
|  |      */ | ||
|  |     private _ensureCapacity; | ||
|  |     /** | ||
|  |      * Reads a numeric number value using the provided function. | ||
|  |      * | ||
|  |      * @typeparam T { number | bigint } The type of the value to be read | ||
|  |      * | ||
|  |      * @param func { Function(offset: number) => number } The function to read data on the internal Buffer with. | ||
|  |      * @param byteSize { Number } The number of bytes read. | ||
|  |      * @param offset { Number } The offset to read from (optional). When this is not provided, the managed readOffset is used instead. | ||
|  |      * | ||
|  |      * @returns { T } the number value | ||
|  |      */ | ||
|  |     private _readNumberValue; | ||
|  |     /** | ||
|  |      * Inserts a numeric number value based on the given offset and value. | ||
|  |      * | ||
|  |      * @typeparam T { number | bigint } The type of the value to be written | ||
|  |      * | ||
|  |      * @param func { Function(offset: T, offset?) => number} The function to write data on the internal Buffer with. | ||
|  |      * @param byteSize { Number } The number of bytes written. | ||
|  |      * @param value { T } The number value to write. | ||
|  |      * @param offset { Number } the offset to write the number at (REQUIRED). | ||
|  |      * | ||
|  |      * @returns SmartBuffer this buffer | ||
|  |      */ | ||
|  |     private _insertNumberValue; | ||
|  |     /** | ||
|  |      * Writes a numeric number value based on the given offset and value. | ||
|  |      * | ||
|  |      * @typeparam T { number | bigint } The type of the value to be written | ||
|  |      * | ||
|  |      * @param func { Function(offset: T, offset?) => number} The function to write data on the internal Buffer with. | ||
|  |      * @param byteSize { Number } The number of bytes written. | ||
|  |      * @param value { T } The number value to write. | ||
|  |      * @param offset { Number } the offset to write the number at (REQUIRED). | ||
|  |      * | ||
|  |      * @returns SmartBuffer this buffer | ||
|  |      */ | ||
|  |     private _writeNumberValue; | ||
|  | } | ||
|  | export { SmartBufferOptions, SmartBuffer }; |