import BigNumber from 'bignumber.js';
import { PriceToken, PriceTokenAmount } from "../../../../../../common/tokens";
import { BlockchainName, EvmBlockchainName } from "../../../../../../core/blockchain/models/blockchain-name";
import { OnChainTradeError } from "../../../models/on-chain-trade-error";
import { RequiredOnChainCalculationOptions } from "../../common/models/on-chain-calculation-options";
import { GasFeeInfo } from "../../common/on-chain-trade/evm-on-chain-trade/models/gas-fee-info";
import { OnChainTrade } from "../../common/on-chain-trade/on-chain-trade";
import { AggregatorOnChainProvider } from '../../common/on-chain-aggregator/aggregator-on-chain-provider-abstract';
export declare class OneInchProvider extends AggregatorOnChainProvider {
    private readonly defaultOptions;
    readonly tradeType: "ONE_INCH";
    isSupportedBlockchain(blockchain: BlockchainName): boolean;
    calculate(from: PriceTokenAmount<EvmBlockchainName>, toToken: PriceToken<EvmBlockchainName>, options: RequiredOnChainCalculationOptions): Promise<OnChainTrade | OnChainTradeError>;
    private getTradeInfo;
    protected getGasFeeInfo(from: PriceTokenAmount<EvmBlockchainName>, gasLimit: BigNumber): Promise<GasFeeInfo | null>;
    private getAvailableProtocols;
    /**
     * Extracts tokens path from oneInch api response.
     * @returns Promise<Token[]> Tokens array, used in the route.
     */
    private extractPath;
    private loadContractAddress;
}
