/**
 * Tool visibility categories.
 *
 * Franklin ships with ~27 capabilities. Exposing all of them on every turn
 * makes the tool inventory large enough that weak models start hallucinating
 * tool names or emitting role-play "[TOOLCALL]" fragments. The compromise:
 * keep the hero surface always-on (file/shell/search PLUS the trading and
 * research tools that define Franklin's category), and gate the long tail
 * (webhook, imagegen, videogen, musicgen, memory, etc.) behind an
 * `ActivateTool` meta-tool the agent pulls on demand.
 *
 * History: earlier releases kept only file/shell/search in core, which made
 * mid-tier models answer stock / market questions from 2022 training data
 * instead of calling TradingMarket. That's anti-positioning for an agent
 * whose whole brand is "spends USDC for real market data." Hero tools now
 * live in the always-on set so the default experience shows the wallet
 * actually at work.
 */
export declare const CORE_TOOL_NAMES: ReadonlySet<string>;
/** True if this tool is always available without activation. */
export declare function isCoreTool(name: string): boolean;
/**
 * Env opt-out: setting `FRANKLIN_DYNAMIC_TOOLS=0` disables the core/on-demand
 * split and exposes every registered tool on every turn (pre-3.8.9 behavior).
 * Kept as a safety valve for users whose workflows depend on the full surface.
 */
export declare function dynamicToolsEnabled(): boolean;
