import { VideoInfo, ConversionOptions, ConversionProgress } from '../types/index.js';
/**
 * FFmpeg服务类 - 封装视频处理功能
 */
export declare class FFmpegService {
    private static instance;
    private activeConversions;
    private constructor();
    static getInstance(): FFmpegService;
    /**
     * 获取视频文件信息
     */
    getVideoInfo(filePath: string): Promise<VideoInfo>;
    /**
     * 转换视频格式
     */
    convertVideo(inputPath: string, outputPath: string, options: ConversionOptions, onProgress?: (progress: ConversionProgress) => void): Promise<string>;
    /**
     * 批量转换视频
     */
    batchConvert(inputFiles: string[], outputDir: string, options: ConversionOptions, onProgress?: (taskId: string, progress: ConversionProgress) => void): Promise<string[]>;
    /**
     * 获取转换进度
     */
    getConversionProgress(taskId: string): ConversionProgress | undefined;
    /**
     * 应用转换选项到FFmpeg命令
     */
    private applyConversionOptions;
    /**
     * 为不同格式设置合适的编解码器
     */
    private setCodecsForFormat;
    /**
     * 检查格式是否使用CRF模式
     */
    private usesCRF;
    /**
     * 应用质量预设
     */
    private applyQualityPreset;
    /**
     * 将码率转换为质量参数
     */
    private bitrateToQuality;
    /**
     * 获取质量预设
     */
    private getQualityPresets;
    /**
     * 解析帧率字符串
     */
    private parseFrameRate;
    /**
     * 验证输出文件完整性
     */
    private validateOutputFile;
    /**
     * 生成任务ID
     */
    private generateTaskId;
}
//# sourceMappingURL=ffmpeg.d.ts.map