/** * Demofly alignment — compare audio timestamps against video timing markers. * * Produces an alignment table (alignment.json) showing per-beat drift between * the narration audio and the recorded video. Used by the intelligent assembly * pipeline to generate edit proposals. */ import type { TimingData } from "./timing.js"; import type { TimestampsData } from "./timestamps.js"; export interface SyncPoint { phraseText: string; audioMs: number; videoMarker: string; videoMs: number; } export interface BeatAlignment { beatId: string; sceneId: string; audioDurationMs: number; videoDurationMs: number; driftMs: number; status: "aligned" | "needs_adjustment" | "critical"; syncPoints: SyncPoint[]; } export interface AlignmentData { beats: BeatAlignment[]; summary: { totalBeats: number; aligned: number; needsAdjustment: number; critical: number; maxDriftMs: number; }; } /** * Build alignment table from timestamps.json and timing.json. * * For each scene, compares the audio duration (from timestamps) against * the video scene duration (from timing markers). Produces per-beat drift * measurements and high-confidence sync points. */ export declare function buildAlignment(timestampsData: TimestampsData, timingData: TimingData): AlignmentData; /** * Build alignment and write to recordings/alignment.json. */ export declare function buildAndWriteAlignment(projectDir: string): AlignmentData | null; //# sourceMappingURL=alignment.d.ts.map