import type { Logger } from '@nestjs/common';
import type { BlockchainProviderService } from '../../../blockchain-provider/blockchain-provider.service';
import type { BlocksLoadingStrategy } from './load-strategy.interface';
import { StrategyNames } from './load-strategy.interface';
import type { BlocksQueue } from '../../blocks-queue';
export declare class RpcProviderStrategy implements BlocksLoadingStrategy {
    private readonly log;
    private readonly blockchainProvider;
    private readonly queue;
    readonly name = StrategyNames.RPC;
    private _maxRequestBlocksBatchSize;
    private _preloadedItemsQueue;
    private _maxPreloadCount;
    private _lastLoadReceiptsDuration;
    private _previousLoadReceiptsDuration;
    private readonly tracesEnabled;
    private readonly verifyTrie;
    constructor(log: Logger, blockchainProvider: BlockchainProviderService, queue: BlocksQueue, config: {
        maxRequestBlocksBatchSize: number;
        basePreloadCount: number;
        tracesEnabled?: boolean;
        verifyTrie?: boolean;
    });
    load(currentNetworkHeight: number): Promise<void>;
    stop(): Promise<void>;
    private preloadBlocksWithTransactions;
    private loadReceiptsAndEnqueueBlocks;
    private createOptimalBatchesForReceipts;
    private estimateReceiptsSize;
    private loadBlocksWithReceipts;
    private attachTraces;
    private getRequiredBlockSize;
    private enqueueBlocks;
}
