import { type EvmNamespace, type JobHandle, type ServerChainAdapter, type ServerKeyringHttp, type SignatureRequestContext } from "../../keyring"; import { type MfaApprovalDetails, type PollOpts, type RelayTransactionSubmitInput, type SignatureRequestStatus, type TransactionTx, type TxJobStatus } from "../remote-signing"; import type { EvmSigner } from "../types/EvmSigner"; import type { EVMTypedData } from "../types/EVMTypedData"; export type EvmServerAdapterDeps = { http: ServerKeyringHttp; projectId: string; }; /** * EVM adapter for the server keyring. Shapes EVM-typed signature- and * transaction-request bodies, posts to the shared remote-signing routes * tagged with `namespace: "evm"`, and parses responses into the SDK's * EVM-typed status shapes. * * Implements `EvmSigner` so wallet clients can call `signMessage` / * `signTypedData` / `signTransaction` polymorphically against either this * adapter or `EvmByokAdapter` — the wallet client does not branch on * keyring mode. * * Also exposes the lower-level `submitPersonalSign` / `submitSignTypedData` / * `submitTransaction` + `awaitJob` / `getJobStatus` surface for the CLI's * non-blocking `mm watch ` flow. */ export declare class EvmServerAdapter implements ServerChainAdapter, EvmSigner { #private; readonly namespace: "evm"; constructor(deps: EvmServerAdapterDeps); normalizeAddress(address: string): string; signMessage(message: string, address: string, ctx?: SignatureRequestContext, opts?: PollOpts): Promise; signPersonalMessage(message: string, address: string, ctx?: SignatureRequestContext, opts?: PollOpts): Promise; signTypedData(data: EVMTypedData, address: string, ctx?: SignatureRequestContext, opts?: PollOpts): Promise; signEip7702Authorization(): never; signTransaction(_tx: T, _address: string): Promise; submitTransaction(tx: TransactionTx, ctx: SignatureRequestContext): Promise; /** * Submit a paid ERC-7821 `execute()` batch. The client pre-encodes the * calldata; Mimir injects/signs the EIP-7702 authorization after MFA. * Rejects a client-supplied `authorizationList` — that field is BYOK-only. */ submitErc7821Transaction(tx: TransactionTx, ctx: SignatureRequestContext): Promise; submitRelayTransaction(input: RelayTransactionSubmitInput, ctx: SignatureRequestContext): Promise; submitPersonalSign(walletAddress: string, message: string, ctx: SignatureRequestContext): Promise; submitSignTypedData(walletAddress: string, data: EVMTypedData, ctx: SignatureRequestContext): Promise; getJobStatus(handle: JobHandle): Promise; awaitJob(handle: JobHandle, opts?: PollOpts): Promise; /** Unified MFA approval lookup by request id — see {@link RemoteSigningClient.getMfaApproval}. */ getMfaApproval(requestId: string): Promise; }