/**
 * Scraping Service SDK Client
 *
 * Type-safe client for consuming the scraping service API
 * Provides methods for all endpoints with proper error handling
 */
import type { NovelDetails, ChapterData, NovelSearchResult, SiteConfiguration, HealthStatus, DatabaseInfo, DatabaseId, HealthOverview, ProxyHealthStatus, BrowserHealthStatus, SearchNovelsRequest, ScrapeChapterRequest, BatchScrapeRequest, ValidateUrlRequest, TestSiteConfigRequest, LatestNovelsRequest, PopularNovelsRequest, NovelDetailsRequest, PaginatedResponse } from './types';
import { type RetryConfig } from './utils';
export interface ScrapingServiceConfig {
    /** Base URL of the scraping service */
    baseUrl: string;
    /** Request timeout in milliseconds */
    timeout?: number;
    /** Retry configuration for failed requests */
    retry?: Partial<RetryConfig>;
    /** Enable debug logging */
    debug?: boolean;
}
export declare class ScrapingServiceClient {
    private readonly config;
    constructor(config: ScrapingServiceConfig);
    /**
     * List available database scrapers
     */
    listDatabases(): Promise<DatabaseInfo[]>;
    /**
     * Search novels in a database
     */
    searchNovels(databaseId: DatabaseId, request: SearchNovelsRequest): Promise<PaginatedResponse<NovelSearchResult>>;
    /**
     * Get latest novels from a database
     */
    getLatestNovels(databaseId: DatabaseId, request?: LatestNovelsRequest): Promise<PaginatedResponse<NovelSearchResult>>;
    /**
     * Get popular novels from a database
     */
    getPopularNovels(databaseId: DatabaseId, request?: PopularNovelsRequest): Promise<PaginatedResponse<NovelSearchResult>>;
    /**
     * Get detailed novel information
     */
    getNovelDetails(databaseId: DatabaseId, request: NovelDetailsRequest): Promise<NovelDetails>;
    /**
     * Scrape single chapter content
     */
    scrapeChapter(request: ScrapeChapterRequest): Promise<ChapterData>;
    /**
     * Scrape multiple chapters in batch
     */
    scrapeChaptersBatch(request: BatchScrapeRequest): Promise<ChapterData[]>;
    /**
     * Validate if URL is supported for scraping
     */
    validateChapterUrl(request: ValidateUrlRequest): Promise<{
        supported: boolean;
        hostname: string;
    }>;
    /**
     * List all site configurations
     */
    listSiteConfigurations(): Promise<SiteConfiguration[]>;
    /**
     * Get site configuration by hostname
     */
    getSiteConfiguration(hostname: string): Promise<SiteConfiguration>;
    /**
     * Update site configuration
     */
    updateSiteConfiguration(hostname: string, update: Partial<SiteConfiguration>): Promise<SiteConfiguration>;
    /**
     * Test site configuration
     */
    testSiteConfiguration(hostname: string, request: TestSiteConfigRequest): Promise<{
        success: boolean;
        data?: ChapterData;
    }>;
    /**
     * Get overall service health status
     * @deprecated Use getHealthOverview() for comprehensive health data
     */
    getHealthStatus(): Promise<HealthStatus>;
    /**
     * Get comprehensive health overview for dashboards
     */
    getHealthOverview(): Promise<HealthOverview>;
    /**
     * Get detailed proxy health status
     */
    getProxyHealth(): Promise<ProxyHealthStatus>;
    /**
     * Get browser manager health status
     */
    getBrowserHealth(): Promise<BrowserHealthStatus>;
    private makeRequest;
}
/**
 * Create a new scraping service client
 */
export declare function createScrapingServiceClient(config: ScrapingServiceConfig): ScrapingServiceClient;
export type { NovelDetails, ChapterData, NovelSearchResult, SiteConfiguration, HealthStatus, DatabaseInfo, DatabaseId, HealthOverview, ProxyHealthStatus, BrowserHealthStatus, ServiceStatus, ProxyProviderBreakdown, SearchNovelsRequest, ScrapeChapterRequest, BatchScrapeRequest, ValidateUrlRequest, TestSiteConfigRequest, LatestNovelsRequest, PopularNovelsRequest, NovelDetailsRequest, ScrapingServiceResponse, PaginatedResponse, } from './types';
//# sourceMappingURL=client.d.ts.map