import { PriceTokenAmount, Web3Public } from '../../../../../core';
import BigNumber from 'bignumber.js';
import { CrossChainContractTrade } from './cross-chain-contract-trade';
import { CrossChainTrade } from '../cross-chain-trade';
export declare abstract class CelerRubicCrossChainTrade extends CrossChainTrade {
    protected readonly providerAddress: string;
    abstract readonly toTokenAmountMin: BigNumber;
    get priceImpactData(): {
        priceImpactFrom: number | null;
        priceImpactTo: number | null;
    };
    protected abstract readonly fromTrade: CrossChainContractTrade;
    protected abstract readonly toTrade: CrossChainContractTrade;
    protected abstract readonly cryptoFeeToken: PriceTokenAmount;
    protected abstract readonly toWeb3Public: Web3Public;
    protected get fromContractAddress(): string;
    protected constructor(providerAddress: string);
    protected abstract checkTradeErrors(): Promise<void | never>;
    protected checkContractsState(): Promise<void>;
    protected checkToBlockchainGasPrice(): Promise<void | never>;
    protected checkToContractBalance(): Promise<void | never>;
}
