/** * Motion-overlay plan orchestrator (Phase 2). * * `planMotionOverlay` is the dry/plan front door wired into `vclaw video * motion-overlay`. It runs the full plan pipeline: * ingest.probeVideo → extractAudio → transcribe (or --transcript) → slice → * ingest.cutTake per take → extractFrames → readFrameObservations → * analyze-reel → compose-prompt per take → plan → write work folder. * * Every side effect (ffmpeg, ffprobe, Gemini STT) is injected via `deps`, so the * whole orchestrator runs offline in tests with fakes. NO provider spend happens * here — this is the plan/dry path; execution (V2V) lands in Phase 4. */ import { type IngestDeps } from './ingest.js'; import { type TranscribeDeps } from './transcribe.js'; import type { MotionLayout, MotionOverlayPlan, MotionStyleId } from './types.js'; /** Map a BCP-47 code (or "auto") to a human language label for the prompt. */ export declare function languageLabel(code: string): string; export interface PlanMotionOverlayArgs { /** Absolute path to the input video. */ input: string; /** Absolute work-folder path to emit into. */ workdir: string; layout: MotionLayout; style: MotionStyleId; /** Requested STT language ("auto" lets Gemini detect). */ lang: string; /** Omni hard per-clip limit (seconds). */ maxTakeSeconds: number; /** Optional accent override (hex or name). */ accent?: string; /** Optional brand-derived accent (wins over --accent). */ brandAccent?: string; /** Optional bring-your-own transcript path (skips STT). */ transcriptPath?: string; /** Number of reference frames to sample (default 3). */ frameCount?: number; /** Emit the `review/review.html` approval surface alongside the plan. */ preview?: boolean; /** Deterministic timestamp for the manifest (tests). */ generatedAt?: string; } export interface PlanMotionOverlayDeps extends IngestDeps, TranscribeDeps { } export interface PlanMotionOverlayResult { plan: MotionOverlayPlan; manifestPath: string; readmePath: string; promptPaths: string[]; /** Path to `review/review.html` when `preview` was requested, else undefined. */ reviewPath?: string; } /** * Run the full plan pipeline and emit the work folder. Returns the assembled * plan + the paths written. Pure orchestration over injected side effects. */ export declare function planMotionOverlay(args: PlanMotionOverlayArgs, deps?: PlanMotionOverlayDeps): Promise; //# sourceMappingURL=run.d.ts.map