@nodaro/prompts 1.47.0 → 1.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/{catalog-packs-C9CXEWfl.d.cts → catalog-packs-BDsrv8St.d.cts} +1 -1
  2. package/dist/{catalog-packs-D7NJpo4k.d.ts → catalog-packs-CAK42voB.d.ts} +1 -1
  3. package/dist/{chunk-SMKIVT7P.js → chunk-36XMRVY4.js} +4 -4
  4. package/dist/{chunk-SMKIVT7P.js.map → chunk-36XMRVY4.js.map} +1 -1
  5. package/dist/{chunk-JHEZJKTX.cjs → chunk-54BYDWAM.cjs} +62 -52
  6. package/dist/chunk-54BYDWAM.cjs.map +1 -0
  7. package/dist/{chunk-IKHRZ5UQ.js → chunk-BTV2I7EN.js} +3 -3
  8. package/dist/{chunk-IKHRZ5UQ.js.map → chunk-BTV2I7EN.js.map} +1 -1
  9. package/dist/{chunk-57PTYJJX.js → chunk-CMEUYFBZ.js} +13 -13
  10. package/dist/chunk-CMEUYFBZ.js.map +1 -0
  11. package/dist/{chunk-2OIKQ4WB.js → chunk-GZVCBSFG.js} +5 -5
  12. package/dist/{chunk-2OIKQ4WB.js.map → chunk-GZVCBSFG.js.map} +1 -1
  13. package/dist/{chunk-FCTK7RGO.cjs → chunk-IMQB7GIK.cjs} +42 -39
  14. package/dist/chunk-IMQB7GIK.cjs.map +1 -0
  15. package/dist/{chunk-2HJJBXGA.js → chunk-JHRVNWBS.js} +6 -6
  16. package/dist/{chunk-2HJJBXGA.js.map → chunk-JHRVNWBS.js.map} +1 -1
  17. package/dist/{chunk-OSKABA64.cjs → chunk-JV2WSMAA.cjs} +8 -8
  18. package/dist/{chunk-OSKABA64.cjs.map → chunk-JV2WSMAA.cjs.map} +1 -1
  19. package/dist/{chunk-VAK4RUNU.cjs → chunk-KNAKOSKV.cjs} +13 -13
  20. package/dist/{chunk-VAK4RUNU.cjs.map → chunk-KNAKOSKV.cjs.map} +1 -1
  21. package/dist/{chunk-TXHFL725.js → chunk-LD47QOKS.js} +62 -53
  22. package/dist/chunk-LD47QOKS.js.map +1 -0
  23. package/dist/{chunk-YCCQXX3U.cjs → chunk-MYVJVOPB.cjs} +39 -39
  24. package/dist/{chunk-YCCQXX3U.cjs.map → chunk-MYVJVOPB.cjs.map} +1 -1
  25. package/dist/{chunk-PHR4UETI.cjs → chunk-PJFX3MFI.cjs} +18 -18
  26. package/dist/{chunk-PHR4UETI.cjs.map → chunk-PJFX3MFI.cjs.map} +1 -1
  27. package/dist/{chunk-NN4FL7SB.js → chunk-XBRW75LM.js} +4 -4
  28. package/dist/{chunk-NN4FL7SB.js.map → chunk-XBRW75LM.js.map} +1 -1
  29. package/dist/{chunk-C4FDHCEZ.cjs → chunk-XGNUOU4F.cjs} +125 -125
  30. package/dist/{chunk-C4FDHCEZ.cjs.map → chunk-XGNUOU4F.cjs.map} +1 -1
  31. package/dist/{chunk-CPKYIVWP.js → chunk-YXJSPQC6.js} +12 -9
  32. package/dist/chunk-YXJSPQC6.js.map +1 -0
  33. package/dist/{chunk-OY7XOPDG.cjs → chunk-Z755PH3K.cjs} +57 -57
  34. package/dist/chunk-Z755PH3K.cjs.map +1 -0
  35. package/dist/entries/assembly.cjs +28 -28
  36. package/dist/entries/assembly.d.cts +1 -2
  37. package/dist/entries/assembly.d.ts +1 -2
  38. package/dist/entries/assembly.js +5 -5
  39. package/dist/entries/catalog-packs.d.cts +3 -3
  40. package/dist/entries/catalog-packs.d.ts +3 -3
  41. package/dist/entries/person.d.cts +2 -2
  42. package/dist/entries/person.d.ts +2 -2
  43. package/dist/entries/picker-catalogs.cjs +56 -56
  44. package/dist/entries/picker-catalogs.d.cts +26 -4
  45. package/dist/entries/picker-catalogs.d.ts +26 -4
  46. package/dist/entries/picker-catalogs.js +4 -4
  47. package/dist/entries/pickers.cjs +377 -373
  48. package/dist/entries/pickers.d.cts +473 -2
  49. package/dist/entries/pickers.d.ts +473 -2
  50. package/dist/entries/pickers.js +2 -2
  51. package/dist/entries/prompt-builder.cjs +75 -75
  52. package/dist/entries/prompt-builder.d.cts +2 -3
  53. package/dist/entries/prompt-builder.d.ts +2 -3
  54. package/dist/entries/prompt-builder.js +4 -4
  55. package/dist/index.cjs +529 -525
  56. package/dist/index.d.cts +5 -6
  57. package/dist/index.d.ts +5 -6
  58. package/dist/index.js +8 -8
  59. package/dist/{picker-catalogs-C3utGMRB.d.cts → picker-catalogs-BiRCs_5G.d.cts} +8 -0
  60. package/dist/{picker-catalogs-BM8IphF1.d.ts → picker-catalogs-CX8pHi8q.d.ts} +8 -0
  61. package/dist/{subject-registry-DFiGx49v.d.ts → subject-registry-Cf802LQ5.d.ts} +8 -4
  62. package/dist/{subject-registry-CQi_CZfJ.d.cts → subject-registry-D2uMBVpP.d.cts} +8 -4
  63. package/package.json +2 -2
  64. package/src/__tests__/assemble-video-input.test.ts +13 -11
  65. package/src/__tests__/direction-registry.test.ts +5 -5
  66. package/src/__tests__/prompt-style-section.test.ts +2 -2
  67. package/src/__tests__/style-video-wording.test.ts +258 -0
  68. package/src/catalog-overlay.ts +15 -1
  69. package/src/direction-registry.ts +25 -7
  70. package/src/parameter-prompt-hint.ts +23 -7
  71. package/src/picker-catalogs.ts +11 -0
  72. package/src/style.ts +78 -49
  73. package/dist/chunk-57PTYJJX.js.map +0 -1
  74. package/dist/chunk-CPKYIVWP.js.map +0 -1
  75. package/dist/chunk-FCTK7RGO.cjs.map +0 -1
  76. package/dist/chunk-JHEZJKTX.cjs.map +0 -1
  77. package/dist/chunk-OY7XOPDG.cjs.map +0 -1
  78. package/dist/chunk-TXHFL725.js.map +0 -1
  79. package/dist/transitions-BLFfAJUH.d.cts +0 -450
  80. package/dist/transitions-BgwWM37i.d.ts +0 -450
@@ -1,7 +1,6 @@
1
1
  import { CharacterMotionMetadata } from '@nodaro/shared/types';
2
2
  export { CharacterMotionMetadata } from '@nodaro/shared/types';
3
3
  import { P as PickerHintMode } from '../term-C01_g6s1.cjs';
4
- export { A as AURORA_SWEEP_STYLE, D as DEBRIS_SHOWER_STYLE, G as GARDEN_BLOOM_STYLE, I as INSTANT_CUT_CLAUSE, S as SAKURA_PETALS_STYLE, a as SAND_STORM_STYLE, b as SMOKE_PUFF_STYLE, T as TRANSITIONS, c as TRANSITION_CATEGORY_LABELS, d as TRANSITION_CATEGORY_ORDER, e as TRANSITION_DURATIONS, f as TRANSITION_IDS, g as TRANSITION_INTENSITIES, h as TRANSITION_OPTION_FIELDS, i as TRANSITION_POSITIONS, j as TRANSITION_STYLE_FIELD, k as Transition, l as TransitionCategory, m as TransitionDuration, n as TransitionHintOptions, o as TransitionHintScope, p as TransitionIntensity, q as TransitionOption, r as TransitionOptionChoice, s as TransitionOptionValues, t as TransitionPosition, u as TransitionTiming, v as TransitionTimingOption, W as WHITE_FLASH_STYLE, w as WIPE_DIRECTION, x as blendedCutClause, y as composeTransitionHintFromConnections, z as getTransition, B as getTransitionLabel, C as getTransitionOptions, E as getTransitionPromptHint, F as getTransitionTerm, H as isBlendableTransition, J as isInstantTransition, K as readTransitionOptionValues, L as renderTransitionBases } from '../transitions-BLFfAJUH.cjs';
5
4
 
6
5
  /**
7
6
  * Types for the Character Motion catalog. The entry arrays live one file per
@@ -2208,6 +2207,23 @@ interface Style {
2208
2207
  * the term ("anime", "ukiyo-e", "cyberpunk") and nothing is authored.
2209
2208
  */
2210
2209
  readonly term?: string;
2210
+ /**
2211
+ * VIDEO-ONLY wording: what the medium is, then its concrete techniques
2212
+ * ("Stop-motion claymation, handmade: every person … sculpted from matte
2213
+ * plasticine clay …"). A still's `promptHint` loses to real reference photos
2214
+ * once the shot moves: a video model holds on to a photographed face or a
2215
+ * filmed scene unless the wording names a MEDIUM strongly enough to override
2216
+ * it (in video tests on Seedance 2.5, this pattern as the prompt's first line
2217
+ * styled every shot). Every stock style carries one; the photographic styles
2218
+ * name a live-action or photographic medium, so they stay photographed. A
2219
+ * drawn style names a 2D medium, with its outline first among its techniques
2220
+ * (in the tests, lines with an outline styled every shot, a shot no reference
2221
+ * picture covers included; lines without one often left that shot
2222
+ * photographed). Every video surface reads it through
2223
+ * `getStyleVideoPromptHint`, which falls back to `promptHint` (a pack style
2224
+ * without one). Images never read it.
2225
+ */
2226
+ readonly videoPromptHint?: string;
2211
2227
  }
2212
2228
  declare const STYLES: ReadonlyArray<Style>;
2213
2229
  declare function getStyle(id: string | undefined | null): Style | undefined;
@@ -2223,6 +2239,14 @@ declare function getStyle(id: string | undefined | null): Style | undefined;
2223
2239
  declare function isDeniedStyleId(value: string | undefined | null): boolean;
2224
2240
  declare function getStyleLabel(id: string | undefined | null, fallback?: string): string;
2225
2241
  declare function getStylePromptHint(id: string | undefined | null): string;
2242
+ /**
2243
+ * The wording a VIDEO prompt injects for this style: its `videoPromptHint`
2244
+ * where one is authored, else the same `promptHint` an image uses. Resolved
2245
+ * through `getStyle`, so a deployment's catalog packs apply exactly as they do
2246
+ * to `getStylePromptHint` (see `overlayEntry` for how a pack's rewrite and the
2247
+ * video wording pair up). `""` for an unknown or denied id.
2248
+ */
2249
+ declare function getStyleVideoPromptHint(id: string | undefined | null): string;
2226
2250
  /** Compact counterpart of `getStylePromptHint` — see `term.ts`. */
2227
2251
  declare function getStyleTerm(id: string | undefined | null): string;
2228
2252
  declare const STYLE_IDS: ReadonlyArray<string>;
@@ -2500,6 +2524,453 @@ declare function buildTemporalTerms(data: Record<string, unknown> & {
2500
2524
  temporalShutter?: unknown;
2501
2525
  }): string[];
2502
2526
 
2527
+ /**
2528
+ * Canonical catalog of cinematic transitions for AI-video generation.
2529
+ *
2530
+ * Shared between frontend (picker UI, prompt hint injection) and backend
2531
+ * (orchestrator payload builder). The `promptHint` is a natural-language
2532
+ * cue that gets composed into the user prompt when a transition node is
2533
+ * connected to a video consumer.
2534
+ *
2535
+ * Multi-pick supported: value field accepts `string | string[]` (cap 2).
2536
+ * Graph-aware: `startState` / `endState` input handles accept upstream
2537
+ * parameter nodes whose hints are folded into the composed clause as
2538
+ * "starting from <X>, ending at <Y>".
2539
+ */
2540
+
2541
+ type TransitionCategory = "standard" | "time" | "element" | "morph" | "portal" | "physics" | "light" | "glitch";
2542
+ interface Transition {
2543
+ readonly id: string;
2544
+ readonly label: string;
2545
+ readonly category: TransitionCategory;
2546
+ readonly description: string;
2547
+ readonly promptHint: string;
2548
+ /**
2549
+ * Optional authored compact term (see `term.ts`). Authored where the
2550
+ * lowercased label is not what an editor would write in a prompt — a UI
2551
+ * compound ("None / Hard Cut" → "hard cut"), an annotation the derivation
2552
+ * drops ("Fast-Forward (Day → Night)" → "day-to-night time-lapse"), a bare
2553
+ * word that collides with another meaning ("Melt Down", "Channel Flip",
2554
+ * "Roll"), or a coinage that is not the trade term ("Seamless Match" →
2555
+ * "invisible cut"). Everywhere else the label IS the term.
2556
+ */
2557
+ readonly term?: string;
2558
+ /**
2559
+ * `true` on rows whose mechanism IS A CUT — the change happens between two
2560
+ * frames, so it has no duration to time. A duration clause ("lasting
2561
+ * approximately 1 second") on such a row tells the video model to spend a
2562
+ * second on the change, and it obliges with a dissolve: a match cut rendered
2563
+ * as a 1.75 s cross-dissolve in QA. The composer therefore skips the duration
2564
+ * clause when every picked transition is instant (on a BLENDABLE cut, a
2565
+ * `blendsCut` step changes the cut itself instead — see `blendable`), and
2566
+ * consumers offer only the levers a cut takes — Position without `full`, no
2567
+ * Intensity, and Duration only on a blendable cut, as a Blend lever of "hard
2568
+ * cut" plus the `blendsCut` steps — reading `isInstantTransition` /
2569
+ * `isBlendableTransition` (the canvas panel) or the picker catalog's
2570
+ * `instant` / `blendable` / `blendsCut` flags (an id-only client).
2571
+ *
2572
+ * The same holds for INTENSITY: every intensity clause describes how the
2573
+ * change PERFORMS over time ("natural unhurried timing", "wild flourishes and
2574
+ * dramatic distortion"), and a cut has no performance to shape — "unhurried"
2575
+ * on a match cut is another invitation to blend. So the composer drops the
2576
+ * intensity clause too when every pick is instant. Position still applies —
2577
+ * WHERE the cut lands is a real choice — except `full`: a single-frame cut
2578
+ * cannot "span the entire clip", so that clause is dropped on an all-instant
2579
+ * pick (start / middle / end still place the cut).
2580
+ *
2581
+ * The bare term is not enough on its own either: "match cut" still came back
2582
+ * as a ~1 s superimposition in prod QA (seedance-2-5). The composer therefore
2583
+ * puts `INSTANT_CUT_CLAUSE` inside an all-instant pick's parentheses, once — the explicit
2584
+ * anti-blend instruction that made the model render a true single-frame cut.
2585
+ */
2586
+ readonly instant?: boolean;
2587
+ /**
2588
+ * `true` on a CUT that may become a BLENDED CUT: picked with a duration step
2589
+ * that `blendsCut` (Short), the pick's anti-blend `INSTANT_CUT_CLAUSE` is
2590
+ * REPLACED by `blendedCutClause` — the two shots blend into each other over
2591
+ * that step's own `term` — and every other rule of a cut stands (position
2592
+ * without `full`, no duration clause, no intensity clause). Any other
2593
+ * duration leaves it a hard cut. See `isBlendableTransition`.
2594
+ *
2595
+ * Set on `seamless-match` and `jump-match` only. In the blended-cut test
2596
+ * round (2026-10-04) their blended takes at Short kept what makes each row
2597
+ * itself — the invisible cut still hid its join, the jump match still held
2598
+ * the subject's place across the leap — and were approved. The blended takes
2599
+ * of `match-cut`, `jump-cut` and `action-relay` lost their trait and rated
2600
+ * below their hard cut, so those rows stay hard cuts at every duration, as
2601
+ * do `none`, `snap-to-black` and `smash-cut`, whose descriptions a blend
2602
+ * would contradict ("instantaneous", "on a single frame", "no fade").
2603
+ */
2604
+ readonly blendable?: boolean;
2605
+ /**
2606
+ * PER-ROW OPTIONS — extra choices that only mean something for THIS
2607
+ * transition (a wipe's direction), each written into the row's own hint.
2608
+ *
2609
+ * Unlike the timing scales (every row has a position), an option is declared
2610
+ * by the row that reads it, so it never appears beside a transition it would
2611
+ * not change. The row authors `promptTemplate` — its hint with one
2612
+ * `{<field>}` token per option — and `promptHint` is DERIVED from it with
2613
+ * every option on its `auto` choice (see `withOptionSlots`), so a reader of
2614
+ * the plain `promptHint` (the picker catalog, the analyzer, a catalog pack)
2615
+ * always sees a finished sentence and never a token.
2616
+ *
2617
+ * The choice's `phrase` is what fills the token, so the row BODY and the
2618
+ * option WORDING are separate: a reworded body keeps its options as long as
2619
+ * it keeps the token. `transition-options.test.ts` pins that every template
2620
+ * carries exactly one token per option and no other.
2621
+ */
2622
+ readonly options?: ReadonlyArray<TransitionOption>;
2623
+ /** The hint with a `{<field>}` token per `options` entry — see `options`. */
2624
+ readonly promptTemplate?: string;
2625
+ }
2626
+ /**
2627
+ * One choice of a per-row option. `auto` leads every option and is the choice
2628
+ * `promptHint` is written with: picking it (or picking nothing) sends no value.
2629
+ */
2630
+ interface TransitionOptionChoice {
2631
+ readonly id: string;
2632
+ readonly label: string;
2633
+ readonly description: string;
2634
+ /** The words that fill the row template's `{<field>}` token. */
2635
+ readonly phrase: string;
2636
+ /** The compact term for the choice ("left to right"); `""` on `auto`. */
2637
+ readonly term: string;
2638
+ }
2639
+ /** A per-row option (see `Transition.options`). */
2640
+ interface TransitionOption {
2641
+ /** The node-data field the chosen id is stored under — also the template
2642
+ * token's name (`{wipeDirection}`). Unique within a row; SHARED across rows
2643
+ * only where the rows mean the same kind of setting (`style`, see
2644
+ * `TRANSITION_STYLE_FIELD`) — each row still declares its own choices, and
2645
+ * a value is read only by the row that declares it. */
2646
+ readonly field: string;
2647
+ readonly label: string;
2648
+ /** `auto` first. */
2649
+ readonly choices: ReadonlyArray<TransitionOptionChoice>;
2650
+ }
2651
+ /**
2652
+ * The chosen option ids, keyed by `TransitionOption.field`
2653
+ * (`{ wipeDirection: "left-to-right" }`). One flat record for a whole pick: a
2654
+ * row reads only the fields it declares, so the other row of a two-pick, or a
2655
+ * value left behind by an earlier pick, changes nothing.
2656
+ */
2657
+ type TransitionOptionValues = Readonly<Record<string, string | undefined>>;
2658
+ /**
2659
+ * The wipe's direction. The phrase is the edge AND its travel, so the row's
2660
+ * body is free to change around it (`a clean {wipeDirection}, revealing …`).
2661
+ * `auto` names no orientation at all — a straight edge — and is what a pick
2662
+ * with no direction has always meant.
2663
+ */
2664
+ declare const WIPE_DIRECTION: TransitionOption;
2665
+ /** The shared node-data field every styled row stores its look under. */
2666
+ declare const TRANSITION_STYLE_FIELD = "style";
2667
+ declare const DEBRIS_SHOWER_STYLE: TransitionOption;
2668
+ declare const GARDEN_BLOOM_STYLE: TransitionOption;
2669
+ declare const SMOKE_PUFF_STYLE: TransitionOption;
2670
+ declare const SAKURA_PETALS_STYLE: TransitionOption;
2671
+ declare const AURORA_SWEEP_STYLE: TransitionOption;
2672
+ declare const SAND_STORM_STYLE: TransitionOption;
2673
+ declare const WHITE_FLASH_STYLE: TransitionOption;
2674
+ /**
2675
+ * The three timing scales, each derived from the catalog that defines it (see
2676
+ * `TRANSITION_POSITIONS` and friends below).
2677
+ *
2678
+ * The direction matters. These used to be hand-written unions with the clause
2679
+ * tables written out separately beside them, so the two could disagree: add a
2680
+ * step to the union, forget the clause, and the composer indexed a missing key
2681
+ * — pushing `undefined` into the parts list, which `join(", ")` renders as a
2682
+ * dangling separator on a prompt that then ships to a provider with the user's
2683
+ * chosen parameter silently dropped. Deriving the union FROM the catalog makes
2684
+ * that unrepresentable: one array is the source of the type, the option list
2685
+ * the API serves, and the clause table, so a new step reaches all three or
2686
+ * none. The exact id sets are pinned by `transition-timing-catalogs.test.ts`.
2687
+ */
2688
+ type TransitionPosition = (typeof TRANSITION_POSITIONS)[number]["id"];
2689
+ type TransitionDuration = (typeof TRANSITION_DURATIONS)[number]["id"];
2690
+ type TransitionIntensity = (typeof TRANSITION_INTENSITIES)[number]["id"];
2691
+ interface TransitionTiming {
2692
+ position?: TransitionPosition;
2693
+ duration?: TransitionDuration;
2694
+ intensity?: TransitionIntensity;
2695
+ }
2696
+ declare const TRANSITIONS: ReadonlyArray<Transition>;
2697
+ declare const TRANSITION_CATEGORY_ORDER: ReadonlyArray<TransitionCategory>;
2698
+ declare const TRANSITION_CATEGORY_LABELS: Readonly<Record<TransitionCategory, string>>;
2699
+ declare function getTransition(id: string | undefined | null): Transition | undefined;
2700
+ declare function getTransitionLabel(id: string | undefined | null, fallback?: string): string;
2701
+ /**
2702
+ * The row's hint. With `values`, a row that declares `options` is written with
2703
+ * the chosen choices in its template (an absent or unknown choice reads as
2704
+ * `auto`, which IS `promptHint`); every other row ignores them.
2705
+ *
2706
+ * A catalog pack that REWROTE the row's hint owns its words: its text has no
2707
+ * token to fill, so it is returned as written and the options add nothing.
2708
+ */
2709
+ declare function getTransitionPromptHint(id: string | undefined | null, values?: TransitionOptionValues): string;
2710
+ /** The per-row options a transition declares (`[]` for most rows, an unknown
2711
+ * id and `auto`). Reads through `getTransition`, like every other getter. */
2712
+ declare function getTransitionOptions(id: string | undefined | null): ReadonlyArray<TransitionOption>;
2713
+ /** Every option field any row declares, in catalog order — what a node-data
2714
+ * reader collects into `TransitionOptionValues`. */
2715
+ declare const TRANSITION_OPTION_FIELDS: ReadonlyArray<string>;
2716
+ /**
2717
+ * Collect `TransitionOptionValues` from a node-data-shaped record: every
2718
+ * declared option field whose value is a non-empty string. Validation against
2719
+ * a row's choices happens at render (an unknown id reads as `auto`).
2720
+ */
2721
+ declare function readTransitionOptionValues(data: Readonly<Record<string, unknown>> | undefined | null): TransitionOptionValues | undefined;
2722
+ /**
2723
+ * Compact professional TERM for an id — the short phrase an editor would write
2724
+ * in a prompt ("hard cut", "invisible cut", "day-to-night time-lapse"), as
2725
+ * opposed to the paragraph-length `promptHint`.
2726
+ *
2727
+ * Same lookup and same empty-string-on-miss behavior as
2728
+ * `getTransitionPromptHint`, so the two can never disagree about which entry
2729
+ * they describe. The no-op "Auto" entry resolves to `""` in both.
2730
+ */
2731
+ declare function getTransitionTerm(id: string | undefined | null): string;
2732
+ declare const TRANSITION_IDS: ReadonlyArray<string>;
2733
+ /**
2734
+ * Whether a transition is a CUT — instantaneous by nature, so it takes no
2735
+ * duration (see `Transition.instant`). Reads through `getTransition`, so it
2736
+ * answers for the same entry every other getter describes; an unknown id, the
2737
+ * no-op "auto" and an empty value are all `false`.
2738
+ *
2739
+ * A multi-pick (`string[]`) is instant only when EVERY picked id is: a cut
2740
+ * paired with a dissolve still has a dissolve to time.
2741
+ */
2742
+ declare function isInstantTransition(id: string | ReadonlyArray<string> | undefined | null): boolean;
2743
+ /**
2744
+ * Whether a pick may become a BLENDED CUT (see `Transition.blendable`): every
2745
+ * picked id is a blendable cut. Same lookup and same empty-pick answer as
2746
+ * `isInstantTransition`, so a pick is blendable only where it is instant. Like
2747
+ * that check, it reads the ids it is given: the composer passes only the ids
2748
+ * that contribute a fragment, so a no-op "auto" beside a blendable cut does not
2749
+ * stop the blend there (`["auto", "seamless-match"]` given whole is `false`).
2750
+ */
2751
+ declare function isBlendableTransition(id: string | ReadonlyArray<string> | undefined | null): boolean;
2752
+ /**
2753
+ * The anti-blend instruction an all-instant transition pick carries — the ONE
2754
+ * place this sentence lives (see `Transition.instant`). Each row keeps its own
2755
+ * meaning in its own hint (a match cut still matches shapes, snap to black
2756
+ * still holds black for a beat); this clause only forbids the blend a video
2757
+ * model otherwise puts between the two images. Measured on prod with
2758
+ * seedance-2-5: with it, a match cut renders as a true single-frame hard cut,
2759
+ * with and without an end frame; without it, as a ~1 s dissolve.
2760
+ */
2761
+ declare const INSTANT_CUT_CLAUSE = "an abrupt single-frame hard cut, no dissolve, crossfade or superimposition; the two images never blend";
2762
+ /**
2763
+ * The transition BASE fragments for a pick — one `<term> (<hint body>)` per id
2764
+ * that resolves to a term, in pick order. When EVERY contributing id is
2765
+ * instant, the FIRST fragment's parentheses also carry `; INSTANT_CUT_CLAUSE`
2766
+ * (once per pick — two cuts picked together are still one cut). FIRST, not
2767
+ * last: the direction fold sheds fragments from the TAIL under a provider cap,
2768
+ * so the clause rides the fragment that survives longest. A mixed pick carries
2769
+ * no clause: its non-cut is meant to blend.
2770
+ *
2771
+ * The same text in both hint modes. A transition only ever reaches a VIDEO
2772
+ * prompt (the registry row is `surface: "video"`; the canvas node is in
2773
+ * `VIDEO_ONLY_PARAMETER_NODE_TYPES`), and there the bare compact term was not
2774
+ * enough to steer the model, so the mode no longer changes a transition.
2775
+ *
2776
+ * Each fragment is ONE string, parentheses included: the cap-aware assemblers
2777
+ * shed whole fragments from the tail, so a fragment is kept or dropped whole
2778
+ * and can never lose its hint or its clause on its own.
2779
+ *
2780
+ * Shared by `composeTransitionHintFromConnections` (the canvas transition node,
2781
+ * Studio's transition clauses) and the direction registry's `transition` row
2782
+ * (the server fold of `direction.transition`), so both paths word a transition
2783
+ * identically.
2784
+ *
2785
+ * `values` are the per-row option choices (`TransitionOptionValues`) — a wipe's
2786
+ * direction. The direction registry passes none, so a `direction.transition`
2787
+ * wipe reads as `auto`.
2788
+ *
2789
+ * These bases are always the HARD cut's: a pick here has no duration, so it
2790
+ * never becomes a blended cut. The blend exists only where a duration is
2791
+ * picked, in `composeTransitionHintFromConnections`.
2792
+ */
2793
+ declare function renderTransitionBases(ids: ReadonlyArray<string>, _mode?: PickerHintMode, values?: TransitionOptionValues): string[];
2794
+ /**
2795
+ * THE BLENDED CUT — what a blendable cut becomes when a duration that
2796
+ * `blendsCut` (Short) is picked on it: instead of the anti-blend
2797
+ * `INSTANT_CUT_CLAUSE`, the two shots blend into each other over that step's
2798
+ * own `term` ("about 1 second"), so the time words are the catalog's and never
2799
+ * typed here. "" for every other value (auto, instant, medium, long, an unknown
2800
+ * id, none), which leaves the cut a hard cut.
2801
+ */
2802
+ declare function blendedCutClause(duration: string | undefined): string;
2803
+ /**
2804
+ * The transition node's three timing parameters, as catalogs.
2805
+ *
2806
+ * These are graded scales, not free numbers — the same shape as
2807
+ * `exposure-settings`' aperture or `temporal`'s speed — so a consumer that can
2808
+ * only send ids (Studio, the SDK, MCP) can offer them without composing prompt
2809
+ * text of its own. `auto` is the no-op head of each scale: an empty
2810
+ * `promptHint`, so an unset parameter contributes nothing and the model is left
2811
+ * to decide, exactly as before these were enumerable.
2812
+ *
2813
+ * `POSITION_CLAUSES` / `DURATION_CLAUSES` / `INTENSITY_CLAUSES` below are
2814
+ * DERIVED from these arrays, so the clause the composer injects and the hint
2815
+ * the catalog advertises are the same string by construction and cannot drift.
2816
+ */
2817
+ interface TransitionTimingOption {
2818
+ readonly id: string;
2819
+ readonly label: string;
2820
+ readonly description: string;
2821
+ readonly promptHint: string;
2822
+ readonly term?: string;
2823
+ /** Duration rows only: `true` on a step a blendable CUT may take — picked on
2824
+ * such a pick it turns the cut into a BLENDED CUT over this row's `term`
2825
+ * (see `blendedCutClause`). Absent = a cut ignores the step and stays a
2826
+ * hard cut. Set on `short` only: the 2026-10-04 test round approved the
2827
+ * blend at about 1 second, not at Medium's 2. */
2828
+ readonly blendsCut?: boolean;
2829
+ }
2830
+ declare const TRANSITION_POSITIONS: readonly [{
2831
+ readonly id: "auto";
2832
+ readonly label: "Auto";
2833
+ readonly description: "Let the model place it";
2834
+ readonly promptHint: "";
2835
+ readonly term: "";
2836
+ }, {
2837
+ readonly id: "start";
2838
+ readonly label: "Start";
2839
+ readonly description: "At the opening of the clip";
2840
+ readonly promptHint: "the transition occurs at the opening of the clip";
2841
+ readonly term: "at the opening of the clip";
2842
+ }, {
2843
+ readonly id: "middle";
2844
+ readonly label: "Middle";
2845
+ readonly description: "In the middle of the clip";
2846
+ readonly promptHint: "the transition occurs in the middle of the clip";
2847
+ readonly term: "mid-clip";
2848
+ }, {
2849
+ readonly id: "end";
2850
+ readonly label: "End";
2851
+ readonly description: "At the end of the clip";
2852
+ readonly promptHint: "the transition occurs at the end of the clip";
2853
+ readonly term: "at the end of the clip";
2854
+ }, {
2855
+ readonly id: "full";
2856
+ readonly label: "Full";
2857
+ readonly description: "Spans the entire clip";
2858
+ readonly promptHint: "the transition spans the entire clip";
2859
+ readonly term: "across the whole clip";
2860
+ }];
2861
+ declare const TRANSITION_DURATIONS: readonly [{
2862
+ readonly id: "auto";
2863
+ readonly label: "Auto";
2864
+ readonly description: "Let the model time it";
2865
+ readonly promptHint: "";
2866
+ readonly term: "";
2867
+ }, {
2868
+ readonly id: "instant";
2869
+ readonly label: "Instant";
2870
+ readonly description: "No perceptible duration";
2871
+ readonly promptHint: "occurring instantaneously";
2872
+ readonly term: "instantaneous";
2873
+ }, {
2874
+ readonly id: "short";
2875
+ readonly label: "Short (~1s)";
2876
+ readonly description: "Approximately 1 second";
2877
+ readonly promptHint: "lasting approximately 1 second";
2878
+ readonly term: "about 1 second";
2879
+ readonly blendsCut: true;
2880
+ }, {
2881
+ readonly id: "medium";
2882
+ readonly label: "Medium (~2s)";
2883
+ readonly description: "Approximately 2 seconds";
2884
+ readonly promptHint: "lasting approximately 2 seconds";
2885
+ readonly term: "about 2 seconds";
2886
+ }, {
2887
+ readonly id: "long";
2888
+ readonly label: "Long (~3s)";
2889
+ readonly description: "Approximately 3 seconds";
2890
+ readonly promptHint: "lasting approximately 3 seconds";
2891
+ readonly term: "about 3 seconds";
2892
+ }];
2893
+ declare const TRANSITION_INTENSITIES: readonly [{
2894
+ readonly id: "auto";
2895
+ readonly label: "Auto";
2896
+ readonly description: "Let the model judge it";
2897
+ readonly promptHint: "";
2898
+ readonly term: "";
2899
+ }, {
2900
+ readonly id: "subtle";
2901
+ readonly label: "Subtle";
2902
+ readonly description: "Restrained, minimal flourish";
2903
+ readonly promptHint: "with subtle restrained energy and minimal flourish";
2904
+ readonly term: "subtly";
2905
+ }, {
2906
+ readonly id: "natural";
2907
+ readonly label: "Natural";
2908
+ readonly description: "Unhurried, unforced timing";
2909
+ readonly promptHint: "with natural timing";
2910
+ readonly term: "at a natural pace";
2911
+ }, {
2912
+ readonly id: "dynamic";
2913
+ readonly label: "Dynamic";
2914
+ readonly description: "Assertive, energetic";
2915
+ readonly promptHint: "with dynamic energy and assertive flourish";
2916
+ readonly term: "energetically";
2917
+ }, {
2918
+ readonly id: "crazy";
2919
+ readonly label: "Crazy";
2920
+ readonly description: "Extreme, wild, distorted";
2921
+ readonly promptHint: "with extreme exaggerated energy, wild flourishes, and dramatic distortion";
2922
+ readonly term: "wildly exaggerated";
2923
+ }];
2924
+ /**
2925
+ * Where the composed hint lands. `"clip"` (the default) is a whole video's
2926
+ * prompt, so a position is placed within "the clip". `"shot"` is one shot's
2927
+ * time window inside a multi-shot prompt (`0-2s — …`, `2-4s — …`): there "the
2928
+ * middle of the clip" points the model at the wrong span, so the position
2929
+ * clause says "of this shot" instead.
2930
+ */
2931
+ type TransitionHintScope = "clip" | "shot";
2932
+ interface TransitionHintOptions {
2933
+ readonly scope?: TransitionHintScope;
2934
+ /** The per-row option choices (a wipe's `wipeDirection`) — see
2935
+ * `Transition.options`. Absent, every row reads as `auto`. */
2936
+ readonly optionValues?: TransitionOptionValues;
2937
+ }
2938
+ /**
2939
+ * Compose a structural prompt-hint sentence from a transition id (or array
2940
+ * of 1-2 ids for multi-pick) plus optional start-state/end-state hints
2941
+ * (collected by walking the source node's startState / endState input
2942
+ * handle edges upstream) and optional timing fields.
2943
+ *
2944
+ * Behavior:
2945
+ * - 0 hints (no transition, empty array, or all-empty hints) → ""
2946
+ * - each pick rendered `<term> (<hint body>)` (`renderTransitionBases`),
2947
+ * n picks joined with ", and "
2948
+ * - Timing/start/end clauses apply ONCE at the outer layer, not per-id
2949
+ * - When every picked id is instant (a cut — see `isInstantTransition`) the
2950
+ * first base's parentheses carry `INSTANT_CUT_CLAUSE` once, and the
2951
+ * duration and intensity clauses are dropped; position still applies,
2952
+ * except `full` — a single-frame cut spans nothing, so it adds no clause
2953
+ * - A BLENDED CUT: when every picked id is a blendable cut
2954
+ * (`isBlendableTransition`) and the duration `blendsCut` (Short), that
2955
+ * clause is `blendedCutClause(duration)` INSTEAD of `INSTANT_CUT_CLAUSE`
2956
+ * (replaced, not appended; still once, in the first parentheses); every
2957
+ * other rule above stands as for a hard cut, so there is still no duration
2958
+ * clause, no intensity clause and no `full`. Any other duration on such a
2959
+ * pick, and any duration on any other cut, leaves the hard cut
2960
+ * - null input is treated like undefined (falsy short-circuit → returns "")
2961
+ *
2962
+ * @param _mode Accepted for the picker-hint signature; a transition composes
2963
+ * the same text in both modes — each pick as `<term> (<hint body>)`, see
2964
+ * `renderTransitionBases`.
2965
+ * @param options `scope: "shot"` when the hint is folded into one shot's time
2966
+ * window of a multi-shot prompt — the position clause then says "of this
2967
+ * shot" instead of "of the clip" (and `full`, on a non-cut, "spans this
2968
+ * entire shot"). Omitted, the wording is the clip's. `optionValues` are the
2969
+ * per-row option choices (a wipe's direction), written into the row's own
2970
+ * description; omitted, every row reads as `auto`.
2971
+ */
2972
+ declare function composeTransitionHintFromConnections(transitionId: string | ReadonlyArray<string> | undefined, startHints: ReadonlyArray<string>, endHints: ReadonlyArray<string>, timing?: TransitionTiming, _mode?: PickerHintMode, options?: TransitionHintOptions): string;
2973
+
2503
2974
  /**
2504
2975
  * Voice-character catalog: age + gender + language + accent + timbre. Feeds
2505
2976
  * Voice Design's voiceDescription field via the Sound aggregator.
@@ -2714,4 +3185,4 @@ interface CharacterMotionBindings {
2714
3185
  * unknown; this never certifies a sequence or predicts clip duration. */
2715
3186
  declare function getCharacterMotionDiagnostics(value: string | readonly string[] | null | undefined, timing?: CharacterMotionTiming, bindings?: CharacterMotionBindings): readonly CharacterMotionDiagnostic[];
2716
3187
 
2717
- export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, AESTHETICS, AESTHETIC_CATEGORY_LABELS, AESTHETIC_CATEGORY_ORDER, AESTHETIC_IDS, ATMOSPHERES, ATMOSPHERE_IDS, type ActionFx, type ActionFxCategory, type Aesthetic, type AestheticCategory, type Atmosphere, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, type Backdrop, type BackdropCategory, CAMERA_FORMATS, CAMERA_FORMAT_IDS, CAMERA_MOTIONS, CAMERA_MOTION_CATEGORY_LABELS, CAMERA_MOTION_CATEGORY_ORDER, CAMERA_MOTION_IDS, CHARACTER_FX, CHARACTER_FX_CATEGORY_LABELS, CHARACTER_FX_CATEGORY_ORDER, CHARACTER_FX_DURATIONS, CHARACTER_FX_IDS, CHARACTER_FX_INTENSITIES, CHARACTER_FX_POSITIONS, CHARACTER_MOTIONS, CHARACTER_MOTION_CATEGORY_LABELS, CHARACTER_MOTION_CATEGORY_ORDER, CHARACTER_MOTION_IDS, CHARACTER_MOTION_MAX_PICKS, CHARACTER_MOTION_PACES, CHARACTER_MOTION_POSITIONS, COLOR_LOOKS, COLOR_LOOK_CATEGORY_LABELS, COLOR_LOOK_CATEGORY_ORDER, COLOR_LOOK_IDS, COMPOSITION_EFFECTS, COMPOSITION_EFFECT_IDS, type CameraFormat, type CameraMotion, type CameraMotionCategory, type CategorizedInstrument, type CharacterFx, type CharacterFxCategory, type CharacterFxDuration, type CharacterFxIntensity, type CharacterFxPosition, type CharacterFxTiming, type CharacterFxTimingOption, type CharacterMotion, type CharacterMotionBindings, type CharacterMotionCategory, type CharacterMotionDiagnostic, type CharacterMotionFloor, type CharacterMotionPace, type CharacterMotionPosition, type CharacterMotionTiming, type CharacterMotionTimingOption, type ColorLook, type ColorLookCategory, type CompositionEffect, ERAS, ERA_CATEGORY_LABELS, ERA_CATEGORY_ORDER, ERA_IDS, EXPOSURE_CATEGORY_LABELS, EXPOSURE_CATEGORY_ORDER, EXPOSURE_FIELD_BY_CATEGORY, EXPOSURE_IDS, EXPOSURE_SETTINGS, type Era, type EraCategory, type ExposureCategory, type ExposureSettings, type ExposureValue, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, type Framing, type FramingCategory, type FramingValue, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, type HeldProp, type HeldPropCategory, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, type InstrumentCategory, type InstrumentationEntry, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, type Lens, type Lighting, type LightingCategory, type LightingValue, type LoopSubject, type LoopSubjectCategory, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, MUSIC_EMOTIONS, MUSIC_ENERGIES, MUSIC_ERAS, MUSIC_GENRES, MUSIC_GENRE_CATEGORY_LABELS, MUSIC_GENRE_CATEGORY_ORDER, MUSIC_GENRE_DEFAULT_DATA, MUSIC_MOOD_DEFAULT_DATA, MUSIC_VIBES, type Material, type MaterialCategory, type Mood, type MoodCategory, type MoodValue, type MusicEra, type MusicGenre, type MusicGenreCategory, type MusicMoodData, type MusicMoodEntry, type MusicSubgenre, PHOTOGRAPHERS, PHOTOGRAPHER_CATEGORY_LABELS, PHOTOGRAPHER_CATEGORY_ORDER, PHOTOGRAPHER_IDS, PHOTO_GENRES, PHOTO_GENRE_CATEGORY_LABELS, PHOTO_GENRE_CATEGORY_ORDER, PHOTO_GENRE_IDS, POSES, POSE_CATEGORY_LABELS, POSE_CATEGORY_ORDER, POSE_IDS, POST_PROCESS_EFFECTS, POST_PROCESS_EFFECT_IDS, PRODUCTION_STYLES, type PhotoGenre, type PhotoGenreCategory, type Photographer, type PhotographerCategory, type Pose, type PoseCategory, type PoseValue, type PostProcessEffect, RENDER_QUALITIES, RENDER_QUALITY_IDS, type RenderQuality, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SINGING_STYLES, STYLES, STYLE_IDS, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_DIMENSION_SECTIONS, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, type Setting, type SettingCategory, type Style, type Styling, type StylingDimension, type StylingDimensionSection, type StylingValue, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, type Temporal, type TemporalCategory, type TemporalValue, VOCAL_PRESENCE, VOCAL_PRESENCE_INSTRUMENTAL_ID, VOICE_ACCENTS, VOICE_AGES, VOICE_ARCHETYPES, VOICE_CHARACTER_DEFAULT_DATA, VOICE_DELIVERY_DEFAULT_DATA, VOICE_EMOTIONS, VOICE_GENDERS, VOICE_LANGUAGES, VOICE_PACES, VOICE_TIMBRES, type VoiceCharacterEntry, type VoiceDeliveryEntry, WARDROBE, WARDROBE_CATEGORY_LABELS, WARDROBE_DIMENSION_ORDER, WARDROBE_FIELD_BY_DIMENSION, type WardrobeDimension, type WardrobeEntry, type WardrobeValue, buildActionFxHints, buildActionFxTerms, buildAestheticHints, buildAestheticTerms, buildAtmosphereHints, buildAtmosphereTerms, buildExposureHints, buildExposureTerms, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildPhotographerHints, buildPhotographerTerms, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildStylingHints, buildStylingTerms, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeCharacterMotionHintFromConnections, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAestheticTerm, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getAtmosphereTerm, getBackdrop, getBackdropLabel, getBackdropPromptHint, getBackdropTerm, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraFormatTerm, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCameraMotionTerm, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getCharacterFxTerm, getCharacterMotion, getCharacterMotionDiagnostics, getCharacterMotionLabel, getCharacterMotionPromptHint, getCharacterMotionTerm, getColorLook, getColorLookLabel, getColorLookPromptHint, getColorLookTerm, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getCompositionEffectTerm, getEra, getEraLabel, getEraPromptHint, getEraTerm, getExposure, getExposureLabel, getExposurePromptHint, getExposureTerm, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getFramingTerm, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getHeldPropTerm, getInstrument, getInstrumentTerm, getLens, getLensLabel, getLensPromptHint, getLensTerm, getLighting, getLightingLabel, getLightingPromptHint, getLightingTerm, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getLoopSubjectTerm, getMaterial, getMaterialLabel, getMaterialPromptHint, getMaterialTerm, getMood, getMoodLabel, getMoodPromptHint, getMoodTerm, getMusicEmotion, getMusicEmotionTerm, getMusicEnergy, getMusicEnergyTerm, getMusicEra, getMusicEraTerm, getMusicGenre, getMusicGenreLabel, getMusicGenreTerm, getMusicSubgenre, getMusicSubgenreTerm, getMusicVibe, getMusicVibeTerm, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotoGenreTerm, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPhotographerTerm, getPose, getPoseLabel, getPosePromptHint, getPoseTerm, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getPostProcessEffectTerm, getProductionStyle, getProductionStyleTerm, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getRenderQualityTerm, getSetting, getSettingLabel, getSettingPromptHint, getSettingTerm, getSingingStyle, getSingingStyleTerm, getStyle, getStyleLabel, getStylePromptHint, getStyleTerm, getStyling, getStylingDimensionLimit, getStylingLabel, getStylingPromptHint, getStylingTerm, getTemporal, getTemporalLabel, getTemporalPromptHint, getTemporalTerm, getVocalPresence, getVocalPresenceTerm, getVoiceAccent, getVoiceAccentTerm, getVoiceAge, getVoiceAgeTerm, getVoiceArchetype, getVoiceArchetypeTerm, getVoiceEmotion, getVoiceEmotionTerm, getVoiceGender, getVoiceGenderTerm, getVoiceLanguage, getVoiceLanguageTerm, getVoicePace, getVoicePaceTerm, getVoiceTimbre, getVoiceTimbreTerm, getWardrobeEntriesByDimension, getWardrobeEntry, getWardrobePromptHint, isDeniedStyleId, isInstrumentalVocal, isVantageFraming };
3188
+ export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, AESTHETICS, AESTHETIC_CATEGORY_LABELS, AESTHETIC_CATEGORY_ORDER, AESTHETIC_IDS, ATMOSPHERES, ATMOSPHERE_IDS, AURORA_SWEEP_STYLE, type ActionFx, type ActionFxCategory, type Aesthetic, type AestheticCategory, type Atmosphere, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, type Backdrop, type BackdropCategory, CAMERA_FORMATS, CAMERA_FORMAT_IDS, CAMERA_MOTIONS, CAMERA_MOTION_CATEGORY_LABELS, CAMERA_MOTION_CATEGORY_ORDER, CAMERA_MOTION_IDS, CHARACTER_FX, CHARACTER_FX_CATEGORY_LABELS, CHARACTER_FX_CATEGORY_ORDER, CHARACTER_FX_DURATIONS, CHARACTER_FX_IDS, CHARACTER_FX_INTENSITIES, CHARACTER_FX_POSITIONS, CHARACTER_MOTIONS, CHARACTER_MOTION_CATEGORY_LABELS, CHARACTER_MOTION_CATEGORY_ORDER, CHARACTER_MOTION_IDS, CHARACTER_MOTION_MAX_PICKS, CHARACTER_MOTION_PACES, CHARACTER_MOTION_POSITIONS, COLOR_LOOKS, COLOR_LOOK_CATEGORY_LABELS, COLOR_LOOK_CATEGORY_ORDER, COLOR_LOOK_IDS, COMPOSITION_EFFECTS, COMPOSITION_EFFECT_IDS, type CameraFormat, type CameraMotion, type CameraMotionCategory, type CategorizedInstrument, type CharacterFx, type CharacterFxCategory, type CharacterFxDuration, type CharacterFxIntensity, type CharacterFxPosition, type CharacterFxTiming, type CharacterFxTimingOption, type CharacterMotion, type CharacterMotionBindings, type CharacterMotionCategory, type CharacterMotionDiagnostic, type CharacterMotionFloor, type CharacterMotionPace, type CharacterMotionPosition, type CharacterMotionTiming, type CharacterMotionTimingOption, type ColorLook, type ColorLookCategory, type CompositionEffect, DEBRIS_SHOWER_STYLE, ERAS, ERA_CATEGORY_LABELS, ERA_CATEGORY_ORDER, ERA_IDS, EXPOSURE_CATEGORY_LABELS, EXPOSURE_CATEGORY_ORDER, EXPOSURE_FIELD_BY_CATEGORY, EXPOSURE_IDS, EXPOSURE_SETTINGS, type Era, type EraCategory, type ExposureCategory, type ExposureSettings, type ExposureValue, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, type Framing, type FramingCategory, type FramingValue, GARDEN_BLOOM_STYLE, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, type HeldProp, type HeldPropCategory, INSTANT_CUT_CLAUSE, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, type InstrumentCategory, type InstrumentationEntry, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, type Lens, type Lighting, type LightingCategory, type LightingValue, type LoopSubject, type LoopSubjectCategory, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, MUSIC_EMOTIONS, MUSIC_ENERGIES, MUSIC_ERAS, MUSIC_GENRES, MUSIC_GENRE_CATEGORY_LABELS, MUSIC_GENRE_CATEGORY_ORDER, MUSIC_GENRE_DEFAULT_DATA, MUSIC_MOOD_DEFAULT_DATA, MUSIC_VIBES, type Material, type MaterialCategory, type Mood, type MoodCategory, type MoodValue, type MusicEra, type MusicGenre, type MusicGenreCategory, type MusicMoodData, type MusicMoodEntry, type MusicSubgenre, PHOTOGRAPHERS, PHOTOGRAPHER_CATEGORY_LABELS, PHOTOGRAPHER_CATEGORY_ORDER, PHOTOGRAPHER_IDS, PHOTO_GENRES, PHOTO_GENRE_CATEGORY_LABELS, PHOTO_GENRE_CATEGORY_ORDER, PHOTO_GENRE_IDS, POSES, POSE_CATEGORY_LABELS, POSE_CATEGORY_ORDER, POSE_IDS, POST_PROCESS_EFFECTS, POST_PROCESS_EFFECT_IDS, PRODUCTION_STYLES, type PhotoGenre, type PhotoGenreCategory, type Photographer, type PhotographerCategory, type Pose, type PoseCategory, type PoseValue, type PostProcessEffect, RENDER_QUALITIES, RENDER_QUALITY_IDS, type RenderQuality, SAKURA_PETALS_STYLE, SAND_STORM_STYLE, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SINGING_STYLES, SMOKE_PUFF_STYLE, STYLES, STYLE_IDS, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_DIMENSION_SECTIONS, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, type Setting, type SettingCategory, type Style, type Styling, type StylingDimension, type StylingDimensionSection, type StylingValue, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_DURATIONS, TRANSITION_IDS, TRANSITION_INTENSITIES, TRANSITION_OPTION_FIELDS, TRANSITION_POSITIONS, TRANSITION_STYLE_FIELD, type Temporal, type TemporalCategory, type TemporalValue, type Transition, type TransitionCategory, type TransitionDuration, type TransitionHintOptions, type TransitionHintScope, type TransitionIntensity, type TransitionOption, type TransitionOptionChoice, type TransitionOptionValues, type TransitionPosition, type TransitionTiming, type TransitionTimingOption, VOCAL_PRESENCE, VOCAL_PRESENCE_INSTRUMENTAL_ID, VOICE_ACCENTS, VOICE_AGES, VOICE_ARCHETYPES, VOICE_CHARACTER_DEFAULT_DATA, VOICE_DELIVERY_DEFAULT_DATA, VOICE_EMOTIONS, VOICE_GENDERS, VOICE_LANGUAGES, VOICE_PACES, VOICE_TIMBRES, type VoiceCharacterEntry, type VoiceDeliveryEntry, WARDROBE, WARDROBE_CATEGORY_LABELS, WARDROBE_DIMENSION_ORDER, WARDROBE_FIELD_BY_DIMENSION, WHITE_FLASH_STYLE, WIPE_DIRECTION, type WardrobeDimension, type WardrobeEntry, type WardrobeValue, blendedCutClause, buildActionFxHints, buildActionFxTerms, buildAestheticHints, buildAestheticTerms, buildAtmosphereHints, buildAtmosphereTerms, buildExposureHints, buildExposureTerms, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildPhotographerHints, buildPhotographerTerms, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildStylingHints, buildStylingTerms, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeCharacterMotionHintFromConnections, composeTransitionHintFromConnections, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAestheticTerm, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getAtmosphereTerm, getBackdrop, getBackdropLabel, getBackdropPromptHint, getBackdropTerm, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraFormatTerm, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCameraMotionTerm, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getCharacterFxTerm, getCharacterMotion, getCharacterMotionDiagnostics, getCharacterMotionLabel, getCharacterMotionPromptHint, getCharacterMotionTerm, getColorLook, getColorLookLabel, getColorLookPromptHint, getColorLookTerm, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getCompositionEffectTerm, getEra, getEraLabel, getEraPromptHint, getEraTerm, getExposure, getExposureLabel, getExposurePromptHint, getExposureTerm, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getFramingTerm, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getHeldPropTerm, getInstrument, getInstrumentTerm, getLens, getLensLabel, getLensPromptHint, getLensTerm, getLighting, getLightingLabel, getLightingPromptHint, getLightingTerm, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getLoopSubjectTerm, getMaterial, getMaterialLabel, getMaterialPromptHint, getMaterialTerm, getMood, getMoodLabel, getMoodPromptHint, getMoodTerm, getMusicEmotion, getMusicEmotionTerm, getMusicEnergy, getMusicEnergyTerm, getMusicEra, getMusicEraTerm, getMusicGenre, getMusicGenreLabel, getMusicGenreTerm, getMusicSubgenre, getMusicSubgenreTerm, getMusicVibe, getMusicVibeTerm, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotoGenreTerm, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPhotographerTerm, getPose, getPoseLabel, getPosePromptHint, getPoseTerm, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getPostProcessEffectTerm, getProductionStyle, getProductionStyleTerm, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getRenderQualityTerm, getSetting, getSettingLabel, getSettingPromptHint, getSettingTerm, getSingingStyle, getSingingStyleTerm, getStyle, getStyleLabel, getStylePromptHint, getStyleTerm, getStyleVideoPromptHint, getStyling, getStylingDimensionLimit, getStylingLabel, getStylingPromptHint, getStylingTerm, getTemporal, getTemporalLabel, getTemporalPromptHint, getTemporalTerm, getTransition, getTransitionLabel, getTransitionOptions, getTransitionPromptHint, getTransitionTerm, getVocalPresence, getVocalPresenceTerm, getVoiceAccent, getVoiceAccentTerm, getVoiceAge, getVoiceAgeTerm, getVoiceArchetype, getVoiceArchetypeTerm, getVoiceEmotion, getVoiceEmotionTerm, getVoiceGender, getVoiceGenderTerm, getVoiceLanguage, getVoiceLanguageTerm, getVoicePace, getVoicePaceTerm, getVoiceTimbre, getVoiceTimbreTerm, getWardrobeEntriesByDimension, getWardrobeEntry, getWardrobePromptHint, isBlendableTransition, isDeniedStyleId, isInstantTransition, isInstrumentalVocal, isVantageFraming, readTransitionOptionValues, renderTransitionBases };