import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core"; import type { Component } from "@oh-my-pi/pi-tui"; import * as z from "zod/v4"; import type { RenderResultOptions } from "../extensibility/custom-tools/types"; import type { Theme } from "../modes/theme/theme"; import { type DiscoverableTool } from "../tool-discovery/tool-index"; import type { ToolSession } from "."; export type { DiscoverableMCPSearchIndex, DiscoverableMCPTool, } from "../mcp/discoverable-tool-metadata"; declare const searchToolBm25Schema: z.ZodObject<{ query: z.ZodString; limit: z.ZodOptional; }, z.core.$strip>; type SearchToolBm25Params = z.infer; interface SearchToolBm25Match { name: string; label: string; description: string; server_name?: string; mcp_tool_name?: string; schema_keys: string[]; score: number; } export interface SearchToolBm25Details { query: string; limit: number; total_tools: number; activated_tools: string[]; active_selected_tools: string[]; tools: SearchToolBm25Match[]; } export declare function renderSearchToolBm25Description(discoverableTools?: DiscoverableTool[]): string; /** * SearchToolsTool — wire name `search_tool_bm25` (preserved for persisted session back-compat). * * When tools.discoveryMode === "all", this covers both MCP tools and built-in discoverable tools. * When tools.discoveryMode === "mcp-only" or mcp.discoveryMode === true, only MCP tools are searched. */ export declare class SearchToolBm25Tool implements AgentTool { private readonly session; readonly name = "search_tool_bm25"; readonly label = "SearchTools"; readonly loadMode = "essential"; get description(): string; readonly parameters: z.ZodObject<{ query: z.ZodString; limit: z.ZodOptional; }, z.core.$strip>; readonly strict = true; constructor(session: ToolSession); static createIf(session: ToolSession): SearchToolBm25Tool | null; execute(_toolCallId: string, params: SearchToolBm25Params, _signal?: AbortSignal, _onUpdate?: AgentToolUpdateCallback, _context?: AgentToolContext): Promise>; } export declare const searchToolBm25Renderer: { renderCall(args: SearchToolBm25Params, _options: RenderResultOptions, uiTheme: Theme): Component; renderResult(result: { content: Array<{ type: string; text?: string; }>; details?: SearchToolBm25Details; isError?: boolean; }, options: RenderResultOptions, uiTheme: Theme): Component; mergeCallAndResult: boolean; inline: boolean; };