import type { SKYKOIConfig } from "../../config/config.js"; import type { AnyKoiTool } from "./common.js"; type PerplexityConfig = { apiKey?: string; baseUrl?: string; model?: string; }; type PerplexityApiKeySource = "config" | "perplexity_env" | "openrouter_env" | "none"; type PerplexityBaseUrlHint = "direct" | "openrouter"; /** Keyless live search: fetch the DuckDuckGo HTML endpoint and parse the * result anchors + snippets. Returns the keyed-path shape so callers (and * the model) cannot tell the difference. Exported for tests. */ export declare function searchDuckDuckGoKeyless(query: string): Promise<{ status: string; query: string; results: Array<{ title: string; url: string; snippet: string; }>; note: string; } | null>; declare function inferPerplexityBaseUrlFromApiKey(apiKey?: string): PerplexityBaseUrlHint | undefined; declare function resolvePerplexityBaseUrl(perplexity?: PerplexityConfig, apiKeySource?: PerplexityApiKeySource, apiKey?: string): string; declare function normalizeFreshness(value: string | undefined): string | undefined; export declare function createWebSearchTool(options?: { config?: SKYKOIConfig; sandboxed?: boolean; }): AnyKoiTool | null; export declare const __testing: { readonly inferPerplexityBaseUrlFromApiKey: typeof inferPerplexityBaseUrlFromApiKey; readonly resolvePerplexityBaseUrl: typeof resolvePerplexityBaseUrl; readonly normalizeFreshness: typeof normalizeFreshness; }; export {};