import { BigNumber } from '@ethersproject/bignumber'; import { BigNumber as OldBigNumber } from '../../utils/bignumber'; import { PoolBase, PoolTypes, PoolPairBase, SwapTypes, SubgraphPoolBase, SubgraphToken } from '../../types'; export declare enum PairTypes { BptToMainToken = 0, MainTokenToBpt = 1, MainTokenToWrappedToken = 2, WrappedTokenToMainToken = 3, BptToWrappedToken = 4, WrappedTokenToBpt = 5 } type LinearPoolToken = Pick; export type LinearPoolPairData = PoolPairBase & { pairType: PairTypes; wrappedBalance: OldBigNumber; wrappedBalanceScaled: BigNumber; wrappedDecimals: number; rate: BigNumber; lowerTarget: BigNumber; upperTarget: BigNumber; mainBalanceScaled: BigNumber; bptBalanceScaled: BigNumber; virtualBptSupply: BigNumber; }; export declare class LinearPool implements PoolBase { poolType: PoolTypes; id: string; address: string; swapFee: BigNumber; totalShares: BigNumber; tokens: LinearPoolToken[]; tokensList: string[]; wrappedIndex: number; wrappedDecimals: number; mainIndex: number; bptIndex: number; lowerTarget: BigNumber; upperTarget: BigNumber; MAX_RATIO: BigNumber; ALMOST_ONE: BigNumber; MAX_TOKEN_BALANCE: BigNumber; static fromPool(pool: SubgraphPoolBase): LinearPool; constructor(id: string, address: string, swapFee: string, totalShares: string, tokens: LinearPoolToken[], tokensList: string[], mainIndex: number, wrappedIndex: number, lowerTarget: string, upperTarget: string); parsePoolPairData(tokenIn: string, tokenOut: string): LinearPoolPairData; getNormalizedLiquidity(poolPairData: LinearPoolPairData): OldBigNumber; getLimitAmountSwap(poolPairData: LinearPoolPairData, swapType: SwapTypes): OldBigNumber; updateTokenBalanceForPool(token: string, newBalance: BigNumber): void; _exactTokenInForTokenOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _exactWrappedTokenInForMainOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _exactMainTokenInForWrappedOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _exactMainTokenInForBPTOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _exactBPTInForMainTokenOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _exactWrappedTokenInForBPTOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _exactBPTInForWrappedTokenOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _tokenInForExactTokenOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _wrappedTokenInForExactMainOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _mainTokenInForExactWrappedOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _mainTokenInForExactBPTOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _BPTInForExactMainTokenOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _wrappedTokenInForExactBPTOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _BPTInForExactWrappedTokenOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _spotPriceAfterSwapExactTokenInForTokenOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _spotPriceAfterSwapTokenInForExactTokenOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _derivativeSpotPriceAfterSwapExactTokenInForTokenOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; _derivativeSpotPriceAfterSwapTokenInForExactTokenOut(poolPairData: LinearPoolPairData, amount: OldBigNumber): OldBigNumber; } export {};