import { Logger } from '../../types'; import { PoolState } from './types'; import { DeepReadonly } from 'ts-essentials'; export declare class NervePoolMath { protected name: string; protected logger: Logger; readonly FEE_DENOMINATOR: bigint; readonly A_PRECISION: bigint; readonly MAX_LOOP_LIMIT: bigint; readonly POOL_PRECISION_DECIMALS: bigint; constructor(name: string, logger: Logger); calculateSwap(state: DeepReadonly, tokenIndexFrom: number, tokenIndexTo: number, dx: bigint, blockTimestamp: bigint): { dy: bigint; dyFee: bigint; }; calculateWithdrawOneToken(state: DeepReadonly, tokenAmount: bigint, tokenIndex: number, blockTimeStamp: bigint): { dy: bigint; dyFee: bigint; }; protected _getNumTokens(state: DeepReadonly): bigint; protected _calculateWithdrawOneTokenDY(state: DeepReadonly, tokenIndex: number, tokenAmount: bigint, blockTimestamp: bigint): { dy: bigint; newY: bigint; }; protected _feePerToken(state: DeepReadonly): bigint; protected _calculateCurrentWithdrawFee(state: DeepReadonly): bigint; protected _getYD(a: bigint, tokenIndex: number, xp: bigint[], d: bigint): bigint; _getY(state: DeepReadonly, tokenIndexFrom: number, tokenIndexTo: number, x: bigint, xp: bigint[], blockTimestamp: bigint): bigint; protected _getAPrecise(state: DeepReadonly, blockTimestamp: bigint): bigint; protected _getD(state: DeepReadonly, xp: bigint[], a: bigint): bigint; _xp(state: DeepReadonly): bigint[]; }