import { IHasher } from 'hash-wasm/dist/lib/WASMInterface.js'; import pako from 'pako'; import { S as Source, k as SourceReader, H as HeadersMultiMap } from './utils-0803d8f4.js'; declare class NoConcatInflator extends pako.Inflate { reader: T; ended: boolean; chunks: Uint8Array[]; constructor(options: pako.InflateOptions, reader: T); onEnd(status: pako.ReturnCodes): void; } declare abstract class BaseAsyncIterReader { static readFully(iter: AsyncIterable | Iterable): Promise; abstract [Symbol.asyncIterator](): AsyncIterator; getReadableStream(): ReadableStream; readFully(): Promise; abstract readlineRaw(maxLength?: number): Promise; readline(maxLength?: number): Promise; iterLines(maxLength?: number): AsyncGenerator; } type AsyncIterReaderOpts = { raw: boolean; }; declare class AsyncIterReader extends BaseAsyncIterReader { compressed: string | null; opts: AsyncIterReaderOpts; inflator: NoConcatInflator | null; _sourceIter: AsyncIterator; lastValue: Uint8Array | null; errored: boolean; _savedChunk: Uint8Array | null; _rawOffset: number; _readOffset: number; numChunks: number; constructor(streamOrIter: Source, compressed?: string | null, dechunk?: boolean); _loadNext(): Promise; dechunk(source: AsyncIterable): AsyncIterator; unread(chunk: Uint8Array): void; _next(): Promise; _push(value: Uint8Array): void; _getNextChunk(original?: Uint8Array): Uint8Array | null | undefined; [Symbol.asyncIterator](): AsyncGenerator; readlineRaw(maxLength?: number): Promise; readFully(): Promise; readSize(sizeLimit: number): Promise; skipSize(sizeLimit: number): Promise; _readOrSkip(sizeLimit?: number, skip?: boolean): Promise; getReadOffset(): number; getRawOffset(): number; getRawLength(prevOffset: number): number; static fromReadable(source: Readable): { [Symbol.asyncIterator](): AsyncGenerator; }; static fromIter(source: Iterable): { [Symbol.asyncIterator](): AsyncGenerator; }; } declare class LimitReader extends BaseAsyncIterReader { sourceIter: AsyncIterReader; length: number; limit: number; skip: number; constructor(streamIter: AsyncIterReader, limit: number, skip?: number); setLimitSkip(limit: number, skip?: number): void; [Symbol.asyncIterator](): AsyncGenerator; readlineRaw(maxLength?: number): Promise; skipFully(): Promise; } declare const CRLF: Uint8Array; declare const CRLFCRLF: Uint8Array; declare class StatusAndHeaders { statusline: string; headers: HeadersMultiMap | Headers; readonly reencodeHeaders?: Set; constructor({ statusline, headers, reencodeHeaders, }: { statusline: string; headers: HeadersMultiMap | Headers; reencodeHeaders?: Set; }); toString(): string; iterSerialize(encoder: TextEncoder): AsyncGenerator; _protocol: string | undefined; _statusCode: number | string | undefined; _statusText: string | undefined; _parseResponseStatusLine(): void; get statusCode(): string | number | undefined; get protocol(): string | undefined; get statusText(): string | undefined; _method: string | undefined; _requestPath: string | undefined; _parseRequestStatusLine(): void; get method(): string | undefined; get requestPath(): string | undefined; } declare class StatusAndHeadersParser { reencodeHeaders: Set; parse(reader: AsyncIterReader, { headersClass, firstLine, }?: { firstLine?: string; headersClass: typeof HeadersMultiMap | typeof Headers; }): Promise; setHeader(name: string, value: string, headers: Headers | HeadersMultiMap, reencoded?: boolean): void; } declare function indexOfDoubleCRLF(buffer: Uint8Array, iter: AsyncIterator): Promise; declare function readToDoubleCRLF(reader: AsyncIterReader): Promise; declare const WARC_1_1 = "WARC/1.1"; declare const WARC_1_0 = "WARC/1.0"; type WARCType = "warcinfo" | "response" | "resource" | "request" | "metadata" | "revisit" | "conversion" | "continuation"; type WARCRecordOpts = { url?: string; date?: string; type?: WARCType; warcHeaders?: Record | [string, string][]; filename?: string; httpHeaders?: HeadersInit; statusline?: string; warcVersion?: typeof WARC_1_0 | typeof WARC_1_1; keepHeadersCase?: boolean; refersToUrl?: string; refersToDate?: string; }; declare class WARCRecord extends BaseAsyncIterReader { static create({ url, date, type, warcHeaders, filename, httpHeaders, statusline, warcVersion, keepHeadersCase, refersToUrl, refersToDate, }?: WARCRecordOpts, reader?: AsyncIterable | Iterable): WARCRecord; static createWARCInfo(opts: WARCRecordOpts | undefined, info: Record): WARCRecord; warcHeaders: StatusAndHeaders; _reader: AsyncIterable | Iterable; _contentReader: BaseAsyncIterReader | null; payload: Uint8Array | null; httpHeaders: StatusAndHeaders | null; consumed: "content" | "raw" | "skipped" | ""; _offset: number | undefined; _length: number; _urlkey: string; constructor({ warcHeaders, reader, }: { warcHeaders: StatusAndHeaders; reader: AsyncIterable | Iterable; }); getResponseInfo(): { headers: Headers | HeadersMultiMap; status: string | number | undefined; statusText: string | undefined; } | null; fixUp(): void; readFully(isContent?: boolean): Promise; get reader(): AsyncIterable | Iterable; get contentReader(): AsyncIterable | Iterable; _createDecodingReader(source: Source): AsyncIterReader; readlineRaw(maxLength?: number): Promise; contentText(): Promise; [Symbol.asyncIterator](): AsyncGenerator; skipFully(): Promise; warcHeader(name: string): string | null | undefined; get warcType(): WARCType; get warcTargetURI(): string | null | undefined; get warcDate(): string | null | undefined; get warcRefersToTargetURI(): string | null | undefined; get warcRefersToDate(): string | null | undefined; get warcPayloadDigest(): string | null | undefined; get warcBlockDigest(): string | null | undefined; get warcContentType(): string | null | undefined; get warcContentLength(): number; get warcConcurrentTo(): string[] | undefined; } type WARCSerializerOpts = { gzip?: boolean; digest?: { algo?: AlgorithmIdentifier; prefix?: string; base32?: boolean; }; preferPako?: boolean; }; declare abstract class BaseSerializerBuffer { abstract write(chunk: Uint8Array): void; abstract readAll(): AsyncIterable; abstract purge(): void; } declare class SerializerInMemBuffer extends BaseSerializerBuffer { buffers: Uint8Array[]; write(chunk: Uint8Array): void; readAll(): AsyncIterable; purge(): void; } declare class WARCSerializer extends BaseAsyncIterReader { gzip: boolean; digestAlgo: AlgorithmIdentifier; digestAlgoPrefix: string; digestBase32: boolean; preferPako: boolean; record: WARCRecord; externalBuffer: BaseSerializerBuffer | undefined; private _alreadyDigested; blockHasher: IHasher | null; payloadHasher: IHasher | null; httpHeadersBuff: Uint8Array | null; warcHeadersBuff: Uint8Array | null; static serialize(record: WARCRecord, opts?: WARCSerializerOpts, externalBuffer?: BaseSerializerBuffer): Promise; constructor(record: WARCRecord, opts?: WARCSerializerOpts, externalBuffer?: BaseSerializerBuffer); [Symbol.asyncIterator](): AsyncGenerator; readlineRaw(maxLength?: number): Promise; pakoCompress(): AsyncGenerator; streamCompress(cs: CompressionStream): AsyncGenerator; newHasher(): Promise; getDigest(hasher: IHasher): string; digestRecord({ recompute, returnPayloadOnlySize, payloadDigestForRevisit, }?: { recompute?: boolean | undefined; returnPayloadOnlySize?: boolean | undefined; payloadDigestForRevisit?: string | undefined; }): Promise; generateRecord(): AsyncGenerator; } export { AsyncIterReader as A, BaseAsyncIterReader as B, CRLF as C, LimitReader as L, NoConcatInflator as N, SerializerInMemBuffer as S, WARCSerializerOpts as W, WARCSerializer as a, WARCRecord as b, StatusAndHeaders as c, StatusAndHeadersParser as d, AsyncIterReaderOpts as e, CRLFCRLF as f, BaseSerializerBuffer as g, WARC_1_1 as h, indexOfDoubleCRLF as i, WARC_1_0 as j, WARCType as k, WARCRecordOpts as l, readToDoubleCRLF as r };