import { BigNumber } from '@ethersproject/bignumber'; import { BigNumber as OldBigNumber } from '../../utils/bignumber'; import { StablePoolPairData } from './stablePool'; /********************************************************************************************** // invariant // // D = invariant to compute // // A = amplifier n * D^2 + A * n^n * S * (n^n * P / D^(nāˆ’1)) // // S = sum of balances ____________________________________________ // // P = product of balances (n+1) * D + ( A * n^n āˆ’ 1)* (n^n * P / D^(nāˆ’1)) // // n = number of tokens // **********************************************************************************************/ export declare function _invariant(amp: BigNumber, // amp balances: OldBigNumber[]): OldBigNumber; /********************************************************************************************** // outGivenIn token x for y - polynomial equation to solve // // ay = amount out to calculate // // by = balance token out // // y = by - ay // // D = invariant D D^(n+1) // // A = amplifier y^2 + ( S - ---------- - 1) * y - ------------- = 0 // // n = number of tokens (A * n^n) A * n^2n * P // // S = sum of final balances but y // // P = product of final balances but y // **********************************************************************************************/ export declare function _exactTokenInForTokenOut(amount: OldBigNumber, poolPairData: StablePoolPairData): OldBigNumber; /********************************************************************************************** // inGivenOut token x for y - polynomial equation to solve // // ax = amount in to calculate // // bx = balance token in // // x = bx + ax // // D = invariant D D^(n+1) // // A = amplifier x^2 + ( S - ---------- - 1) * x - ------------- = 0 // // n = number of tokens (A * n^n) A * n^2n * P // // S = sum of final balances but x // // P = product of final balances but x // **********************************************************************************************/ export declare function _tokenInForExactTokenOut(amount: OldBigNumber, poolPairData: StablePoolPairData): OldBigNumber; export declare function _spotPriceAfterSwapExactTokenInForTokenOut(amount: OldBigNumber, poolPairData: StablePoolPairData): OldBigNumber; export declare function _spotPriceAfterSwapTokenInForExactTokenOut(amount: OldBigNumber, poolPairData: StablePoolPairData): OldBigNumber; export declare function _derivativeSpotPriceAfterSwapExactTokenInForTokenOut(amount: OldBigNumber, poolPairData: StablePoolPairData): OldBigNumber; export declare function _derivativeSpotPriceAfterSwapTokenInForExactTokenOut(amount: OldBigNumber, poolPairData: StablePoolPairData): OldBigNumber; export declare function _spotPriceAfterSwapTokenInForExactBPTOut(amount: OldBigNumber, poolPairData: StablePoolPairData): OldBigNumber;