import { BytesLike, Signer, BrowserProvider } from "ethers"; export declare enum RelayCall { CallWithSyncFee = 0, CallWithSyncFeeERC2771 = 1, SponsoredCall = 2, SponsoredCallERC2771 = 3 } export type Optional = Pick, K> & Omit; export type RelayRequestOptions = { gasLimit?: bigint; retries?: number; }; export type ConcurrencyOptions = { isConcurrent: boolean; }; export type ApiKey = { sponsorApiKey: string; }; export type RelayResponse = { taskId: string; }; export type EIP712Domain = { name: string; version: string; chainId: string; verifyingContract: string; }; export declare const EIP712_DOMAIN_TYPE_DATA: { EIP712Domain: { name: string; type: string; }[]; }; export type BaseRelayParams = { chainId: bigint; target: string; data: BytesLike; }; export type BaseCallWithSyncFeeParams = { feeToken: string; isRelayContext?: boolean; }; export type Config = { url: string; websocketUrl: string; contract: { relayERC2771: string; relay1BalanceERC2771: string; relayERC2771zkSync: string; relayERC2771Abstract: string; relay1BalanceERC2771zkSync: string; relay1BalanceERC2771Abstract: string; relayConcurrentERC2771: string; relay1BalanceConcurrentERC2771: string; relayConcurrentERC2771zkSync: string; relayConcurrentERC2771Abstract: string; relay1BalanceConcurrentERC2771zkSync: string; relay1BalanceConcurrentERC2771Abstract: string; }; }; export type SafeRequestPayload = { [K in keyof T]: T[K] extends bigint ? string : T[K] extends bigint | undefined ? string | undefined : T[K] extends object ? SafeRequestPayload : T[K]; }; export type SignerOrProvider = BrowserProvider | Signer;