import { ToolResult } from '../types/index.js';
export interface WebSearchOptions {
    maxResults?: number;
    safeSearch?: boolean;
}
export interface SearchResult {
    title: string;
    url: string;
    snippet: string;
}
/**
 * Web Search Tool using Serper API (Google Search) with DuckDuckGo fallback
 *
 * Set SERPER_API_KEY environment variable to enable Serper
 */
export declare class WebSearchTool {
    private cache;
    private cacheTTL;
    private serperApiKey;
    constructor();
    /**
     * Search the web using Serper API (Google) or DuckDuckGo fallback
     */
    search(query: string, options?: WebSearchOptions): Promise<ToolResult>;
    /**
     * Search using Serper API (Google Search)
     */
    private searchSerper;
    /**
     * Fetch and summarize a web page
     */
    fetchPage(url: string, _prompt?: string): Promise<ToolResult>;
    /**
     * Search using DuckDuckGo HTML
     */
    private searchDuckDuckGo;
    /**
     * Detect if query is weather-related
     */
    private isWeatherQuery;
    /**
     * Get weather emoji based on condition
     */
    private getWeatherEmoji;
    /**
     * Format weather results nicely
     */
    private formatWeatherResults;
    /**
     * Format search results for display
     */
    private formatResults;
    /**
     * Extract readable text from HTML
     */
    private extractTextFromHtml;
    /**
     * Strip HTML tags from text
     */
    private stripHtml;
    /**
     * Decode HTML entities
     */
    private decodeHtmlEntities;
    /**
     * Clear the cache
     */
    clearCache(): void;
}
