/** * AgentWallet — the minimal wallet surface AiFinPay settlement needs. * * Wallets and payment rails are different layers: x402/AIFP facilitators only * ever ask a wallet for three things — its address, a plain-message signature * (payment authorization), and a typed-data signature (EIP-712 / EIP-3009). * This interface pins exactly that surface so an external wallet (an in-house * signer, a hardware-backed key, a future Coinbase/Circle/MetaMask adapter) * can be injected without the SDK holding its private key. Any viem * LocalAccount satisfies this interface structurally. * * It deliberately has NO balance or send method: balances and settlement go * through the facilitator/backend layer, not through the wallet. */ export interface AgentWallet { readonly address: `0x${string}`; signMessage(args: { message: string; }): Promise<`0x${string}`>; signTypedData(args: any): Promise<`0x${string}`>; } import { type WalletClient } from "viem"; export type EvmWalletClient = WalletClient; /** * AgentWallet backed by a raw EVM private key — the self-custodial default, * identical to what `evmPrivateKey` options already build internally. */ export declare function evmPrivateKeyWallet(privateKey: `0x${string}`): AgentWallet; /** * Minimal EIP-1193 provider shape (`window.ethereum`, Coinbase Wallet, Rabby, * WalletConnect's Ethereum provider, …). Only `request` is used — no vendor * SDK, no new dependency. */ export interface Eip1193Provider { request(args: { method: string; params?: unknown; }): Promise; } /** * AgentWallet backed by a browser/injected EIP-1193 wallet (MetaMask and any * generic EVM wallet exposing the provider API). The address is read via * `eth_requestAccounts`, so construction is async. Message signing uses * `personal_sign`, typed-data signing uses `eth_signTypedData_v4`. * * The provider is fully trusted with signing: the SDK never sees key * material, but a malicious provider can sign anything it is asked for — * same as any dapp connection. Connect only wallets the owner controls. */ export declare function eip1193Wallet(provider: Eip1193Provider): Promise; /** * AgentWallet backed by a viem `WalletClient` — the integration point for * embedded/smart wallets that hand out viem clients (Privy, Crossmint, * ZeroDev, Coinbase Smart Wallet, custom transports). The client must carry * an account; transports are never touched by the adapter itself, so no * network access happens here beyond what the caller's client already does. */ export declare function viemWalletClientWallet(client: WalletClient): AgentWallet; //# sourceMappingURL=agentWallet.d.ts.map