/**
 * Tool categories and their associated tools.
 * This file is separate from index.ts to avoid circular dependencies.
 *
 * Tools within each category are ordered by the typical workflow:
 * search/discover → get details → execute → check status → get results
 *
 * The final tool ordering presented to MCP clients is determined by tools-loader.ts,
 * which also auto-injects get-actor-run and get-actor-output right after call-actor.
 *
 * Each tool entry can be:
 * - A plain ToolEntry — mode-independent, always included
 * - A mode map (e.g. { default: ToolEntry, apps: ToolEntry }) — resolver picks entry[mode]
 * - A partial mode map (e.g. { apps: ToolEntry }) — included only for listed modes
 */
import { HelperTools } from '../const.js';
import type { ToolEntry } from '../types.js';
import { ServerMode } from '../types.js';
/**
 * Unified tool category definitions — single source of truth.
 *
 * Each entry is either a plain ToolEntry (mode-independent) or a mode map
 * with ServerMode keys mapping to their ToolEntry variant.
 *
 * Use {@link getCategoryTools} to resolve entries into concrete ToolEntry arrays for a given mode.
 */
export declare const toolCategories: {
    experimental: ToolEntry[];
    actors: (import("../types.js").HelperTool | import("../types.js").ActorTool | import("../types.js").ActorMcpTool | {
        default: ToolEntry;
        apps: ToolEntry;
    })[];
    docs: ToolEntry[];
    runs: ToolEntry[];
    storage: ToolEntry[];
    dev: never[];
};
/**
 * Canonical list of all tool category names, derived from toolCategories keys.
 */
export declare const CATEGORY_NAMES: (keyof typeof toolCategories)[];
/** Set of known category names for O(1) membership checks. */
export declare const CATEGORY_NAME_SET: ReadonlySet<string>;
/** Map from category name to an array of resolved tool entries. */
export type ToolCategoryMap = Record<(typeof CATEGORY_NAMES)[number], ToolEntry[]>;
/**
 * Resolve tool categories for a given server mode.
 *
 * Returns mode-resolved tool variants: apps mode gets MCP-Apps-specific implementations
 * (async execution, widget metadata), default mode gets standard implementations.
 * Apps-only tools are excluded in default mode.
 *
 * @param mode - Optional. Use `'default'` or `'apps'`. Defaults to `ServerMode.DEFAULT` when omitted.
 */
export declare function getCategoryTools(mode?: ServerMode): ToolCategoryMap;
export declare const toolCategoriesEnabledByDefault: (typeof CATEGORY_NAMES)[number][];
/**
 * Apps-mode pairing: each base tool name maps to its widget sibling.
 * In apps mode, a widget is added to the resolved tool list iff its base
 * tool is already present — see `getToolsForServerMode` in tools_loader.ts.
 *
 * Pairing is intentionally one-way (base → widget). Selecting a widget alone
 * does NOT auto-bring its base; callers asking for widget-only get a UI without
 * the programmatic data tool. To get both, select the base (or both explicitly).
 */
export declare const WIDGET_BY_BASE_TOOL: ReadonlyMap<HelperTools, ToolEntry>;
//# sourceMappingURL=categories.d.ts.map