/** * EDL (Edit Decision List) authoring and validation. * * The EDL is a JSON document the LLM reads and mutates. This module * provides helpers that keep invariants tight: no negative durations, * every `sourceId` resolves, transition ms within ffmpeg's sensible * range, output settings present. */ import type { Edl, EdlClip, EdlTransition, Take } from './types.js'; export declare const DEFAULT_EDL_OUTPUT: Edl['output']; export declare const DEFAULT_AUDIO_FADE_MS = 30; export declare const DEFAULT_TRANSITION_MS = 250; export interface CreateEdlOptions { audioFadeMs?: number; output?: Partial; } export declare function createEmptyEdl(options?: CreateEdlOptions): Edl; export interface EdlValidationError { clipIndex: number; message: string; } export declare function validateEdl(edl: Edl, takes: Take[]): EdlValidationError[]; /** Effective clip duration in seconds after applying trimStart/trimEnd. */ export declare function effectiveDurationSec(clip: EdlClip): number; /** Sum of clip durations minus crossfade overlaps. */ export declare function estimateOutputDurationSec(edl: Edl): number; export interface AddClipInput { sourceId: string; startSec: number; endSec: number; trimStartMs?: number; trimEndMs?: number; transitionIn?: EdlTransition; transitionMs?: number; rationale?: string; } export declare function addClip(edl: Edl, input: AddClipInput): void; /** * Insert a crossfade at a cut boundary (between clip `i - 1` and `i`). * Used by the cut-qa agent's `insert-crossfade` fix. */ export declare function insertCrossfade(edl: Edl, clipIndex: number, transitionMs?: number): void; export declare function readEdl(path: string): Edl; export declare function writeEdl(edl: Edl, path: string): void; //# sourceMappingURL=edl.d.ts.map