import type { StreamReaderInterface } from '../utils/stream'; export declare function readVarint(reader: StreamReaderInterface, error: Error | ((error: unknown) => Error), options?: { offset?: number | undefined; autoSeek?: true | undefined; }): Promise<{ value: number; byteLength: number; endOffset: number; }>; export interface ParseDataLengthFn { (opts: { data: Uint8Array; offset?: number | undefined; throwIfLowData?: true | undefined; }): { dataByteLength: number; endOffset: number; }; (opts: { data: Uint8Array; offset?: number | undefined; throwIfLowData?: boolean | undefined; }): { dataByteLength: number; endOffset: number; error?: never; } | { error: { needByteLength: number; }; }; } export declare function parseDataLength({ name, autoSeek: defaultAutoSeek }: { name: string; autoSeek?: true | undefined; }): (reader: StreamReaderInterface, opts?: { offset?: number | undefined; autoSeek?: boolean | undefined; }) => Promise<{ dataByteLength: number; endOffset: number; }>; export declare function validateDataLength({ requiredLength, received, name, longname }: { requiredLength: number; received: number | Uint8Array; name: string; longname?: string | undefined; }): void; export declare function createHeaderDataParser({ name, longname, genHeaderData, autoSeek: defaultAutoSeek }: { name: string; longname: string; genHeaderData: (headerDataBytes: Uint8Array) => T; autoSeek?: true | undefined; }): (reader: StreamReaderInterface, opts: { headerByteLength: number; offset?: number | undefined; autoSeek?: boolean | undefined; }) => Promise<{ headerData: T; endOffset: number; }>;