38 lines
1.2 KiB
TypeScript
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 {};
|