import type { SignedPassport } from '../../types/passport.js'; import type { WalletChain, WalletVerificationChallenge, UnbindEvent } from './types.js'; /** * Bind an external wallet to a passport. Produces a new SignedPassport with * the BoundWallet appended to bound_wallets and the entire passport re-signed * by the agent's private key. * * The binding_signature on the BoundWallet is independently verifiable: a * third party with only the passport's public key can call verify(payload, * binding_signature, publicKey) without holding the passport object itself. */ export declare function bindWallet(opts: { passport: SignedPassport; privateKey: string; chain: WalletChain; address: string; verificationChallenge?: WalletVerificationChallenge; /** Override the bind timestamp (for deterministic test fixtures). */ boundAt?: string; }): SignedPassport; /** * Unbind a wallet from a passport. Returns: * - passport: a new SignedPassport with the wallet removed from bound_wallets * - unbindEvent: a separately signed UnbindEvent that callers can persist * to preserve the bind/unbind history outside the passport itself. * * Throws if the (chain, address) is not currently bound. */ export declare function unbindWallet(opts: { passport: SignedPassport; privateKey: string; chain: WalletChain; address: string; /** Override the unbind timestamp (for deterministic test fixtures). */ unboundAt?: string; }): { passport: SignedPassport; unbindEvent: UnbindEvent; }; /** * Object-form input for `verifyBoundWallet`, mirroring `bindWallet`. */ export type VerifyBoundWalletInput = { passport: SignedPassport; chain: WalletChain; address: string; }; /** * Verify that (chain, address) is currently bound to the passport AND that * the binding_signature is valid against the passport's public key. * * Accepts both positional args and an object form (as of v2.1.0). The object * form matches `bindWallet`'s signature for call-site symmetry. * * Returns false if the wallet is not in bound_wallets, the signature is * invalid, or the bound record has been tampered with. */ export declare function verifyBoundWallet(passport: SignedPassport, chain: WalletChain, address: string): boolean; export declare function verifyBoundWallet(input: VerifyBoundWalletInput): boolean; /** * Verify a previously issued unbind event against a passport's public key. * Useful when reconstructing wallet history from a stored unbind log. */ export declare function verifyUnbindEvent(event: UnbindEvent, passportPublicKey: string): boolean; //# sourceMappingURL=bind.d.ts.map