import { DownloadConfig } from './schema/DownloadConfig.js'; import { DownloadResult } from './schema/DownloadResult.js'; import { VideoMetadata } from './schema/VideoMetadata.js'; /** * Abstract contract for video download providers. * Concrete implementations handle platform-specific logic. */ export declare abstract class DownloadProvider { abstract readonly name: string; /** * Download video from URL. */ abstract download(url: string, config: DownloadConfig): Promise; /** * Extract metadata without downloading video. */ abstract extractMetadata(url: string): Promise; /** * Check if URL is supported by this provider. */ abstract isSupported(url: string): Promise; }