/** * Search providers with fallback support. * Architecture ready for future providers (Brave, Tavily, Exa, etc.). * * @module search-providers */ export interface SearchResult { title: string; url: string; snippet: string; } export interface SearchProvider { name: string; search(query: string, maxResults: number): Promise; } /** * DuckDuckGo HTML search provider. * Scrapes the HTML endpoint - no API key required. */ export declare class DuckDuckGoProvider implements SearchProvider { name: string; search(query: string, maxResults: number): Promise; private parseResults; } /** * SearXNG search provider. * Uses public SearXNG instances as fallback. */ export declare class SearXNGProvider implements SearchProvider { name: string; private instances; search(query: string, maxResults: number): Promise; private parseJsonResults; } /** * Search with automatic fallback between providers. */ export declare function searchWeb(query: string, maxResults?: number): Promise; /** * Brave Search API provider. * Requires API key: BRAVE_SEARCH_API_KEY * * export class BraveSearchProvider implements SearchProvider { * name = "brave"; * async search(query: string, maxResults: number): Promise { * const apiKey = process.env.BRAVE_SEARCH_API_KEY; * if (!apiKey) throw new Error("BRAVE_SEARCH_API_KEY not set"); * const url = `https://api.search.brave.com/res/v1/web/search?q=${encodeURIComponent(query)}&count=${maxResults}`; * const result = await fetchWithRetry(url, { * headers: { "X-Subscription-Token": apiKey, Accept: "application/json" }, * }); * // Parse response... * } * } */ /** * Tavily Search API provider. * Requires API key: TAVILY_API_KEY */ /** * Exa Search API provider. * Requires API key: EXA_API_KEY */ /** * Google Custom Search API provider. * Requires API key and CX: GOOGLE_SEARCH_API_KEY, GOOGLE_SEARCH_CX */ /** * Bing Search API provider. * Requires API key: BING_SEARCH_API_KEY */ //# sourceMappingURL=search-providers.d.ts.map