import { BigNumber } from '@ethersproject/bignumber'; import { BigNumber as OldBigNumber } from '../../utils/bignumber'; import { PoolBase, PoolTypes, SwapTypes, SubgraphPoolBase, SubgraphToken } from '../../types'; import { StablePoolPairData } from '../stablePool/stablePool'; declare type MetaStablePoolToken = Pick; export declare type MetaStablePoolPairData = StablePoolPairData & { tokenInPriceRate: BigNumber; tokenOutPriceRate: BigNumber; }; export declare class MetaStablePool implements PoolBase { poolType: PoolTypes; id: string; address: string; amp: BigNumber; swapFee: BigNumber; totalShares: BigNumber; tokens: MetaStablePoolToken[]; tokensList: string[]; MAX_IN_RATIO: BigNumber; MAX_OUT_RATIO: BigNumber; static AMP_DECIMALS: number; static fromPool(pool: SubgraphPoolBase): MetaStablePool; constructor(id: string, address: string, amp: string, swapFee: string, totalShares: string, tokens: MetaStablePoolToken[], tokensList: string[]); parsePoolPairData(tokenIn: string, tokenOut: string): MetaStablePoolPairData; getNormalizedLiquidity(poolPairData: MetaStablePoolPairData): OldBigNumber; getLimitAmountSwap(poolPairData: MetaStablePoolPairData, swapType: SwapTypes): OldBigNumber; updateTokenBalanceForPool(token: string, newBalance: BigNumber): void; _exactTokenInForTokenOut(poolPairData: MetaStablePoolPairData, amount: OldBigNumber): OldBigNumber; _tokenInForExactTokenOut(poolPairData: MetaStablePoolPairData, amount: OldBigNumber): OldBigNumber; _spotPriceAfterSwapExactTokenInForTokenOut(poolPairData: MetaStablePoolPairData, amount: OldBigNumber): OldBigNumber; _spotPriceAfterSwapTokenInForExactTokenOut(poolPairData: MetaStablePoolPairData, amount: OldBigNumber): OldBigNumber; _derivativeSpotPriceAfterSwapExactTokenInForTokenOut(poolPairData: MetaStablePoolPairData, amount: OldBigNumber): OldBigNumber; _derivativeSpotPriceAfterSwapTokenInForExactTokenOut(poolPairData: MetaStablePoolPairData, amount: OldBigNumber): OldBigNumber; subtractSwapFeeAmount(amount: BigNumber, swapFee: BigNumber): BigNumber; addSwapFeeAmount(amount: BigNumber, swapFee: BigNumber): BigNumber; } export {};