///
import * as nTools from '@niobium/tools';
import { DetectorCallback, DecodeCallback, DecodeResult, EncodeCallback, EncodeCustoms, IndexedObject } from './types';
declare const _Buffer: any;
import BaseX from './lib/base-x/index';
declare const coderTools: {
BASE_ALPHABETS: {
BASE16: string;
BASE36: string;
BASE58: string;
BASE62: string;
BASE66: string;
};
BaseX: typeof BaseX;
base16Encode: (what: string | Buffer, asAscii?: boolean) => string;
base32Encode: (what: string | Buffer, asAscii?: boolean) => string;
base36Encode: (what: string | Buffer, asAscii?: boolean) => string;
base58Encode: (what: string | Buffer, asAscii?: boolean) => string;
base62Encode: (what: string | Buffer, asAscii?: boolean) => string;
base64Encode: (what: string | Buffer, asAscii?: boolean) => string;
base66Encode: (what: string | Buffer, asAscii?: boolean) => string;
base16Decode: (what: string, asBuffer?: boolean, asAscii?: boolean) => DecodeResult;
base32Decode: (what: string, asBuffer?: boolean, asAscii?: boolean) => DecodeResult | Uint8Array;
base36Decode: (what: string, asBuffer?: boolean, asAscii?: boolean) => DecodeResult;
base58Decode: (what: string, asBuffer?: boolean, asAscii?: boolean) => DecodeResult | Uint8Array;
base62Decode: (what: string, asBuffer?: boolean, asAscii?: boolean) => DecodeResult;
base64Decode: (what: string, asBuffer?: boolean, asAscii?: boolean) => DecodeResult | Uint8Array;
base66Decode: (what: string, asBuffer?: boolean, asAscii?: boolean) => DecodeResult;
/**
* @param {[Number, Number]} val
* @returns {Number}
*/
twoInt32toInt53: (val: Array) => number;
/**
* @param {Number} val
* @returns {[Number, Number]}
*/
int53toTwoInt32: (val: number) => number[];
intToBuf: (int: number, len?: number, be?: boolean) => Buffer;
int8ToBuf: (int: number) => Buffer;
int8UToBuf: (int: number) => Buffer;
int16ToBuf: (int: number, be?: boolean) => Buffer;
int16UToBuf: (int: number, be?: boolean) => Buffer;
int32ToBuf: (int: number, be?: boolean) => Buffer;
int32UToBuf: (int: number, be?: boolean) => Buffer;
floatToBuf: (int: number, be?: boolean) => Buffer;
doubleToBuf: (int: number, be?: boolean) => Buffer;
bufToInt8: (buf: Buffer, offset?: number) => number;
bufToInt8U: (buf: Buffer, offset?: number) => number;
bufToInt16: (buf: Buffer, offset?: number, be?: boolean) => number;
bufToInt16U: (buf: Buffer, offset?: number, be?: boolean) => number;
bufToInt32: (buf: Buffer, offset?: number, be?: boolean) => number;
bufToInt32U: (buf: Buffer, offset?: number, be?: boolean) => number;
bufToInt: (buf: Buffer, len?: number, offset?: number, be?: boolean) => number;
bufToFloat: (buf: Buffer, offset?: number, be?: boolean) => number;
bufToDouble: (buf: Buffer, offset?: number, be?: boolean) => number;
pad: (str: string, z?: number) => string;
bufToBinFlags: (buf: Buffer, offset: number) => Array;
binFlagsToBuf: (arr: Array) => Buffer;
hexToBinStr: (val: string) => string;
crc32: any;
};
declare class DataEncoder {
customs: Array;
constructor();
use(id: number, detector: DetectorCallback, encode: EncodeCallback): void;
encode(arg: any): Buffer;
}
declare class DataDecoder {
customs: IndexedObject;
constructor();
use(id: number, detector: DetectorCallback, decode: DecodeCallback): void;
decode(arg: Buffer | ArrayBuffer | SharedArrayBuffer): any;
}
export declare class DataCoder {
decoder: DataDecoder;
encoder: DataEncoder;
tools: typeof coderTools;
nTools: typeof nTools;
used: IndexedObject;
constructor();
use(id: number, detector: DetectorCallback, encode: (arg: T) => Buffer, decode: (arg: Buffer) => T): void;
getUsed(): IndexedObject;
encode(args: T): Buffer;
decode(args: Buffer | ArrayBuffer | SharedArrayBuffer): any;
}
declare class SerializerProto {
version: number;
crc32: (buf: (Buffer | string | Uint8Array), previous?: number) => number;
tools: typeof coderTools;
used: IndexedObject;
coder: DataCoder;
constructor(coder: DataCoder);
use(id: number, detector: DetectorCallback, encode: (arg: T) => Buffer, decode: (arg: Buffer) => T): void;
getUsed(): IndexedObject;
}
declare class Serialize extends SerializerProto {
constructor(coder: DataCoder);
_makePacket(version: number, data: Uint8Array): Buffer;
serializeArray(val: Array