/// import { Duplex } from "stream"; import { FileDAL } from "../../../../../lib/dal/fileDAL"; import { AbstractSynchronizer } from "../AbstractSynchronizer"; import { Watcher } from "../Watcher"; import { BlockDTO } from "../../../../../lib/dto/BlockDTO"; import { PromiseOfBlocksReading } from "../PromiseOfBlockReading"; export declare class DownloadStream extends Duplex { private localNumber; private to; private toHash; private syncStrategy; private nocautious; private watcher; private fsDownloader; private p2PDownloader; private numberOfChunksToDownload; private currentChunkNumber; private chunks; private milestones; private dowloading; private bestDownloaded; private writeDAL; constructor(localNumber: number, to: number, toHash: string, syncStrategy: AbstractSynchronizer, dal: FileDAL, nocautious: boolean, watcher: Watcher); private downloadChunk; _read(size: number): void; _write(block: BlockDTO | undefined, encoding: any, callback: (err: any) => void): void; } export declare function chainsCorrectly(blocks: BlockDTO[], readNextChunk: PromiseOfBlocksReading, topNumber: number, topHash: string, chunkSize: number): Promise;