import JSBI from 'jsbi'; import { BasicNeatType } from '../types/neat'; import { ExtData } from './ExtData'; import { ExtensionCodecType } from './ExtensionCodec'; export declare const DEFAULT_MAX_DEPTH = 100; export declare const DEFAULT_INITIAL_BUFFER_SIZE = 2048; export declare class Encoder { private pos; private view; private bytes; readonly extensionCodec: ExtensionCodecType; readonly maxDepth: number; readonly initialBufferSize: number; constructor(extensionCodec?: ExtensionCodecType, maxDepth?: number, initialBufferSize?: number); keyEncoder(value: unknown, depth: number): Uint8Array; encode(object: unknown, depth: number): void; getUint8Array(): Uint8Array; ensureBufferSizeToWrite(sizeToWrite: number): void; resizeBuffer(newSize: number): void; encodeNil(): void; encodeBoolean(object: boolean): void; encodeNumber(object: number): void; writeStringHeader(size: number): void; encodeString(object: string): void; encodeObject(object: unknown, depth: number): void; encodeNeatClass(value: BasicNeatType): void; encodeBigInt(value: bigint): void; encodeJSBI(value: JSBI): void; encodeBinary(object: ArrayBufferView): void; encodeArray(object: unknown[], depth: number): void; encodeMap(object: Map, depth: number): void; encodePlainObject(object: Record, depth: number): void; encodeExtension(ext: ExtData): void; writeU8(value: number): void; writeU8a(values: ArrayLike): void; writeI8(value: number): void; writeU16(value: number): void; writeI16(value: number): void; writeU32(value: number): void; writeI32(value: number): void; writeF32(value: number): void; writeF64(value: number): void; writeU64(value: bigint | string | number): void; writeI64(value: bigint | string | number): void; }