/**
 * Module: tools/registry
 *
 * Global registries for tools and toolsets with helpers and built-in initialization.
 */
import type { I18nText } from '@longrun-ai/kernel/types/i18n';
import type { ToolsetSource } from '@longrun-ai/kernel/types/tools-registry';
import type { ReminderOwner, Tool } from '../tool';
import type { ManualSpec } from './manual/spec';
export declare const toolsRegistry: Map<string, Tool>;
export declare const toolsetsRegistry: Map<string, Tool[]>;
export type ToolsetMeta = {
    source?: ToolsetSource;
    /**
     * Whether `.minds/team.yaml` may assign this toolset to members. Defaults to
     * true. Set false for intrinsic runtime toolsets that must be injected by the
     * system according to dialog scope rather than granted by team config.
     */
    assignable?: boolean;
    /**
     * Whether wildcard toolset expansion (`toolsets: ['*']`) may include this
     * toolset. Defaults to true. Use false for explicitly grantable toolsets that
     * should not be mass-assigned by wildcard baselines.
     */
    wildcardAssignable?: boolean;
    descriptionI18n?: I18nText;
    /**
     * Toolset-level prompt injected into the agent system prompt when the member
     * includes this toolset. Use this for comprehensive workflows/examples; keep
     * per-tool usage descriptions focused on the tool's own contract.
     */
    promptI18n?: I18nText;
    /**
     * Toolset-level prompt loaded from markdown files (read on-demand, no cache).
     * Paths are relative to the directory of the compiled JS module (i.e. `__dirname`).
     */
    promptFilesI18n?: Partial<Record<keyof I18nText, string>>;
    /**
     * Optional manual metadata for the generic `man` tool.
     * When omitted, `man` falls back to deriving topic files from `promptFilesI18n`.
     */
    manualSpec?: ManualSpec;
    /**
     * Optional notice prepended by the generic `man` tool. Runtime-generated toolsets
     * use this to surface operational state without hiding their configured manual.
     */
    manualNoticeI18n?: I18nText;
};
export declare const toolsetMetaRegistry: Map<string, ToolsetMeta>;
export declare const reminderOwnersRegistry: Map<string, ReminderOwner>;
export declare function registerTool(tool: Tool): void;
export declare function unregisterTool(name: string): void;
export declare function getTool(name: string): Tool | undefined;
export declare function listTools(): Tool[];
export declare function registerToolset(name: string, tools: Tool[]): void;
export declare function unregisterToolset(name: string): void;
export declare function setToolsetMeta(name: string, meta: ToolsetMeta): void;
export declare function getToolsetMeta(name: string): ToolsetMeta | undefined;
export declare function getToolsetPromptI18n(name: string): I18nText | undefined;
export declare function getToolset(name: string): Tool[] | undefined;
export declare function listToolsets(): Record<string, Tool[]>;
export declare function registerReminderOwner(owner: ReminderOwner, name?: string): void;
export declare function unregisterReminderOwner(name: string): void;
export declare function getReminderOwner(name: string): ReminderOwner | undefined;
export declare function listReminderOwners(): Map<string, ReminderOwner>;
