import Queue from '../../helpers/queue.js';
import { Fetcher, Item } from '../../types/types.js';
import { Downloader } from '../interfaces.js';
export interface ServerDownloaderOptions {
    serverUrl: string;
    streamId: string;
    objectId: string;
    token?: string;
    headers?: Headers;
    fetch?: Fetcher;
}
export default class ServerDownloader implements Downloader {
    #private;
    constructor(options: ServerDownloaderOptions);
    initializePool(params: {
        results: Queue<Item>;
        total: number;
        maxDownloadBatchWait?: number;
    }): void;
    add(id: string): void;
    disposeAsync(): Promise<void>;
    downloadBatch(params: {
        batch: string[];
        url: string;
        headers: HeadersInit;
    }): Promise<void>;
    processArray(leftover: Uint8Array, value: Uint8Array, keys: Set<string>, callback: () => Promise<void>): Promise<Uint8Array>;
    processLine(line: Uint8Array): Item;
    concatUint8Arrays(a: Uint8Array, b: Uint8Array): Uint8Array;
    downloadSingle(): Promise<Item>;
}
//# sourceMappingURL=serverDownloader.d.ts.map