import { InitializeStateOptions, StatefulEventSubscriber } from '../../stateful-event-subscriber'; import { DexParams, Pool, PoolManagerState, SubgraphConnectorPool } from './types'; import { Address, Log, Logger } from '../../types'; import { Interface } from 'ethers/lib/utils'; import { IDexHelper } from '../../dex-helper'; import { AsyncOrSync, DeepReadonly } from 'ts-essentials'; import { LogDescription } from '@ethersproject/abi/lib.esm'; import { FactoryState } from '../uniswap-v3/types'; import { UniswapV4Pool } from './uniswap-v4-pool'; import { PoolState } from './types'; import { IBaseHook } from './hooks/types'; export declare class UniswapV4PoolManager extends StatefulEventSubscriber { readonly dexHelper: IDexHelper; private readonly network; private readonly config; protected logger: Logger; handlers: { [event: string]: (event: any, log: Log) => AsyncOrSync; }; private pools; private eventPools; private poolInitPromises; logDecoder: (log: Log) => any; stateViewIface: Interface; poolManagerIface: Interface; stateMulticallIface: Interface; private wethAddress; private poolsCacheKey; private supportedHookAddresses; private hookInstancesByAddress; constructor(dexHelper: IDexHelper, parentName: string, network: number, config: DexParams, supportedHooks: IBaseHook[], logger: Logger, mapKey?: string); initialize(blockNumber: number, options?: InitializeStateOptions): Promise; generateState(): FactoryState; protected processLog(_: DeepReadonly, log: Readonly): Promise; getEventPool(poolId: string, blockNumber: number): Promise; private _initEventPool; getAvailablePoolsForPair(srcToken: Address, destToken: Address, blockNumber: number): Promise; private queryAllAvailablePools; handleInitializeEvent(event: LogDescription, log: Log): Promise; private isPoolWithUnconventionalFees; private registerHookPools; private getHook; private getBitmapRange; generateMultiplePoolStates(pools: SubgraphConnectorPool[], blockNumber: number): Promise<(PoolState | null)[]>; private isHookSupported; }