import { type OverflowSeverity } from "./audio-probe.js"; export interface AssemblyOptions { useAtempo?: boolean; } export interface SceneClipInput { sceneId: string; videoPath: string; durationMs: number; } export interface SceneCorrectionInfo { sceneId: string; overflowMs: number; severity: OverflowSeverity; correction: "none" | "freeze-frame" | "atempo" | "freeze-frame-fallback"; atempoRatio?: number; } export interface AssemblyResult { finalPath: string; corrections: SceneCorrectionInfo[]; adjustedTotalDurationMs: number; } /** * Assemble a final video from existing per-scene video clips and audio files. * * Pipeline: * 1. For each scene clip, find matching audio and probe duration * 2. Apply correction if audio overflows video window (freeze-frame or atempo) * 3. Mux each scene's video + audio into mp4 * 4. Concatenate all scene mp4s into final.mp4 */ export declare function assembleScenes(clips: SceneClipInput[], audioDir: string, recordingsDir: string, options?: AssemblyOptions): AssemblyResult; //# sourceMappingURL=scene-assembler.d.ts.map