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