import { BasicTransactionOptions } from '../../core/blockchain/models/basic-transaction-options'; import { PriceTokenAmount } from '../../core/blockchain/tokens/price-token-amount'; import { EncodeTransactionOptions } from './models/encode-transaction-options'; import { GasFeeInfo } from './models/gas-fee-info'; import { SwapTransactionOptions } from './models/swap-transaction-options'; import { TransactionConfig } from 'web3-core'; import { TransactionReceipt } from 'web3-eth'; import { Web3Public } from '../../core/blockchain/web3-public/web3-public'; import { BlockchainName } from '../../core/blockchain/models/blockchain-name'; import { OptionsGasParams, TransactionGasParams } from './models/gas-params'; import { TradeType } from '..'; export declare abstract class InstantTrade { abstract readonly from: PriceTokenAmount; abstract readonly to: PriceTokenAmount; abstract gasFeeInfo: GasFeeInfo | null; abstract slippageTolerance: number; protected abstract contractAddress: string; protected readonly web3Public: Web3Public; abstract get type(): TradeType; get toTokenAmountMin(): PriceTokenAmount; protected get walletAddress(): string; get priceImpact(): number | null; protected constructor(blockchain: BlockchainName); needApprove(fromAddress?: string): Promise; approve(options?: BasicTransactionOptions): Promise; protected checkAllowanceAndApprove(options?: Omit): Promise; abstract swap(options?: SwapTransactionOptions): Promise; abstract encode(options: EncodeTransactionOptions): Promise; protected checkWalletState(): Promise; protected checkWalletConnected(): never | void; private checkBlockchainCorrect; protected getGasParams(options: OptionsGasParams): TransactionGasParams; }