import BigNumber from 'bignumber.js';
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 { EncodeTransactionOptions } from "../../../../../common/models/encode-transaction-options";
import { TransactionReceipt } from 'web3-eth';
import { OnChainTradeType } from '../../common/models/on-chain-trade-type';
import { AggregatorEvmOnChainTrade } from '../../common/on-chain-aggregator/aggregator-evm-on-chain-trade-abstract';
import { EvmEncodedConfigAndToAmount } from '../../common/on-chain-aggregator/models/aggregator-on-chain-types';
import { OkuSwapSupportedBlockchain } from './models/okuswap-on-chain-supported-chains';
import { OkuSwapOnChainTradeStruct } from './models/okuswap-trade-types';
export declare class OkuSwapOnChainTrade extends AggregatorEvmOnChainTrade {
    readonly type: OnChainTradeType;
    private readonly okuSubProvider;
    private readonly quoteReqBody;
    private readonly swapReqBody;
    protected readonly providerGateway: string;
    protected get spenderAddress(): string;
    protected get fromBlockchain(): OkuSwapSupportedBlockchain;
    get dexContractAddress(): string;
    constructor(tradeStruct: OkuSwapOnChainTradeStruct, providerAddress: string, providerGateway: string);
    /**
     * Sends approve and if needed permit2Approve on UniswapV3Like-contract
     */
    approve(options: EvmBasicTransactionOptions, checkNeedApprove?: boolean, amount?: BigNumber | 'infinity'): Promise<TransactionReceipt>;
    needApprove(fromAddress?: string): Promise<boolean>;
    private needPermit2Approve;
    encode(options: EncodeTransactionOptions): Promise<EvmEncodeConfig>;
    protected getTransactionConfigAndAmount(_options: EncodeTransactionOptions): Promise<EvmEncodedConfigAndToAmount>;
}
