flexbuf
Version:
34 lines (33 loc) • 1.34 kB
TypeScript
import { Uint } from "low-level";
import type { AnyObj } from "./types.js";
import { DataEncoder } from "./encoders.js";
export declare class ObjectEncoding {
static encode(object: AnyObj, keyConfigs: readonly DataEncoder[], forHash: boolean): ObjectEncoding.EncodeResult;
static decode(hexData: Uint, keyConfigs: readonly DataEncoder[], returnLength?: false): ObjectEncoding.DecodeResult<ObjectEncoding.DecodeResult.Default>;
static decode(hexData: Uint, keyConfigs: readonly DataEncoder[], returnLength: true): ObjectEncoding.DecodeResult<ObjectEncoding.DecodeResult.WithLength>;
static decode(hexData: Uint, keyConfigs: readonly DataEncoder[], returnLength: boolean): ObjectEncoding.DecodeResult<ObjectEncoding.DecodeResult.Unknown>;
}
export declare namespace ObjectEncoding {
interface EncodeResult {
data: Uint;
err?: Error;
}
namespace DecodeResult {
interface Err {
err: Error;
data: undefined;
length: undefined;
}
interface Default {
data: AnyObj;
err: undefined;
}
interface WithLength extends Default {
length: number;
}
interface Unknown extends Default {
length?: number;
}
}
type DecodeResult<T> = T | DecodeResult.Err;
}