import BigNumber from 'bignumber.js';
import { PriceTokenAmount } from "../../../../../common/tokens";
import { EvmBlockchainName } from "../../../../../core/blockchain/models/blockchain-name";
import { EvmBasicTransactionOptions } from "../../../../../core/blockchain/web3-private-service/web3-private/evm-web3-private/models/evm-basic-transaction-options";
import { EvmEncodeConfig } from "../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/models/evm-encode-config";
import { ContractParams } from "../../../../common/models/contract-params";
import { TransactionReceipt } from 'web3-eth';
import { CrossChainTradeType } from '../../models/cross-chain-trade-type';
import { EvmCrossChainTrade } from '../common/evm-cross-chain-trade/evm-cross-chain-trade';
import { GasData } from '../common/evm-cross-chain-trade/models/gas-data';
import { BridgeType } from '../common/models/bridge-type';
import { FeeInfo } from '../common/models/fee-info';
import { GetContractParamsOptions } from '../common/models/get-contract-params-options';
import { OnChainSubtype } from '../common/models/on-chain-subtype';
import { TradeInfo } from '../common/models/trade-info';
import { EddyBridgeTradeConstructorParams } from './models/eddy-trade-types';
export declare class EddyBridgeTrade extends EvmCrossChainTrade {
    /**ABSTRACT PROPS */
    readonly type: CrossChainTradeType;
    readonly isAggregator: boolean;
    readonly to: PriceTokenAmount<EvmBlockchainName>;
    readonly from: PriceTokenAmount<EvmBlockchainName>;
    readonly toTokenAmountMin: BigNumber;
    readonly feeInfo: FeeInfo;
    readonly onChainSubtype: OnChainSubtype;
    readonly bridgeType: BridgeType;
    readonly gasData: GasData;
    readonly priceImpact: number | null;
    private readonly slippage;
    private readonly quoteOptions;
    private readonly routingDirection;
    private get fromBlockchain();
    protected get fromContractAddress(): string;
    protected get methodName(): string;
    constructor(params: EddyBridgeTradeConstructorParams);
    getContractParams(options: GetContractParamsOptions): Promise<ContractParams>;
    protected getTransactionConfigAndAmount(_receiverAddress?: string): Promise<{
        config: EvmEncodeConfig;
        amount: string;
    }>;
    getTradeInfo(): TradeInfo;
    needApprove(): Promise<boolean>;
    approve(options: EvmBasicTransactionOptions, checkNeedApprove?: boolean, amount?: BigNumber): Promise<TransactionReceipt>;
}
