import { ISearchAdapter } from '../ISearchAdapter.js';
import { SearchOptions, SearchResult, DomainSampleResult, SearchAdapterConfig } from '../types.js';
import winston from 'winston';
export interface FirecrawlConfig extends SearchAdapterConfig {
    apiKey: string;
    baseUrl?: string;
    rateLimit?: number;
    maxRetries?: number;
    timeoutMs?: number;
    maxCreditsPerDay?: number;
}
/**
 * Firecrawl Search Adapter that provides professional web scraping and crawling capabilities.
 * Uses the official Firecrawl API to extract clean, structured content from web pages.
 */
export declare class FirecrawlSearchAdapter implements ISearchAdapter {
    private readonly logger;
    private client;
    private config;
    private initialized;
    private lastRequestTime;
    private dailyCreditsUsed;
    private lastCreditReset;
    constructor(logger?: winston.Logger);
    getName(): string;
    initialize(config: FirecrawlConfig): Promise<void>;
    healthCheck(): Promise<boolean>;
    fetchContent(url: string): Promise<string>;
    sampleDomain(domain: string, count: number): Promise<DomainSampleResult[]>;
    search(query: string, options?: SearchOptions): Promise<SearchResult[]>;
    private ensureInitialized;
    private executeWithRetry;
    private isRetryableError;
    private calculateBackoff;
    private enforceRateLimit;
    private checkCreditLimit;
    private trackCreditUsage;
    private checkDailyCreditReset;
    private filterBlogPosts;
    private isValidBlogUrl;
    private isExcludedContent;
    private selectRepresentativeSample;
}
//# sourceMappingURL=FirecrawlSearchAdapter.d.ts.map