import { InitializeStateOptions, StatefulEventSubscriber } from '../../stateful-event-subscriber'; import { DexParams, PoolPairsInfo, PoolState } from './types'; import { IDexHelper } from '../../dex-helper'; import { Log, Logger } from '../../types'; import { Interface } from 'ethers/lib/utils'; import { BlockHeader } from 'web3-eth'; import { DeepReadonly } from 'ts-essentials'; import { IBaseHook } from './hooks/types'; export declare class UniswapV4Pool extends StatefulEventSubscriber { readonly dexHelper: IDexHelper; private readonly network; private readonly config; protected logger: Logger; readonly poolId: string; readonly token0: string; readonly token1: string; readonly fee: string; readonly hooks: string; tickSpacing: string; readonly hook?: IBaseHook | undefined; handlers: { [event: string]: (event: any, pool: PoolState, log: Log, blockHeader: Readonly) => PoolState; }; logDecoder: (log: Log) => any; stateViewIface: Interface; poolManagerIface: Interface; stateMulticallIface: Interface; constructor(dexHelper: IDexHelper, parentName: string, network: number, config: DexParams, logger: Logger, mapKey: string | undefined, poolId: string, token0: string, token1: string, fee: string, hooks: string, tickSpacing: string, hook?: IBaseHook | undefined); initialize(blockNumber: number, options?: InitializeStateOptions): Promise; getPoolIdentifierData(): PoolPairsInfo; getOrGenerateState(blockNumber: number): Promise; generateState(blockNumber: number): Promise; getBitmapRange(): bigint; protected processBlockLogs(state: DeepReadonly, logs: Readonly[], blockHeader: Readonly): Promise | null>; protected processLog(state: PoolState, log: Readonly, blockHeader: Readonly): Promise>; handleProtocolFeeUpdatedEvent(event: any, poolState: PoolState): PoolState; handleDonateEvent(event: any, poolState: PoolState): PoolState; handleSwapEvent(event: any, poolState: PoolState): PoolState; handleModifyLiquidityEvent(event: any, poolState: PoolState, _: Log): PoolState; }