import type { McpServer, RegisteredTool } from "@modelcontextprotocol/sdk/server/mcp.js"; import { ToolsetManager } from "./toolsets.js"; import type { ToolContext } from "./tool-context.js"; /** A v10 tool module's registration entry point, plus where the tool belongs. */ export interface ToolRegistrar { name: string; toolset: string; register: (server: McpServer, ctx: ToolContext) => RegisteredTool; } /** A v10 resource module's entry point. Resources are not toolset-gated. */ export type ResourceRegistrar = (server: McpServer, ctx: ToolContext) => void; /** What `loadV10Modules()` found in this tree. */ export interface V10Modules { tools: ToolRegistrar[]; resources: ResourceRegistrar[]; } interface ModuleSpec { name: string; toolset: string; module: string; export: string; } /** * v10 tool modules that are loaded if present. Each entry is exactly the * `registerTool(server, ctx)` contract from the plan's Interfaces blocks. * Tools whose module has not been written yet simply do not appear in * `tools/list`; `crosspad_doctor` reports what is missing. */ export declare const V10_MODULES: ModuleSpec[]; /** Resource modules loaded the same way. `toolset` is unused; it keeps one shape. */ export declare const V10_RESOURCE_MODULES: ModuleSpec[]; export declare function loadV10Registrars(specs?: ModuleSpec[]): Promise; export declare function loadV10ResourceRegistrars(specs?: ModuleSpec[]): Promise; /** Everything the v10 rollout has actually landed in this tree. */ export declare function loadV10Modules(): Promise; export declare function registerAll(server: McpServer, ctx: ToolContext, manager: ToolsetManager, legacy?: Map, extra?: Partial): void; export {};