import { SpokePool, TypedEvent } from "../../../typechain";
import { Logger } from "../logger";
/**
 * Interface implemented by classes that fetch contract events from the SpokePool contracts
 */
export interface ISpokePoolContractEventsQuerier {
    getFundsDepositEvents: (from: number, to: number, depositorAddr?: string) => Promise<TypedEvent<any>[]>;
    getFilledRelayEvents: (from: number, to: number, depositorAddr?: string) => Promise<TypedEvent<any>[]>;
    getSpeedUpDepositEvents: (from: number, to: number, depositorAddr?: string) => Promise<TypedEvent<any>[]>;
}
/**
 * Class that wraps the queryFilter calls and has the ability to resize the block range
 * in order to comply with the eventual node restrictions in terms of the block range or the
 * length of the response
 */
export declare class SpokePoolEventsQuerier implements ISpokePoolContractEventsQuerier {
    private spokePool;
    private blockRangeSize?;
    private logger?;
    constructor(spokePool: SpokePool, blockRangeSize?: number | undefined, logger?: Logger | undefined);
    getFundsDepositEvents(from: number, to: number, depositorAddr?: string): Promise<TypedEvent<any>[]>;
    getFilledRelayEvents(from: number, to: number, depositorAddr?: string): Promise<TypedEvent<any>[]>;
    getSpeedUpDepositEvents(from: number, to: number, depositorAddr?: string): Promise<TypedEvent<any>[]>;
    private getFilledRelayEventsFilter;
    private getDepositEventsFilters;
    private getSpeedUpDepositEventsFilter;
    private getEvents;
}
