@bedrock-apis/nbt-core
Version:
Shared Types and minimal code for NBT packages
104 lines • 2.33 kB
TypeScript
//#region core/tag-type.d.ts
declare enum TagType {
EndOfCompound = 0,
Byte = 1,
Short = 2,
Int = 3,
Long = 4,
Float = 5,
Double = 6,
ByteArray = 7,
String = 8,
List = 9,
Compound = 10,
IntArray = 11,
LongArray = 12,
}
//#endregion
//#region core/static-provider.d.ts
interface IDataCursor<T extends ArrayBufferLike = ArrayBufferLike> {
readonly buffer: Uint8Array<T>;
readonly view: DataView<T>;
pointer: number;
}
//#endregion
//#region core/types.d.ts
declare class Byte extends Number {
static readonly internalTagType: number;
}
declare class Short extends Number {
static readonly internalTagType: number;
}
declare class Int extends Number {
static readonly internalTagType: number;
}
declare class Float extends Number {
static readonly internalTagType: number;
}
declare class Double extends Number {
static readonly internalTagType: number;
}
declare class Long {
readonly value: bigint;
static readonly internalTagType: number;
constructor(value: bigint);
valueOf(): bigint;
}
interface Byte {
readonly internalTagType: number;
}
interface Short {
readonly internalTagType: number;
}
interface Int {
readonly internalTagType: number;
}
interface Float {
readonly internalTagType: number;
}
interface Double {
readonly internalTagType: number;
}
interface Long {
readonly internalTagType: number;
}
declare global {
interface Uint8ArrayConstructor {
readonly internalTagType: number;
}
interface Int32ArrayConstructor {
readonly internalTagType: number;
}
interface BigInt64ArrayConstructor {
readonly internalTagType: number;
}
interface ArrayConstructor {
readonly internalTagType: number;
}
interface StringConstructor {
readonly internalTagType: number;
}
interface ObjectConstructor {
readonly internalTagType: number;
}
interface Uint8Array {
readonly internalTagType: number;
}
interface Int32Array {
readonly internalTagType: number;
}
interface BigInt64Array {
readonly internalTagType: number;
}
interface Array<T> {
readonly internalTagType: number;
}
interface String {
readonly internalTagType: number;
}
interface Object {
readonly internalTagType: number;
}
}
//#endregion
export { Byte, Double, Float, IDataCursor, Int, Long, Short, TagType };