import { ProviderCapabilities, ProviderMediaObject, ProviderResult, OMSSConfig } from '../core/types/index.js'; /** * Console wrapper for provider logging */ declare class ProviderLogger { private providerId; private providerName; private isProduction; constructor(providerId: string, providerName: string, isProduction?: boolean); /** * Format log prefix with context */ private formatPrefix; log(message: string, media?: ProviderMediaObject): void; info(message: string, media?: ProviderMediaObject): void; warn(message: string, media?: ProviderMediaObject): void; error(message: string, error?: any, media?: ProviderMediaObject): void; debug(message: string, data?: any, media?: ProviderMediaObject): void; success(message: string, media?: ProviderMediaObject): void; } /** * Proxy URL configuration */ interface ProxyConfig { baseUrl?: string; host?: string; port?: number; protocol?: 'http' | 'https'; proxyConfig?: OMSSConfig['proxyConfig']; } export declare abstract class BaseProvider { abstract readonly id: string; abstract readonly name: string; abstract readonly enabled: boolean; abstract readonly BASE_URL: string; abstract readonly HEADERS: Record; abstract readonly capabilities: ProviderCapabilities; private static globalProxyConfig; /** * Protected console logger instance (lazy initialized) */ private _console?; /** * Proxy configuration (set by ProviderRegistry) */ private static proxyConfig; /** * Get console logger (lazy initialization) */ protected get console(): ProviderLogger; /** * Set global proxy configuration */ static setProxyConfig(config: ProxyConfig): void; static setGlobalProxyConfig(config: NonNullable): void; private cleanThirdPartyProxy; private extractFromPatterns; /** * Get proxy base URL */ static getProxyBaseUrl(): string; /** * Fetch sources for a movie */ abstract getMovieSources(media: ProviderMediaObject): Promise; /** * Fetch sources for a TV episode */ abstract getTVSources(media: ProviderMediaObject): Promise; /** * Health check for provider availability */ healthCheck(): Promise; /** * Helper: Create proxy URL with full server address */ createProxyUrl(url: string, headers?: Record): string; /** * Helper: Create relative proxy URL (for same-origin requests) */ protected createRelativeProxyUrl(url: string, headers?: Record): string; /** * Helper: Infer quality from URL or filename */ protected inferQuality(filename: string): string; /** * Helper: Infer type from URL extension */ protected inferType(url: string): string; /** * Check if provider supports given content type */ protected supportsContentType(type: 'movies' | 'tv' | 'sub'): boolean; } export {}; //# sourceMappingURL=base-provider.d.ts.map