import { Currency } from './currency'; import { CurrencyAmount } from './fractions/currencyAmount'; import { Percent } from './fractions/percent'; import { Price } from './fractions/price'; import { Pair } from './pair'; import { Route } from './route'; interface InputOutput { readonly inputAmount: CurrencyAmount; readonly outputAmount: CurrencyAmount; } export declare function ZapInputOutputComparator(a: InputOutput, b: InputOutput): number; export declare function zapTradeComparator(a: Zap, b: Zap): number; export interface BestZapOptions { maxNumResults?: number; maxHops?: number; } /** * Represents a trade executed against a list of pairs. * Does not account for slippage, i.e. trades that front run this trade and move the price. */ export declare class Zap { /** * The route of the trade, i.e. which pairs the trade goes through. */ readonly route: Route; /** * The input amount for the trade assuming no slippage. */ readonly inputAmount: CurrencyAmount; /** * The output amount for the trade assuming no slippage. */ readonly outputAmount: CurrencyAmount; /** * The price expressed in terms of output amount/input amount. */ readonly executionPrice: Price; /** * The mid price after the trade executes assuming no slippage. */ readonly nextMidPrice: Price; /** * The percent difference between the mid price before the trade and the trade execution price. */ readonly priceImpact: Percent; constructor(route: Route, amount: CurrencyAmount); /** * Get the minimum amount that must be received from this trade for the given slippage tolerance * @param slippageTolerance tolerance of unfavorable slippage from the execution price of this trade */ minimumAmountOut(slippageTolerance: Percent): CurrencyAmount; /** * Given a list of pairs, and a fixed amount in, returns the top `maxNumResults` trades that go from an input token * amount to an output token, making at most `maxHops` hops. * Note this does not consider aggregation, as routes are linear. It's possible a better route exists by splitting * the amount in among multiple routes. * @param pairs the pairs to consider in finding the best trade * @param currencyAmountIn exact amount of input currency to spend * @param currencyOut the desired currency out * @param maxNumResults maximum number of results to return * @param maxHops maximum number of hops a returned trade can make, e.g. 1 hop goes through a single pair * @param currentPairs used in recursion; the current list of pairs * @param originalAmountIn used in recursion; the original value of the currencyAmountIn parameter * @param bestZaps used in recursion; the current list of best trades */ static bestZapExactIn(pairs: Pair[], currencyAmountIn: CurrencyAmount, currencyOut: Currency, { maxNumResults, maxHops }?: BestZapOptions, currentPairs?: Pair[], originalAmountIn?: CurrencyAmount, bestZaps?: Zap[]): Zap[]; } export {};