novel-reader-sdk
Version:
SDK for Novel Reader API
100 lines • 4.04 kB
TypeScript
/**
* 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