export declare function isFFmpegAvailable(): boolean;
export declare function isFFprobeAvailable(): boolean;
export interface VideoMetadata {
    duration: number;
    width: number;
    height: number;
    fileSize: number;
}
export interface ProcessedVideo {
    thumbnailPath: string | null;
    metadata: VideoMetadata | null;
    videoPath: string | null;
    errors: string[];
}
export declare function downloadVideo(url: string, logger: any): Promise<string | null>;
export declare function getVideoMetadata(videoPath: string, logger: any): Promise<VideoMetadata | null>;
export declare function extractThumbnail(videoPath: string, logger: any): Promise<string | null>;
export declare function processVideo(videoSource: string, logger: any): Promise<ProcessedVideo>;
export declare function cleanupVideoFiles(files: (string | null)[], logger: any): void;
export declare function uploadThumbnailToCatbox(localPath: string, logger: any): Promise<string | null>;
export declare function uploadThumbnailToLitterbox(localPath: string, logger: any): Promise<string | null>;
export declare function getPublicThumbnailUrl(videoUrl: string, userProvidedUrl: string | null, logger: any): Promise<{
    url: string | null;
    localPath: string | null;
    videoPath: string | null;
    metadata: VideoMetadata | null;
    diagnosis: string | null;
}>;
