import { BigNumber } from '@ethersproject/bignumber'; import { BigNumber as OldBigNumber } from '../../utils/bignumber'; import { PhantomStablePoolPairData } from './phantomStablePool'; /********************************************************************************************** // 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: PhantomStablePoolPairData): 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: PhantomStablePoolPairData): OldBigNumber; export declare function _tokenInForExactBPTOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _BPTInForExactTokenOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _solveAnalyticalBalance(sum: OldBigNumber, inv: OldBigNumber, amp: BigNumber, n_pow_n: OldBigNumber, p: OldBigNumber): OldBigNumber; export declare function _exactTokenInForBPTOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _exactBPTInForTokenOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _poolDerivatives(amp: BigNumber, balances: OldBigNumber[], tokenIndexIn: number, tokenIndexOut: number, is_first_derivative: boolean, wrt_out: boolean): OldBigNumber; export declare function _poolDerivativesBPT(amp: BigNumber, balances: OldBigNumber[], bptSupply: OldBigNumber, tokenIndexIn: number, is_first_derivative: boolean, is_BPT_out: boolean, wrt_out: boolean): OldBigNumber; export declare function _spotPriceAfterSwapExactTokenInForTokenOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _spotPriceAfterSwapTokenInForExactTokenOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _spotPriceAfterSwapExactTokenInForBPTOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _spotPriceAfterSwapTokenInForExactBPTOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _spotPriceAfterSwapExactBPTInForTokenOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _spotPriceAfterSwapBPTInForExactTokenOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _derivativeSpotPriceAfterSwapExactTokenInForTokenOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _derivativeSpotPriceAfterSwapTokenInForExactTokenOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _derivativeSpotPriceAfterSwapExactTokenInForBPTOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _derivativeSpotPriceAfterSwapTokenInForExactBPTOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _derivativeSpotPriceAfterSwapBPTInForExactTokenOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber; export declare function _derivativeSpotPriceAfterSwapExactBPTInForTokenOut(amount: OldBigNumber, poolPairData: PhantomStablePoolPairData): OldBigNumber;