/**
 * Tool Registry - Central registry for all agent tools
 */
import type { ToolDefinition, ToolResult, AgentContext } from "../types.js";
export type ToolHandler = (args: Record<string, unknown>, context: AgentContext) => Promise<ToolResult>;
/**
 * Tool Registry class
 * Manages tool definitions and execution
 */
export declare class ToolRegistry {
    private tools;
    /**
     * Register a tool
     */
    register(definition: ToolDefinition, handler: ToolHandler): void;
    /**
     * Get all tool definitions
     */
    getDefinitions(): ToolDefinition[];
    /**
     * Get a specific tool definition
     */
    getDefinition(name: string): ToolDefinition | undefined;
    /**
     * Get a specific tool definition (alias for getDefinition)
     */
    get(name: string): ToolDefinition | undefined;
    /**
     * Get all tool definitions (alias for getDefinitions)
     */
    getAll(): ToolDefinition[];
    /**
     * Get a tool handler by name
     */
    getHandler(name: string): ToolHandler | undefined;
    /**
     * Execute a tool
     */
    execute(name: string, args: Record<string, unknown>, context: AgentContext): Promise<ToolResult>;
    /**
     * Check if a tool exists
     */
    has(name: string): boolean;
    /**
     * Get tool count
     */
    get size(): number;
    /**
     * List all tool names
     */
    list(): string[];
}
export declare const toolRegistry: ToolRegistry;
/**
 * Register all tools. The manifest (`packages/cli/src/tools/manifest/`) is
 * now the single source of truth for every Agent tool. v0.67 PR2 finished
 * the migration — there are no legacy `register*Tools` left.
 */
export declare function registerAllTools(registry: ToolRegistry): Promise<void>;
