import { BigNumber } from 'ethers'; import { Currency, Percent, TradeType } from '@uniswap/sdk-core'; import { Trade } from '../entities/trade'; /** * Actions * @description Constants that define what action to perform * Not all actions are supported yet. * @enum {number} */ /** * UniversalRouter version * @description Version of the UniversalRouter contract * @enum {string} */ export declare enum URVersion { V2_0 = "2.0", V2_1_1 = "2.1.1" } export declare function isAtLeastV2_1_1(version?: string): boolean; export declare enum Actions { INCREASE_LIQUIDITY = 0, DECREASE_LIQUIDITY = 1, MINT_POSITION = 2, BURN_POSITION = 3, SWAP_EXACT_IN_SINGLE = 6, SWAP_EXACT_IN = 7, SWAP_EXACT_OUT_SINGLE = 8, SWAP_EXACT_OUT = 9, SETTLE = 11, SETTLE_ALL = 12, SETTLE_PAIR = 13, TAKE = 14, TAKE_ALL = 15, TAKE_PORTION = 16, TAKE_PAIR = 17, CLOSE_CURRENCY = 18, SWEEP = 20, UNWRAP = 22 } export declare enum Subparser { V4SwapExactInSingle = 0, V4SwapExactIn = 1, V4SwapExactOutSingle = 2, V4SwapExactOut = 3, PoolKey = 4 } export type ParamType = { readonly name: string; readonly type: string; readonly subparser?: Subparser; }; export declare const V4_BASE_ACTIONS_ABI_DEFINITION: { [key in Actions]: readonly ParamType[]; }; export declare const V4_SWAP_ACTIONS_V2_1_1: { [key: number]: readonly ParamType[]; }; export declare class V4Planner { actions: string; params: string[]; constructor(); addAction(type: Actions, parameters: any[], urVersion?: URVersion): V4Planner; addTrade(trade: Trade, slippageTolerance?: Percent, maxHopSlippage?: BigNumber[], urVersion?: URVersion): V4Planner; addSettle(currency: Currency, payerIsUser: boolean, amount?: BigNumber): V4Planner; addTake(currency: Currency, recipient: string, amount?: BigNumber): V4Planner; addUnwrap(amount: BigNumber): V4Planner; finalize(): string; private addSwapAction; }