///
import { Block, Chain, BlockHeader } from '@liskhq/lisk-chain';
import { Logger } from '../../../logger';
import { Network } from '../../network';
export declare abstract class BaseSynchronizer {
protected _logger: Logger;
protected _chain: Chain;
protected _network: Network;
protected _stop: boolean;
constructor(logger: Logger, chain: Chain, network: Network);
stop(): void;
protected _getLastBlockFromNetwork(peerId: string): Promise;
protected _getHighestCommonBlockFromNetwork(peerId: string, ids: Buffer[]): Promise;
protected _getBlocksFromNetwork(peerId: string, fromID: Buffer): Promise;
abstract run(receivedBlock: Block, peerId: string): Promise;
abstract isValidFor(receivedBlock: Block, peerId: string): Promise;
}