/** * Spend-tool registry — which capabilities move real money, and how much. * * Two consumers: * 1. HookEngine — PreSpend/PostSpend events fire only for tools listed here, * carrying the estimated USD amount so user hooks can enforce caps and * blacklists without parsing tool-specific inputs. * 2. Trade-plan gating — the trade-execution subset must be covered by an * approved trade plan before it can execute. * * Estimators are conservative: they return a USD number only when the input * denominates the spend directly (stablecoin in, explicit USD field, or a * known flat price). Anything else returns null = "unknown amount" — hooks * still fire and can decide policy for unpriceable spends. * * Stable-mint tables intentionally mirror the per-tool confirm logic in * jupiter.ts / zerox-base.ts (stables price 1:1, everything else unknown). */ type SpendInput = Record; /** * Tool name → USD estimator. Presence in this map is what marks a tool as * spendful; the estimator may still return null (unknown amount). */ export declare const SPEND_TOOLS: Readonly number | null>>; /** * The subset whose invocations are trades — used by the trade-plan gate. * PolymarketBet is trade-gated only for order placement (buy/sell with * confirm), which the gate itself checks via the invocation input. */ export declare const TRADE_EXECUTION_TOOLS: ReadonlySet; export declare function isSpendTool(name: string): boolean; export declare function estimateSpendUsd(name: string, input: SpendInput): number | null; export {};