import { PriceTokenAmount } from '../../../../core/blockchain/tokens/price-token-amount';
import { GasData } from '../../models/gas-data';
import { SwapTransactionOptions } from '../../../instant-trades/models/swap-transaction-options';
import BigNumber from 'bignumber.js';
import { CelerRubicCrossChainTrade } from '../common/celer-rubic/celer-rubic-cross-chain-trade';
import { Web3Public } from '../../../../core';
import { CrossChainContractTrade } from '../common/celer-rubic/cross-chain-contract-trade';
import { ContractParams } from '../../models/contract-params';
export declare class CelerCrossChainTrade extends CelerRubicCrossChainTrade {
    private readonly maxSlippage;
    static getGasData(fromTrade: CrossChainContractTrade, toTrade: CrossChainContractTrade, cryptoFeeToken: PriceTokenAmount, maxSlippage: number): Promise<GasData | null>;
    private readonly transitFeeToken;
    readonly from: PriceTokenAmount;
    readonly to: PriceTokenAmount;
    readonly toTokenAmountMin: BigNumber;
    readonly fromTrade: CrossChainContractTrade;
    readonly toTrade: CrossChainContractTrade;
    readonly gasData: GasData | null;
    readonly cryptoFeeToken: PriceTokenAmount;
    protected readonly fromWeb3Public: Web3Public;
    protected readonly toWeb3Public: Web3Public;
    constructor(crossChainTrade: {
        fromTrade: CrossChainContractTrade;
        toTrade: CrossChainContractTrade;
        cryptoFeeToken: PriceTokenAmount;
        transitFeeToken: PriceTokenAmount;
        gasData: GasData | null;
    }, providerAddress: string, maxSlippage: number);
    protected checkTradeErrors(): Promise<void | never>;
    swap(options?: SwapTransactionOptions): Promise<string | never>;
    private parseSwapErrors;
    protected getContractParams(fromAddress?: string): Promise<ContractParams>;
    private calculateSwapValue;
}
