/** * Motion-overlay work-folder emitter. * * Given a finished `MotionOverlayPlan` and a target work directory, this writes * the on-disk surface the operator (and the execute phase) consume: * / * ├── motion-overlay-plan.json # the manifest (stamped generatedAt) * ├── README.md # human overview + how-to * ├── source/ # (dir created; populated by ingest) * ├── takes/ # (dir created; populated by ingest cuts) * ├── frames/ # (dir created; populated by ingest) * └── prompts/take-NN_…md # one ready-to-send prompt per take * * Pure-ish side effect: only filesystem writes under `workdir`. No network, no * ffmpeg, no providers. The manifest is written verbatim from `plan` with a * `generatedAt` stamp applied by the caller-supplied `now` (so tests are * deterministic). */ import type { MotionOverlayPlan, MotionTake } from './types.js'; export interface WriteWorkFolderOptions { /** ISO timestamp stamped onto the manifest's generatedAt (deterministic in tests). */ generatedAt?: string; } export interface WriteWorkFolderResult { workdir: string; manifestPath: string; readmePath: string; promptPaths: string[]; } /** * Emit the work folder + README + manifest + per-take prompt markdown files. * Creates `source/`, `takes/`, `frames/`, `prompts/` subdirs (ingest fills the * media ones later). Returns the absolute paths written. */ export declare function writeWorkFolder(workdir: string, plan: MotionOverlayPlan, options?: WriteWorkFolderOptions): Promise; /** Render one take's prompt markdown — the prompt body lives in a 3-backtick fence. */ export declare function renderTakePrompt(take: MotionTake): string; /** Render the work-folder README. */ export declare function renderReadme(plan: MotionOverlayPlan): string; //# sourceMappingURL=write.d.ts.map