import { Interface, JsonFragment } from '@ethersproject/abi'; import { DeepReadonly } from 'ts-essentials'; import { Log, Logger } from '../../types'; import { StatefulEventSubscriber } from '../../stateful-event-subscriber'; import { IDexHelper } from '../../dex-helper/idex-helper'; import { EventHandler, NervePoolConfig, PoolState } from './types'; import { BlockHeader } from 'web3-eth'; import { NervePoolMath } from './nerve-math'; export declare class NerveEventPool extends StatefulEventSubscriber { protected network: number; protected dexHelper: IDexHelper; protected poolName: string; poolConfig: NervePoolConfig; protected poolABI: JsonFragment[]; readonly math: NervePoolMath; handlers: { [event: string]: EventHandler; }; logDecoder: (log: Log) => any; poolIface: Interface; lpTokenIface: Interface; private _tokenAddresses?; constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, poolName: string, poolConfig?: NervePoolConfig, poolABI?: JsonFragment[]); get tokenAddresses(): string[]; get address(): string; get lpToken(): import("../../types").Token; get tokens(): import("../../types").Token[]; get tokenPrecisionMultipliers(): bigint[]; get numTokens(): number; processLog(state: DeepReadonly, log: Readonly, blockHeader: Readonly): DeepReadonly; generateState(blockNumber?: number | 'latest'): Promise>; handleNewFee(event: any, state: PoolState): PoolState; handleNewAdminFee(event: any, state: PoolState): PoolState; handleNewSwapFee(event: any, state: PoolState): PoolState; handleNewDepositFee(event: any, state: PoolState): PoolState; handleNewWithdrawFee(event: any, state: PoolState): PoolState; handleRampA(event: any, state: PoolState): PoolState; handleStopRampA(event: any, state: PoolState): PoolState; handleTokenSwap(event: any, state: PoolState, _2: Log, blockHeader: BlockHeader): PoolState; handleTokenExchange(event: any, state: PoolState, _2: Log, blockHeader: BlockHeader): PoolState; handleAddLiquidity(event: any, state: PoolState): PoolState; handleRemoveLiquidity(event: any, state: PoolState): PoolState; handleRemoveLiquidityOne(_0: any, state: PoolState, _2: Log): PoolState; handleRemoveLiquidityImbalance(event: any, state: PoolState): PoolState; }