UNPKG

novel-reader-sdk

Version:

SDK for Novel Reader API

100 lines 4.04 kB
/** * 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