@bedrock-apis/nbt
Version:
Solid NBT package, with multiple formats
168 lines (151 loc) • 7.11 kB
TypeScript
import { Byte, Double, Float, IDataCursor, Int, Short, TagType } from "@bedrock-apis/nbt-core";
//#region main/readers/reader-like.d.ts
interface ReaderLike {
readType(cursor: IDataCursor): TagType;
readStringLength(cursor: IDataCursor): number;
readArrayLength(cursor: IDataCursor): number;
[TagType.Byte](cursor: IDataCursor): number;
[TagType.Short](cursor: IDataCursor): number;
[TagType.Int](cursor: IDataCursor): number;
[TagType.Long](cursor: IDataCursor): bigint;
[TagType.Float](cursor: IDataCursor): number;
[TagType.Double](cursor: IDataCursor): number;
[TagType.ByteArray](cursor: IDataCursor): Uint8Array;
[TagType.String](cursor: IDataCursor): string;
[TagType.IntArray](cursor: IDataCursor): Int32Array;
[TagType.LongArray](cursor: IDataCursor): BigInt64Array;
[TagType.List](cursor: IDataCursor): unknown[];
[TagType.Compound](cursor: IDataCursor): object;
}
//#endregion
//#region main/readers/general.d.ts
declare class GeneralReader implements ReaderLike {
readonly littleEndian: boolean;
readonly textEncoder: TextDecoder;
constructor(littleEndian: boolean, textEncoder: TextDecoder);
readType(_: IDataCursor): TagType;
readArrayLength(_: IDataCursor): number;
readStringLength(_: IDataCursor): number;
/**
* TagType.byte
*/
1(cursor: IDataCursor): number;
/**
* TagType.Short
*/
2(cursor: IDataCursor): number;
/**
* TagType.Int
*/
3(cursor: IDataCursor): number;
/**
* TagType.Long
*/
4(cursor: IDataCursor): bigint;
/**
* TagType.Float
*/
5(cursor: IDataCursor): number;
/**
* TagType.Double
*/
6(cursor: IDataCursor): number;
/**
* TagType.ByteArray
*/
7(cursor: IDataCursor): Uint8Array;
/**
* TagType.String
*/
8(cursor: IDataCursor): string;
11(cursor: IDataCursor): Int32Array;
12(cursor: IDataCursor): BigInt64Array;
9(cursor: IDataCursor): unknown[];
10(cursor: IDataCursor): object;
}
declare class GeneralVariantReader extends GeneralReader {}
declare const NBT_FORMAT_READER: GeneralReader;
declare const NBT_NETWORK_VARIANT_FORMAT_READER: GeneralReader;
declare const NBT_BIG_ENDIAN_FORMAT_READER: GeneralReader;
declare const NBT_BIG_ENDIAN_NETWORK_VARIANT_FORMAT_READER: GeneralReader;
//#endregion
//#region main/readers/typed-reader.d.ts
declare class TypedReader {
static 1(cursor: IDataCursor, format: ReaderLike): Byte;
static 2(cursor: IDataCursor, format: ReaderLike): Short;
static 3(cursor: IDataCursor, format: ReaderLike): Int;
static 5(cursor: IDataCursor, format: ReaderLike): Float;
static 6(cursor: IDataCursor, format: ReaderLike): Double;
static 4(cursor: IDataCursor, format: ReaderLike): bigint;
static 7(cursor: IDataCursor, format: ReaderLike): Uint8Array;
static 8(cursor: IDataCursor, format: ReaderLike): string;
static 11(cursor: IDataCursor, format: ReaderLike): Int32Array;
static 12(cursor: IDataCursor, format: ReaderLike): BigInt64Array;
static 10(cursor: IDataCursor, format: ReaderLike): object;
static 9(cursor: IDataCursor, format: ReaderLike): unknown[];
static parseRootSync<T>(this: typeof TypedReader, cursor: IDataCursor, format: ReaderLike): T;
static parseSync<T>(this: typeof TypedReader, cursor: IDataCursor, format: ReaderLike): T;
static parseExplicitSync<T>(this: typeof TypedReader, cursor: IDataCursor, type: TagType, format: ReaderLike): T;
}
//#endregion
//#region main/readers/index.d.ts
declare function parseRootSync<T = unknown>(cursor: IDataCursor, format?: ReaderLike): T;
declare function parseExplicitSync<T = unknown>(cursor: IDataCursor, type: TagType, format?: ReaderLike): T;
declare function parseSync<T = unknown>(cursor: IDataCursor, format?: ReaderLike): T;
//#endregion
//#region main/writers/writer-like.d.ts
interface WriterLike {
writeType(cursor: IDataCursor, value: TagType): void;
writeStringLength(cursor: IDataCursor, length: number): void;
writeArrayLength(cursor: IDataCursor, length: number): void;
[TagType.Byte](cursor: IDataCursor, value: number): void;
[TagType.Short](cursor: IDataCursor, value: number): void;
[TagType.Int](cursor: IDataCursor, value: number): void;
[TagType.Long](cursor: IDataCursor, value: bigint): void;
[TagType.Float](cursor: IDataCursor, value: number): void;
[TagType.Double](cursor: IDataCursor, value: number): void;
[TagType.ByteArray](cursor: IDataCursor, value: Uint8Array): void;
[TagType.String](cursor: IDataCursor, value: string): void;
[TagType.IntArray](cursor: IDataCursor, value: Int32Array): void;
[TagType.LongArray](cursor: IDataCursor, value: BigInt64Array): void;
[TagType.List](cursor: IDataCursor, value: unknown[]): void;
[TagType.Compound](cursor: IDataCursor, value: object): void;
determinateType(_: unknown): TagType;
}
//#endregion
//#region main/writers/general.d.ts
declare class GeneralWriter implements WriterLike {
readonly littleEndian: boolean;
readonly textEncoder: TextEncoder;
constructor(littleEndian: boolean, textEncoder: TextEncoder);
writeType(_cursor: IDataCursor, _: number): void;
writeStringLength(_cursor: IDataCursor, _: number): void;
writeArrayLength(_cursor: IDataCursor, _: number): void;
1(cursor: IDataCursor, _: number): void;
2(cursor: IDataCursor, _: number): void;
3(cursor: IDataCursor, _: number): void;
4(cursor: IDataCursor, _: bigint): void;
5(cursor: IDataCursor, _: number): void;
6(cursor: IDataCursor, _: number): void;
7(cursor: IDataCursor, _: Uint8Array): void;
8(cursor: IDataCursor, _: string): void;
9(cursor: IDataCursor, _: unknown[]): void;
10(cursor: IDataCursor, _: object): void;
11(cursor: IDataCursor, _: Int32Array): void;
12(cursor: IDataCursor, _: BigInt64Array): void;
//NOTE - We could think of prototype based serialization something like
// new Byte().serializeNBT(cursor, format); and recursively like that
determinateType(_: unknown): TagType;
}
declare class GeneralVariantWriter extends GeneralWriter {}
declare const NBT_FORMAT_WRITER: GeneralWriter;
declare const NBT_NETWORK_VARIANT_FORMAT_WRITER: GeneralWriter;
declare const NBT_BIG_ENDIAN_FORMAT_WRITER: GeneralWriter;
declare const NBT_BIG_ENDIAN_NETWORK_VARIANT_FORMAT_WRITER: GeneralWriter;
//#endregion
//#region main/writers/index.d.ts
declare function writeRootSync(cursor: IDataCursor, value: unknown, format?: WriterLike, root?: string): void;
declare function writeExplicitSync(cursor: IDataCursor, value: unknown, type: TagType, format?: WriterLike): void;
declare function writeSync(cursor: IDataCursor, value: unknown, format?: WriterLike): void;
//#endregion
export { GeneralReader, GeneralVariantReader, GeneralVariantWriter, GeneralWriter, NBT_BIG_ENDIAN_FORMAT_READER, NBT_BIG_ENDIAN_FORMAT_WRITER, NBT_BIG_ENDIAN_NETWORK_VARIANT_FORMAT_READER, NBT_BIG_ENDIAN_NETWORK_VARIANT_FORMAT_WRITER, NBT_FORMAT_READER, NBT_FORMAT_WRITER, NBT_NETWORK_VARIANT_FORMAT_READER, NBT_NETWORK_VARIANT_FORMAT_WRITER, ReaderLike, TypedReader, WriterLike, parseExplicitSync, parseRootSync, parseSync, writeExplicitSync, writeRootSync, writeSync };