import type { McpServer, RegisteredTool } from "@modelcontextprotocol/sdk/server/mcp.js"; import { type Policy } from "./policy/policy.js"; import { type Tier } from "./policy/tiers.js"; export declare const TOOLSETS: Record; export declare const TOOLSET_DESCRIPTIONS: Record; export declare const LEGACY_TOOLSET_OF: Record; export declare function toolsetOf(tool: string): string | undefined; /** Position of a tool inside its toolset array, for deterministic registration order. */ export declare function toolOrder(tool: string): number; /** Position of a toolset in TOOLSETS key order. */ export declare function toolsetOrder(toolset: string): number; export declare class ToolsetManager { private readonly server; private readonly policy; private readonly entries; private readonly enabledSets; constructor(server: McpServer, policy: Policy); /** Every tool starts disabled. Hidden-by-policy tools are removed outright. */ register(name: string, tool: RegisteredTool, toolset: string): void; /** Policy visibility with no arguments: readonly hides every non-read tool. */ visible(tool: string): boolean; isEnabled(tool: string): boolean; tools(toolset: string): string[]; hiddenTools(): string[]; /** Enables the toolset; returns the sorted names newly enabled by this call. */ enable(toolset: string): string[]; /** Disables the toolset; returns the sorted names newly disabled. `core` is refused. */ disable(toolset: string): string[]; /** Enabled toolsets, in TOOLSETS key order. */ enabled(): string[]; describe(toolset: string): { name: string; description: string; enabled: boolean; tools: Array<{ name: string; tier: Tier; enabled: boolean; hidden: boolean; }>; }; private assertToolset; private notify; } /** `core` + $CROSSPAD_TOOLSETS + `--toolsets a,b` (or `--toolsets=a,b`); `all` expands; result in TOOLSETS order. */ export declare function initialToolsets(argv: string[], env: NodeJS.ProcessEnv): string[]; export declare function hasReadOnlyFlag(argv: string[]): boolean;