import { type Address, type Hex, type TransactionSerializable } from 'viem'; import type { SigningProvider } from './signing-provider.js'; import type { SignTypedDataParams, SignatureComponents, SignerAdapter } from '../types.js'; export interface EvmSignerAdapterConfig { expectedAddress?: Address; } /** * EVM signing adapter that delegates to a SigningProvider. * Same orchestration logic as KmsSignerAdapter but provider-agnostic. */ export declare class EvmSignerAdapter implements SignerAdapter { private readonly expectedAddress?; private readonly provider; private addressPromise; constructor(provider: SigningProvider, config?: EvmSignerAdapterConfig); /** * Get the Ethereum address derived from the provider's public key. * Uses promise memoization to avoid concurrent calls during cold start. */ getAddress(): Promise
; /** * Sign a transaction: serialize -> keccak256 -> provider sign -> DER decode -> assemble signed tx. */ signTransaction(tx: TransactionSerializable): Promise; /** * Sign EIP-712 typed data. Returns {v, r, s} for permit-style calls. * v = yParity + 27 (legacy recovery id format expected by EIP-2612 selfPermit). */ signTypedData(params: SignTypedDataParams): Promise; /** * Health check: verify provider is healthy and address matches expectations. */ healthCheck(): Promise; /** * Internal: sign a 32-byte digest via provider and resolve the recovery parameter. */ private signDigestAndRecover; /** * Internal: derive address from provider's public key. */ private deriveAddress; }