/**
 * 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, openai: ToolEntry }) — resolver picks entry[mode]
 * - A partial mode map (e.g. { openai: ToolEntry }) — included only for listed modes
 */
import type { ServerMode, ToolEntry } 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: {
        default: ToolEntry;
        openai: ToolEntry;
    }[];
    ui: {
        openai: ToolEntry;
    }[];
    docs: ToolEntry[];
    runs: (import("../types.js").HelperTool | import("../types.js").ActorTool | import("../types.js").ActorMcpTool | {
        default: ToolEntry;
        openai: 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: openai mode gets openai-specific implementations
 * (async execution, widget metadata), default mode gets standard implementations.
 * Openai-only tools are excluded in default mode.
 *
 * @param mode - Required. Use `'default'` or `'openai'`.
 *   Made explicit (no default value) to prevent accidentally serving wrong-mode tools.
 */
export declare function getCategoryTools(mode?: ServerMode): ToolCategoryMap;
export declare const toolCategoriesEnabledByDefault: (typeof CATEGORY_NAMES)[number][];
//# sourceMappingURL=categories.d.ts.map