import { AxiosInstance } from 'axios';
import { Crawl4AIService } from './crawl4ai-service.js';
import { ContentHandlers } from './handlers/content-handlers.js';
import { UtilityHandlers } from './handlers/utility-handlers.js';
import { CrawlHandlers } from './handlers/crawl-handlers.js';
export declare class Crawl4AIServer {
    private server;
    protected axiosClient: AxiosInstance;
    protected service: Crawl4AIService;
    private sessions;
    private serverName;
    private serverVersion;
    private contentHandlers;
    private sessionHandlers;
    private utilityHandlers;
    private crawlHandlers;
    constructor(baseUrl: string, apiKey: string, serverName?: string, serverVersion?: string);
    /**
     * Helper method to validate arguments and execute handler with consistent error formatting
     * Preserves the exact error message format that LLMs rely on
     */
    private validateAndExecute;
    private setupHandlers;
    protected getMarkdown(options: Parameters<ContentHandlers['getMarkdown']>[0]): Promise<{
        content: {
            type: string;
            text: string;
        }[];
    }>;
    protected captureScreenshot(options: Parameters<ContentHandlers['captureScreenshot']>[0]): Promise<{
        content: ({
            type: string;
            data: string;
            mimeType: string;
            text?: undefined;
        } | {
            type: string;
            text: string;
            data?: undefined;
            mimeType?: undefined;
        })[];
    }>;
    protected generatePDF(options: Parameters<ContentHandlers['generatePDF']>[0]): Promise<{
        content: ({
            type: string;
            resource: {
                uri: string;
                mimeType: string;
                blob: string;
            };
            text?: undefined;
        } | {
            type: string;
            text: string;
            resource?: undefined;
        })[];
    }>;
    protected getHTML(options: Parameters<ContentHandlers['getHTML']>[0]): Promise<{
        content: {
            type: string;
            text: string;
        }[];
    }>;
    protected extractWithLLM(options: Parameters<ContentHandlers['extractWithLLM']>[0]): Promise<{
        content: {
            type: string;
            text: string;
        }[];
    }>;
    protected executeJS(options: Parameters<UtilityHandlers['executeJS']>[0]): Promise<{
        content: {
            type: string;
            text: string;
        }[];
    }>;
    protected extractLinks(options: Parameters<UtilityHandlers['extractLinks']>[0]): Promise<{
        content: {
            type: string;
            text: string;
        }[];
    }>;
    protected batchCrawl(options: Parameters<CrawlHandlers['batchCrawl']>[0]): Promise<{
        content: {
            type: string;
            text: string;
        }[];
    }>;
    protected smartCrawl(options: Parameters<CrawlHandlers['smartCrawl']>[0]): Promise<{
        content: {
            type: string;
            text: string;
        }[];
    }>;
    protected crawlRecursive(options: Parameters<CrawlHandlers['crawlRecursive']>[0]): Promise<{
        content: {
            type: string;
            text: string;
        }[];
    }>;
    protected parseSitemap(options: Parameters<CrawlHandlers['parseSitemap']>[0]): Promise<{
        content: {
            type: string;
            text: string;
        }[];
    }>;
    protected crawl(options: Parameters<CrawlHandlers['crawl']>[0]): Promise<{
        content: ({
            type: string;
            text: string;
            data?: undefined;
            mimeType?: undefined;
            resource?: undefined;
        } | {
            type: string;
            data: string;
            mimeType: string;
            text?: undefined;
            resource?: undefined;
        } | {
            type: string;
            resource: {
                uri: string;
                mimeType: string;
                blob: string;
            };
            text?: undefined;
            data?: undefined;
            mimeType?: undefined;
        })[];
    }>;
    set axiosClientForTesting(client: AxiosInstance);
    start(): Promise<void>;
}
//# sourceMappingURL=server.d.ts.map