/** * codesearch tool — searches code-relevant sources via Exa. * * Uses the same direct-REST-then-MCP-fallback strategy as websearch * but targets code-specific search modes and the `get_code_context_exa` * MCP tool (or equivalent) when falling back. */ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import type { NormalizedExaResult } from "../types.js"; type ExaQueryRun = { query: string; requestId?: string; costDollars?: number; results: NormalizedExaResult[]; }; export declare function createCodesearchTool(_pi: ExtensionAPI): { name: string; label: string; description: string; parameters: import("@sinclair/typebox").TObject<{ query: import("@sinclair/typebox").TOptional; queries: import("@sinclair/typebox").TOptional>; numResults: import("@sinclair/typebox").TOptional; searchType: import("@sinclair/typebox").TOptional[]>>; highlightsMaxCharacters: import("@sinclair/typebox").TOptional; }>; execute(_id: string, params: Record, signal: AbortSignal | undefined, onUpdate: ((update: { content: Array<{ type: "text"; text: string; }>; details?: Record; }) => void) | undefined): Promise<{ content: Array<{ type: "text"; text: string; }>; details: { error: ReturnType; }; } | { content: { type: string; text: string; }[]; details: { provider: string; effectiveParams: import("../types.js").EffectiveExaParams; queries: ExaQueryRun[]; }; }>; renderCall: (_args: unknown, theme: import("@earendil-works/pi-coding-agent").Theme) => import("@earendil-works/pi-tui").Text; renderResult: typeof import("./render.js").renderWebsearchResult; }; export {}; //# sourceMappingURL=codesearch.d.ts.map