import { BigNumber as OldBigNumber } from '../../utils/bignumber'; import { PoolBase, PoolTypes, PoolPairBase, SwapTypes, SubgraphPoolBase, SubgraphToken, NoNullableField } from '../../types'; import { BigNumber } from '@ethersproject/bignumber'; declare enum PairTypes { BptToToken = 0, TokenToBpt = 1, TokenToToken = 2 } export type WeightedPoolToken = Pick, 'address' | 'balance' | 'decimals' | 'weight'>; export type WeightedPoolPairData = PoolPairBase & { pairType: PairTypes; weightIn: BigNumber; weightOut: BigNumber; }; export declare class WeightedPool implements PoolBase { poolType: PoolTypes; id: string; address: string; swapFee: BigNumber; totalShares: BigNumber; tokens: WeightedPoolToken[]; totalWeight: BigNumber; tokensList: string[]; MAX_IN_RATIO: BigNumber; MAX_OUT_RATIO: BigNumber; isLBP: boolean; static fromPool(pool: SubgraphPoolBase, isLBP?: boolean): WeightedPool; constructor(id: string, address: string, swapFee: string, totalWeight: string, totalShares: string, tokens: WeightedPoolToken[], tokensList: string[]); parsePoolPairData(tokenIn: string, tokenOut: string): WeightedPoolPairData; getNormalizedLiquidity(poolPairData: WeightedPoolPairData): OldBigNumber; getLimitAmountSwap(poolPairData: PoolPairBase, swapType: SwapTypes): OldBigNumber; updateTokenBalanceForPool(token: string, newBalance: BigNumber): void; _exactTokenInForTokenOut(poolPairData: WeightedPoolPairData, amount: OldBigNumber): OldBigNumber; _tokenInForExactTokenOut(poolPairData: WeightedPoolPairData, amount: OldBigNumber): OldBigNumber; _spotPriceAfterSwapExactTokenInForTokenOut(poolPairData: WeightedPoolPairData, amount: OldBigNumber): OldBigNumber; _spotPriceAfterSwapTokenInForExactTokenOut(poolPairData: WeightedPoolPairData, amount: OldBigNumber): OldBigNumber; _derivativeSpotPriceAfterSwapExactTokenInForTokenOut(poolPairData: WeightedPoolPairData, amount: OldBigNumber): OldBigNumber; _derivativeSpotPriceAfterSwapTokenInForExactTokenOut(poolPairData: WeightedPoolPairData, amount: OldBigNumber): OldBigNumber; } export {};