import { Interface } from '@ethersproject/abi'; import { SwapSide } from '../constants'; import { AdapterExchangeParam, Address, DexExchangeParam, NumberAsString, SimpleExchangeParam } from '../types'; import { IDexTxBuilder } from './idex'; import { SimpleExchange } from './simple-exchange'; import { IDexHelper } from '../dex-helper'; export declare type JarvisData = { derivatives: string; destDerivatives?: string; pools: string[]; fee: string; method: JarvisFunctions; router: Address; }; declare type JarvisMintParam = [ derivative: string, minNumTokens: string, collateralAmount: string, feePercentage: string, expiration: string, recipient: string ]; declare type JarvisRedeemParam = [ derivative: string, numTokens: string, minCollateral: string, feePercentage: string, expiration: string, recipient: string ]; declare type JarvisExchangeParam = [ derivative: string, destPool: string, destDerivative: string, numTokens: string, minDestNumTokens: string, feePercentage: string, expiration: string, recipient: string ]; declare type JarvisParam = JarvisExchangeParam | JarvisMintParam | JarvisRedeemParam; declare enum JarvisFunctions { mint = "mint", redeem = "redeem", exchange = "exchange" } export declare class Jarvis extends SimpleExchange implements IDexTxBuilder { static dexKeys: string[]; poolInterface: Interface; needWrapNative: boolean; constructor(dexHelper: IDexHelper); getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: JarvisData, side: SwapSide): AdapterExchangeParam; getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: JarvisData, side: SwapSide): Promise; getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: JarvisData, side: SwapSide): DexExchangeParam; } export {};