import { ExtensionCodecType } from "./ExtensionCodec";
import { KeyDecoder } from "./CachedKeyDecoder";
export declare const DataViewIndexOutOfBoundsError: typeof Error;
export declare const DEFAULT_BUFFER_SIZE = 2048;
export declare class StreamDecoder<ContextType = undefined> {
    private readonly readIterable;
    private readonly extensionCodec;
    private readonly context;
    private readonly maxStrLength;
    private readonly maxBinLength;
    private readonly maxArrayLength;
    private readonly maxMapLength;
    private readonly maxExtLength;
    private readonly keyDecoder;
    private readonly bufferSize;
    private headByte;
    private readonly stack;
    private readonly readStream;
    private buffer;
    constructor(readIterable: AsyncIterable<Uint8Array>, extensionCodec?: ExtensionCodecType<ContextType>, context?: ContextType, maxStrLength?: number, maxBinLength?: number, maxArrayLength?: number, maxMapLength?: number, maxExtLength?: number, keyDecoder?: KeyDecoder | null, bufferSize?: number);
    private reinitializeState;
    private createExtraByteError;
    /**
     * @throws {@link DecodeError}
     * @throws {@link RangeError}
     */
    decode(): Promise<unknown>;
    decodeMulti(): AsyncGenerator<unknown>;
    private doDecodeSync;
    private readHeadByteFromBuffer;
    private readHeadByte;
    private complete;
    private pushMapState;
    private pushArrayState;
    private decodeUtf8StringFromBuffer;
    private decodeUtf8String;
    private stateIsMapKey;
    private decodeBinary;
    private decodeExtension;
    private readU8;
    private readI8;
    private readU16;
    private readI16;
    private readU32;
    private readI32;
    private readU64;
    private readI64;
    private readF32;
    private readF64;
    private readU8FromBuffer;
    private readI8FromBuffer;
    private readU16FromBuffer;
    private readI16FromBuffer;
    private readU32FromBuffer;
    private readI32FromBuffer;
    private readU64FromBuffer;
    private readI64FromBuffer;
    private readF32FromBuffer;
    private readF64FromBuffer;
    private readBytesFromBuffer;
    private readBytes;
    private readToBuffer;
}
