import type { PublicClient, Hex } from 'viem'; import { WalletConfiguration } from '../config'; import { FeeOption, RelayerTransaction, TypedDataPayload } from './types'; import type { GetUserFunction } from '../types'; export type RelayerClientInput = { config: WalletConfiguration; rpcProvider: PublicClient; getUser: GetUserFunction; }; type EthSendTransactionRequest = { method: 'eth_sendTransaction'; params: { to: string; data: Hex | string; chainId: string; }[]; }; type ImGetTransactionByHashRequest = { method: 'im_getTransactionByHash'; params: string[]; }; type ImGetFeeOptionsRequest = { method: 'im_getFeeOptions'; params: { userAddress: string; data: Hex | string; chainId: string; }[]; }; type ImSignRequest = { method: 'im_sign'; params: { chainId: string; address: string; message: string; }[]; }; type ImSignTypedDataRequest = { method: 'im_signTypedData'; params: { chainId: string; address: string; eip712Payload: TypedDataPayload; }[]; }; export type RelayerTransactionRequest = EthSendTransactionRequest | ImGetTransactionByHashRequest | ImGetFeeOptionsRequest | ImSignTypedDataRequest | ImSignRequest; export declare class RelayerClient { private readonly config; private readonly rpcProvider; private readonly getUser; constructor({ config, rpcProvider, getUser, }: RelayerClientInput); private static getResponsePreview; /** * Get zkEvm user using getUser function. */ private getUserZkEvm; private postToRelayer; getPreferredFeeTokenSymbol(): string; ethSendTransaction(to: string, data: Hex | string): Promise; imGetTransactionByHash(hash: string): Promise; imGetFeeOptions(userAddress: string, data: Hex | string): Promise; imSignTypedData(address: string, eip712Payload: TypedDataPayload): Promise; imSign(address: string, message: string): Promise; } export {};