/**
 * The one place a wallet becomes something that signs (spec `wallet-signers`,
 * design D2). A key-backed wallet yields viem's local account; a signer-backed
 * one (`wallet.json` `signer`) yields an account that signs through that
 * signer. Every SDK signing site resolves its signer here, so a signer-backed
 * wallet works wherever a key-backed one does.
 */
import type { LocalAccount } from "viem";
import type { WalletData } from "../../../core-dist/wallet.js";
import type { PersonalMessageSigner } from "../../../core-dist/wallet-auth.js";
import { type KmsAccountOptions } from "./kms.js";
export { adoptKmsKey, kmsAccount, kmsError, type AdoptedKmsKey, type KmsAccountOptions, type KmsClientLike } from "./kms.js";
export type WalletSignerKind = "local" | "aws_kms";
/** How a wallet signs, without loading anything. */
export declare function walletSignerKind(wallet: Pick<WalletData, "signer">): WalletSignerKind;
/** True when the wallet can sign at all (a key or a signer reference). */
export declare function walletCanSign(wallet: Pick<WalletData, "privateKey" | "signer"> | null | undefined): boolean;
export interface ResolveWalletAccountOptions extends KmsAccountOptions {
    /** How a key-backed wallet becomes an account (the paid stack passes its own loaded viem). */
    privateKeyToAccount?: (privateKey: `0x${string}`) => unknown;
}
/** The viem account that signs as `wallet`. */
export declare function resolveWalletAccount(wallet: WalletData, opts?: ResolveWalletAccountOptions): Promise<LocalAccount>;
/** An EIP-191 personal-message signer for `wallet` (SIWX, identity links). */
export declare function personalMessageSignerFor(wallet: WalletData, opts?: KmsAccountOptions): Promise<PersonalMessageSigner>;
//# sourceMappingURL=index.d.ts.map