import { Interface } from '@ethersproject/abi'; import { BigNumber } from '@ethersproject/bignumber'; import { BasePool } from '../balancer-v2-pool'; import { SwapSide } from '../../../../constants'; import { callData, SubgraphPoolBase, PoolState } from '../../types'; import { DerivedGyroEParams, GyroEParams } from '@balancer-labs/sor'; export type GyroEPoolPairData = { balances: BigNumber[]; tokenRates: bigint[]; gyroParams: GyroEParams; gyroDerivedParams: DerivedGyroEParams; rateProviders: string[]; indexIn: number; indexOut: number; swapFee: bigint; scalingFactors: bigint[]; tokenInIsToken0: boolean; }; export declare class GyroEPool extends BasePool { vaultAddress: string; vaultInterface: Interface; poolInterface: Interface; constructor(vaultAddress: string, vaultInterface: Interface); parsePoolPairData(pool: SubgraphPoolBase, poolState: PoolState, tokenIn: string, tokenOut: string): GyroEPoolPairData; getSwapMaxAmount(poolPairData: GyroEPoolPairData, side: SwapSide): bigint; getOnChainCalls(pool: SubgraphPoolBase): callData[]; decodeOnChainCalls(pool: SubgraphPoolBase, data: { success: boolean; returnData: any; }[], startIndex: number): [{ [address: string]: PoolState; }, number]; onSell(amounts: bigint[], poolPairData: GyroEPoolPairData): bigint[]; onBuy(amounts: bigint[], poolPairData: GyroEPoolPairData): bigint[]; private _scalingFactor; private _normalizeBalances; }