import { type WebSearchProvider, type WebSearchProviderHealth, type WebSearchProviderId, type WebSearchProviderSelection, type WebSearchRequest, type WebSearchResponse, type WebSearchResult } from "./types.js"; interface SearchProviderOptions { fetch?: typeof fetch; timeoutMs: number; maxResults: number; userAgent: string; } interface SearxngOptions extends SearchProviderOptions { baseUrl: string; } export declare function parseDuckDuckGoLiteResults(html: string, limit?: number): WebSearchResult[]; export declare class DuckDuckGoLiteProvider implements WebSearchProvider { private readonly options; readonly id: "duckduckgo-lite"; readonly capabilities: { freshness: boolean; language: boolean; region: boolean; categories: boolean; safeSearch: boolean; }; private readonly fetchImpl; constructor(options: SearchProviderOptions); search(request: WebSearchRequest): Promise; healthCheck(signal?: AbortSignal): Promise; } export declare class SearxngProvider implements WebSearchProvider { private readonly options; readonly id: "searxng"; readonly capabilities: { freshness: boolean; language: boolean; region: boolean; categories: boolean; safeSearch: boolean; }; private readonly fetchImpl; constructor(options: SearxngOptions); private searchUrl; search(request: WebSearchRequest): Promise; healthCheck(signal?: AbortSignal): Promise; } export declare class WebSearchProviderRegistry { private readonly providers; constructor(providers: WebSearchProvider[]); get(id: WebSearchProviderId): WebSearchProvider; list(): WebSearchProvider[]; search(selection: WebSearchProviderSelection, request: WebSearchRequest): Promise; } export declare function createSearchProviderRegistry(options: SearxngOptions): WebSearchProviderRegistry; export declare function resultDomain(result: WebSearchResult): string; export {}; //# sourceMappingURL=search.d.ts.map