import type { UnsignedTx } from "../types/index.js"; /** * Recursively assign handles to `tx` and every node in its `.next` chain. * Returns a new tx tree with `handle` populated on each node. * * Each handle stores ONLY the one tx node it names — not the full chain. * The agent must call `send_transaction` once per handle, walking the chain * explicitly. This makes every signature an independent, auditable event. */ export declare function issueHandles(tx: UnsignedTx): UnsignedTx; /** * Retrieve the tx named by `handle`, or throw if unknown/expired. Does NOT * delete the entry — we need retry-on-device-disconnect to work, so the handle * stays valid until either: * (a) the tx is successfully submitted to the relay (caller invokes * `retireHandle` after the WalletConnect request resolves), or * (b) the TTL expires. * Callers must call `retireHandle(handle)` on successful submission so replays * fail loudly instead of silently re-submitting the same payload. */ export declare function consumeHandle(handle: string): UnsignedTx; /** * Mark a handle as used. Called after the tx has been successfully submitted * so the same handle cannot replay the submission. Safe to call on a handle * that was already pruned. */ export declare function retireHandle(handle: string): void; /** Test-only: true if `handle` is still active (not retired, not expired). */ export declare function hasHandle(handle: string): boolean;