import { StatefulEventSubscriber } from '../../stateful-event-subscriber'; import { Interface } from '@ethersproject/abi'; import type { IDexHelper } from '../../dex-helper'; import type { DeepReadonly } from 'ts-essentials'; import type { Address, BlockHeader, Log, Logger } from '../../types'; import type { ERC4626PoolState } from './types'; import { Network } from '../../constants'; export declare class ERC4626EventPool extends StatefulEventSubscriber { protected dexHelper: IDexHelper; private vault; private asset; private wrapperInterface; private depositTopic; private withdrawTopic; private transferTopic; private cooldownEnabled; logDecoder: (log: Log) => any; constructor(parentName: string, network: Network, poolName: string, dexHelper: IDexHelper, vault: Address, asset: Address, wrapperInterface: Interface, logger: Logger, depositTopic: string, withdrawTopic: string, transferTopic: string, cooldownEnabled?: boolean); protected processLog(state: DeepReadonly, log: Readonly, blockHeader: Readonly): Promise | null>; generateState(blockNumber?: number | 'latest'): Promise>; getOrGenerateState(blockNumber: number): Promise; handleDeposit(event: any, state: DeepReadonly, _: Readonly): Promise>; handleAssetTransferToVault(event: any, state: DeepReadonly, _: Readonly): Promise>; handleWithdraw(event: any, state: DeepReadonly, _: Readonly): Promise>; }