/**
 * Toolset Registry — Lazy-loading TOOLSET_MAP
 *
 * Uses dynamic imports so only the domains actually requested by a preset
 * are loaded at startup. For example, the `default` preset (28 domains, ~81
 * tools) no longer forces Node to parse all 65 tool files (~62 000 lines).
 *
 * Backward-compatible: TOOLSET_MAP and TOOL_TO_TOOLSET are still exported
 * as mutable objects that get populated after `loadToolsets()` resolves.
 */
import type { McpTool } from "./types.js";
/**
 * Each loader is an async factory that dynamic-imports its tool file(s) and
 * returns the flat McpTool[] array for that domain.
 */
export declare const TOOLSET_LOADERS: Record<string, () => Promise<McpTool[]>>;
/** Every domain key in the registry, usable for validation / enumeration. */
export declare const ALL_DOMAIN_KEYS: string[];
/**
 * Backward-compatible TOOLSET_MAP. Starts empty and is populated
 * incrementally by `loadToolsets()`.  Code that enumerates keys before
 * loading will see an empty object — call `loadToolsets()` first.
 */
export declare const TOOLSET_MAP: Record<string, McpTool[]>;
/** Reverse index: tool name → domain key. Populated by `loadToolsets()`. */
export declare const TOOL_TO_TOOLSET: Map<string, string>;
/**
 * Dynamically load one or more tool domains into TOOLSET_MAP.
 *
 * - Only imports files for the requested domains (skips already-loaded ones).
 * - Populates TOOLSET_MAP and TOOL_TO_TOOLSET as a side-effect.
 * - Returns the flat array of all tools across the requested domains.
 *
 * @param selectedDomains  Array of domain keys (must exist in TOOLSET_LOADERS)
 * @returns Flat McpTool[] of all loaded tools
 */
export declare function loadToolsets(selectedDomains: string[]): Promise<McpTool[]>;
/**
 * Load ALL domains. Convenience for `--preset full` or analysis scripts.
 */
export declare function loadAllToolsets(): Promise<McpTool[]>;
