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'; export type Gyro3PoolPairData = { balances: BigNumber[]; indexIn: number; indexOut: number; swapFee: bigint; balanceTertiary: BigNumber; decimalsTertiary: number; scalingFactors: bigint[]; root3Alpha: BigNumber; }; export declare class Gyro3Pool extends BasePool { vaultAddress: string; vaultInterface: Interface; poolInterface: Interface; constructor(vaultAddress: string, vaultInterface: Interface); parsePoolPairData(pool: SubgraphPoolBase, poolState: PoolState, tokenIn: string, tokenOut: string): Gyro3PoolPairData; getSwapMaxAmount(poolPairData: Gyro3PoolPairData, 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: Gyro3PoolPairData): bigint[]; onBuy(amounts: bigint[], poolPairData: Gyro3PoolPairData): bigint[]; }