import LRU from '@jbrowse/quick-lru'; import AggregatingFetcher from './aggregatingFetcher.ts'; interface ChunkResponse { buffer: Uint8Array; headers: Headers; } /** * Caching fetch coalescer for HTTP byte-range requests. * Caches chunks in an LRU cache and aggregates upstream fetches. */ export declare class HttpRangeFetcher { chunkSize: number; aggregator: AggregatingFetcher; chunkCache: LRU>; constructor({ fetch, size, chunkSize, aggregationTime, maxFetchSize, maxExtraFetch, }?: { fetch?: (key: string, start: number, end: number) => Promise<{ headers: Headers; buffer: Uint8Array; }>; size?: number; chunkSize?: number; aggregationTime?: number; maxFetchSize?: number; maxExtraFetch?: number; }); getRange(key: string, position: number, length: number, options?: {}): Promise<{ headers: any; buffer: Uint8Array; }>; _makeBuffer(chunkResponses: { buffer: Uint8Array; }[], chunksOffset: number, length: number): Uint8Array; _getChunk(key: string, chunkNumber: number, requestOptions?: { signal?: AbortSignal; }): Promise; _uncacheIfSame(key: string, cachedPromise: Promise): void; /** * Throw away all cached data, resetting the cache. */ reset(): void; } export {};