import Web3 from 'web3';
import { Logger } from '@faast/ts-common';
import type { TransactionConfig } from 'web3-core';
import { AutoFeeLevels } from '@faast/payments-common';
declare type Eth = Web3['eth'];
import { EthTxType } from './types';
export declare class NetworkData {
    private gasStationUrl;
    private parityUrl;
    private eth;
    private logger;
    constructor(eth: Eth, gasStationUrl?: string, parityUrl?: string, logger?: Logger | null);
    getNetworkData(txType: EthTxType, speed: AutoFeeLevels, from: string, to: string, data?: string): Promise<{
        pricePerGasUnit: string;
        nonce: string;
        amountOfGas: number;
    }>;
    getNonce(address: string): Promise<string>;
    getGasPrice(speed: AutoFeeLevels): Promise<string>;
    estimateGas(txObject: TransactionConfig, txType: EthTxType): Promise<number>;
    private getWeb3Nonce;
    private getParityNonce;
    private getGasStationGasPrice;
    private getWeb3GasPrice;
    _retryDced<T>(fn: () => Promise<T>): Promise<T>;
}
export {};
