import { BigNumber } from '@ethersproject/bignumber'; export type GyroEParams = { alpha: BigNumber; beta: BigNumber; c: BigNumber; s: BigNumber; lambda: BigNumber; }; export type DerivedGyroEParams = { tauAlpha: Vector2; tauBeta: Vector2; u: BigNumber; v: BigNumber; w: BigNumber; z: BigNumber; dSq: BigNumber; }; export type Vector2 = { x: BigNumber; y: BigNumber; }; export type QParams = { a: BigNumber; b: BigNumber; c: BigNumber; }; export declare function reduceFee(amountIn: BigNumber, swapFee: BigNumber): BigNumber; export declare function addFee(amountIn: BigNumber, swapFee: BigNumber): BigNumber; export declare function normalizeBalances(balances: BigNumber[], decimals: number[]): BigNumber[]; export declare function balancesFromTokenInOut(balanceTokenIn: BigNumber, balanceTokenOut: BigNumber, tokenInIsToken0: boolean): BigNumber[]; export declare function calcAtAChi(x: BigNumber, y: BigNumber, p: GyroEParams, d: DerivedGyroEParams): BigNumber; export declare function calcInvariantSqrt(x: BigNumber, y: BigNumber, p: GyroEParams, d: DerivedGyroEParams): BigNumber[]; export declare function calcAChiAChiInXp(p: GyroEParams, d: DerivedGyroEParams): BigNumber; export declare function checkAssetBounds(params: GyroEParams, derived: DerivedGyroEParams, invariant: Vector2, newBal: BigNumber, assetIndex: number): void; export declare function calcYGivenX(x: BigNumber, params: GyroEParams, d: DerivedGyroEParams, r: Vector2): BigNumber; export declare function calcXGivenY(y: BigNumber, params: GyroEParams, d: DerivedGyroEParams, r: Vector2): BigNumber; export declare function virtualOffset0(p: GyroEParams, d: DerivedGyroEParams, r: Vector2, switchTau?: boolean): BigNumber; export declare function virtualOffset1(p: GyroEParams, d: DerivedGyroEParams, r: Vector2, switchTau?: boolean): BigNumber; export declare function calcXpXpDivLambdaLambda(x: BigNumber, r: Vector2, lambda: BigNumber, s: BigNumber, c: BigNumber, tauBeta: Vector2, dSq: BigNumber): BigNumber; export declare function mulA(params: GyroEParams, tp: Vector2): Vector2; export declare function scalarProd(t1: Vector2, t2: Vector2): BigNumber;