/** * Joey-style Seedance block emitters: Subject Lock / Frame Map / Cross-Frame / * Last Frame. Pure/deterministic — no I/O. * * WS0 binding probe (docs/design/notes/ark-reference-order-result.md) is * RESOLVED positional: per UseAPI docs + production ARK payloads (2026-05-30), * all three gateways honor reference ORDER as the `@imageN` mapping, so `@imageN` * slots are emitted as a HARD positional binding contract — the slot label is the * reference-order key, not a descriptive hint. */ /** * WS0 reference-order binding mode. Resolved to `true`: positional binding is * confirmed (UseAPI docs + production ARK payloads, 2026-05-30 — all three * gateways honor reference ORDER as the `@imageN` mapping). `@imageN` is a hard * positional reference-order contract, not guidance only. */ export declare const POSITIONAL_BINDING = true; export interface SubjectLockEntry { label: string; slot: string; } export interface FrameMapEntry { t: string; beat: string; } /** FRAME MAP — ordered beats with timecodes. */ export declare function frameMapBlock(entries: FrameMapEntry[]): string; /** SUBJECT LOCK — per-character identity binding to @imageN slots. */ export declare function subjectLockBlock(entries: SubjectLockEntry[]): string; /** CROSS-FRAME RULES — identity/geography stability across cuts. */ export declare function crossFrameBlock(): string; /** * Per-character POSITIONAL visual-descriptor line. Each subject is placed at a * frame position (Center / Left / Right / …) carrying its VISUAL DESCRIPTOR * (`entry.label`) — never a proper name. A missing descriptor falls back to a * stable "as established in the reference image" so the slot still reads. Returns * `''` for an empty list so single-subject / character-free scenes add nothing. */ export declare function buildPositionalDescriptorLine(entries: SubjectLockEntry[]): string; /** * Explicit identity-lock / no-face-morph discipline line. Reuses the standing * {@link noFaceMorphTag} rule (prompt-rules) so the "no face morphing" wording * stays canonical across surfaces. */ export declare function buildIdentityLockLine(): string; /** * Single-full-frame guard: forces the model to perform grid panels over time * instead of reproducing a 3x3 collage as a moving split-screen. Shared between * the grid-bearing packet variants and the opt-in text-discipline path so every * multi-reference packet can carry the same guard text. * See multi-shot-framework Anti-patterns ("Grid leakage"). */ export declare const SINGLE_FULL_FRAME_GUARD = "Output a single full-frame cinematic shot that fills the entire frame edge to edge \u2014 no 3x3 grid, no split-screen, no panel borders, no collage, no multi-panel montage, no contact sheet, no reference-card layout. The character reference sheets and storyboard grid are reference ONLY \u2014 never reproduce the multi-panel sheet, the character-sheet grid, or any panel layout in the video; read identity and motion from them and render one continuous live scene. Perform any grid panels as consecutive moments over time, never as one image."; /** LAST FRAME — closing composition lock + sanctioned text suppression. */ export declare function lastFrameBlock(closing: string): string; //# sourceMappingURL=seedance-blocks.d.ts.map