756 lines
26 KiB
TypeScript
756 lines
26 KiB
TypeScript
|
/// <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 };
|