import { Logger } from 'pino'; import { z } from 'zod'; import { Address } from '@hyperlane-xyz/utils'; import type { ChainMetadataManager } from '../../metadata/ChainMetadataManager.js'; import { MultiProvider } from '../../providers/MultiProvider.js'; import type { ChainNameOrId } from '../../types.js'; import { GetEventLogsResponse } from './types.js'; export type EvmEventLogsReaderConfig = { chain: ChainNameOrId; useRPC?: boolean; paginationBlockRange?: number; }; export declare const GetLogByTopicOptionsSchema: z.ZodObject<{ eventTopic: z.ZodEffects; contractAddress: z.ZodString; fromBlock: z.ZodOptional; toBlock: z.ZodOptional; }, "strip", z.ZodTypeAny, { contractAddress: string; eventTopic: string; fromBlock?: number | undefined; toBlock?: number | undefined; }, { contractAddress: string; eventTopic: string; fromBlock?: number | undefined; toBlock?: number | undefined; }>; export declare const RequiredGetLogByTopicOptionsSchema: z.ZodObject<{ eventTopic: z.ZodEffects; contractAddress: z.ZodString; fromBlock: z.ZodNumber; toBlock: z.ZodNumber; }, "strip", z.ZodTypeAny, { fromBlock: number; toBlock: number; contractAddress: string; eventTopic: string; }, { fromBlock: number; toBlock: number; contractAddress: string; eventTopic: string; }>; type GetLogByTopicOptions = z.infer; type RequiredGetLogByTopicOptions = z.infer; interface IEvmEventLogsReaderStrategy { getContractDeploymentBlockNumber(address: Address): Promise; getContractLogs(address: RequiredGetLogByTopicOptions): Promise; } export declare class EvmEtherscanLikeEventLogsReader implements IEvmEventLogsReaderStrategy { protected readonly chain: ChainNameOrId; protected readonly config: Awaited>; protected readonly multiProvider: MultiProvider; constructor(chain: ChainNameOrId, config: Awaited>, multiProvider: MultiProvider); getContractDeploymentBlockNumber(address: string): Promise; getContractLogs(options: RequiredGetLogByTopicOptions): Promise; } export declare class EvmRpcEventLogsReader implements IEvmEventLogsReaderStrategy { protected readonly chain: ChainNameOrId; protected readonly config: { paginationBlockRange?: number; }; protected readonly multiProvider: MultiProvider; constructor(chain: ChainNameOrId, config: { paginationBlockRange?: number; }, multiProvider: MultiProvider); getContractDeploymentBlockNumber(address: string): Promise; getContractLogs(options: RequiredGetLogByTopicOptions): Promise; } export declare class EvmEventLogsReader { protected readonly config: EvmEventLogsReaderConfig; protected readonly multiProvider: MultiProvider; protected logReaderStrategy: IEvmEventLogsReaderStrategy; protected readonly logger: Logger; protected fallbackLogReaderStrategy?: IEvmEventLogsReaderStrategy | undefined; private deploymentBlockCache; protected constructor(config: EvmEventLogsReaderConfig, multiProvider: MultiProvider, logReaderStrategy: IEvmEventLogsReaderStrategy, logger: Logger, fallbackLogReaderStrategy?: IEvmEventLogsReaderStrategy | undefined); static fromConfig(config: EvmEventLogsReaderConfig, multiProvider: MultiProvider, logger?: Logger): EvmEventLogsReader; getLogsByTopic(options: GetLogByTopicOptions): Promise; private getDeploymentBlock; private getLogsByTopicWithStrategy; } export {}; //# sourceMappingURL=EvmEventLogsReader.d.ts.map