/** * Mograph render plan — turn a linted pack into the EXACT per-block * submissions a provider will receive (review-first: the plan IS the * contract), and compile the batch-eligible slice into a batch-queue manifest * so the existing `batch-submit` / `batch-monitor` machinery does the * submit/poll/download work. No new submit loop — the batch queue already * solved resumability, throttling, and wedge handling. * * v2v blocks need a route that accepts a source video (omni-flash on * veo-useapi); batch routes do not, so the manifest compiler sets them aside * explicitly rather than dropping them silently. */ import { type BatchQueueManifest, type BatchRouteId } from '../batch-queue.js'; import type { MographLintIssue, MographPriority, MographSubmission, MotionPackArtifact, MotionSheetArtifact } from './types.js'; /** Routes the batch queue can carry (mirrors the batch manifest schema enum). */ export declare const MOGRAPH_BATCH_ROUTES: BatchRouteId[]; /** The one route with true V2V + native sound-design audio. */ export declare const MOGRAPH_V2V_ROUTE = "veo-useapi"; export declare const PROMPT_ONLY_ROUTE = "prompt-only"; /** * Routes where an attached IMAGE reference destroys on-screen text control and * must be omitted (the clip renders prose-only from the style lock). Validated * across ~20 pilot renders on Omni (`veo-useapi` omni-flash): the model * reproduces the style board's sample copy or invents its own text whenever any * image ref is present. The ≤120-word style-lock prose alone carries the look. * This governs IMAGE refs only — a v2v block's `videoSource` (the edit source) * is a different channel and is preserved. */ export declare const MOGRAPH_REFERENCE_FREE_ROUTES: Set; /** True when the route renders mograph clips prose-only (no image refs). */ export declare function isReferenceFreeRoute(route: string): boolean; export interface MographPlanOptions { /** Cumulative priority scope (P2 = P1+P2); ignored when blockIds is set. */ priority?: MographPriority; blockIds?: string[]; /** Route for non-v2v blocks. Default: the pack's route, else seedance-direct. */ route?: string; } export interface MographRenderPlan { submissions: MographSubmission[]; issues: MographLintIssue[]; } /** * Build the submission plan: assembled prompt + resolved refs + route per * block. Pure; refs are echoed as given (existence checks are the handler's * I/O concern). */ export declare function planMographRender(pack: MotionPackArtifact, sheet: MotionSheetArtifact, opts?: MographPlanOptions): MographRenderPlan; export interface MographBatchCompilation { manifest: BatchQueueManifest | null; /** Block ids excluded from the batch (v2v) — they need the V2V route or prompt-only. */ excludedV2v: string[]; } /** * Compile the batch-eligible submissions into a batch-queue manifest. * References ride in `characterRefs` — the provider REFERENCE slot, never the * first frame, so the style board defines the language without becoming * frame 1 of the clip. */ export declare function toBatchManifest(plan: MographRenderPlan, route: BatchRouteId): MographBatchCompilation; export interface MographSidecar { schemaVersion: 1; blockId: string; priority: MographPriority; mode: string; route: string; prompt: string; refs: string[]; videoSource?: string; durationSec: number; aspect: string; vo?: string; /** The block's sound-design cues. The render is silent, so these are for the post mix. */ sfx?: string[]; /** * The sheet's sound identity (e.g. "soft whooshes, UI ticks, low room hum"): the * palette every block's sfx should be drawn from. Sheet-level, carried on each * sidecar so the post mix has it beside the per-block cues (#635). */ audioIdentity?: string; generatedAt: string; } /** The per-clip audit record (exact prompt + refs + route) — written next to outputs. */ export declare function buildSidecar(submission: MographSubmission, vo: string | undefined, generatedAt: string, sfx?: string[], audioIdentity?: string): MographSidecar; //# sourceMappingURL=plan.d.ts.map