import { Event } from "ethers";
declare type EthersEventTemplate = {
    address: string;
    event: string;
    topics: string[];
    args: Record<string, any>;
    data?: string;
    blockNumber?: number;
    transactionIndex?: number;
};
export declare class EventManager {
    blockNumber: number;
    private logIndexes;
    readonly minBlockRange = 10;
    readonly eventSignatures: Record<string, string>;
    constructor(blockNumber?: number);
    addEventSignatures(eventSignatures: Record<string, string>): void;
    generateEvent(inputs: EthersEventTemplate): Event;
}
/**
 * @description Retrieve an instance of the EventManager for a specific chain, or instantiate a new one.
 * @param chainId Chain ID to retrieve EventManager for.
 * @param eventSignatures Event Signatures to append to EventManager instance.
 * @param Initial blockNumber to use if a new EventManager is instantiated.
 * @returns EventManager instance for chain ID.
 */
export declare function getEventManager(chainId: number, eventSignatures?: Record<string, string>, blockNumber?: number): EventManager;
export {};
