383 lines
10 KiB
TypeScript
383 lines
10 KiB
TypeScript
|
// Type definitions for smart-buffer
|
||
|
// Project: https://github.com/JoshGlazebrook/smart-buffer
|
||
|
// Definitions by: Josh Glazebrook <https://github.com/JoshGlazebrook>
|
||
|
|
||
|
|
||
|
|
||
|
declare class SmartBuffer {
|
||
|
/**
|
||
|
* Creates a new SmartBuffer instance (defaults to utf8 encoding)
|
||
|
*/
|
||
|
constructor();
|
||
|
|
||
|
/**
|
||
|
* Creates a new SmartBuffer instance
|
||
|
*
|
||
|
* @param arg1 { Number } The size the underlying buffer instance should be instantiated to (defaults to 4096)
|
||
|
* @param arg2 { String } The string encoding to use for reading/writing strings (defaults to utf8)
|
||
|
*/
|
||
|
constructor(size: number, encoding?: string);
|
||
|
|
||
|
/**
|
||
|
* Creates a new SmartBuffer instance
|
||
|
*
|
||
|
* @param arg1 { String } The string encoding to use for reading/writing strings (defaults to utf8)
|
||
|
*/
|
||
|
constructor(encoding?: string);
|
||
|
|
||
|
/**
|
||
|
* Creates a new SmartBuffer instance
|
||
|
*
|
||
|
* @param arg1 { Buffer } An existing buffer instance to copy to this smart buffer instance
|
||
|
* @param arg2 { String } The string encoding to use for reading/writing strings (defaults to utf8)
|
||
|
*/
|
||
|
constructor(buffer: Buffer, encoding?: string)
|
||
|
|
||
|
|
||
|
|
||
|
// Signed number readers
|
||
|
|
||
|
/**
|
||
|
* Reads a 8-bit signed integer
|
||
|
*/
|
||
|
readInt8(): number;
|
||
|
|
||
|
/**
|
||
|
* Reads a 16-bit signed integer (big endian)
|
||
|
*/
|
||
|
readInt16BE(): number;
|
||
|
|
||
|
/**
|
||
|
* Reads a 16-bit signed integer (little endian)
|
||
|
*/
|
||
|
readInt16LE(): number;
|
||
|
|
||
|
/**
|
||
|
* Reads a 32-bit signed integer (big endian)
|
||
|
*/
|
||
|
readInt32BE(): number;
|
||
|
|
||
|
/**
|
||
|
* Reads a 32-bit signed integer (little endian)
|
||
|
*/
|
||
|
readInt32LE(): number;
|
||
|
|
||
|
// Unsigned number readers
|
||
|
|
||
|
/**
|
||
|
* Reads a 8-bit unsigned integer
|
||
|
*/
|
||
|
readUInt8(): number;
|
||
|
|
||
|
/**
|
||
|
* Reads a 16-bit unsigned integer (big endian)
|
||
|
*/
|
||
|
readUInt16BE(): number;
|
||
|
|
||
|
/**
|
||
|
* Reads a 16-bit unsigned integer (little endian)
|
||
|
*/
|
||
|
readUInt16LE(): number;
|
||
|
|
||
|
/**
|
||
|
* Reads a 32-bit unsigned integer (big endian)
|
||
|
*/
|
||
|
readUInt32BE(): number;
|
||
|
|
||
|
/**
|
||
|
* Reads a 32-bit unsigned integer (little endian)
|
||
|
*/
|
||
|
readUInt32LE(): number;
|
||
|
|
||
|
// Floating point readers
|
||
|
|
||
|
/**
|
||
|
* Reads a float (big endian)
|
||
|
*/
|
||
|
readFloatBE(): number;
|
||
|
|
||
|
/**
|
||
|
* Reads a float (little endian)
|
||
|
*/
|
||
|
readFloatLE(): number;
|
||
|
|
||
|
/**
|
||
|
* Reads a double (big endian)
|
||
|
*/
|
||
|
readDoubleBE(): number;
|
||
|
|
||
|
/**
|
||
|
* Reads a double (little endian)
|
||
|
*/
|
||
|
readDoubleLE(): number;
|
||
|
|
||
|
// String readers
|
||
|
|
||
|
/**
|
||
|
* Reads a string
|
||
|
*
|
||
|
* @param length { Number } The length of the string to read
|
||
|
* @param encoding { Number} The encoding to use (defaults to instance level encoding)
|
||
|
*/
|
||
|
readString(length?: number, encoding?: string): string;
|
||
|
|
||
|
/**
|
||
|
* Reads a null terminated string
|
||
|
*
|
||
|
* @param encoding The encoding to use (defaults to instance level encoding)
|
||
|
*/
|
||
|
readStringNT(encoding?: string): string;
|
||
|
|
||
|
// Buffer readers
|
||
|
|
||
|
/**
|
||
|
* Reads binary data into a Buffer
|
||
|
*
|
||
|
* @param len { Number } The amount of data to read
|
||
|
*/
|
||
|
readBuffer(len?: number): Buffer;
|
||
|
|
||
|
/**
|
||
|
* Reads null terminated binary data into a Buffer
|
||
|
*/
|
||
|
readBufferNT(): Buffer;
|
||
|
|
||
|
|
||
|
// Signed number writers
|
||
|
|
||
|
/**
|
||
|
* Writes a 8-bit signed integer value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeInt8(value: number, offset?: number): this;
|
||
|
|
||
|
/**
|
||
|
* Writes a 16-bit signed integer (big endian) value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeInt16BE(value: number, offset?: number): this;
|
||
|
|
||
|
/**
|
||
|
* Writes a 16-bit signed integer (little endian) value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeInt16LE(value: number, offset?: number): this;
|
||
|
|
||
|
/**
|
||
|
* Writes a 32-bit signed integer (big endian) value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeInt32BE(value: number, offset?: number): this;
|
||
|
|
||
|
/**
|
||
|
* Writes a 32-bit signed integer (little endian) value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeInt32LE(value: number, offset?: number): this;
|
||
|
|
||
|
// Unsigned number writers
|
||
|
|
||
|
/**
|
||
|
* Writes a 8-bit unsigned integer value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeUInt8(value: number, offset?: number): this;
|
||
|
|
||
|
/**
|
||
|
* Writes a 16-bit unsigned integer (big endian) value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeUInt16BE(value: number, offset?: number): this;
|
||
|
|
||
|
/**
|
||
|
* Writes a 16-bit unsigned integer (little endian) value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeUInt16LE(value: number, offset?: number): this;
|
||
|
|
||
|
/**
|
||
|
* Writes a 32-bit unsigned integer (big endian) value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeUInt32BE(value: number, offset?: number): this;
|
||
|
|
||
|
/**
|
||
|
* Writes a 32-bit unsigned integer (little endian) value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeUInt32LE(value: number, offset?: number): this;
|
||
|
|
||
|
// Floating point writers
|
||
|
|
||
|
/**
|
||
|
* Writes a float (big endian) value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeFloatBE(value: number, offset?: number): this;
|
||
|
|
||
|
/**
|
||
|
* Writes a float (little endian) value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeFloatLE(value: number, offset?: number): this;
|
||
|
|
||
|
/**
|
||
|
* Writes a double (big endian) value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeDoubleBE(value: number, offset?: number): this;
|
||
|
|
||
|
/**
|
||
|
* Writes a double (little endian) value
|
||
|
*
|
||
|
* @param value { Number } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeDoubleLE(value: number, offset?: number): this;
|
||
|
|
||
|
// String writers
|
||
|
|
||
|
/**
|
||
|
* Writes a string
|
||
|
*
|
||
|
* @param value { String } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
/**
|
||
|
* Writes a string
|
||
|
*
|
||
|
* @param value { String } The value to write to the buffer
|
||
|
* @param offset { String } The encoding to use when writing the string (defaults to instance level encoding)
|
||
|
*/
|
||
|
/**
|
||
|
* Writes a string
|
||
|
*
|
||
|
* @param value { String } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
* @param encoding { String } The encoding to use when writing the string (defaults to instance level encoding)
|
||
|
*/
|
||
|
writeString(value: string, offset?: number | string, encoding?: string): this;
|
||
|
|
||
|
/**
|
||
|
* Writes a null terminated string
|
||
|
*
|
||
|
* @param value { String } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
/**
|
||
|
* Writes a null terminated string
|
||
|
*
|
||
|
* @param value { String } The value to write to the buffer
|
||
|
* @param offset { String } The encoding to use when writing the string (defaults to instance level encoding)
|
||
|
*/
|
||
|
/**
|
||
|
* Writes a null terminated string
|
||
|
*
|
||
|
* @param value { String } The value to write to the buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
* @param encoding { String } The encoding to use when writing the string (defaults to instance level encoding)
|
||
|
*/
|
||
|
writeStringNT(value: string, offset?: number | string, encoding?: string): this;
|
||
|
|
||
|
// Buffer writers
|
||
|
|
||
|
/**
|
||
|
* Writes a Buffer
|
||
|
*
|
||
|
* @param value { Buffer } The Buffer to write to the smart buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeBuffer(value: Buffer, offset?: number): this;
|
||
|
|
||
|
/**
|
||
|
* Writes a Buffer with null termination
|
||
|
*
|
||
|
* @param value { Buffer } The buffer to write to the smart buffer
|
||
|
* @param offset { Number } The offset position to write the value to
|
||
|
*/
|
||
|
writeBufferNT(value: Buffer, offset?: number): this;
|
||
|
|
||
|
|
||
|
// Misc Functions
|
||
|
|
||
|
/**
|
||
|
* Clears the smart buffer
|
||
|
*/
|
||
|
clear();
|
||
|
|
||
|
/**
|
||
|
* Gets the number of bytes that remain to be read
|
||
|
*/
|
||
|
remaining(): number;
|
||
|
|
||
|
/**
|
||
|
* Increases the read offset position
|
||
|
*
|
||
|
* @param amount { Number } The amount to increase the read offset position by
|
||
|
*/
|
||
|
skip(amount: number);
|
||
|
|
||
|
/**
|
||
|
* Changes the read offset position
|
||
|
*
|
||
|
* @param position { Number } The position to change the read offset to
|
||
|
*/
|
||
|
skipTo(position: number);
|
||
|
|
||
|
/**
|
||
|
* Decreases the read offset position
|
||
|
*
|
||
|
* @param amount { Number } The amount to decrease the read offset position by
|
||
|
*/
|
||
|
rewind(amount: number);
|
||
|
|
||
|
/**
|
||
|
* Gets the underlying Buffer instance
|
||
|
*/
|
||
|
toBuffer(): Buffer;
|
||
|
|
||
|
/**
|
||
|
* Gets the string representation of the underlying Buffer
|
||
|
*
|
||
|
* @param encoding { String } The encoding to use (defaults to instance level encoding)
|
||
|
*/
|
||
|
toString(encoding?: string): string;
|
||
|
|
||
|
/**
|
||
|
* Destroys the smart buffer instance
|
||
|
*/
|
||
|
destroy();
|
||
|
|
||
|
/**
|
||
|
* Gets the current length of the smart buffer instance
|
||
|
*/
|
||
|
length: number;
|
||
|
}
|
||
|
|
||
|
export = SmartBuffer;
|