import { type Address, type Hex, type TransactionSerializable } from 'viem'; import type { IKmsClient } from './aws-kms-client.js'; import type { SignTypedDataParams, SignatureComponents, SignerAdapter } from '../../types.js'; export interface KmsSignerConfig { keyId: string; region: string; expectedAddress?: Address; } export declare class KmsSignerAdapter implements SignerAdapter { private readonly keyId; private readonly expectedAddress?; private readonly kmsClient; private addressPromise; constructor(kmsClient: IKmsClient, config: KmsSignerConfig); /** * Get the Ethereum address derived from the KMS public key. * Uses promise memoization to avoid concurrent GetPublicKey calls during cold start. */ getAddress(): Promise
; /** * Sign a transaction: serialize -> keccak256 -> KMS 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 KMS key is configured correctly and address matches expectations. */ healthCheck(): Promise; /** * Internal: sign a 32-byte digest via KMS and resolve the recovery parameter. */ private signDigestAndRecover; /** * Internal: derive address from KMS public key. */ private deriveAddress; }