import { c as MasterRunOptions } from "./master.js"; //#region src/build.d.ts interface ProjectConfig { /** scene module paths or globs (`episodes/**\/*.ts`), relative to the config file. */ scenes: string[]; /** * Exclude globs applied AFTER `scenes` expands — so a broad `episodes/**\/*.ts` * doesn't sweep colocated `*.test.ts` (which `gs build` would try to load, importing * vitest → a crash). A pattern with no `/` matches the basename at any depth * (`*.test.ts`); a pattern with `/` matches the config-relative path (`_wip/**`). */ ignore?: string[]; /** output dir for rendered videos (default: alongside each scene as `.mp4`). */ out?: string; /** * 0.43 project runtime: master the WHOLE project to a SHARED loudness target after * rendering. When set, `gs build` runs a second, cross-scene phase — render all → * BARRIER → master (one shared LUFS target + limiter across every member) → the * render staleness (a changed `.loudness.json`) remuxes exactly the members * whose gain moved. Absent → the classic per-scene pipeline, unchanged. */ master?: MasterRunOptions; /** per-scene render/cache defaults. */ defaults?: { fps?: number; /** persistent frame-cache dir (speed only — NEVER changes output, so it is * excluded from the staleness hash). */ cache?: string; /** captions mode for every render (0.33, consumer-pulled): a series that * ships SOFT captions sets `captions: 'sidecar'` here — before this, gs * build always used render's `burn` default and baked captions into the * masters. Folded into the render staleness hash, so flipping it re-renders. */ captions?: 'burn' | 'sidecar' | 'off'; /** narration/music/sfx auto-mix modes ('auto' default). Threaded into BOTH * render and measure-loudness so the measured mix always matches the * rendered mix (a mismatch would trip render's stale-mixHash guard). */ narration?: 'auto' | 'off'; music?: 'auto' | 'off'; sfx?: 'auto' | 'off'; /** apply the committed publish gain at render ('auto' default). */ loudness?: 'auto' | 'off'; /** §3.6 font gate: fail the render on a missing/fallback font instead of warn+proceed. */ strictFonts?: boolean; /** allow OS-installed fonts (non-portable — a build that ships must register faces). */ allowSystemFonts?: boolean; }; } /** The defaults that change a RENDER's output — folded into its staleness hash * (a captions/mix-mode flip must re-run render, never serve a stale cached * master) and spread into the render call. `cache` is deliberately absent * (byte-identical speed knob). */ /** Identity helper for a typed `glissade.config.ts` default export. */ declare function defineProject(config: ProjectConfig): ProjectConfig; //#endregion export { type ProjectConfig, defineProject };