import { type IFoxKeyring } from "../../keyring"; import type { EvmSigner } from "../types/EvmSigner"; import type { EvmByokAdapter } from "./evmByokAdapter"; import type { EvmServerAdapter } from "./evmServerAdapter"; /** * Resolve the EVM signing surface from any keyring (BYOK or server). Both * `EvmByokAdapter` and `EvmServerAdapter` implement {@link EvmSigner}, so the * caller gets the same chain-typed methods (`signMessage`, `signTypedData`, * `signPersonalMessage`, `signEip7702Authorization`, `signTransaction`) * regardless of mode — no `keyring.kind` branching needed in the wallet * client. * * Use this in EVM wallet clients for the common signing paths. For * server-only flows (`submitTransaction`, `awaitJob` for the `mm watch` * UX), use {@link evmServerAdapter} instead. */ export declare function evmSigner(keyring: IFoxKeyring): EvmSigner; /** * Narrow to the concrete `EvmByokAdapter` for BYOK-mode-only operations * (server-backed submit + await, gasless relay submission). */ export declare function evmByokAdapter(keyring: IFoxKeyring): EvmByokAdapter; /** * Narrow to the concrete `EvmServerAdapter` for server-mode-only operations * (submit + await job, status fetch). Throws if the keyring is in BYOK mode. */ export declare function evmServerAdapter(keyring: IFoxKeyring): EvmServerAdapter;