/**
 * ToolRegistry — manages available tools, the currently selected runtime
 * tool names, and system prompt rebuilding.
 *
 * The key boundary is:
 * - available tools: everything the runtime/extensions provide right now
 * - selected tools: the subset currently exposed to the model
 *
 * Refresh/reload rebuilds availability but preserves the current selection
 * and mode prompt unless the caller explicitly replaces them.
 */
import type { RuntimeResourceLoader } from '../../contracts/agent-resources.js';
import type { RuntimePermissionSettingsStore } from '../../contracts/agent-settings.js';
import type { ToolDefinition } from '../../core/index.js';
import type { RuntimePermissionPolicy } from '../../core/permission-policy.js';
import type { ExtensionRunner } from '../extensions/runner.js';
import type { ToolInfo } from '../extensions/types.js';
export type { ToolInfo } from '../extensions/index.js';
export interface ToolRegistryAgent {
    state: {
        tools: ToolDefinition[];
    };
    setTools(tools: ToolDefinition[]): void;
    setSystemPrompt(prompt: string): void;
}
export declare class ToolRegistry {
    private readonly _agent;
    private readonly _resourceLoader;
    private readonly _settingsManager;
    private readonly _cwd;
    private _publishedTools;
    private _availableTools;
    private _runtimeTools;
    private _extensionTools;
    private _toolPromptGuidelines;
    private _selectedRuntimeToolNames;
    private _modeSystemPrompt?;
    private _extensionRunner?;
    private _baseSystemPrompt;
    private _modeName?;
    private _permissionPolicy;
    private readonly _fixedPermissionPolicy?;
    private _getWorkspaceRoots;
    get baseSystemPrompt(): string;
    constructor(_agent: ToolRegistryAgent, _resourceLoader: RuntimeResourceLoader, _settingsManager: RuntimePermissionSettingsStore, _cwd: string, fixedPermissionPolicy?: RuntimePermissionPolicy);
    private _getDangerouslySkipRuntimePermissions;
    private _getDangerouslySkipSpreadsheetPermissions;
    getAllTools(): ToolInfo[];
    getToolNames(): string[];
    getPermissionPolicy(): RuntimePermissionPolicy;
    applyMode(toolNames: string[], prompt: string, modeName?: string): void;
    replaceToolsByName(toolNames: string[]): void;
    overrideBaseSystemPrompt(prompt: string): void;
    rebuildSystemPrompt(toolNames?: string[]): string;
    refresh(options: {
        extensionRunner: ExtensionRunner | undefined;
        tools: ToolDefinition[];
        toolNames?: string[];
        modeName?: string;
    }): void;
    private _rebuildAvailableTools;
    private _publishCurrentRegistry;
}
//# sourceMappingURL=tool-registry.d.ts.map