import { BigNumber } from '@ethersproject/bignumber'; import { BigNumber as OldBigNumber } from '../../utils/bignumber'; import { PoolBase, PoolTypes, PoolPairBase, SwapTypes, SubgraphPoolBase, SubgraphToken } from '../../types'; type ElementPoolToken = Pick; export type ElementPoolPairData = PoolPairBase & { totalShares: BigNumber; expiryTime: number; unitSeconds: number; principalToken: string; baseToken: string; currentBlockTimestamp: number; }; export declare class ElementPool implements PoolBase { id: string; poolType: PoolTypes; address: string; swapFee: BigNumber; totalShares: BigNumber; tokens: ElementPoolToken[]; tokensList: string[]; expiryTime: number; unitSeconds: number; principalToken: string; baseToken: string; currentBlockTimestamp: number; static fromPool(pool: SubgraphPoolBase): ElementPool; constructor(id: string, address: string, swapFee: string, totalShares: string, tokens: ElementPoolToken[], tokensList: string[], expiryTime: number, unitSeconds: number, principalToken: string, baseToken: string); setCurrentBlockTimestamp(timestamp: number): void; parsePoolPairData(tokenIn: string, tokenOut: string): ElementPoolPairData; getNormalizedLiquidity(poolPairData: ElementPoolPairData): OldBigNumber; getLimitAmountSwap(poolPairData: ElementPoolPairData, swapType: SwapTypes): OldBigNumber; updateTokenBalanceForPool(token: string, newBalance: BigNumber): void; _exactTokenInForTokenOut(poolPairData: ElementPoolPairData, amount: OldBigNumber): OldBigNumber; _tokenInForExactTokenOut(poolPairData: ElementPoolPairData, amount: OldBigNumber): OldBigNumber; _spotPriceAfterSwapExactTokenInForTokenOut(poolPairData: ElementPoolPairData, amount: OldBigNumber): OldBigNumber; _spotPriceAfterSwapTokenInForExactTokenOut(poolPairData: ElementPoolPairData, amount: OldBigNumber): OldBigNumber; _derivativeSpotPriceAfterSwapExactTokenInForTokenOut(poolPairData: ElementPoolPairData, amount: OldBigNumber): OldBigNumber; _derivativeSpotPriceAfterSwapTokenInForExactTokenOut(poolPairData: ElementPoolPairData, amount: OldBigNumber): OldBigNumber; } export {};