import type { AuraPoolContract, CompoundV2PoolContract, ConvexPoolContract, CurvePoolContract, ERC4626VaultContract, UniswapV2Contract, YearnVaultContract } from "../contracts/contracts"; import { AaveV2LPToken } from "../tokens/aave"; import { AuraStakedToken } from "../tokens/aura"; import { BalancerLPToken } from "../tokens/balancer"; import { CompoundV2LPToken } from "../tokens/compound"; import type { ConvexLPToken, ConvexStakedPhantomToken } from "../tokens/convex"; import type { CurveLPToken } from "../tokens/curveLP"; import { ERC4626LPToken } from "../tokens/erc4626"; import type { NormalToken } from "../tokens/normal"; import type { YearnLPToken } from "../tokens/yearn"; export declare enum TradeType { UniswapV2Swap = 0, UniswapV3Swap = 1, CurveExchange = 2, CurveExchangeUnderlying = 3, CurveDepositLP = 4, CurveWithdrawLP = 5, YearnDeposit = 6, YearnWithdraw = 7, LidoStake = 8, ConvexDepositLP = 9, ConvexStake = 10, ConvexDepositLPAndStake = 11, ConvexWithdrawLP = 12, ConvexWithdraw = 13, ConvexWithdrawAndUnwrap = 14, BalancerJoin = 15, BalancerExit = 16, AaveV2Deposit = 17, AaveV2Withdraw = 18, AaveV2Unwrap = 19, CompoundV2Deposit = 20, CompoundV2Withdraw = 21, ERC4626Deposit = 22, ERC4626Withdraw = 23, AuraDepositLP = 24, AuraStake = 25, AuraDepositLPAndStake = 26, AuraWithdrawLP = 27, AuraWithdraw = 28, AuraWithdrawAndUnwrap = 29 } export type TradeAction = { type: TradeType.UniswapV2Swap; contract: UniswapV2Contract; tokenOut?: NormalToken; } | { type: TradeType.UniswapV3Swap; contract: "UNISWAP_V3_ROUTER"; tokenOut?: NormalToken; } | { type: TradeType.CurveExchange; contract: CurvePoolContract; tokenOut: Array; } | { type: TradeType.CurveDepositLP; contract: CurvePoolContract; tokenOut: CurveLPToken; } | { type: TradeType.CurveWithdrawLP; contract: CurvePoolContract; tokenOut: Array; } | { type: TradeType.YearnDeposit; contract: YearnVaultContract; tokenOut: YearnLPToken; } | { type: TradeType.YearnWithdraw; contract: YearnVaultContract; tokenOut: NormalToken | CurveLPToken; } | { type: TradeType.LidoStake; contract: "LIDO_STETH_GATEWAY"; tokenOut: NormalToken; } | { type: TradeType.ConvexDepositLP; contract: "CONVEX_BOOSTER"; tokenOut: ConvexLPToken; } | { type: TradeType.ConvexStake; contract: ConvexPoolContract; tokenOut: ConvexStakedPhantomToken; } | { type: TradeType.ConvexDepositLPAndStake; contract: "CONVEX_BOOSTER"; tokenOut: ConvexStakedPhantomToken; } | { type: TradeType.ConvexWithdrawLP; contract: "CONVEX_BOOSTER"; tokenOut: CurveLPToken; } | { type: TradeType.ConvexWithdraw; contract: ConvexPoolContract; tokenOut: ConvexLPToken; } | { type: TradeType.ConvexWithdrawAndUnwrap; contract: ConvexPoolContract; tokenOut: CurveLPToken; } | { type: TradeType.BalancerJoin; contract: "BALANCER_VAULT"; tokenOut: BalancerLPToken; } | { type: TradeType.BalancerExit; contract: "BALANCER_VAULT"; tokenOut: Array; } | { type: TradeType.AuraStake; contract: AuraPoolContract; tokenOut: AuraStakedToken; } | { type: TradeType.AuraDepositLPAndStake; contract: "AURA_BOOSTER"; tokenOut: AuraStakedToken; } | { type: TradeType.AuraWithdrawLP; contract: "AURA_BOOSTER"; tokenOut: BalancerLPToken; } | { type: TradeType.AaveV2Deposit; contract: "AAVE_V2_LENDING_POOL"; tokenOut: AaveV2LPToken; } | { type: TradeType.AaveV2Withdraw; contract: "AAVE_V2_LENDING_POOL"; tokenOut: NormalToken; } | { type: TradeType.CompoundV2Deposit; contract: CompoundV2PoolContract; tokenOut: CompoundV2LPToken; } | { type: TradeType.CompoundV2Withdraw; contract: CompoundV2PoolContract; tokenOut: NormalToken; } | { type: TradeType.ERC4626Deposit; contract: ERC4626VaultContract; tokenOut: ERC4626LPToken; } | { type: TradeType.ERC4626Withdraw; contract: ERC4626VaultContract; tokenOut: NormalToken | CurveLPToken; };