Files
aidio-description/dist/server/services/jobManager.d.ts

38 lines
1.2 KiB
TypeScript

import { Job, OutputOptions } from '../db/jobStore';
import { Config } from '../../config/config';
import { AudioSegment } from '../../interfaces';
interface ProgressData {
id: string;
status: string;
progress: number;
currentIndex: number;
totalUnits: number;
segments: AudioSegment[];
error: string | null;
output_audio: string | null;
output_subtitles_srt: string | null;
output_subtitles_vtt: string | null;
output_muxed: string | null;
}
export declare class JobManager {
private queue;
private processing;
private pausedJobs;
private emitter;
private pollInterval;
constructor();
private recoverStuckJobs;
createJob(videoPath: string, configOverride?: Partial<Config>, outputOptions?: Partial<OutputOptions>): Job;
startJob(jobId: string): Promise<void>;
pauseJob(jobId: string): Promise<void>;
restartJob(jobId: string): Promise<void>;
cancelJob(jobId: string): Promise<void>;
deleteJob(jobId: string): void;
listJobs(): Job[];
onJobProgress(jobId: string, callback: (data: ProgressData) => void): () => void;
private emitProgress;
private processNext;
private processJob;
}
export {};