import type { PublicClient, Hex } from 'viem'; import { RelayerClient } from './relayerClient'; import GuardianClient from '../guardian'; import type { WalletSigner } from '../types'; /** * Transaction request type compatible with eth_sendTransaction */ export interface TransactionRequest { to?: string; data?: Hex | string | null; value?: bigint; nonce?: bigint; chainId?: bigint | number; } export type TransactionParams = { ethSigner: WalletSigner; rpcProvider: PublicClient; guardianClient: GuardianClient; relayerClient: RelayerClient; zkEvmAddress: string; nonceSpace?: bigint; isBackgroundTransaction?: boolean; }; export type EjectionTransactionParams = Pick; export type EjectionTransactionResponse = { to: string; data: string; chainId: string; }; export declare const pollRelayerTransaction: (relayerClient: RelayerClient, relayerId: string) => Promise; export declare const prepareAndSignTransaction: ({ transactionRequest, ethSigner, rpcProvider, guardianClient, relayerClient, zkEvmAddress, nonceSpace, isBackgroundTransaction, }: TransactionParams & { transactionRequest: TransactionRequest; }) => Promise<{ signedTransactions: string; relayerId: string; nonce: bigint; }>; export declare const prepareAndSignEjectionTransaction: ({ transactionRequest, ethSigner, zkEvmAddress, }: EjectionTransactionParams & { transactionRequest: TransactionRequest; }) => Promise;