import { Address, DexExchangeParam, DexExchangeParamWithBooleanNeedWrapNative, GetDexParamOptions, OptimalRate, OptimalSwap, OptimalSwapExchange, TxObject } from './types'; import { AbiCoder, Interface } from '@ethersproject/abi'; import { DepositWithdrawReturn } from './dex/weth/types'; import { DexAdapterService } from './dex'; import { ExecutorDetector } from './executor/ExecutorDetector'; import { ExecutorBytecodeBuilder } from './executor/ExecutorBytecodeBuilder'; import { SwapSide } from '@paraswap/core'; export declare function normaliseRemoteDexExchangeParam(raw: unknown): DexExchangeParam; export type NewDexConfig = { needWrapNative: boolean; }; export type NewDexsConfig = { [dexKey: string]: NewDexConfig; }; type NewDexEntry = NewDexConfig & { key: string; }; export declare class GenericSwapTransactionBuilder { protected dexAdapterService: DexAdapterService; protected wExchangeNetworkToKey: Record; protected newDexsApiUrl?: string | undefined; protected newDexs?: NewDexsConfig | undefined; protected skipApprovalCheck: boolean; augustusV6Interface: Interface; augustusV6Address: Address; erc20Interface: Interface; abiCoder: AbiCoder; executorDetector: ExecutorDetector; constructor(dexAdapterService: DexAdapterService, wExchangeNetworkToKey?: Record, newDexsApiUrl?: string | undefined, newDexs?: NewDexsConfig | undefined, skipApprovalCheck?: boolean); protected getDepositWithdrawWethCallData(srcAmountWeth: bigint, destAmountWeth: bigint, side: SwapSide, priceRoute: OptimalRate, exchangeParams: DexExchangeParamWithBooleanNeedWrapNative[]): DepositWithdrawReturn | undefined; protected findNewDex(exchange: string): NewDexEntry | undefined; protected buildCalls(priceRoute: OptimalRate, minMaxAmount: string, bytecodeBuilder: ExecutorBytecodeBuilder, userAddress: string, getDexParamOptions?: GetDexParamOptions): Promise; protected fetchRemoteDexParam(args: { dexKey: string; srcToken: Address; destToken: Address; srcAmount: string; destAmount: string; recipient: Address; data: any; side: SwapSide; executorAddress: Address; options?: GetDexParamOptions; }): Promise; protected _build(priceRoute: OptimalRate, minMaxAmount: string, quotedAmount: string, userAddress: Address, referrerAddress: Address | undefined, partnerAddress: Address, partnerFeePercent: string, takeSurplus: boolean, isCapSurplus: boolean, isSurplusToUser: boolean, isDirectFeeTransfer: boolean, beneficiary: Address, permit: string, uuid: string, getDexParamOptions?: GetDexParamOptions): Promise<{ encoder: (...params: any[]) => string; params: (string | string[])[]; }>; protected _buildDirect(priceRoute: OptimalRate, minMaxAmount: string, quotedAmount: string, referrerAddress: Address | undefined, partnerAddress: Address, partnerFeePercent: string, takeSurplus: boolean, isCapSurplus: boolean, isSurplusToUser: boolean, isDirectFeeTransfer: boolean, permit: string, uuid: string, beneficiary: Address): Promise>; private buildFeesV6; build({ priceRoute, minMaxAmount, quotedAmount, userAddress, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus, isCapSurplus, isSurplusToUser, isDirectFeeTransfer, gasPrice, maxFeePerGas, maxPriorityFeePerGas, permit, uuid, beneficiary, onlyParams, getDexParamOptions, }: { priceRoute: OptimalRate; minMaxAmount: string; quotedAmount?: string; userAddress: Address; referrerAddress?: Address; partnerAddress: Address; partnerFeePercent: string; takeSurplus?: boolean; isCapSurplus?: boolean; isSurplusToUser?: boolean; isDirectFeeTransfer?: boolean; gasPrice?: string; maxFeePerGas?: string; maxPriorityFeePerGas?: string; permit?: string; deadline: string; uuid: string; beneficiary?: Address; onlyParams?: boolean; getDexParamOptions?: GetDexParamOptions; }): Promise; private packPartnerAndFeeData; getExecutionContractAddress(priceRoute: OptimalRate): Address; getDexCallsParams(priceRoute: OptimalRate, routeIndex: number, swap: OptimalSwap, swapIndex: number, se: OptimalSwapExchange, minMaxAmount: string, dexNeedWrapNative: boolean, executionContractAddress: string): { srcToken: Address; destToken: Address; recipient: Address; srcAmount: string; destAmount: string; wethDeposit: bigint; wethWithdraw: bigint; }; private addDexExchangeApproveParams; private hasAnyRouteWithEthAndDifferentNeedWrapNative; } export {};