import { Interface } from '@ethersproject/abi'; import { BigNumber } from '@ethersproject/bignumber'; import { BasePool } from '../balancer-v2-pool'; import { SubgraphPoolBase, PoolState, callData } from '../../types'; import { SwapSide } from '../../../../constants'; declare enum PairTypes { BptToToken = 0, TokenToBpt = 1, TokenToToken = 2 } type PhantomStablePoolPairData = { tokens: string[]; balances: bigint[]; indexIn: number; indexOut: number; scalingFactors: bigint[]; bptIndex: number; swapFee: bigint; amp: bigint; actualSupply: bigint | undefined; }; export declare class PhantomStablePool extends BasePool { private isComposable; MAX_TOKEN_BALANCE: BigNumber; vaultAddress: string; vaultInterface: Interface; poolInterface: Interface; constructor(vaultAddress: string, vaultInterface: Interface, isComposable?: boolean); onSell(amounts: bigint[], poolPairData: PhantomStablePoolPairData): bigint[]; onBuy(amounts: bigint[], poolPairData: PhantomStablePoolPairData): bigint[]; removeBPT(balances: bigint[], tokenIndexIn: number, tokenIndexOut: number, bptIndex: number): { balances: bigint[]; indexIn: number; indexOut: number; }; _swapGivenOut(tokenAmountsOut: bigint[], tokens: string[], balances: bigint[], indexIn: number, indexOut: number, bptIndex: number, scalingFactors: bigint[], swapFeePercentage: bigint, amplificationParameter: bigint, actualSupply: bigint | undefined): bigint[]; _swapGivenIn(tokenAmountsIn: bigint[], tokens: string[], balances: bigint[], indexIn: number, indexOut: number, bptIndex: number, scalingFactors: bigint[], swapFeePercentage: bigint, amplificationParameter: bigint, actualSupply: bigint | undefined): bigint[]; _onSwapGivenOut(tokenAmountsOut: bigint[], balances: bigint[], indexIn: number, indexOut: number, _amplificationParameter: bigint, virtualBptSupply: bigint, pairType: PairTypes): bigint[]; _onSwapGivenIn(tokenAmountsIn: bigint[], balances: bigint[], indexIn: number, indexOut: number, _amplificationParameter: bigint, virtualBptSupply: bigint, pairType: PairTypes): bigint[]; parsePoolPairData(pool: SubgraphPoolBase, poolState: PoolState, tokenIn: string, tokenOut: string): PhantomStablePoolPairData; getOnChainCalls(pool: SubgraphPoolBase): callData[]; decodeOnChainCalls(pool: SubgraphPoolBase, data: { success: boolean; returnData: any; }[], startIndex: number): [{ [address: string]: PoolState; }, number]; getSwapMaxAmount(poolPairData: PhantomStablePoolPairData, side: SwapSide): bigint; } export {};