import { SwapSide } from '@paraswap/core'; import type { DepositWithdrawReturn } from '../dex/weth/types'; import type { ExecutorEncodingContext } from '../executor/encoding-types'; import type { Address, OptimalRate, OptimalSwap, OptimalSwapExchange } from '../types'; import type { ResolvedLeg, RoutePlan } from './resolved/types'; export type GenericDexCallParams = { srcToken: Address; destToken: Address; recipient: Address; srcAmount: string; destAmount: string; wethDeposit: bigint; wethWithdraw: bigint; }; export type WethCallDataProvider = (srcAmountWeth: string, destAmountWeth: string, side: SwapSide) => DepositWithdrawReturn | undefined | Promise; export type ResolvedLegWithWeth = { resolvedLeg: ResolvedLeg; wethDeposit: bigint; wethWithdraw: bigint; }; export type DexExchangeApprovalRequest = { params: [token: Address, target: Address, permit2: boolean]; routePositionKey: string; }; export declare function resolveQuotedAmount(priceRoute: Pick, quotedAmount?: string): string; export declare function resolveBeneficiary(userAddress: Address, beneficiary?: Address): Address; export declare function resolvePermit(permit?: string): string; export declare function buildGenericDexCallParams({ priceRoute, routeIndex, swap, swapIndex, swapExchange, minMaxAmount, dexNeedWrapNative, executionContractAddress, wrappedNativeTokenAddress, augustusV6Address, }: { priceRoute: OptimalRate; routeIndex: number; swap: OptimalSwap; swapIndex: number; swapExchange: OptimalSwapExchange; minMaxAmount: string; dexNeedWrapNative: boolean; executionContractAddress: Address; wrappedNativeTokenAddress: Address; augustusV6Address: Address; }): GenericDexCallParams; export declare function buildResolvedWethPlan({ resolvedLegsWithWeth, side, routePlan, getWethCallData, wrappedNativeTokenAddress, }: { resolvedLegsWithWeth: ResolvedLegWithWeth[]; side: SwapSide; routePlan: RoutePlan; getWethCallData: WethCallDataProvider; wrappedNativeTokenAddress: Address; }): Promise<{ resolvedLegs: ResolvedLeg[]; wethPlan?: DepositWithdrawReturn; }>; export declare function hasAnyRouteWithEthAndDifferentNeedWrapNative({ routePlan, resolvedLegs, wrappedNativeTokenAddress, }: { routePlan: RoutePlan; resolvedLegs: ResolvedLeg[]; wrappedNativeTokenAddress: Address; }): boolean; export declare function buildDexExchangeApprovalRequests({ executorEncodingContext, priceRoute, routePlan, resolvedLegs, }: { executorEncodingContext: ExecutorEncodingContext; priceRoute: OptimalRate; routePlan: RoutePlan; resolvedLegs: ResolvedLeg[]; }): DexExchangeApprovalRequest[]; export declare function applyDexExchangeApprovalDecisions({ resolvedLegs, approvalRequests, approvalDecisions, }: { resolvedLegs: ResolvedLeg[]; approvalRequests: DexExchangeApprovalRequest[]; approvalDecisions: boolean[]; }): ResolvedLeg[];