import { Interface } from '@ethersproject/abi'; import { callData, PoolState, SubgraphPoolBase } from '../../types'; import { SwapSide } from '../../../../constants'; import { BaseMinimalSwapInfoPool } from '../balancer-v2-pool'; export type WeightedPoolPairData = { tokenInBalance: bigint; tokenOutBalance: bigint; tokenInScalingFactor: bigint; tokenOutScalingFactor: bigint; tokenInWeight: bigint; tokenOutWeight: bigint; swapFee: bigint; }; export declare class WeightedPool extends BaseMinimalSwapInfoPool { vaultAddress: string; vaultInterface: Interface; poolInterface: Interface; constructor(vaultAddress: string, vaultInterface: Interface); _onSwapGivenOut(tokenAmountsOut: bigint[], currentBalanceTokenIn: bigint, currentBalanceTokenOut: bigint, _weightIn: bigint, _weightOut: bigint): bigint[]; _onSwapGivenIn(tokenAmountsIn: bigint[], currentBalanceTokenIn: bigint, currentBalanceTokenOut: bigint, _weightIn: bigint, _weightOut: bigint): bigint[]; parsePoolPairData(pool: SubgraphPoolBase, poolState: PoolState, tokenIn: string, tokenOut: string): WeightedPoolPairData; getOnChainCalls(pool: SubgraphPoolBase): callData[]; decodeOnChainCalls(pool: SubgraphPoolBase, data: { success: boolean; returnData: any; }[], startIndex: number): [{ [address: string]: PoolState; }, number]; getSwapMaxAmount(poolPairData: WeightedPoolPairData, side: SwapSide): bigint; }