///
import * as stream from "stream";
import { Server } from "../../../../server";
import { ConfDTO } from "../../../lib/dto/ConfDTO";
import { PeeringService } from "../../../service/PeeringService";
import { AbstractSynchronizer } from "./sync/AbstractSynchronizer";
import { BlockchainService } from "../../../service/BlockchainService";
import { FileDAL } from "../../../lib/dal/fileDAL";
export declare class Synchroniser extends stream.Duplex {
private server;
private syncStrategy;
private watcher;
private speed;
private blocksApplied;
constructor(server: Server, syncStrategy: AbstractSynchronizer, interactive?: boolean);
get conf(): ConfDTO;
get logger(): any;
get PeeringService(): PeeringService;
get BlockchainService(): BlockchainService;
get dal(): FileDAL;
_read(): void;
_write(): void;
private logRemaining;
sync(to: number, chunkLen: number, askedCautious?: boolean): Promise;
}