/**
 * A wallet is backed by exactly one of: a local private key (`privateKey`),
 * or a signer reference (`signer`) naming where the key lives. A signer
 * reference holds no secret.
 */
export interface WalletData {
    address: string;
    /** Local signing key. Absent on a signer-backed wallet. */
    privateKey?: string;
    /** Where a signer-backed wallet's key lives. Absent on a key-backed wallet. */
    signer?: WalletSigner;
    created?: string;
    funded?: boolean;
    lastFaucet?: string;
    rail?: "x402" | "mpp" | "lightning";
    /** The Lightning wallet (`run402 init lightning`): a budgeted wallet on Run402's Hub. `nwc` is the pairing secret. */
    lightning?: WalletLightning;
}
/** An AWS KMS `ECC_SECG_P256K1` / `SIGN_VERIFY` key, adopted by reference. */
export interface WalletSigner {
    kind: "aws_kms";
    key_arn: string;
    region: string;
    /** The AWS profile used to reach the key (an SSO profile); default credential chain when absent. */
    aws_profile?: string;
}
export interface WalletLightning {
    wallet_id: string;
    nwc: string;
    lightning_address: string | null;
    budget_sats: number;
    starter_sats: number;
    custody: "run402_hub";
    minted_at: string;
}
export declare const KMS_KEY_ARN_RE: RegExp;
/** True when the wallet signs through a signer instead of a local key. */
export declare function isSignerWallet(wallet: Pick<WalletData, "signer">): wallet is WalletData & {
    signer: WalletSigner;
};
export declare function readWallet(path?: string): WalletData | null;
export declare function saveWallet(data: WalletData, path?: string): void;
//# sourceMappingURL=wallet.d.ts.map