/**
 * Serper API Client
 *
 * Service for searching quotes using the Serper.dev search API
 */
import type { ISerperSearchResult } from '../types/quotes.js';
/**
 * Serper API configuration
 */
export interface ISerperConfig {
    apiKey: string;
    baseUrl?: string;
    timeout?: number;
}
/**
 * Serper search parameters
 */
export interface ISerperSearchParams {
    query: string;
    num?: number;
}
/**
 * Client for interacting with Serper.dev API
 */
export declare class SerperClient {
    private readonly apiKey;
    private readonly baseUrl;
    private readonly timeout;
    private readonly circuitBreaker;
    constructor(config?: Partial<ISerperConfig>);
    /**
     * Search for quotes using Serper API with enhanced error handling
     */
    searchQuotes(params: ISerperSearchParams): Promise<ISerperSearchResult[]>;
    /**
     * Build a search query for finding quotes
     */
    buildQuoteSearchQuery(person: string, topic?: string): string;
    /**
     * Get circuit breaker status
     */
    getCircuitBreakerStatus(): {
        state: string;
        canExecute: boolean;
    };
    /**
     * Reset circuit breaker (for manual intervention)
     */
    resetCircuitBreaker(): void;
    /**
     * Extract quote text from search result snippet
     * Attempts to find quoted text within the snippet
     */
    extractQuoteFromSnippet(snippet: string): string | null;
}
export declare const serperClient: SerperClient;
//# sourceMappingURL=serperClient.d.ts.map