import { ExtensionCodecType } from "./ExtensionCodec";
export declare const DEFAULT_MAX_DEPTH = 100;
export declare const DEFAULT_BUFFER_SIZE = 2048;
export declare class StreamEncoder<ContextType = undefined> {
    private readonly extensionCodec;
    private readonly context;
    private readonly maxDepth;
    private readonly bufferSize;
    private readonly sortKeys;
    private readonly forceFloat32;
    private readonly ignoreUndefined;
    private readonly forceIntegerToFloat;
    private view;
    private bytes;
    constructor(extensionCodec?: ExtensionCodecType<ContextType>, context?: ContextType, maxDepth?: number, bufferSize?: number, sortKeys?: boolean, forceFloat32?: boolean, ignoreUndefined?: boolean, forceIntegerToFloat?: boolean);
    encode(object: unknown): Iterable<Uint8Array>;
    private doEncode;
    private ensureBufferSizeToWrite;
    private resizeBuffer;
    private encodeNil;
    private encodeBoolean;
    private encodeNumber;
    private buildStringHeader;
    private encodeString;
    private encodeObject;
    private encodeBinary;
    private encodeArray;
    private countWithoutUndefined;
    private encodeMap;
    private encodeExtension;
    private writeU8;
    private writeU8a;
    private writeI8;
    private writeU16;
    private writeI16;
    private writeU32;
    private writeI32;
    private writeF32;
    private writeF64;
    private writeU64;
    private writeI64;
    private writeU8U8;
    private writeU8U16;
    private writeU8U32;
    private writeU8U64;
    private writeU8I8;
    private writeU8I16;
    private writeU8I32;
    private writeU8I64;
    private writeU8F32;
    private writeU8F64;
    private writeBuffer;
}
