import { TradeType } from '@uniswap/sdk-core'; import { JsonRpcProvider, TransactionRequest } from 'ethers'; import { CoinAmount, Coin, ERC20, Native, SecondaryFee, TransactionDetails } from '../../types'; type PreparedApproval = { spender: string; amount: CoinAmount; }; export declare const prepareApproval: (tradeType: TradeType, userSpecifiedAmount: CoinAmount, quotedAmountWithSlippage: CoinAmount, contracts: { routerAddress: string; secondaryFeeAddress: string; }, secondaryFees: SecondaryFee[]) => PreparedApproval | null; /** * Get an unsigned approval transaction if needed * * @param provider The provider to use for the call * @param ownerAddress The address of the owner of the token * @param tokenAddress The address of the token to approve * @param tokenAmount The amount of the token to approve * @param spenderAddress The address of the spender * @returns The unsigned ERC20 approve transaction, or null if no approval is needed */ export declare const getApproveTransaction: (provider: JsonRpcProvider, ownerAddress: string, tokenAmount: CoinAmount, spenderAddress: string) => Promise; export declare function getApproveGasEstimate(provider: JsonRpcProvider, ownerAddress: string, spenderAddress: string, tokenAddress: string): Promise; export declare const getApproval: (provider: JsonRpcProvider, ownerAddress: string, preparedApproval: PreparedApproval, gasPrice: CoinAmount | null) => Promise; export {};