import { Result } from "@ethersproject/abi";
import { Contract, Event, EventFilter } from "ethers";
import { Log, SortableEvent } from "../interfaces";
export declare function spreadEvent(args: Result | Record<string, unknown>): {
    [key: string]: any;
};
export interface EventSearchConfig {
    from: number;
    to: number;
    maxLookBack?: number;
}
export declare const eventToLog: (event: Event) => Log;
export declare function paginatedEventQuery(contract: Contract, filter: EventFilter, searchConfig: EventSearchConfig, retryCount?: number): Promise<Log[]>;
export declare function getPaginatedBlockRanges({ from, to, maxLookBack }: EventSearchConfig): [number, number][];
export declare function logToSortableEvent(log: Log): SortableEvent;
export declare function spreadEventWithBlockNumber(event: Log): SortableEvent;
type PartialSortableEvent = Pick<SortableEvent, "blockNumber" | "logIndex">;
export declare function sortEventsAscending<T extends PartialSortableEvent>(events: T[]): T[];
export declare function sortEventsAscendingInPlace<T extends PartialSortableEvent>(events: T[]): T[];
export declare function sortEventsDescending<T extends PartialSortableEvent>(events: T[]): T[];
export declare function sortEventsDescendingInPlace<T extends PartialSortableEvent>(events: T[]): T[];
export declare function isEventOlder<T extends PartialSortableEvent>(ex: T, ey: T): boolean;
export declare function getTransactionRefs(events: SortableEvent[]): string[];
export declare function duplicateEvent(a: SortableEvent, b: SortableEvent): boolean;
export {};
