import { RoutePlanner } from '../../utils/routerCommands'; import { Trade as RouterTrade, SwapOptions as RouterSwapOptions } from '@uniswap/router-sdk'; import { Permit2Permit } from '../../utils/inputTokens'; import { Currency, TradeType } from '@uniswap/sdk-core'; import { Command, RouterActionType, TradeConfig } from '../Command'; import { UniversalRouterVersion } from '../../utils/constants'; import { BigNumberish } from 'ethers'; export type FlatFeeOptions = { amount: BigNumberish; recipient: string; }; export declare enum TokenTransferMode { Permit2 = "Permit2", ApproveProxy = "ApproveProxy" } export type SwapOptions = Omit & { useRouterBalance?: boolean; inputTokenPermit?: Permit2Permit; flatFee?: FlatFeeOptions; safeMode?: boolean; urVersion?: UniversalRouterVersion; tokenTransferMode?: TokenTransferMode; chainId?: number; }; export declare class UniswapTrade implements Command { trade: RouterTrade; options: SwapOptions; readonly tradeType: RouterActionType; readonly payerIsUser: boolean; constructor(trade: RouterTrade, options: SwapOptions); get isAllV4(): boolean; get inputRequiresWrap(): boolean; get inputRequiresUnwrap(): boolean; get outputRequiresWrap(): boolean; get outputRequiresUnwrap(): boolean; get outputRequiresTransition(): boolean; encode(planner: RoutePlanner, _config: TradeConfig): void; }