import { Event, EventsWithCursor, AnyObjectType, EventsInputs, SuiAddress } from "../../types";
import { QUnitType, OpUnitType } from "dayjs";
import { AftermathApi } from "../providers/aftermathApi";
import { SuiEvent, SuiEventFilter, SuiTransactionBlockResponse, Unsubscribe } from "@mysten/sui/client";
export declare class EventsApiHelpers {
    private readonly Provider;
    private static readonly constants;
    constructor(Provider: AftermathApi);
    fetchSubscribeToUserEvents: (inputs: {
        address: SuiAddress;
        onEvent: (event: SuiEvent) => void;
    }) => Promise<Unsubscribe>;
    fetchCastEventsWithCursor: <EventOnChainType, EventType>(inputs: {
        query: SuiEventFilter;
        eventFromEventOnChain: (eventOnChain: EventOnChainType) => EventType;
    } & EventsInputs) => Promise<EventsWithCursor<EventType>>;
    fetchEventsWithinTime: <T extends Event>(inputs: {
        fetchEventsFunc: (eventsInputs: EventsInputs) => Promise<EventsWithCursor<T>>;
        timeUnit: QUnitType | OpUnitType;
        time: number;
        limitStepSize?: number;
    }) => Promise<T[]>;
    fetchAllEvents: <T>(inputs: {
        fetchEventsFunc: (eventsInputs: EventsInputs) => Promise<EventsWithCursor<T>>;
        limitStepSize?: number;
    }) => Promise<T[]>;
    static suiEventOfTypeOrUndefined: (event: SuiEvent, eventType: AnyObjectType | (() => AnyObjectType)) => SuiEvent | undefined;
    static castEventOfTypeOrUndefined: <EventTypeOnChain, EventType>(event: SuiEvent, eventType: AnyObjectType | (() => AnyObjectType), castFunction: (eventOnChain: EventTypeOnChain) => EventType, exactMatch?: boolean) => EventType | undefined;
    static findCastEventsOrUndefined: <EventTypeOnChain, EventType>(inputs: {
        events: SuiEvent[];
        eventType: AnyObjectType | (() => AnyObjectType);
        castFunction: (eventOnChain: EventTypeOnChain) => EventType;
    }) => EventType[];
    static findCastEventOrUndefined: <EventTypeOnChain, EventType>(inputs: {
        events: SuiEvent[];
        eventType: AnyObjectType | (() => AnyObjectType);
        castFunction: (eventOnChain: EventTypeOnChain) => EventType;
    }) => EventType | undefined;
    static findCastEventInTransactionOrUndefined: <EventTypeOnChain, EventType>(transaction: SuiTransactionBlockResponse, eventType: AnyObjectType | (() => AnyObjectType), castFunction: (eventOnChain: EventTypeOnChain) => EventType) => EventType | undefined;
    static findCastEventInTransactionsOrUndefined: <EventTypeOnChain, EventType>(transactions: SuiTransactionBlockResponse[], eventType: AnyObjectType | (() => AnyObjectType), castFunction: (eventOnChain: EventTypeOnChain) => EventType) => (EventType & ({} | null)) | undefined;
    static createEventType: (packageAddress: string, packageName: string, eventType: string, wrapperType?: string) => string;
}
//# sourceMappingURL=eventsApiHelpers.d.ts.map