import { SwapSide } from '../constants'; import { AdapterExchangeParam, Address, SimpleExchangeParam } from '../types'; import { IDexTxBuilder } from './idex'; import { IDexHelper } from '../dex-helper'; import { SimpleExchange } from './simple-exchange'; import { NumberAsString } from '@paraswap/core'; import { AsyncOrSync } from 'ts-essentials'; import { Interface } from '@ethersproject/abi'; declare type TraderJoeV2RouterSellParams = [ _amountIn: NumberAsString, _amountOutMin: NumberAsString, _pairBinSteps: NumberAsString[], _tokenPath: Address[], to: Address, _deadline: number ]; declare type TraderJoeV2RouterBuyParams = [ _amountOut: NumberAsString, _amountInMax: NumberAsString, _pairBinSteps: NumberAsString[], _tokenPath: Address[], to: Address, _deadline: string ]; declare type TraderJoeV2RouterParam = TraderJoeV2RouterSellParams | TraderJoeV2RouterBuyParams; export declare type TraderJoeV2Data = { tokenIn: string; tokenOut: string; binStep: string; }; export declare class TraderJoeV2 extends SimpleExchange implements IDexTxBuilder { static dexKeys: string[]; protected routerAddress: string; exchangeRouterInterface: Interface; needWrapNative: boolean; constructor(dexHelper: IDexHelper); getAdapterParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, data: TraderJoeV2Data, side: SwapSide): AdapterExchangeParam; getSimpleParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, data: TraderJoeV2Data, side: SwapSide): AsyncOrSync; } export {};