import { Idl } from "@coral-xyz/anchor";
import { Address, Commitment, GetSignaturesForAddressApi, Signature } from "@solana/kit";
import { EventName, EventWithData, SVMProvider } from "./types";
import { DepositWithTime, FillWithTime } from "../../interfaces";
type GetSignaturesForAddressConfig = Parameters<GetSignaturesForAddressApi["getSignaturesForAddress"]>[1];
export type DepositEventFromSignature = Omit<DepositWithTime, "fromLiteChain" | "toLiteChain">;
export type FillEventFromSignature = FillWithTime;
export declare class SvmCpiEventsClient {
    private rpc;
    private programAddress;
    private programEventAuthority;
    private idl;
    constructor(rpc: SVMProvider, address: Address, eventAuthority: Address, idl: Idl);
    static create(rpc: SVMProvider): Promise<SvmCpiEventsClient>;
    static createFor(rpc: SVMProvider, programId: string, idl: Idl): Promise<SvmCpiEventsClient>;
    queryEvents(eventName: EventName, fromSlot?: bigint, toSlot?: bigint, options?: GetSignaturesForAddressConfig): Promise<EventWithData[]>;
    queryDerivedAddressEvents(eventName: string, derivedAddress: Address, fromSlot?: bigint, toSlot?: bigint, options?: GetSignaturesForAddressConfig): Promise<EventWithData[]>;
    private queryAllEvents;
    readEventsFromSignature(txSignature: Signature, commitment?: Commitment): Promise<{
        program: Address;
        data: unknown;
        name: string;
    }[]>;
    private processEventFromTx;
    getDepositEventsFromSignature(originChainId: number, txSignature: Signature, commitment?: Commitment): Promise<DepositEventFromSignature[] | undefined>;
    getFillEventsFromSignature(destinationChainId: number, txSignature: Signature, commitment?: Commitment): Promise<FillEventFromSignature[] | undefined>;
    getProgramAddress(): Address;
    getRpc(): SVMProvider;
}
export {};
