import { TradeType } from '../../..';
import { BlockchainName } from '../../../../core';
import { PriceToken } from '../../../../core/blockchain/tokens/price-token';
import { PriceTokenAmount } from '../../../../core/blockchain/tokens/price-token-amount';
import { CelerCrossChainSupportedBlockchain } from './constants/celer-cross-chain-supported-blockchain';
import { getCelerCrossChainContract } from './constants/celer-cross-chain-contracts';
import { RequiredCrossChainOptions } from '../../models/cross-chain-options';
import { CelerCrossChainContractTrade } from './celer-cross-chain-contract-trade/celer-cross-chain-contract-trade';
import { ItCalculatedTrade } from '../common/celer-rubic/models/it-calculated-trade';
import { CelerItCrossChainContractTrade } from './celer-cross-chain-contract-trade/celer-it-cross-chain-contract-trade/celer-it-cross-chain-contract-trade';
import { CrossChainContractData } from '../common/celer-rubic/cross-chain-contract-data';
import { CelerRubicCrossChainTradeProvider } from '../common/celer-rubic/celer-rubic-cross-chain-trade-provider';
import { WrappedCrossChainTrade } from '../common/models/wrapped-cross-chain-trade';
export declare class CelerCrossChainTradeProvider extends CelerRubicCrossChainTradeProvider {
    static isSupportedBlockchain(blockchain: BlockchainName): blockchain is CelerCrossChainSupportedBlockchain;
    type: "CELER";
    protected contracts: typeof getCelerCrossChainContract;
    calculate(from: PriceTokenAmount, to: PriceToken, options: RequiredCrossChainOptions): Promise<WrappedCrossChainTrade | null>;
    /**
     * Calculates celer bridge slippage.
     * @param fromBlockchain Source blockchain.
     * @param toBlockchain Target blockchain.
     * @param amount Trade amount.
     * @param transitToken Swap transit token.
     * @returns Celer bridge slippage.
     */
    private fetchCelerSlippage;
    private fetchCelerAmount;
    private fetchCelerEstimate;
    protected calculateBestTrade(blockchain: CelerCrossChainSupportedBlockchain, from: PriceTokenAmount, toToken: PriceToken, slippageTolerance: number, disabledProviders?: TradeType[]): Promise<CelerCrossChainContractTrade>;
    protected getItCalculatedTrade(contract: CrossChainContractData, providerIndex: number, from: PriceTokenAmount, toToken: PriceToken, slippageTolerance: number): Promise<ItCalculatedTrade>;
    protected getBestItContractTrade(blockchain: CelerCrossChainSupportedBlockchain, from: PriceTokenAmount, toToken: PriceToken, slippageTolerance: number, disabledProviders?: TradeType[]): Promise<CelerItCrossChainContractTrade>;
}
