@nodaro/shared 2.26.0 → 3.0.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.
package/dist/index.d.cts CHANGED
@@ -3065,7 +3065,7 @@ declare function groupLlmModelsByVendor(models?: readonly LlmModelDef[]): LlmMod
3065
3065
  * group headers (e.g. the compact node quick strips) but should still read
3066
3066
  * vendor-clustered and tier-ordered. */
3067
3067
  declare function orderedLlmModels(models?: readonly LlmModelDef[]): LlmModelDef[];
3068
- type LlmFeature = "ai-writer" | "llm-chat" | "prompt-helper" | "scene-graph-ai" | "after-effects" | "motion-graphics" | "motion-graphics-lottie" | "lottie-overlay" | "3d-title" | "image-to-text" | "describe-to-picker" | "qa-check" | "generate-script" | "translate" | "image-critic" | "pick-best-llm" | "workflow-copilot";
3068
+ type LlmFeature = "ai-writer" | "llm-chat" | "prompt-helper" | "scene-graph-ai" | "after-effects" | "motion-graphics" | "motion-graphics-lottie" | "lottie-overlay" | "3d-title" | "3d-scene" | "image-to-text" | "describe-to-picker" | "qa-check" | "generate-script" | "translate" | "image-critic" | "pick-best-llm" | "workflow-copilot";
3069
3069
  /** Engine-dependent LlmFeature for the motion-graphics node (design §8: every credit-id site must branch on engine). */
3070
3070
  declare function motionGraphicsFeature(engine?: string): LlmFeature;
3071
3071
  /** Feature → default model when user hasn't selected one */
@@ -11830,6 +11830,2482 @@ declare function entityHydrationColumns(kind: EntityNodeKind): string[];
11830
11830
  /** Every scalar `kind` actually has, shared plus its own. */
11831
11831
  declare function entityScalarFields(kind: EntityNodeKind): ReadonlyArray<readonly [string, string]>;
11832
11832
 
11833
+ /**
11834
+ * Scene3D previsualization — the frozen wire contract (v1).
11835
+ *
11836
+ * ONE validated `Scene3DPlan` revision is shared by four consumers that must
11837
+ * never disagree about what a scene IS: the authoring LLM jobs
11838
+ * (`backend/src/routes/3d-scene.ts` + its worker), the browser preview and the
11839
+ * frame-deterministic Remotion export (`packages/remotion`), the canvas
11840
+ * (`frontend/`), and the SDK/MCP surface. Everything here is STRUCTURE —
11841
+ * geometry, timing, identity, validation. No creative prompts, no provider
11842
+ * names, no pricing: those live in the backend (see the IP-placement rule in
11843
+ * the repo CLAUDE.md — this package is published Apache-2.0 and every
11844
+ * published version is an irrevocable grant).
11845
+ *
11846
+ * ## World conventions (fixed for v1, relied on by the renderer)
11847
+ *
11848
+ * - Units are METERS, Y is up, right-handed (Three.js default).
11849
+ * - Rotations are Euler angles in RADIANS applied XYZ.
11850
+ * - Frames are ZERO-BASED; `fps` defaults to 24 at the authoring layer.
11851
+ * - Interpolation between keyframes is deterministic and closed-form:
11852
+ * `linear` or `easeInOut` (smoothstep). There is no spring, no physics and
11853
+ * no randomness — the browser preview and the export MUST agree frame for
11854
+ * frame, so nothing here may depend on wall-clock time or a RNG.
11855
+ * - A channel's BASE value (the object's/camera's own `position`/`rotation`/
11856
+ * `scale`/`target`/`focalLengthMm`) behaves as an implicit keyframe at frame
11857
+ * 0. So a track whose first key is at frame 30 INTERPOLATES from the base
11858
+ * value at frame 0 to that key — it does not hold the base and then jump.
11859
+ * Author a real key at frame 0 when you want a hold. Before frame 0 and
11860
+ * after the last key the nearest key's value is held.
11861
+ * - `easing` belongs to the DESTINATION keyframe: the easing named on a key
11862
+ * governs the segment ENDING at it. The easing on the first key therefore
11863
+ * governs base → first key; a key's own easing never affects the segment
11864
+ * leaving it.
11865
+ * Sampling itself lives with the renderer (`packages/remotion`) — this file
11866
+ * only guarantees the data it samples is well-formed.
11867
+ *
11868
+ * ## Revisions
11869
+ *
11870
+ * A plan is IMMUTABLE. Every accepted edit produces a NEW `revisionId` and
11871
+ * records the one it came from in `parentRevisionId`; the input object is
11872
+ * never mutated (deep-copied before any write). That is what lets an
11873
+ * asynchronous job completion be REJECTED when the canvas has moved on — the
11874
+ * completion carries the parent it was computed from.
11875
+ */
11876
+
11877
+ /** Discriminates a Scene3D plan from every other composer plan on the wire. */
11878
+ declare const SCENE3D_PLAN_TYPE = "3d-scene";
11879
+ /** Bumped only for a BREAKING change to the shape below. */
11880
+ declare const SCENE3D_SCHEMA_VERSION = 1;
11881
+ /** Frames per second an authoring request gets when it does not say. */
11882
+ declare const SCENE3D_DEFAULT_FPS = 24;
11883
+ /** Seconds a generate request gets when it does not say. */
11884
+ declare const SCENE3D_DEFAULT_DURATION_SECONDS = 4;
11885
+ /**
11886
+ * Every bound in one object so the route Zod, the canvas inputs, the LLM
11887
+ * draft schema and the docs quote the SAME numbers. Widening one of these is
11888
+ * a contract change, not a tweak.
11889
+ */
11890
+ declare const SCENE3D_LIMITS: {
11891
+ readonly minDimensionPx: 100;
11892
+ readonly maxDimensionPx: 1920;
11893
+ readonly minFps: 15;
11894
+ readonly maxFps: 60;
11895
+ readonly minDurationInFrames: 1;
11896
+ readonly maxDurationInFrames: 3600;
11897
+ /** Shortest scene an authoring request may ask for, in seconds. One second
11898
+ * is the frozen v1 floor the SDK/MCP surface and the public docs state; the
11899
+ * route Zod and the canvas path both quote it from here so they cannot
11900
+ * drift below it. */
11901
+ readonly minDurationSeconds: 1;
11902
+ /** Hard ceiling on wall-clock length, checked against fps × frames. */
11903
+ readonly maxDurationSeconds: 60;
11904
+ readonly minObjects: 1;
11905
+ readonly maxObjects: 100;
11906
+ /** Per-object and per-camera track length. */
11907
+ readonly maxKeyframes: 240;
11908
+ readonly maxReferences: 8;
11909
+ readonly maxOperations: 100;
11910
+ /** |x|, |y|, |z| ceiling for positions and camera/target coordinates. */
11911
+ readonly maxCoordinate: 1000;
11912
+ readonly minSize: 0.001;
11913
+ readonly maxSize: 1000;
11914
+ readonly minScale: 0.001;
11915
+ readonly maxScale: 1000;
11916
+ readonly minFocalLengthMm: 10;
11917
+ readonly maxFocalLengthMm: 200;
11918
+ readonly defaultSensorWidthMm: 36;
11919
+ readonly minSensorWidthMm: 1;
11920
+ readonly maxSensorWidthMm: 200;
11921
+ readonly maxIntensity: 100;
11922
+ /** How deep a parent chain may nest. Bounds the renderer's transform walk. */
11923
+ readonly maxHierarchyDepth: 8;
11924
+ readonly maxIdLength: 64;
11925
+ readonly maxNameLength: 120;
11926
+ readonly maxUrlLength: 2048;
11927
+ readonly maxChangeSummaryLength: 2000;
11928
+ };
11929
+ type Vec3 = [number, number, number];
11930
+ type Scene3DPrimitive = "box" | "sphere" | "cylinder" | "cone" | "plane" | "capsule"
11931
+ /** A transform-only node: no geometry of its own, children inherit it. */
11932
+ | "group";
11933
+ declare const SCENE3D_PRIMITIVES: readonly Scene3DPrimitive[];
11934
+ type Scene3DEasing = "linear" | "easeInOut";
11935
+ type Scene3DReferenceKind = "image" | "video";
11936
+ /**
11937
+ * What the reference is FOR. The role is not decoration: it decides how the
11938
+ * authoring backend conditions on the asset (appearance → colour/material
11939
+ * cues, layout → placement, motion → timing), and it is stored with the job
11940
+ * so a re-run reproduces the same conditioning.
11941
+ */
11942
+ type Scene3DReferenceRole = "appearance" | "layout" | "motion";
11943
+ interface Scene3DObjectKeyframe {
11944
+ /** Zero-based, integral, inside the scene's duration. */
11945
+ frame: number;
11946
+ position?: Vec3;
11947
+ rotation?: Vec3;
11948
+ scale?: Vec3;
11949
+ easing?: Scene3DEasing;
11950
+ }
11951
+ interface Scene3DCameraKeyframe {
11952
+ frame: number;
11953
+ position?: Vec3;
11954
+ target?: Vec3;
11955
+ focalLengthMm?: number;
11956
+ easing?: Scene3DEasing;
11957
+ }
11958
+ interface Scene3DObject {
11959
+ id: string;
11960
+ name: string;
11961
+ primitive: Scene3DPrimitive;
11962
+ /** Transform parent. Absent = a root object. Cycles are rejected. */
11963
+ parentId?: string;
11964
+ /** Intrinsic size in meters BEFORE `scale` (width/height/depth). */
11965
+ dimensions: Vec3;
11966
+ position: Vec3;
11967
+ /** Euler XYZ, radians. */
11968
+ rotation: Vec3;
11969
+ scale: Vec3;
11970
+ /** `#rgb`, `#rgba`, `#rrggbb` or `#rrggbbaa`. */
11971
+ color: string;
11972
+ keyframes?: Scene3DObjectKeyframe[];
11973
+ }
11974
+ interface Scene3DCamera {
11975
+ position: Vec3;
11976
+ target: Vec3;
11977
+ focalLengthMm: number;
11978
+ /** Full-frame 36mm by default; together with focal length it fixes the FOV. */
11979
+ sensorWidthMm: number;
11980
+ keyframes?: Scene3DCameraKeyframe[];
11981
+ }
11982
+ interface Scene3DLighting {
11983
+ ambientIntensity: number;
11984
+ keyIntensity: number;
11985
+ keyPosition: Vec3;
11986
+ }
11987
+ interface Scene3DReference {
11988
+ id: string;
11989
+ /** HTTP(S) only — the BACKEND additionally applies `safeUrlSchema` and the
11990
+ * platform's per-model reference limits before anything is fetched. */
11991
+ url: string;
11992
+ kind: Scene3DReferenceKind;
11993
+ role: Scene3DReferenceRole;
11994
+ /** Scopes the reference to one object instead of the whole scene. */
11995
+ objectId?: string;
11996
+ /** Window inside a video reference, in seconds. */
11997
+ startSeconds?: number;
11998
+ endSeconds?: number;
11999
+ }
12000
+ /**
12001
+ * The v1 plan. `Scene3DPlan` is the DISCRIMINATED UNION of this and
12002
+ * `Scene3DPlanV2` (see `scene3d-v2.ts`) — a consumer holding one must narrow
12003
+ * with `isScene3DPlanV1` / `isScene3DPlanV2` before reading version-specific
12004
+ * fields. Nothing about v1's shape, bounds or messages changed when v2 landed.
12005
+ */
12006
+ interface Scene3DPlanV1 {
12007
+ planType: typeof SCENE3D_PLAN_TYPE;
12008
+ schemaVersion: typeof SCENE3D_SCHEMA_VERSION;
12009
+ /** UUID. Changes on EVERY accepted edit. */
12010
+ revisionId: string;
12011
+ /** The revision this one was derived from; absent on a first generation. */
12012
+ parentRevisionId?: string;
12013
+ width: number;
12014
+ height: number;
12015
+ fps: number;
12016
+ durationInFrames: number;
12017
+ backgroundColor: string;
12018
+ camera: Scene3DCamera;
12019
+ objects: Scene3DObject[];
12020
+ lighting: Scene3DLighting;
12021
+ references?: Scene3DReference[];
12022
+ }
12023
+ declare const vec3Schema: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12024
+ declare const sizeVec3Schema: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12025
+ declare const scaleVec3Schema: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12026
+ /** Euler radians. Bounded well past ±2π so multi-turn spins stay expressible
12027
+ * while a runaway value still cannot reach the renderer. */
12028
+ declare const rotationVec3Schema: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12029
+ declare const scene3DColorSchema: z.ZodString;
12030
+ declare const scene3DIdSchema: z.ZodString;
12031
+ /** HTTP(S) only. This is the STRUCTURAL half of URL safety; the backend adds
12032
+ * `safeUrlSchema` (SSRF host rules) on top before anything is fetched. */
12033
+ declare function isScene3DHttpUrl(value: string): boolean;
12034
+ declare const scene3DUrlSchema: z.ZodString;
12035
+ declare const scene3DEasingSchema: z.ZodEnum<{
12036
+ linear: "linear";
12037
+ easeInOut: "easeInOut";
12038
+ }>;
12039
+ declare const scene3DPrimitiveSchema: z.ZodEnum<{
12040
+ group: "group";
12041
+ box: "box";
12042
+ sphere: "sphere";
12043
+ cylinder: "cylinder";
12044
+ cone: "cone";
12045
+ plane: "plane";
12046
+ capsule: "capsule";
12047
+ }>;
12048
+ declare const scene3DObjectKeyframeSchema: z.ZodObject<{
12049
+ frame: z.ZodNumber;
12050
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12051
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12052
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12053
+ easing: z.ZodOptional<z.ZodEnum<{
12054
+ linear: "linear";
12055
+ easeInOut: "easeInOut";
12056
+ }>>;
12057
+ }, z.core.$strict>;
12058
+ declare const scene3DCameraKeyframeSchema: z.ZodObject<{
12059
+ frame: z.ZodNumber;
12060
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12061
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12062
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
12063
+ easing: z.ZodOptional<z.ZodEnum<{
12064
+ linear: "linear";
12065
+ easeInOut: "easeInOut";
12066
+ }>>;
12067
+ }, z.core.$strict>;
12068
+ declare const scene3DObjectSchema: z.ZodObject<{
12069
+ id: z.ZodString;
12070
+ name: z.ZodString;
12071
+ primitive: z.ZodEnum<{
12072
+ group: "group";
12073
+ box: "box";
12074
+ sphere: "sphere";
12075
+ cylinder: "cylinder";
12076
+ cone: "cone";
12077
+ plane: "plane";
12078
+ capsule: "capsule";
12079
+ }>;
12080
+ parentId: z.ZodOptional<z.ZodString>;
12081
+ dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12082
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12083
+ rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12084
+ scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12085
+ color: z.ZodString;
12086
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12087
+ frame: z.ZodNumber;
12088
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12089
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12090
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12091
+ easing: z.ZodOptional<z.ZodEnum<{
12092
+ linear: "linear";
12093
+ easeInOut: "easeInOut";
12094
+ }>>;
12095
+ }, z.core.$strict>>>;
12096
+ }, z.core.$strict>;
12097
+ declare const scene3DCameraSchema: z.ZodObject<{
12098
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12099
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12100
+ focalLengthMm: z.ZodNumber;
12101
+ sensorWidthMm: z.ZodDefault<z.ZodNumber>;
12102
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12103
+ frame: z.ZodNumber;
12104
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12105
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12106
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
12107
+ easing: z.ZodOptional<z.ZodEnum<{
12108
+ linear: "linear";
12109
+ easeInOut: "easeInOut";
12110
+ }>>;
12111
+ }, z.core.$strict>>>;
12112
+ }, z.core.$strict>;
12113
+ declare const scene3DLightingSchema: z.ZodObject<{
12114
+ ambientIntensity: z.ZodNumber;
12115
+ keyIntensity: z.ZodNumber;
12116
+ keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12117
+ }, z.core.$strict>;
12118
+ declare const scene3DReferenceSchema: z.ZodObject<{
12119
+ id: z.ZodString;
12120
+ url: z.ZodString;
12121
+ kind: z.ZodEnum<{
12122
+ image: "image";
12123
+ video: "video";
12124
+ }>;
12125
+ role: z.ZodEnum<{
12126
+ motion: "motion";
12127
+ layout: "layout";
12128
+ appearance: "appearance";
12129
+ }>;
12130
+ objectId: z.ZodOptional<z.ZodString>;
12131
+ startSeconds: z.ZodOptional<z.ZodNumber>;
12132
+ endSeconds: z.ZodOptional<z.ZodNumber>;
12133
+ }, z.core.$strict>;
12134
+ /** One cross-field failure, in the shape `ctx.addIssue` wants. Shared by the
12135
+ * v1 and v2 validators so both report the same way. */
12136
+ interface Scene3DSemanticIssue {
12137
+ path: (string | number)[];
12138
+ message: string;
12139
+ }
12140
+ /** @internal Historic in-file name. */
12141
+ type SemanticIssue = Scene3DSemanticIssue;
12142
+ /**
12143
+ * Every rule that needs more than one field: duration, identity, hierarchy,
12144
+ * reference resolution and keyframe tracks.
12145
+ *
12146
+ * Split out of the schema's `superRefine` so `applyScene3DEditOperations` can
12147
+ * report the SAME sentences without re-parsing, and so a caller holding an
12148
+ * already-parsed plan can re-check it cheaply.
12149
+ */
12150
+ declare function scene3DPlanV1Issues(plan: Scene3DPlanV1): SemanticIssue[];
12151
+ /**
12152
+ * THE plan validator. Structure first (zod), then the cross-field rules — a
12153
+ * consumer that parses with this cannot be handed a cycle, a dangling parent,
12154
+ * an out-of-range keyframe or a 90-second "one-minute-max" scene.
12155
+ */
12156
+ /**
12157
+ * The v1 object shape WITHOUT the cross-field pass. Exported only so
12158
+ * `scene3DAnyPlanSchema` can discriminate on `schemaVersion` (zod cannot
12159
+ * discriminate through a `superRefine`); parse with `scene3DPlanV1Schema`.
12160
+ */
12161
+ declare const scene3DPlanV1ObjectSchema: z.ZodObject<{
12162
+ planType: z.ZodLiteral<"3d-scene">;
12163
+ schemaVersion: z.ZodLiteral<1>;
12164
+ revisionId: z.ZodUUID;
12165
+ parentRevisionId: z.ZodOptional<z.ZodUUID>;
12166
+ width: z.ZodNumber;
12167
+ height: z.ZodNumber;
12168
+ fps: z.ZodNumber;
12169
+ durationInFrames: z.ZodNumber;
12170
+ backgroundColor: z.ZodString;
12171
+ camera: z.ZodObject<{
12172
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12173
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12174
+ focalLengthMm: z.ZodNumber;
12175
+ sensorWidthMm: z.ZodDefault<z.ZodNumber>;
12176
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12177
+ frame: z.ZodNumber;
12178
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12179
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12180
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
12181
+ easing: z.ZodOptional<z.ZodEnum<{
12182
+ linear: "linear";
12183
+ easeInOut: "easeInOut";
12184
+ }>>;
12185
+ }, z.core.$strict>>>;
12186
+ }, z.core.$strict>;
12187
+ objects: z.ZodArray<z.ZodObject<{
12188
+ id: z.ZodString;
12189
+ name: z.ZodString;
12190
+ primitive: z.ZodEnum<{
12191
+ group: "group";
12192
+ box: "box";
12193
+ sphere: "sphere";
12194
+ cylinder: "cylinder";
12195
+ cone: "cone";
12196
+ plane: "plane";
12197
+ capsule: "capsule";
12198
+ }>;
12199
+ parentId: z.ZodOptional<z.ZodString>;
12200
+ dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12201
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12202
+ rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12203
+ scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12204
+ color: z.ZodString;
12205
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12206
+ frame: z.ZodNumber;
12207
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12208
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12209
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12210
+ easing: z.ZodOptional<z.ZodEnum<{
12211
+ linear: "linear";
12212
+ easeInOut: "easeInOut";
12213
+ }>>;
12214
+ }, z.core.$strict>>>;
12215
+ }, z.core.$strict>>;
12216
+ lighting: z.ZodObject<{
12217
+ ambientIntensity: z.ZodNumber;
12218
+ keyIntensity: z.ZodNumber;
12219
+ keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12220
+ }, z.core.$strict>;
12221
+ references: z.ZodOptional<z.ZodArray<z.ZodObject<{
12222
+ id: z.ZodString;
12223
+ url: z.ZodString;
12224
+ kind: z.ZodEnum<{
12225
+ image: "image";
12226
+ video: "video";
12227
+ }>;
12228
+ role: z.ZodEnum<{
12229
+ motion: "motion";
12230
+ layout: "layout";
12231
+ appearance: "appearance";
12232
+ }>;
12233
+ objectId: z.ZodOptional<z.ZodString>;
12234
+ startSeconds: z.ZodOptional<z.ZodNumber>;
12235
+ endSeconds: z.ZodOptional<z.ZodNumber>;
12236
+ }, z.core.$strict>>>;
12237
+ }, z.core.$strict>;
12238
+ declare const scene3DPlanV1Schema: z.ZodObject<{
12239
+ planType: z.ZodLiteral<"3d-scene">;
12240
+ schemaVersion: z.ZodLiteral<1>;
12241
+ revisionId: z.ZodUUID;
12242
+ parentRevisionId: z.ZodOptional<z.ZodUUID>;
12243
+ width: z.ZodNumber;
12244
+ height: z.ZodNumber;
12245
+ fps: z.ZodNumber;
12246
+ durationInFrames: z.ZodNumber;
12247
+ backgroundColor: z.ZodString;
12248
+ camera: z.ZodObject<{
12249
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12250
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12251
+ focalLengthMm: z.ZodNumber;
12252
+ sensorWidthMm: z.ZodDefault<z.ZodNumber>;
12253
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12254
+ frame: z.ZodNumber;
12255
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12256
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12257
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
12258
+ easing: z.ZodOptional<z.ZodEnum<{
12259
+ linear: "linear";
12260
+ easeInOut: "easeInOut";
12261
+ }>>;
12262
+ }, z.core.$strict>>>;
12263
+ }, z.core.$strict>;
12264
+ objects: z.ZodArray<z.ZodObject<{
12265
+ id: z.ZodString;
12266
+ name: z.ZodString;
12267
+ primitive: z.ZodEnum<{
12268
+ group: "group";
12269
+ box: "box";
12270
+ sphere: "sphere";
12271
+ cylinder: "cylinder";
12272
+ cone: "cone";
12273
+ plane: "plane";
12274
+ capsule: "capsule";
12275
+ }>;
12276
+ parentId: z.ZodOptional<z.ZodString>;
12277
+ dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12278
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12279
+ rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12280
+ scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12281
+ color: z.ZodString;
12282
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12283
+ frame: z.ZodNumber;
12284
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12285
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12286
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12287
+ easing: z.ZodOptional<z.ZodEnum<{
12288
+ linear: "linear";
12289
+ easeInOut: "easeInOut";
12290
+ }>>;
12291
+ }, z.core.$strict>>>;
12292
+ }, z.core.$strict>>;
12293
+ lighting: z.ZodObject<{
12294
+ ambientIntensity: z.ZodNumber;
12295
+ keyIntensity: z.ZodNumber;
12296
+ keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12297
+ }, z.core.$strict>;
12298
+ references: z.ZodOptional<z.ZodArray<z.ZodObject<{
12299
+ id: z.ZodString;
12300
+ url: z.ZodString;
12301
+ kind: z.ZodEnum<{
12302
+ image: "image";
12303
+ video: "video";
12304
+ }>;
12305
+ role: z.ZodEnum<{
12306
+ motion: "motion";
12307
+ layout: "layout";
12308
+ appearance: "appearance";
12309
+ }>;
12310
+ objectId: z.ZodOptional<z.ZodString>;
12311
+ startSeconds: z.ZodOptional<z.ZodNumber>;
12312
+ endSeconds: z.ZodOptional<z.ZodNumber>;
12313
+ }, z.core.$strict>>>;
12314
+ }, z.core.$strict>;
12315
+ /** @deprecated v1-only, and it always was. Kept so every existing v1 call site
12316
+ * keeps EXACTLY its current accept/reject set. Use `scene3DPlanV1Schema` for
12317
+ * v1, or `scene3DAnyPlanSchema` when either version is acceptable. */
12318
+ declare const scene3DPlanSchema: z.ZodObject<{
12319
+ planType: z.ZodLiteral<"3d-scene">;
12320
+ schemaVersion: z.ZodLiteral<1>;
12321
+ revisionId: z.ZodUUID;
12322
+ parentRevisionId: z.ZodOptional<z.ZodUUID>;
12323
+ width: z.ZodNumber;
12324
+ height: z.ZodNumber;
12325
+ fps: z.ZodNumber;
12326
+ durationInFrames: z.ZodNumber;
12327
+ backgroundColor: z.ZodString;
12328
+ camera: z.ZodObject<{
12329
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12330
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12331
+ focalLengthMm: z.ZodNumber;
12332
+ sensorWidthMm: z.ZodDefault<z.ZodNumber>;
12333
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12334
+ frame: z.ZodNumber;
12335
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12336
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12337
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
12338
+ easing: z.ZodOptional<z.ZodEnum<{
12339
+ linear: "linear";
12340
+ easeInOut: "easeInOut";
12341
+ }>>;
12342
+ }, z.core.$strict>>>;
12343
+ }, z.core.$strict>;
12344
+ objects: z.ZodArray<z.ZodObject<{
12345
+ id: z.ZodString;
12346
+ name: z.ZodString;
12347
+ primitive: z.ZodEnum<{
12348
+ group: "group";
12349
+ box: "box";
12350
+ sphere: "sphere";
12351
+ cylinder: "cylinder";
12352
+ cone: "cone";
12353
+ plane: "plane";
12354
+ capsule: "capsule";
12355
+ }>;
12356
+ parentId: z.ZodOptional<z.ZodString>;
12357
+ dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12358
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12359
+ rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12360
+ scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12361
+ color: z.ZodString;
12362
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12363
+ frame: z.ZodNumber;
12364
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12365
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12366
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12367
+ easing: z.ZodOptional<z.ZodEnum<{
12368
+ linear: "linear";
12369
+ easeInOut: "easeInOut";
12370
+ }>>;
12371
+ }, z.core.$strict>>>;
12372
+ }, z.core.$strict>>;
12373
+ lighting: z.ZodObject<{
12374
+ ambientIntensity: z.ZodNumber;
12375
+ keyIntensity: z.ZodNumber;
12376
+ keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12377
+ }, z.core.$strict>;
12378
+ references: z.ZodOptional<z.ZodArray<z.ZodObject<{
12379
+ id: z.ZodString;
12380
+ url: z.ZodString;
12381
+ kind: z.ZodEnum<{
12382
+ image: "image";
12383
+ video: "video";
12384
+ }>;
12385
+ role: z.ZodEnum<{
12386
+ motion: "motion";
12387
+ layout: "layout";
12388
+ appearance: "appearance";
12389
+ }>;
12390
+ objectId: z.ZodOptional<z.ZodString>;
12391
+ startSeconds: z.ZodOptional<z.ZodNumber>;
12392
+ endSeconds: z.ZodOptional<z.ZodNumber>;
12393
+ }, z.core.$strict>>>;
12394
+ }, z.core.$strict>;
12395
+ /** @deprecated Renamed to `scene3DPlanV1Issues`. */
12396
+ declare const scene3DPlanIssues: typeof scene3DPlanV1Issues;
12397
+ /** Order-insensitive deep equality over the JSON subset a plan is made of. */
12398
+ declare function scene3DDeepEqual(a: unknown, b: unknown): boolean;
12399
+ /** RFC-4122 v4 id, from the platform CSPRNG where there is one. Browser,
12400
+ * Node 18+ and the Remotion renderer all expose `globalThis.crypto`. */
12401
+ declare function newScene3DRevisionId(): string;
12402
+ /** Narrowing helper for callers holding `unknown` (job output, workflow JSON).
12403
+ * V1 ONLY — `isScene3DPlan` (in `scene3d-v2.ts`) accepts either version. */
12404
+ declare function isScene3DPlanV1(value: unknown): value is Scene3DPlanV1;
12405
+ /** What a finished `generate-3d-scene` / `edit-3d-scene` job carries in
12406
+ * `output_data`. The canvas, the SDK and the DAG output extractor all read
12407
+ * THIS shape — `scenePlan` is also the node's stored plan field. */
12408
+ interface Scene3DJobOutput {
12409
+ scenePlan: Scene3DPlanV1;
12410
+ /** One paragraph naming what changed. Absent on a first generation. */
12411
+ changeSummary?: string;
12412
+ }
12413
+ /** The node data field a Scene3D plan is stored under, on both nodes.
12414
+ * `COMPOSER_PLAN_MAP` (model-constants.ts) must agree with this. */
12415
+ declare const SCENE3D_PLAN_FIELD = "scenePlan";
12416
+ /** The two canvas node types that produce a Scene3D plan. */
12417
+ declare const SCENE3D_GENERATE_NODE_TYPE = "generate-3d-scene";
12418
+ declare const SCENE3D_EDIT_NODE_TYPE = "edit-3d-scene";
12419
+
12420
+ /**
12421
+ * Scene3D edit operations — the ONLY way a Scene3D plan changes.
12422
+ *
12423
+ * Split out of `scene3d.ts` (which owns the shape) because this file owns the
12424
+ * TRANSITION: given a plan, a list of operations and the caller's locks, it
12425
+ * produces the next immutable revision or an explained refusal. Both edit
12426
+ * lanes go through it — the deterministic one (the caller sent operations) and
12427
+ * the instruction one (an LLM authored the operations from a sentence) — so
12428
+ * locks, staleness and whole-scene validation cannot be enforced twice and
12429
+ * differently. The model never writes a plan and never writes code; it writes
12430
+ * operations that this function is free to refuse.
12431
+ */
12432
+
12433
+ /** Everything about an object EXCEPT its identity. `id` is deliberately absent
12434
+ * (and the schema is strict) so no operation can rename an object out from
12435
+ * under a lock, a parent link or a reference. */
12436
+ declare const scene3DObjectChangesSchema: z.ZodObject<{
12437
+ name: z.ZodOptional<z.ZodString>;
12438
+ primitive: z.ZodOptional<z.ZodEnum<{
12439
+ group: "group";
12440
+ box: "box";
12441
+ sphere: "sphere";
12442
+ cylinder: "cylinder";
12443
+ cone: "cone";
12444
+ plane: "plane";
12445
+ capsule: "capsule";
12446
+ }>>;
12447
+ parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12448
+ dimensions: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12449
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12450
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12451
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12452
+ color: z.ZodOptional<z.ZodString>;
12453
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12454
+ frame: z.ZodNumber;
12455
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12456
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12457
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12458
+ easing: z.ZodOptional<z.ZodEnum<{
12459
+ linear: "linear";
12460
+ easeInOut: "easeInOut";
12461
+ }>>;
12462
+ }, z.core.$strict>>>;
12463
+ }, z.core.$strict>;
12464
+ declare const scene3DCameraChangesSchema: z.ZodObject<{
12465
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12466
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12467
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
12468
+ sensorWidthMm: z.ZodOptional<z.ZodNumber>;
12469
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12470
+ frame: z.ZodNumber;
12471
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12472
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12473
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
12474
+ easing: z.ZodOptional<z.ZodEnum<{
12475
+ linear: "linear";
12476
+ easeInOut: "easeInOut";
12477
+ }>>;
12478
+ }, z.core.$strict>>>;
12479
+ }, z.core.$strict>;
12480
+ declare const scene3DLightingChangesSchema: z.ZodObject<{
12481
+ ambientIntensity: z.ZodOptional<z.ZodNumber>;
12482
+ keyIntensity: z.ZodOptional<z.ZodNumber>;
12483
+ keyPosition: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12484
+ }, z.core.$strict>;
12485
+ declare const scene3DEditOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
12486
+ op: z.ZodLiteral<"set-object">;
12487
+ objectId: z.ZodString;
12488
+ changes: z.ZodObject<{
12489
+ name: z.ZodOptional<z.ZodString>;
12490
+ primitive: z.ZodOptional<z.ZodEnum<{
12491
+ group: "group";
12492
+ box: "box";
12493
+ sphere: "sphere";
12494
+ cylinder: "cylinder";
12495
+ cone: "cone";
12496
+ plane: "plane";
12497
+ capsule: "capsule";
12498
+ }>>;
12499
+ parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12500
+ dimensions: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12501
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12502
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12503
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12504
+ color: z.ZodOptional<z.ZodString>;
12505
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12506
+ frame: z.ZodNumber;
12507
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12508
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12509
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12510
+ easing: z.ZodOptional<z.ZodEnum<{
12511
+ linear: "linear";
12512
+ easeInOut: "easeInOut";
12513
+ }>>;
12514
+ }, z.core.$strict>>>;
12515
+ }, z.core.$strict>;
12516
+ }, z.core.$strict>, z.ZodObject<{
12517
+ op: z.ZodLiteral<"add-object">;
12518
+ object: z.ZodObject<{
12519
+ id: z.ZodString;
12520
+ name: z.ZodString;
12521
+ primitive: z.ZodEnum<{
12522
+ group: "group";
12523
+ box: "box";
12524
+ sphere: "sphere";
12525
+ cylinder: "cylinder";
12526
+ cone: "cone";
12527
+ plane: "plane";
12528
+ capsule: "capsule";
12529
+ }>;
12530
+ parentId: z.ZodOptional<z.ZodString>;
12531
+ dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12532
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12533
+ rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12534
+ scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12535
+ color: z.ZodString;
12536
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12537
+ frame: z.ZodNumber;
12538
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12539
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12540
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12541
+ easing: z.ZodOptional<z.ZodEnum<{
12542
+ linear: "linear";
12543
+ easeInOut: "easeInOut";
12544
+ }>>;
12545
+ }, z.core.$strict>>>;
12546
+ }, z.core.$strict>;
12547
+ }, z.core.$strict>, z.ZodObject<{
12548
+ op: z.ZodLiteral<"remove-object">;
12549
+ objectId: z.ZodString;
12550
+ }, z.core.$strict>, z.ZodObject<{
12551
+ op: z.ZodLiteral<"set-camera">;
12552
+ changes: z.ZodObject<{
12553
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12554
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12555
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
12556
+ sensorWidthMm: z.ZodOptional<z.ZodNumber>;
12557
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12558
+ frame: z.ZodNumber;
12559
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12560
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12561
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
12562
+ easing: z.ZodOptional<z.ZodEnum<{
12563
+ linear: "linear";
12564
+ easeInOut: "easeInOut";
12565
+ }>>;
12566
+ }, z.core.$strict>>>;
12567
+ }, z.core.$strict>;
12568
+ }, z.core.$strict>, z.ZodObject<{
12569
+ op: z.ZodLiteral<"set-lighting">;
12570
+ changes: z.ZodObject<{
12571
+ ambientIntensity: z.ZodOptional<z.ZodNumber>;
12572
+ keyIntensity: z.ZodOptional<z.ZodNumber>;
12573
+ keyPosition: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12574
+ }, z.core.$strict>;
12575
+ }, z.core.$strict>, z.ZodObject<{
12576
+ op: z.ZodLiteral<"set-background">;
12577
+ color: z.ZodString;
12578
+ }, z.core.$strict>], "op">;
12579
+ declare const scene3DEditOperationsSchema: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
12580
+ op: z.ZodLiteral<"set-object">;
12581
+ objectId: z.ZodString;
12582
+ changes: z.ZodObject<{
12583
+ name: z.ZodOptional<z.ZodString>;
12584
+ primitive: z.ZodOptional<z.ZodEnum<{
12585
+ group: "group";
12586
+ box: "box";
12587
+ sphere: "sphere";
12588
+ cylinder: "cylinder";
12589
+ cone: "cone";
12590
+ plane: "plane";
12591
+ capsule: "capsule";
12592
+ }>>;
12593
+ parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12594
+ dimensions: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12595
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12596
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12597
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12598
+ color: z.ZodOptional<z.ZodString>;
12599
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12600
+ frame: z.ZodNumber;
12601
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12602
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12603
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12604
+ easing: z.ZodOptional<z.ZodEnum<{
12605
+ linear: "linear";
12606
+ easeInOut: "easeInOut";
12607
+ }>>;
12608
+ }, z.core.$strict>>>;
12609
+ }, z.core.$strict>;
12610
+ }, z.core.$strict>, z.ZodObject<{
12611
+ op: z.ZodLiteral<"add-object">;
12612
+ object: z.ZodObject<{
12613
+ id: z.ZodString;
12614
+ name: z.ZodString;
12615
+ primitive: z.ZodEnum<{
12616
+ group: "group";
12617
+ box: "box";
12618
+ sphere: "sphere";
12619
+ cylinder: "cylinder";
12620
+ cone: "cone";
12621
+ plane: "plane";
12622
+ capsule: "capsule";
12623
+ }>;
12624
+ parentId: z.ZodOptional<z.ZodString>;
12625
+ dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12626
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12627
+ rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12628
+ scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12629
+ color: z.ZodString;
12630
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12631
+ frame: z.ZodNumber;
12632
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12633
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12634
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12635
+ easing: z.ZodOptional<z.ZodEnum<{
12636
+ linear: "linear";
12637
+ easeInOut: "easeInOut";
12638
+ }>>;
12639
+ }, z.core.$strict>>>;
12640
+ }, z.core.$strict>;
12641
+ }, z.core.$strict>, z.ZodObject<{
12642
+ op: z.ZodLiteral<"remove-object">;
12643
+ objectId: z.ZodString;
12644
+ }, z.core.$strict>, z.ZodObject<{
12645
+ op: z.ZodLiteral<"set-camera">;
12646
+ changes: z.ZodObject<{
12647
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12648
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12649
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
12650
+ sensorWidthMm: z.ZodOptional<z.ZodNumber>;
12651
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
12652
+ frame: z.ZodNumber;
12653
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12654
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12655
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
12656
+ easing: z.ZodOptional<z.ZodEnum<{
12657
+ linear: "linear";
12658
+ easeInOut: "easeInOut";
12659
+ }>>;
12660
+ }, z.core.$strict>>>;
12661
+ }, z.core.$strict>;
12662
+ }, z.core.$strict>, z.ZodObject<{
12663
+ op: z.ZodLiteral<"set-lighting">;
12664
+ changes: z.ZodObject<{
12665
+ ambientIntensity: z.ZodOptional<z.ZodNumber>;
12666
+ keyIntensity: z.ZodOptional<z.ZodNumber>;
12667
+ keyPosition: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
12668
+ }, z.core.$strict>;
12669
+ }, z.core.$strict>, z.ZodObject<{
12670
+ op: z.ZodLiteral<"set-background">;
12671
+ color: z.ZodString;
12672
+ }, z.core.$strict>], "op">>;
12673
+ type Scene3DObjectChanges = z.infer<typeof scene3DObjectChangesSchema>;
12674
+ type Scene3DCameraChanges = z.infer<typeof scene3DCameraChangesSchema>;
12675
+ type Scene3DLightingChanges = z.infer<typeof scene3DLightingChangesSchema>;
12676
+ type Scene3DEditOperation = z.infer<typeof scene3DEditOperationSchema>;
12677
+ type Scene3DEditErrorCode =
12678
+ /** `expectedRevisionId` did not match the plan handed in. */
12679
+ "stale_revision"
12680
+ /** The operation list itself is malformed or over the cap. */
12681
+ | "invalid_operations"
12682
+ /** An operation targets an object that is not in the scene. */
12683
+ | "unknown_object"
12684
+ /** `add-object` collided with an existing id. */
12685
+ | "duplicate_object"
12686
+ /** An operation touched an id the caller declared locked. */
12687
+ | "locked_object"
12688
+ /** The plan handed in, or the plan the operations produced, is invalid. */
12689
+ | "invalid_plan";
12690
+ interface Scene3DEditOptions {
12691
+ /** Optimistic concurrency: reject unless the plan is still this revision. */
12692
+ expectedRevisionId?: string;
12693
+ /** Object ids the caller declared untouchable. Enforced as a POST-condition
12694
+ * (see `applyScene3DEditOperations`), which is what makes it total. */
12695
+ lockedObjectIds?: readonly string[];
12696
+ /** Pin the produced revision id — tests and deterministic replay only. */
12697
+ revisionId?: string;
12698
+ }
12699
+ type Scene3DEditResult = {
12700
+ ok: true;
12701
+ plan: Scene3DPlanV1;
12702
+ changedObjectIds: string[];
12703
+ changeSummary: string;
12704
+ } | {
12705
+ ok: false;
12706
+ code: Scene3DEditErrorCode;
12707
+ message: string;
12708
+ operationIndex?: number;
12709
+ };
12710
+ /** One human sentence per operation — the deterministic lane's answer to the
12711
+ * LLM lane's `changeSummary`, so both edit paths return the same shape. */
12712
+ declare function summarizeScene3DOperations(operations: readonly Scene3DEditOperation[]): string;
12713
+ /**
12714
+ * Apply an operation list to a plan, producing a NEW revision.
12715
+ *
12716
+ * Guarantees, in this order — each one is a distinct failure mode that was
12717
+ * cheap to get wrong:
12718
+ *
12719
+ * 1. The input plan is never mutated (deep clone before the first write).
12720
+ * 2. A stale `expectedRevisionId` is refused before anything is applied, so a
12721
+ * late async completion can never overwrite a newer manual edit.
12722
+ * 3. Operations are schema-validated as a list; the failing INDEX is reported.
12723
+ * 4. Locks are enforced as a POST-CONDITION — every locked object must still
12724
+ * exist and be deep-equal to the original. Reasoning per-operation would
12725
+ * have to anticipate remove + re-add, a reparent from a sibling's `set-
12726
+ * object`, and whatever the next operation kind turns out to be; the
12727
+ * post-condition covers all of them by construction. (`selectedObjectIds`
12728
+ * is CONTEXT for the model, never permission — the caller passes locks
12729
+ * explicitly and they are checked here, after the model has spoken.)
12730
+ * 5. The WHOLE resulting plan is re-validated, which is what makes "no silent
12731
+ * orphaning" free: removing a parent leaves a dangling `parentId` and the
12732
+ * plan validator rejects it, as does removing an object a reference points
12733
+ * at.
12734
+ */
12735
+ declare function applyScene3DEditOperations(plan: Scene3DPlanV1, operations: readonly Scene3DEditOperation[] | unknown, options?: Scene3DEditOptions): Scene3DEditResult;
12736
+
12737
+ /**
12738
+ * Scene3D v2 — the PUBLIC wire contract for exported (GLB-backed) scenes.
12739
+ *
12740
+ * One Scene3D family, two schema versions. `Scene3DPlan` is the discriminated
12741
+ * union `Scene3DPlanV1 | Scene3DPlanV2`, keyed on `schemaVersion`; v1 (see
12742
+ * `scene3d.ts`) is untouched — same fields, same bounds, same messages — and a
12743
+ * default v1 authoring request must never come back as v2.
12744
+ *
12745
+ * What v2 adds over v1's inline primitives:
12746
+ *
12747
+ * - **Assets.** Geometry lives in GLB files referenced by opaque id + SHA-256
12748
+ * digest, never by an expiring URL. The camera lives in a sidecar
12749
+ * (`scene3d-camera-track.ts`), one sample per frame, so a 720-frame baked
12750
+ * move is not squeezed through v1's 240-keyframe budget.
12751
+ * - **Semantic entities.** A user-selectable object or assembly — a person, a
12752
+ * car, a prop, an environment — not every mesh in the export. Entities carry
12753
+ * stable ids, anchors, identity colour and material-role bindings, so
12754
+ * recolouring a person cannot recolour its chair.
12755
+ * - **Shots.** Explicit contiguous integer ranges covering the whole timeline,
12756
+ * with hard cuts. Interpolation never spans a cut.
12757
+ * - **Overlays.** Deterministic entity/camera overrides applied over immutable
12758
+ * baked bytes, in a fixed order, so a rebuild cannot silently drop a manual
12759
+ * edit.
12760
+ * - **Provenance.** Which engine/compiler/exporter/renderer produced this, and
12761
+ * the canonical content hash of the revision.
12762
+ *
12763
+ * This file is STRUCTURE ONLY: shapes, bounds, cross-references. How a scene is
12764
+ * authored, how a camera move is solved and what any of it costs are not part
12765
+ * of the published contract and are not here.
12766
+ *
12767
+ * It owns the VOCABULARY — constants, types and per-component schemas. The
12768
+ * whole-plan schema and every cross-field rule live in `scene3d-v2-plan.ts`,
12769
+ * which builds on this; the dense camera sidecar lives in
12770
+ * `scene3d-camera-track.ts`. Consumers import all three from the package root.
12771
+ *
12772
+ * ## World conventions (identical to v1, and now stated on the wire)
12773
+ *
12774
+ * Meters, Y up, right-handed, zero-based frames. `units`/`upAxis`/`handedness`
12775
+ * are required literals so a reader can refuse a manifest that assumes anything
12776
+ * else instead of quietly rendering a Z-up scene on its side. Conversion from
12777
+ * the authoring package's basis happens exactly once, at export: a GLB that is
12778
+ * already Y-up must not be rotated again, and the renderer must not replace an
12779
+ * exported camera quaternion with a `lookAt()`.
12780
+ */
12781
+
12782
+ /** The v2 discriminator value. v1's `SCENE3D_SCHEMA_VERSION` is unchanged. */
12783
+ declare const SCENE3D_SCHEMA_VERSION_V2 = 2;
12784
+ /** Every version this package can parse AND validate. An SDK consumer checks a
12785
+ * plan against this BEFORE trying to render one it cannot understand. */
12786
+ declare const SCENE3D_SUPPORTED_SCHEMA_VERSIONS: readonly [1, 2];
12787
+ type Scene3DSupportedSchemaVersion = (typeof SCENE3D_SUPPORTED_SCHEMA_VERSIONS)[number];
12788
+ /** Authoring engines a v2 manifest may name. Open-ended on the wire (the field
12789
+ * is a bounded slug) so a new engine does not need a package release; this
12790
+ * list is what the current platform ships. */
12791
+ declare const SCENE3D_V2_ENGINES: readonly ["blender-cloud", "blender-local"];
12792
+ type Scene3DKnownEngine = (typeof SCENE3D_V2_ENGINES)[number];
12793
+ /**
12794
+ * Admission bounds for v2. Server-configured ceilings are returned in
12795
+ * capabilities; these are the contract's hard maxima, quoted by the route Zod,
12796
+ * the builder, the renderer and the docs so they cannot drift apart.
12797
+ *
12798
+ * v1's `SCENE3D_LIMITS` is NOT changed by any of this — "raise maxObjects" was
12799
+ * never the v2 design.
12800
+ */
12801
+ declare const SCENE3D_V2_LIMITS: {
12802
+ /** Both the seconds and the frame ceiling apply; neither waives the other. */
12803
+ readonly maxDurationSeconds: 60;
12804
+ readonly minDurationInFrames: 1;
12805
+ readonly maxDurationInFrames: 3600;
12806
+ readonly minFps: 15;
12807
+ readonly maxFps: 60;
12808
+ readonly defaultFps: 24;
12809
+ /** Even integers only — an odd axis breaks H.264 chroma subsampling. */
12810
+ readonly minDimensionPx: 100;
12811
+ readonly maxDimensionPx: 1920;
12812
+ readonly minEntities: 1;
12813
+ /** SEMANTIC entities, not exported mesh nodes. */
12814
+ readonly maxEntities: 100;
12815
+ /** Enforced during asset normalization, after decode — see
12816
+ * `scene3DV2NormalizationIssues` in `scene3d-v2-resources.ts`. */
12817
+ readonly maxMeshNodes: 2000;
12818
+ readonly maxTriangles: 200000;
12819
+ readonly maxHierarchyDepth: 16;
12820
+ /** Decoded manifest JSON. Measured on the bytes, before `JSON.parse`. */
12821
+ readonly maxManifestBytes: number;
12822
+ /** Decoded camera-track JSON. */
12823
+ readonly maxCameraTrackBytes: number;
12824
+ /** Total DECLARED bytes of the assets the renderer downloads. Compression
12825
+ * does not waive the decoded geometry limits above. */
12826
+ readonly maxRendererAssetBytes: number;
12827
+ /** A `blend-source` is a separately authorized download, never handed to the
12828
+ * browser renderer, and therefore not part of the renderer budget. */
12829
+ readonly maxBlendSourceBytes: number;
12830
+ readonly maxAssets: 64;
12831
+ readonly maxShots: 32;
12832
+ readonly maxShotEntityIds: 16;
12833
+ /** v1's reference limit, unchanged until deliberately expanded. */
12834
+ readonly maxReferences: 8;
12835
+ readonly maxAnchorsPerEntity: 32;
12836
+ readonly maxMaterialBindingsPerEntity: 16;
12837
+ readonly maxOverrides: 200;
12838
+ readonly minPosterDimensionPx: 16;
12839
+ readonly maxPosterDimensionPx: 4096;
12840
+ readonly maxIdLength: 64;
12841
+ readonly maxAssetIdLength: 128;
12842
+ readonly maxNodeIdLength: 128;
12843
+ readonly maxNameLength: 120;
12844
+ readonly maxLabelLength: 120;
12845
+ readonly maxMaterialNameLength: 120;
12846
+ readonly maxVersionLength: 64;
12847
+ readonly maxCoordinate: 1000;
12848
+ readonly minSize: 0.001;
12849
+ readonly maxSize: 1000;
12850
+ readonly maxIntensity: 100;
12851
+ };
12852
+ /** The overlay operation vocabulary this package understands. An override
12853
+ * written by a NEWER writer is rejected with an explicit message rather than
12854
+ * silently skipped — a dropped edit is worse than a refused manifest. */
12855
+ declare const SCENE3D_V2_OVERRIDE_OPERATION_VERSION = 1;
12856
+ /**
12857
+ * The GLB `extras` keys the exporter writes and the importer reads. Blender
12858
+ * display names and array indices are NOT durable identifiers: a re-export
12859
+ * renames `Cube.003` and reorders children, and a hit-test would then select a
12860
+ * different entity. Both ends import these constants — never the literals.
12861
+ */
12862
+ declare const SCENE3D_GLB_EXTRAS_ENTITY_ID = "nodaroEntityId";
12863
+ declare const SCENE3D_GLB_EXTRAS_SUBPART_ID = "nodaroSubpartId";
12864
+ declare const SCENE3D_GLB_EXTRAS_MATERIAL_ROLE = "nodaroMaterialRole";
12865
+ /** Nothing outside this set is read from `extras`; an importer ignores the rest
12866
+ * rather than trusting arbitrary exporter metadata. */
12867
+ declare const SCENE3D_GLB_EXTRAS_ALLOWLIST: readonly ["nodaroEntityId", "nodaroSubpartId", "nodaroMaterialRole"];
12868
+ /** What an entity IS, for selection, grouping and validation reporting. It is
12869
+ * advisory: no rule anywhere requires a head on a car or a wheel on a person. */
12870
+ type Scene3DEntityRole = "person" | "vehicle" | "prop" | "environment" | "other";
12871
+ declare const SCENE3D_ENTITY_ROLES: readonly Scene3DEntityRole[];
12872
+ /** The v1 primitive vocabulary MINUS `group` — grouping is `visual.kind:"group"`
12873
+ * in v2, so there is exactly one way to say "no geometry". */
12874
+ type Scene3DV2Primitive = Exclude<Scene3DPrimitive, "group">;
12875
+ declare const SCENE3D_V2_PRIMITIVES: readonly Scene3DV2Primitive[];
12876
+ /** Deterministic overlays an entity accepts. Geometry and pose are deliberately
12877
+ * absent: those rebuild through the authoring engine, they are not overlays. */
12878
+ type Scene3DEntityCapability = "transform" | "color" | "visibility";
12879
+ declare const SCENE3D_ENTITY_CAPABILITIES: readonly Scene3DEntityCapability[];
12880
+ /** What an entity accepts when it does not say. */
12881
+ declare const SCENE3D_DEFAULT_ENTITY_CAPABILITIES: readonly Scene3DEntityCapability[];
12882
+ type Scene3DAssetKind = "glb" | "camera-track-json" | "poster" | "validation-report" | "blend-source";
12883
+ declare const SCENE3D_ASSET_KINDS: readonly Scene3DAssetKind[];
12884
+ type Scene3DAssetRole = "scene-geometry" | "entity-geometry" | "camera-track" | "poster" | "validation-report" | "source";
12885
+ declare const SCENE3D_ASSET_ROLES: readonly Scene3DAssetRole[];
12886
+ /** Which kinds may carry which role. A role is not decoration — it is what lets
12887
+ * a resolver decide whether bytes go to the renderer, the UI or an authorized
12888
+ * download, without sniffing the file. */
12889
+ declare const SCENE3D_ASSET_ROLE_KINDS: Readonly<Record<Scene3DAssetRole, Scene3DAssetKind>>;
12890
+ /** The kinds the BROWSER downloads. `blend-source` is never in this set: it is
12891
+ * a separately authorized download and it does not spend the renderer budget. */
12892
+ declare const SCENE3D_RENDERER_ASSET_KINDS: readonly Scene3DAssetKind[];
12893
+ /** The one material role a `primitive` entity has: its own `color`. */
12894
+ declare const SCENE3D_PRIMITIVE_MATERIAL_ROLE = "identity";
12895
+ /** The standardized clay look, pinned by id. Browser preview, critic stills and
12896
+ * the final export must implement a given preset identically. */
12897
+ declare const SCENE3D_CLAY_LIGHTING_PRESETS: readonly ["clay-studio-v1"];
12898
+ type Scene3DClayLightingPreset = (typeof SCENE3D_CLAY_LIGHTING_PRESETS)[number];
12899
+ /** A stable contact/selection location in entity-local space. Names are free
12900
+ * structural labels (`face`, `seat`, `wheel.frontLeft`, `roof`, `lookAt`) —
12901
+ * human anatomy is never required. */
12902
+ interface Scene3DAnchor {
12903
+ name: string;
12904
+ position: Vec3;
12905
+ /** Euler XYZ radians. Absent = identity orientation. */
12906
+ rotation?: Vec3;
12907
+ }
12908
+ /** Binds an editable colour ROLE to a real material inside the entity's own
12909
+ * asset root. Recolouring `bodyPaint` on a car must not touch its tires, and
12910
+ * cannot reach a material that belongs to a different entity. */
12911
+ interface Scene3DMaterialBinding {
12912
+ role: string;
12913
+ materialName: string;
12914
+ /** Baked colour for the role, sRGB opaque hex. */
12915
+ color?: string;
12916
+ roughness?: number;
12917
+ }
12918
+ /** Maps a clip inside the referenced GLB onto public frames. Sampling is
12919
+ * `time = (frame - startFrame) / fps` — never a wall-clock mixer delta, or
12920
+ * scrubbing backwards would not reproduce the rendered frame. */
12921
+ interface Scene3DAssetAnimation {
12922
+ clipName: string;
12923
+ startFrame: number;
12924
+ endFrameExclusive: number;
12925
+ /** Absent/false = hold the last sample after the window. */
12926
+ loop?: boolean;
12927
+ }
12928
+ type Scene3DEntityVisual =
12929
+ /** Organizational identity: a transform and a name, no geometry of its own. */
12930
+ {
12931
+ kind: "group";
12932
+ }
12933
+ /** The v1 primitive vocabulary and validated dimensions. */
12934
+ | {
12935
+ kind: "primitive";
12936
+ primitive: Scene3DV2Primitive;
12937
+ dimensions: Vec3;
12938
+ color: string;
12939
+ }
12940
+ /** An authorized GLB plus the exported node that roots this entity. */
12941
+ | {
12942
+ kind: "asset";
12943
+ assetId: string;
12944
+ rootNodeId: string;
12945
+ animation?: Scene3DAssetAnimation;
12946
+ };
12947
+ interface Scene3DEntityV2 {
12948
+ id: string;
12949
+ name: string;
12950
+ /** Transform parent, another entity. Cycles are rejected. */
12951
+ parentId?: string;
12952
+ role?: Scene3DEntityRole;
12953
+ /**
12954
+ * Local base transform. REQUIRED for `group` and `primitive`.
12955
+ *
12956
+ * OPTIONAL for `asset`, where the GLB node's own transform is authoritative:
12957
+ * a value here is an informational frame-0 snapshot and the renderer must NOT
12958
+ * apply it on top of the node transform. Applying both is the
12959
+ * double-transform bug that puts a car at twice its offset.
12960
+ */
12961
+ position?: Vec3;
12962
+ rotation?: Vec3;
12963
+ scale?: Vec3;
12964
+ /** The selection/identity chip colour. Opaque hex, sRGB. */
12965
+ identityColor?: string;
12966
+ anchors?: Scene3DAnchor[];
12967
+ /** Deterministic overlays this entity accepts. Absent = all of them. */
12968
+ capabilities?: Scene3DEntityCapability[];
12969
+ /** Currently frozen subset. An overlay is accepted iff its capability is
12970
+ * advertised AND not locked. */
12971
+ locks?: Scene3DEntityCapability[];
12972
+ /** `asset` entities only. */
12973
+ materialBindings?: Scene3DMaterialBinding[];
12974
+ visual: Scene3DEntityVisual;
12975
+ }
12976
+ /** A reference to immutable bytes. IDs and digests are persisted; short-lived
12977
+ * transport URLs are issued by the authenticated resolver and never stored. */
12978
+ interface Scene3DAssetRef {
12979
+ assetId: string;
12980
+ kind: Scene3DAssetKind;
12981
+ role: Scene3DAssetRole;
12982
+ byteLength: number;
12983
+ /** Lowercase hex SHA-256 of the bytes. */
12984
+ sha256: string;
12985
+ /** Set when this revision reuses an earlier revision's immutable bytes. */
12986
+ originRevisionId?: string;
12987
+ }
12988
+ /** A contiguous half-open frame range `[startFrame, endFrameExclusive)`. */
12989
+ interface Scene3DShot {
12990
+ id: string;
12991
+ startFrame: number;
12992
+ endFrameExclusive: number;
12993
+ label?: string;
12994
+ /** Who the shot is ABOUT — used by validation reporting and the UI. */
12995
+ subjectEntityIds?: string[];
12996
+ /** Who is deliberately in front of the lens (an over-the-shoulder anchor). */
12997
+ foregroundEntityIds?: string[];
12998
+ }
12999
+ interface Scene3DClayLighting {
13000
+ preset: Scene3DClayLightingPreset;
13001
+ ambientIntensity: number;
13002
+ keyIntensity: number;
13003
+ keyPosition: Vec3;
13004
+ }
13005
+ /** Which space a constant transform override is expressed in. Declared, so the
13006
+ * renderer never multiplies the same parent transform in twice. */
13007
+ type Scene3DOverrideSpace = "local" | "world";
13008
+ interface Scene3DOverrideProvenance {
13009
+ id: string;
13010
+ /** The revision this override was authored against. */
13011
+ sourceRevisionId: string;
13012
+ /** That revision's canonical content hash when the override was authored. */
13013
+ sourceContentHash: string;
13014
+ operationVersion: number;
13015
+ }
13016
+ type Scene3DOverride = Scene3DOverrideProvenance & ({
13017
+ kind: "entity-transform";
13018
+ entityId: string;
13019
+ space: Scene3DOverrideSpace;
13020
+ position?: Vec3;
13021
+ rotation?: Vec3;
13022
+ scale?: Vec3;
13023
+ } | {
13024
+ kind: "entity-color";
13025
+ entityId: string;
13026
+ materialRole: string;
13027
+ color: string;
13028
+ } | {
13029
+ kind: "entity-visibility";
13030
+ entityId: string;
13031
+ visible: boolean;
13032
+ } | {
13033
+ kind: "camera-shot-offset";
13034
+ shotId: string;
13035
+ positionOffset?: Vec3;
13036
+ targetOffset?: Vec3;
13037
+ });
13038
+ /**
13039
+ * Who built this revision and from what. Source versioning and renderer
13040
+ * versioning are independent — a renderer upgrade does not invalidate a scene.
13041
+ *
13042
+ * Every string here is a bounded slug, which is a structural guarantee that no
13043
+ * native path or block of prose fits in one. Scrubbing credentials
13044
+ * out of the values it does accept remains the producer's duty.
13045
+ */
13046
+ interface Scene3DProvenance {
13047
+ engine: string;
13048
+ engineVersion: string;
13049
+ recipeVersion: string;
13050
+ compilerVersion: string;
13051
+ exporterVersion: string;
13052
+ rendererVersion: string;
13053
+ sourceRevisionId?: string;
13054
+ /** The retained `blend-source` asset, when one was kept. */
13055
+ sourceArtifactId?: string;
13056
+ /** Canonical content hash of this revision — see `scene3d-v2-resources.ts`. */
13057
+ contentHash: string;
13058
+ }
13059
+ interface Scene3DPlanV2 {
13060
+ planType: typeof SCENE3D_PLAN_TYPE;
13061
+ schemaVersion: typeof SCENE3D_SCHEMA_VERSION_V2;
13062
+ revisionId: string;
13063
+ parentRevisionId?: string;
13064
+ width: number;
13065
+ height: number;
13066
+ fps: number;
13067
+ durationInFrames: number;
13068
+ units: "meters";
13069
+ upAxis: "Y";
13070
+ handedness: "right";
13071
+ objects: Scene3DEntityV2[];
13072
+ assets: Scene3DAssetRef[];
13073
+ cameraTrackAssetId: string;
13074
+ shots: Scene3DShot[];
13075
+ lighting: Scene3DClayLighting;
13076
+ backgroundColor: string;
13077
+ references?: Scene3DReference[];
13078
+ overrides?: Scene3DOverride[];
13079
+ provenance: Scene3DProvenance;
13080
+ }
13081
+ /** Opaque storage id. Deliberately slash-free: an asset id is an ID, resolved
13082
+ * server-side against ownership — never a path and never a URL. */
13083
+ declare const scene3DAssetIdSchema: z.ZodString;
13084
+ /** A node name inside an exported GLB. */
13085
+ declare const scene3DNodeIdSchema: z.ZodString;
13086
+ declare const scene3DSha256Schema: z.ZodString;
13087
+ /**
13088
+ * A version/engine token. The charset excludes `/`, `\`, `:` and whitespace, so
13089
+ * a native filesystem path cannot be spelled as one; the 64-character cap
13090
+ * excludes prose.
13091
+ */
13092
+ declare const scene3DVersionTokenSchema: z.ZodString;
13093
+ declare const scene3DEngineIdSchema: z.ZodString;
13094
+ /** Anchor names and material roles share the id charset (dots allowed, so
13095
+ * `wheel.frontLeft` is one name and not a path). */
13096
+ declare const scene3DAnchorNameSchema: z.ZodString;
13097
+ declare const scene3DMaterialRoleSchema: z.ZodString;
13098
+ declare const scene3DMaterialNameSchema: z.ZodString;
13099
+ declare const scene3DEntityCapabilitySchema: z.ZodEnum<{
13100
+ transform: "transform";
13101
+ color: "color";
13102
+ visibility: "visibility";
13103
+ }>;
13104
+ declare const scene3DAnchorSchema: z.ZodObject<{
13105
+ name: z.ZodString;
13106
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13107
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13108
+ }, z.core.$strict>;
13109
+ declare const scene3DMaterialBindingSchema: z.ZodObject<{
13110
+ role: z.ZodString;
13111
+ materialName: z.ZodString;
13112
+ color: z.ZodOptional<z.ZodString>;
13113
+ roughness: z.ZodOptional<z.ZodNumber>;
13114
+ }, z.core.$strict>;
13115
+ declare const scene3DAssetAnimationSchema: z.ZodObject<{
13116
+ clipName: z.ZodString;
13117
+ startFrame: z.ZodNumber;
13118
+ endFrameExclusive: z.ZodNumber;
13119
+ loop: z.ZodOptional<z.ZodBoolean>;
13120
+ }, z.core.$strict>;
13121
+ declare const scene3DEntityVisualSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
13122
+ kind: z.ZodLiteral<"group">;
13123
+ }, z.core.$strict>, z.ZodObject<{
13124
+ kind: z.ZodLiteral<"primitive">;
13125
+ primitive: z.ZodEnum<{
13126
+ box: "box";
13127
+ sphere: "sphere";
13128
+ cylinder: "cylinder";
13129
+ cone: "cone";
13130
+ plane: "plane";
13131
+ capsule: "capsule";
13132
+ }>;
13133
+ dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13134
+ color: z.ZodString;
13135
+ }, z.core.$strict>, z.ZodObject<{
13136
+ kind: z.ZodLiteral<"asset">;
13137
+ assetId: z.ZodString;
13138
+ rootNodeId: z.ZodString;
13139
+ animation: z.ZodOptional<z.ZodObject<{
13140
+ clipName: z.ZodString;
13141
+ startFrame: z.ZodNumber;
13142
+ endFrameExclusive: z.ZodNumber;
13143
+ loop: z.ZodOptional<z.ZodBoolean>;
13144
+ }, z.core.$strict>>;
13145
+ }, z.core.$strict>], "kind">;
13146
+ declare const scene3DEntityV2Schema: z.ZodObject<{
13147
+ id: z.ZodString;
13148
+ name: z.ZodString;
13149
+ parentId: z.ZodOptional<z.ZodString>;
13150
+ role: z.ZodOptional<z.ZodEnum<{
13151
+ other: "other";
13152
+ person: "person";
13153
+ vehicle: "vehicle";
13154
+ prop: "prop";
13155
+ environment: "environment";
13156
+ }>>;
13157
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13158
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13159
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13160
+ identityColor: z.ZodOptional<z.ZodString>;
13161
+ anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
13162
+ name: z.ZodString;
13163
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13164
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13165
+ }, z.core.$strict>>>;
13166
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
13167
+ transform: "transform";
13168
+ color: "color";
13169
+ visibility: "visibility";
13170
+ }>>>;
13171
+ locks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
13172
+ transform: "transform";
13173
+ color: "color";
13174
+ visibility: "visibility";
13175
+ }>>>;
13176
+ materialBindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
13177
+ role: z.ZodString;
13178
+ materialName: z.ZodString;
13179
+ color: z.ZodOptional<z.ZodString>;
13180
+ roughness: z.ZodOptional<z.ZodNumber>;
13181
+ }, z.core.$strict>>>;
13182
+ visual: z.ZodDiscriminatedUnion<[z.ZodObject<{
13183
+ kind: z.ZodLiteral<"group">;
13184
+ }, z.core.$strict>, z.ZodObject<{
13185
+ kind: z.ZodLiteral<"primitive">;
13186
+ primitive: z.ZodEnum<{
13187
+ box: "box";
13188
+ sphere: "sphere";
13189
+ cylinder: "cylinder";
13190
+ cone: "cone";
13191
+ plane: "plane";
13192
+ capsule: "capsule";
13193
+ }>;
13194
+ dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13195
+ color: z.ZodString;
13196
+ }, z.core.$strict>, z.ZodObject<{
13197
+ kind: z.ZodLiteral<"asset">;
13198
+ assetId: z.ZodString;
13199
+ rootNodeId: z.ZodString;
13200
+ animation: z.ZodOptional<z.ZodObject<{
13201
+ clipName: z.ZodString;
13202
+ startFrame: z.ZodNumber;
13203
+ endFrameExclusive: z.ZodNumber;
13204
+ loop: z.ZodOptional<z.ZodBoolean>;
13205
+ }, z.core.$strict>>;
13206
+ }, z.core.$strict>], "kind">;
13207
+ }, z.core.$strict>;
13208
+ declare const scene3DAssetRefSchema: z.ZodObject<{
13209
+ assetId: z.ZodString;
13210
+ kind: z.ZodEnum<{
13211
+ glb: "glb";
13212
+ "camera-track-json": "camera-track-json";
13213
+ poster: "poster";
13214
+ "validation-report": "validation-report";
13215
+ "blend-source": "blend-source";
13216
+ }>;
13217
+ role: z.ZodEnum<{
13218
+ source: "source";
13219
+ poster: "poster";
13220
+ "validation-report": "validation-report";
13221
+ "scene-geometry": "scene-geometry";
13222
+ "entity-geometry": "entity-geometry";
13223
+ "camera-track": "camera-track";
13224
+ }>;
13225
+ byteLength: z.ZodNumber;
13226
+ sha256: z.ZodString;
13227
+ originRevisionId: z.ZodOptional<z.ZodUUID>;
13228
+ }, z.core.$strict>;
13229
+ declare const scene3DShotSchema: z.ZodObject<{
13230
+ id: z.ZodString;
13231
+ startFrame: z.ZodNumber;
13232
+ endFrameExclusive: z.ZodNumber;
13233
+ label: z.ZodOptional<z.ZodString>;
13234
+ subjectEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
13235
+ foregroundEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
13236
+ }, z.core.$strict>;
13237
+ declare const scene3DClayLightingSchema: z.ZodObject<{
13238
+ preset: z.ZodEnum<{
13239
+ "clay-studio-v1": "clay-studio-v1";
13240
+ }>;
13241
+ ambientIntensity: z.ZodNumber;
13242
+ keyIntensity: z.ZodNumber;
13243
+ keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13244
+ }, z.core.$strict>;
13245
+ declare const scene3DOverrideSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
13246
+ kind: z.ZodLiteral<"entity-transform">;
13247
+ entityId: z.ZodString;
13248
+ space: z.ZodEnum<{
13249
+ local: "local";
13250
+ world: "world";
13251
+ }>;
13252
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13253
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13254
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13255
+ id: z.ZodString;
13256
+ sourceRevisionId: z.ZodUUID;
13257
+ sourceContentHash: z.ZodString;
13258
+ operationVersion: z.ZodNumber;
13259
+ }, z.core.$strict>, z.ZodObject<{
13260
+ kind: z.ZodLiteral<"entity-color">;
13261
+ entityId: z.ZodString;
13262
+ materialRole: z.ZodString;
13263
+ color: z.ZodString;
13264
+ id: z.ZodString;
13265
+ sourceRevisionId: z.ZodUUID;
13266
+ sourceContentHash: z.ZodString;
13267
+ operationVersion: z.ZodNumber;
13268
+ }, z.core.$strict>, z.ZodObject<{
13269
+ kind: z.ZodLiteral<"entity-visibility">;
13270
+ entityId: z.ZodString;
13271
+ visible: z.ZodBoolean;
13272
+ id: z.ZodString;
13273
+ sourceRevisionId: z.ZodUUID;
13274
+ sourceContentHash: z.ZodString;
13275
+ operationVersion: z.ZodNumber;
13276
+ }, z.core.$strict>, z.ZodObject<{
13277
+ kind: z.ZodLiteral<"camera-shot-offset">;
13278
+ shotId: z.ZodString;
13279
+ positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13280
+ targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13281
+ id: z.ZodString;
13282
+ sourceRevisionId: z.ZodUUID;
13283
+ sourceContentHash: z.ZodString;
13284
+ operationVersion: z.ZodNumber;
13285
+ }, z.core.$strict>], "kind">;
13286
+ declare const scene3DProvenanceSchema: z.ZodObject<{
13287
+ engine: z.ZodString;
13288
+ engineVersion: z.ZodString;
13289
+ recipeVersion: z.ZodString;
13290
+ compilerVersion: z.ZodString;
13291
+ exporterVersion: z.ZodString;
13292
+ rendererVersion: z.ZodString;
13293
+ sourceRevisionId: z.ZodOptional<z.ZodUUID>;
13294
+ sourceArtifactId: z.ZodOptional<z.ZodString>;
13295
+ contentHash: z.ZodString;
13296
+ }, z.core.$strict>;
13297
+ type Issue$3 = Scene3DSemanticIssue;
13298
+ /** Decoded byte length of a JSON payload, browser and Node alike. Size is
13299
+ * checked on the BYTES, before `JSON.parse` allocates anything. */
13300
+ declare function scene3DJsonByteLength(text: string): number;
13301
+ /** What every `parse…Json` admission helper returns: the value, or the issues
13302
+ * that stopped it — never a throw, so a route can map issues to a 400. */
13303
+ type Scene3DParseResult<T> = {
13304
+ ok: true;
13305
+ value: T;
13306
+ } | {
13307
+ ok: false;
13308
+ issues: Issue$3[];
13309
+ };
13310
+ /** Flattens a zod failure into the same issue shape the semantic validators use. */
13311
+ declare function scene3DZodIssues(error: z.ZodError): Issue$3[];
13312
+
13313
+ /**
13314
+ * The Scene3D v2 PLAN: whole-manifest schema, every cross-field rule, and the
13315
+ * V1|V2 union the rest of the platform reads.
13316
+ *
13317
+ * `scene3d-v2.ts` says what a v2 entity, asset, shot or override looks like on
13318
+ * its own. Nothing there can catch the failures that actually reach a renderer,
13319
+ * because every one of them is a relationship:
13320
+ *
13321
+ * - an entity whose GLB is not in `assets`, or two entities claiming the same
13322
+ * exported root node;
13323
+ * - a parent chain that loops, or nests deeper than the transform walk allows;
13324
+ * - shots with a one-frame gap, so some frame belongs to no shot at all;
13325
+ * - a colour override naming a material role its entity never declared — the
13326
+ * bug where recolouring a person also repaints its chair;
13327
+ * - two overrides driving one channel, or one driving a locked entity;
13328
+ * - declared asset bytes over the download budget.
13329
+ *
13330
+ * All of it runs in `scene3DPlanV2Issues`, which the schema calls from a
13331
+ * `superRefine` and a caller holding an already-parsed plan can call directly —
13332
+ * the same split v1 uses, so both versions report failures identically.
13333
+ */
13334
+
13335
+ /** THE plan type. Narrow with `isScene3DPlanV1` / `isScene3DPlanV2` before
13336
+ * reading version-specific fields. */
13337
+ type Scene3DPlan = Scene3DPlanV1 | Scene3DPlanV2;
13338
+ interface Scene3DJobOutputV2 {
13339
+ scenePlan: Scene3DPlanV2;
13340
+ changeSummary?: string;
13341
+ }
13342
+ /** Job output when either version may come back. */
13343
+ interface Scene3DJobOutputAny {
13344
+ scenePlan: Scene3DPlan;
13345
+ changeSummary?: string;
13346
+ }
13347
+ type Issue$2 = Scene3DSemanticIssue;
13348
+ /** An overlay is accepted iff the entity advertises the capability AND has not
13349
+ * frozen it. One rule, checked in exactly one place. */
13350
+ declare function scene3DEntityAcceptsOverlay(entity: Scene3DEntityV2, capability: Scene3DEntityCapability): boolean;
13351
+ /**
13352
+ * Every v2 rule that needs more than one field: timing, identity, hierarchy,
13353
+ * asset resolution and budgets, shot coverage, overlay ownership and locks.
13354
+ *
13355
+ * Split out of the schema's `superRefine` (exactly as v1 does) so a caller
13356
+ * holding an already-parsed plan can re-check it without re-parsing.
13357
+ */
13358
+ declare function scene3DPlanV2Issues(plan: Scene3DPlanV2): Issue$2[];
13359
+ /**
13360
+ * The v2 object shape WITHOUT the cross-field pass. Exported so
13361
+ * `scene3DAnyPlanSchema` can discriminate on `schemaVersion`; parse with
13362
+ * `scene3DPlanV2Schema`.
13363
+ *
13364
+ * Deliberately free of `.default()`: `parse(x)` must deep-equal `x`, or a
13365
+ * producer hashing raw JSON and a consumer hashing parsed output would compute
13366
+ * different content hashes for the same revision.
13367
+ */
13368
+ declare const scene3DPlanV2ObjectSchema: z.ZodObject<{
13369
+ planType: z.ZodLiteral<"3d-scene">;
13370
+ schemaVersion: z.ZodLiteral<2>;
13371
+ revisionId: z.ZodUUID;
13372
+ parentRevisionId: z.ZodOptional<z.ZodUUID>;
13373
+ width: z.ZodNumber;
13374
+ height: z.ZodNumber;
13375
+ fps: z.ZodNumber;
13376
+ durationInFrames: z.ZodNumber;
13377
+ units: z.ZodLiteral<"meters">;
13378
+ upAxis: z.ZodLiteral<"Y">;
13379
+ handedness: z.ZodLiteral<"right">;
13380
+ objects: z.ZodArray<z.ZodObject<{
13381
+ id: z.ZodString;
13382
+ name: z.ZodString;
13383
+ parentId: z.ZodOptional<z.ZodString>;
13384
+ role: z.ZodOptional<z.ZodEnum<{
13385
+ other: "other";
13386
+ person: "person";
13387
+ vehicle: "vehicle";
13388
+ prop: "prop";
13389
+ environment: "environment";
13390
+ }>>;
13391
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13392
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13393
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13394
+ identityColor: z.ZodOptional<z.ZodString>;
13395
+ anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
13396
+ name: z.ZodString;
13397
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13398
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13399
+ }, z.core.$strict>>>;
13400
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
13401
+ transform: "transform";
13402
+ color: "color";
13403
+ visibility: "visibility";
13404
+ }>>>;
13405
+ locks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
13406
+ transform: "transform";
13407
+ color: "color";
13408
+ visibility: "visibility";
13409
+ }>>>;
13410
+ materialBindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
13411
+ role: z.ZodString;
13412
+ materialName: z.ZodString;
13413
+ color: z.ZodOptional<z.ZodString>;
13414
+ roughness: z.ZodOptional<z.ZodNumber>;
13415
+ }, z.core.$strict>>>;
13416
+ visual: z.ZodDiscriminatedUnion<[z.ZodObject<{
13417
+ kind: z.ZodLiteral<"group">;
13418
+ }, z.core.$strict>, z.ZodObject<{
13419
+ kind: z.ZodLiteral<"primitive">;
13420
+ primitive: z.ZodEnum<{
13421
+ box: "box";
13422
+ sphere: "sphere";
13423
+ cylinder: "cylinder";
13424
+ cone: "cone";
13425
+ plane: "plane";
13426
+ capsule: "capsule";
13427
+ }>;
13428
+ dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13429
+ color: z.ZodString;
13430
+ }, z.core.$strict>, z.ZodObject<{
13431
+ kind: z.ZodLiteral<"asset">;
13432
+ assetId: z.ZodString;
13433
+ rootNodeId: z.ZodString;
13434
+ animation: z.ZodOptional<z.ZodObject<{
13435
+ clipName: z.ZodString;
13436
+ startFrame: z.ZodNumber;
13437
+ endFrameExclusive: z.ZodNumber;
13438
+ loop: z.ZodOptional<z.ZodBoolean>;
13439
+ }, z.core.$strict>>;
13440
+ }, z.core.$strict>], "kind">;
13441
+ }, z.core.$strict>>;
13442
+ assets: z.ZodArray<z.ZodObject<{
13443
+ assetId: z.ZodString;
13444
+ kind: z.ZodEnum<{
13445
+ glb: "glb";
13446
+ "camera-track-json": "camera-track-json";
13447
+ poster: "poster";
13448
+ "validation-report": "validation-report";
13449
+ "blend-source": "blend-source";
13450
+ }>;
13451
+ role: z.ZodEnum<{
13452
+ source: "source";
13453
+ poster: "poster";
13454
+ "validation-report": "validation-report";
13455
+ "scene-geometry": "scene-geometry";
13456
+ "entity-geometry": "entity-geometry";
13457
+ "camera-track": "camera-track";
13458
+ }>;
13459
+ byteLength: z.ZodNumber;
13460
+ sha256: z.ZodString;
13461
+ originRevisionId: z.ZodOptional<z.ZodUUID>;
13462
+ }, z.core.$strict>>;
13463
+ cameraTrackAssetId: z.ZodString;
13464
+ shots: z.ZodArray<z.ZodObject<{
13465
+ id: z.ZodString;
13466
+ startFrame: z.ZodNumber;
13467
+ endFrameExclusive: z.ZodNumber;
13468
+ label: z.ZodOptional<z.ZodString>;
13469
+ subjectEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
13470
+ foregroundEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
13471
+ }, z.core.$strict>>;
13472
+ lighting: z.ZodObject<{
13473
+ preset: z.ZodEnum<{
13474
+ "clay-studio-v1": "clay-studio-v1";
13475
+ }>;
13476
+ ambientIntensity: z.ZodNumber;
13477
+ keyIntensity: z.ZodNumber;
13478
+ keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13479
+ }, z.core.$strict>;
13480
+ backgroundColor: z.ZodString;
13481
+ references: z.ZodOptional<z.ZodArray<z.ZodObject<{
13482
+ id: z.ZodString;
13483
+ url: z.ZodString;
13484
+ kind: z.ZodEnum<{
13485
+ image: "image";
13486
+ video: "video";
13487
+ }>;
13488
+ role: z.ZodEnum<{
13489
+ motion: "motion";
13490
+ layout: "layout";
13491
+ appearance: "appearance";
13492
+ }>;
13493
+ objectId: z.ZodOptional<z.ZodString>;
13494
+ startSeconds: z.ZodOptional<z.ZodNumber>;
13495
+ endSeconds: z.ZodOptional<z.ZodNumber>;
13496
+ }, z.core.$strict>>>;
13497
+ overrides: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
13498
+ kind: z.ZodLiteral<"entity-transform">;
13499
+ entityId: z.ZodString;
13500
+ space: z.ZodEnum<{
13501
+ local: "local";
13502
+ world: "world";
13503
+ }>;
13504
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13505
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13506
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13507
+ id: z.ZodString;
13508
+ sourceRevisionId: z.ZodUUID;
13509
+ sourceContentHash: z.ZodString;
13510
+ operationVersion: z.ZodNumber;
13511
+ }, z.core.$strict>, z.ZodObject<{
13512
+ kind: z.ZodLiteral<"entity-color">;
13513
+ entityId: z.ZodString;
13514
+ materialRole: z.ZodString;
13515
+ color: z.ZodString;
13516
+ id: z.ZodString;
13517
+ sourceRevisionId: z.ZodUUID;
13518
+ sourceContentHash: z.ZodString;
13519
+ operationVersion: z.ZodNumber;
13520
+ }, z.core.$strict>, z.ZodObject<{
13521
+ kind: z.ZodLiteral<"entity-visibility">;
13522
+ entityId: z.ZodString;
13523
+ visible: z.ZodBoolean;
13524
+ id: z.ZodString;
13525
+ sourceRevisionId: z.ZodUUID;
13526
+ sourceContentHash: z.ZodString;
13527
+ operationVersion: z.ZodNumber;
13528
+ }, z.core.$strict>, z.ZodObject<{
13529
+ kind: z.ZodLiteral<"camera-shot-offset">;
13530
+ shotId: z.ZodString;
13531
+ positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13532
+ targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13533
+ id: z.ZodString;
13534
+ sourceRevisionId: z.ZodUUID;
13535
+ sourceContentHash: z.ZodString;
13536
+ operationVersion: z.ZodNumber;
13537
+ }, z.core.$strict>], "kind">>>;
13538
+ provenance: z.ZodObject<{
13539
+ engine: z.ZodString;
13540
+ engineVersion: z.ZodString;
13541
+ recipeVersion: z.ZodString;
13542
+ compilerVersion: z.ZodString;
13543
+ exporterVersion: z.ZodString;
13544
+ rendererVersion: z.ZodString;
13545
+ sourceRevisionId: z.ZodOptional<z.ZodUUID>;
13546
+ sourceArtifactId: z.ZodOptional<z.ZodString>;
13547
+ contentHash: z.ZodString;
13548
+ }, z.core.$strict>;
13549
+ }, z.core.$strict>;
13550
+ /** THE v2 plan validator: structure first, then the cross-field rules. */
13551
+ declare const scene3DPlanV2Schema: z.ZodObject<{
13552
+ planType: z.ZodLiteral<"3d-scene">;
13553
+ schemaVersion: z.ZodLiteral<2>;
13554
+ revisionId: z.ZodUUID;
13555
+ parentRevisionId: z.ZodOptional<z.ZodUUID>;
13556
+ width: z.ZodNumber;
13557
+ height: z.ZodNumber;
13558
+ fps: z.ZodNumber;
13559
+ durationInFrames: z.ZodNumber;
13560
+ units: z.ZodLiteral<"meters">;
13561
+ upAxis: z.ZodLiteral<"Y">;
13562
+ handedness: z.ZodLiteral<"right">;
13563
+ objects: z.ZodArray<z.ZodObject<{
13564
+ id: z.ZodString;
13565
+ name: z.ZodString;
13566
+ parentId: z.ZodOptional<z.ZodString>;
13567
+ role: z.ZodOptional<z.ZodEnum<{
13568
+ other: "other";
13569
+ person: "person";
13570
+ vehicle: "vehicle";
13571
+ prop: "prop";
13572
+ environment: "environment";
13573
+ }>>;
13574
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13575
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13576
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13577
+ identityColor: z.ZodOptional<z.ZodString>;
13578
+ anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
13579
+ name: z.ZodString;
13580
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13581
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13582
+ }, z.core.$strict>>>;
13583
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
13584
+ transform: "transform";
13585
+ color: "color";
13586
+ visibility: "visibility";
13587
+ }>>>;
13588
+ locks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
13589
+ transform: "transform";
13590
+ color: "color";
13591
+ visibility: "visibility";
13592
+ }>>>;
13593
+ materialBindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
13594
+ role: z.ZodString;
13595
+ materialName: z.ZodString;
13596
+ color: z.ZodOptional<z.ZodString>;
13597
+ roughness: z.ZodOptional<z.ZodNumber>;
13598
+ }, z.core.$strict>>>;
13599
+ visual: z.ZodDiscriminatedUnion<[z.ZodObject<{
13600
+ kind: z.ZodLiteral<"group">;
13601
+ }, z.core.$strict>, z.ZodObject<{
13602
+ kind: z.ZodLiteral<"primitive">;
13603
+ primitive: z.ZodEnum<{
13604
+ box: "box";
13605
+ sphere: "sphere";
13606
+ cylinder: "cylinder";
13607
+ cone: "cone";
13608
+ plane: "plane";
13609
+ capsule: "capsule";
13610
+ }>;
13611
+ dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13612
+ color: z.ZodString;
13613
+ }, z.core.$strict>, z.ZodObject<{
13614
+ kind: z.ZodLiteral<"asset">;
13615
+ assetId: z.ZodString;
13616
+ rootNodeId: z.ZodString;
13617
+ animation: z.ZodOptional<z.ZodObject<{
13618
+ clipName: z.ZodString;
13619
+ startFrame: z.ZodNumber;
13620
+ endFrameExclusive: z.ZodNumber;
13621
+ loop: z.ZodOptional<z.ZodBoolean>;
13622
+ }, z.core.$strict>>;
13623
+ }, z.core.$strict>], "kind">;
13624
+ }, z.core.$strict>>;
13625
+ assets: z.ZodArray<z.ZodObject<{
13626
+ assetId: z.ZodString;
13627
+ kind: z.ZodEnum<{
13628
+ glb: "glb";
13629
+ "camera-track-json": "camera-track-json";
13630
+ poster: "poster";
13631
+ "validation-report": "validation-report";
13632
+ "blend-source": "blend-source";
13633
+ }>;
13634
+ role: z.ZodEnum<{
13635
+ source: "source";
13636
+ poster: "poster";
13637
+ "validation-report": "validation-report";
13638
+ "scene-geometry": "scene-geometry";
13639
+ "entity-geometry": "entity-geometry";
13640
+ "camera-track": "camera-track";
13641
+ }>;
13642
+ byteLength: z.ZodNumber;
13643
+ sha256: z.ZodString;
13644
+ originRevisionId: z.ZodOptional<z.ZodUUID>;
13645
+ }, z.core.$strict>>;
13646
+ cameraTrackAssetId: z.ZodString;
13647
+ shots: z.ZodArray<z.ZodObject<{
13648
+ id: z.ZodString;
13649
+ startFrame: z.ZodNumber;
13650
+ endFrameExclusive: z.ZodNumber;
13651
+ label: z.ZodOptional<z.ZodString>;
13652
+ subjectEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
13653
+ foregroundEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
13654
+ }, z.core.$strict>>;
13655
+ lighting: z.ZodObject<{
13656
+ preset: z.ZodEnum<{
13657
+ "clay-studio-v1": "clay-studio-v1";
13658
+ }>;
13659
+ ambientIntensity: z.ZodNumber;
13660
+ keyIntensity: z.ZodNumber;
13661
+ keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13662
+ }, z.core.$strict>;
13663
+ backgroundColor: z.ZodString;
13664
+ references: z.ZodOptional<z.ZodArray<z.ZodObject<{
13665
+ id: z.ZodString;
13666
+ url: z.ZodString;
13667
+ kind: z.ZodEnum<{
13668
+ image: "image";
13669
+ video: "video";
13670
+ }>;
13671
+ role: z.ZodEnum<{
13672
+ motion: "motion";
13673
+ layout: "layout";
13674
+ appearance: "appearance";
13675
+ }>;
13676
+ objectId: z.ZodOptional<z.ZodString>;
13677
+ startSeconds: z.ZodOptional<z.ZodNumber>;
13678
+ endSeconds: z.ZodOptional<z.ZodNumber>;
13679
+ }, z.core.$strict>>>;
13680
+ overrides: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
13681
+ kind: z.ZodLiteral<"entity-transform">;
13682
+ entityId: z.ZodString;
13683
+ space: z.ZodEnum<{
13684
+ local: "local";
13685
+ world: "world";
13686
+ }>;
13687
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13688
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13689
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13690
+ id: z.ZodString;
13691
+ sourceRevisionId: z.ZodUUID;
13692
+ sourceContentHash: z.ZodString;
13693
+ operationVersion: z.ZodNumber;
13694
+ }, z.core.$strict>, z.ZodObject<{
13695
+ kind: z.ZodLiteral<"entity-color">;
13696
+ entityId: z.ZodString;
13697
+ materialRole: z.ZodString;
13698
+ color: z.ZodString;
13699
+ id: z.ZodString;
13700
+ sourceRevisionId: z.ZodUUID;
13701
+ sourceContentHash: z.ZodString;
13702
+ operationVersion: z.ZodNumber;
13703
+ }, z.core.$strict>, z.ZodObject<{
13704
+ kind: z.ZodLiteral<"entity-visibility">;
13705
+ entityId: z.ZodString;
13706
+ visible: z.ZodBoolean;
13707
+ id: z.ZodString;
13708
+ sourceRevisionId: z.ZodUUID;
13709
+ sourceContentHash: z.ZodString;
13710
+ operationVersion: z.ZodNumber;
13711
+ }, z.core.$strict>, z.ZodObject<{
13712
+ kind: z.ZodLiteral<"camera-shot-offset">;
13713
+ shotId: z.ZodString;
13714
+ positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13715
+ targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13716
+ id: z.ZodString;
13717
+ sourceRevisionId: z.ZodUUID;
13718
+ sourceContentHash: z.ZodString;
13719
+ operationVersion: z.ZodNumber;
13720
+ }, z.core.$strict>], "kind">>>;
13721
+ provenance: z.ZodObject<{
13722
+ engine: z.ZodString;
13723
+ engineVersion: z.ZodString;
13724
+ recipeVersion: z.ZodString;
13725
+ compilerVersion: z.ZodString;
13726
+ exporterVersion: z.ZodString;
13727
+ rendererVersion: z.ZodString;
13728
+ sourceRevisionId: z.ZodOptional<z.ZodUUID>;
13729
+ sourceArtifactId: z.ZodOptional<z.ZodString>;
13730
+ contentHash: z.ZodString;
13731
+ }, z.core.$strict>;
13732
+ }, z.core.$strict>;
13733
+ /**
13734
+ * Either version, discriminated on `schemaVersion` — so an unknown version
13735
+ * reports "Invalid discriminator value. Expected '1' | '2'" instead of a pile
13736
+ * of unknown-key errors from whichever branch failed last.
13737
+ */
13738
+ declare const scene3DAnyPlanSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
13739
+ planType: z.ZodLiteral<"3d-scene">;
13740
+ schemaVersion: z.ZodLiteral<1>;
13741
+ revisionId: z.ZodUUID;
13742
+ parentRevisionId: z.ZodOptional<z.ZodUUID>;
13743
+ width: z.ZodNumber;
13744
+ height: z.ZodNumber;
13745
+ fps: z.ZodNumber;
13746
+ durationInFrames: z.ZodNumber;
13747
+ backgroundColor: z.ZodString;
13748
+ camera: z.ZodObject<{
13749
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13750
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13751
+ focalLengthMm: z.ZodNumber;
13752
+ sensorWidthMm: z.ZodDefault<z.ZodNumber>;
13753
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
13754
+ frame: z.ZodNumber;
13755
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13756
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13757
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
13758
+ easing: z.ZodOptional<z.ZodEnum<{
13759
+ linear: "linear";
13760
+ easeInOut: "easeInOut";
13761
+ }>>;
13762
+ }, z.core.$strict>>>;
13763
+ }, z.core.$strict>;
13764
+ objects: z.ZodArray<z.ZodObject<{
13765
+ id: z.ZodString;
13766
+ name: z.ZodString;
13767
+ primitive: z.ZodEnum<{
13768
+ group: "group";
13769
+ box: "box";
13770
+ sphere: "sphere";
13771
+ cylinder: "cylinder";
13772
+ cone: "cone";
13773
+ plane: "plane";
13774
+ capsule: "capsule";
13775
+ }>;
13776
+ parentId: z.ZodOptional<z.ZodString>;
13777
+ dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13778
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13779
+ rotation: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13780
+ scale: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13781
+ color: z.ZodString;
13782
+ keyframes: z.ZodOptional<z.ZodArray<z.ZodObject<{
13783
+ frame: z.ZodNumber;
13784
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13785
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13786
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13787
+ easing: z.ZodOptional<z.ZodEnum<{
13788
+ linear: "linear";
13789
+ easeInOut: "easeInOut";
13790
+ }>>;
13791
+ }, z.core.$strict>>>;
13792
+ }, z.core.$strict>>;
13793
+ lighting: z.ZodObject<{
13794
+ ambientIntensity: z.ZodNumber;
13795
+ keyIntensity: z.ZodNumber;
13796
+ keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13797
+ }, z.core.$strict>;
13798
+ references: z.ZodOptional<z.ZodArray<z.ZodObject<{
13799
+ id: z.ZodString;
13800
+ url: z.ZodString;
13801
+ kind: z.ZodEnum<{
13802
+ image: "image";
13803
+ video: "video";
13804
+ }>;
13805
+ role: z.ZodEnum<{
13806
+ motion: "motion";
13807
+ layout: "layout";
13808
+ appearance: "appearance";
13809
+ }>;
13810
+ objectId: z.ZodOptional<z.ZodString>;
13811
+ startSeconds: z.ZodOptional<z.ZodNumber>;
13812
+ endSeconds: z.ZodOptional<z.ZodNumber>;
13813
+ }, z.core.$strict>>>;
13814
+ }, z.core.$strict>, z.ZodObject<{
13815
+ planType: z.ZodLiteral<"3d-scene">;
13816
+ schemaVersion: z.ZodLiteral<2>;
13817
+ revisionId: z.ZodUUID;
13818
+ parentRevisionId: z.ZodOptional<z.ZodUUID>;
13819
+ width: z.ZodNumber;
13820
+ height: z.ZodNumber;
13821
+ fps: z.ZodNumber;
13822
+ durationInFrames: z.ZodNumber;
13823
+ units: z.ZodLiteral<"meters">;
13824
+ upAxis: z.ZodLiteral<"Y">;
13825
+ handedness: z.ZodLiteral<"right">;
13826
+ objects: z.ZodArray<z.ZodObject<{
13827
+ id: z.ZodString;
13828
+ name: z.ZodString;
13829
+ parentId: z.ZodOptional<z.ZodString>;
13830
+ role: z.ZodOptional<z.ZodEnum<{
13831
+ other: "other";
13832
+ person: "person";
13833
+ vehicle: "vehicle";
13834
+ prop: "prop";
13835
+ environment: "environment";
13836
+ }>>;
13837
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13838
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13839
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13840
+ identityColor: z.ZodOptional<z.ZodString>;
13841
+ anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
13842
+ name: z.ZodString;
13843
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13844
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13845
+ }, z.core.$strict>>>;
13846
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
13847
+ transform: "transform";
13848
+ color: "color";
13849
+ visibility: "visibility";
13850
+ }>>>;
13851
+ locks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
13852
+ transform: "transform";
13853
+ color: "color";
13854
+ visibility: "visibility";
13855
+ }>>>;
13856
+ materialBindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
13857
+ role: z.ZodString;
13858
+ materialName: z.ZodString;
13859
+ color: z.ZodOptional<z.ZodString>;
13860
+ roughness: z.ZodOptional<z.ZodNumber>;
13861
+ }, z.core.$strict>>>;
13862
+ visual: z.ZodDiscriminatedUnion<[z.ZodObject<{
13863
+ kind: z.ZodLiteral<"group">;
13864
+ }, z.core.$strict>, z.ZodObject<{
13865
+ kind: z.ZodLiteral<"primitive">;
13866
+ primitive: z.ZodEnum<{
13867
+ box: "box";
13868
+ sphere: "sphere";
13869
+ cylinder: "cylinder";
13870
+ cone: "cone";
13871
+ plane: "plane";
13872
+ capsule: "capsule";
13873
+ }>;
13874
+ dimensions: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13875
+ color: z.ZodString;
13876
+ }, z.core.$strict>, z.ZodObject<{
13877
+ kind: z.ZodLiteral<"asset">;
13878
+ assetId: z.ZodString;
13879
+ rootNodeId: z.ZodString;
13880
+ animation: z.ZodOptional<z.ZodObject<{
13881
+ clipName: z.ZodString;
13882
+ startFrame: z.ZodNumber;
13883
+ endFrameExclusive: z.ZodNumber;
13884
+ loop: z.ZodOptional<z.ZodBoolean>;
13885
+ }, z.core.$strict>>;
13886
+ }, z.core.$strict>], "kind">;
13887
+ }, z.core.$strict>>;
13888
+ assets: z.ZodArray<z.ZodObject<{
13889
+ assetId: z.ZodString;
13890
+ kind: z.ZodEnum<{
13891
+ glb: "glb";
13892
+ "camera-track-json": "camera-track-json";
13893
+ poster: "poster";
13894
+ "validation-report": "validation-report";
13895
+ "blend-source": "blend-source";
13896
+ }>;
13897
+ role: z.ZodEnum<{
13898
+ source: "source";
13899
+ poster: "poster";
13900
+ "validation-report": "validation-report";
13901
+ "scene-geometry": "scene-geometry";
13902
+ "entity-geometry": "entity-geometry";
13903
+ "camera-track": "camera-track";
13904
+ }>;
13905
+ byteLength: z.ZodNumber;
13906
+ sha256: z.ZodString;
13907
+ originRevisionId: z.ZodOptional<z.ZodUUID>;
13908
+ }, z.core.$strict>>;
13909
+ cameraTrackAssetId: z.ZodString;
13910
+ shots: z.ZodArray<z.ZodObject<{
13911
+ id: z.ZodString;
13912
+ startFrame: z.ZodNumber;
13913
+ endFrameExclusive: z.ZodNumber;
13914
+ label: z.ZodOptional<z.ZodString>;
13915
+ subjectEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
13916
+ foregroundEntityIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
13917
+ }, z.core.$strict>>;
13918
+ lighting: z.ZodObject<{
13919
+ preset: z.ZodEnum<{
13920
+ "clay-studio-v1": "clay-studio-v1";
13921
+ }>;
13922
+ ambientIntensity: z.ZodNumber;
13923
+ keyIntensity: z.ZodNumber;
13924
+ keyPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13925
+ }, z.core.$strict>;
13926
+ backgroundColor: z.ZodString;
13927
+ references: z.ZodOptional<z.ZodArray<z.ZodObject<{
13928
+ id: z.ZodString;
13929
+ url: z.ZodString;
13930
+ kind: z.ZodEnum<{
13931
+ image: "image";
13932
+ video: "video";
13933
+ }>;
13934
+ role: z.ZodEnum<{
13935
+ motion: "motion";
13936
+ layout: "layout";
13937
+ appearance: "appearance";
13938
+ }>;
13939
+ objectId: z.ZodOptional<z.ZodString>;
13940
+ startSeconds: z.ZodOptional<z.ZodNumber>;
13941
+ endSeconds: z.ZodOptional<z.ZodNumber>;
13942
+ }, z.core.$strict>>>;
13943
+ overrides: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
13944
+ kind: z.ZodLiteral<"entity-transform">;
13945
+ entityId: z.ZodString;
13946
+ space: z.ZodEnum<{
13947
+ local: "local";
13948
+ world: "world";
13949
+ }>;
13950
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13951
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13952
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13953
+ id: z.ZodString;
13954
+ sourceRevisionId: z.ZodUUID;
13955
+ sourceContentHash: z.ZodString;
13956
+ operationVersion: z.ZodNumber;
13957
+ }, z.core.$strict>, z.ZodObject<{
13958
+ kind: z.ZodLiteral<"entity-color">;
13959
+ entityId: z.ZodString;
13960
+ materialRole: z.ZodString;
13961
+ color: z.ZodString;
13962
+ id: z.ZodString;
13963
+ sourceRevisionId: z.ZodUUID;
13964
+ sourceContentHash: z.ZodString;
13965
+ operationVersion: z.ZodNumber;
13966
+ }, z.core.$strict>, z.ZodObject<{
13967
+ kind: z.ZodLiteral<"entity-visibility">;
13968
+ entityId: z.ZodString;
13969
+ visible: z.ZodBoolean;
13970
+ id: z.ZodString;
13971
+ sourceRevisionId: z.ZodUUID;
13972
+ sourceContentHash: z.ZodString;
13973
+ operationVersion: z.ZodNumber;
13974
+ }, z.core.$strict>, z.ZodObject<{
13975
+ kind: z.ZodLiteral<"camera-shot-offset">;
13976
+ shotId: z.ZodString;
13977
+ positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13978
+ targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
13979
+ id: z.ZodString;
13980
+ sourceRevisionId: z.ZodUUID;
13981
+ sourceContentHash: z.ZodString;
13982
+ operationVersion: z.ZodNumber;
13983
+ }, z.core.$strict>], "kind">>>;
13984
+ provenance: z.ZodObject<{
13985
+ engine: z.ZodString;
13986
+ engineVersion: z.ZodString;
13987
+ recipeVersion: z.ZodString;
13988
+ compilerVersion: z.ZodString;
13989
+ exporterVersion: z.ZodString;
13990
+ rendererVersion: z.ZodString;
13991
+ sourceRevisionId: z.ZodOptional<z.ZodUUID>;
13992
+ sourceArtifactId: z.ZodOptional<z.ZodString>;
13993
+ contentHash: z.ZodString;
13994
+ }, z.core.$strict>;
13995
+ }, z.core.$strict>], "schemaVersion">;
13996
+ /** Zod for a client's `acceptedSceneSchemaVersions`. */
13997
+ declare const scene3DAcceptedSchemaVersionsSchema: z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
13998
+ declare function isScene3DPlanV2(value: unknown): value is Scene3DPlanV2;
13999
+ /** Accepts EITHER version. `isScene3DPlanV1` (in `scene3d.ts`) is the v1-only
14000
+ * form; narrow with one of them before reading version-specific fields. */
14001
+ declare function isScene3DPlan(value: unknown): value is Scene3DPlan;
14002
+ /**
14003
+ * The schema version a value CLAIMS, without validating the rest of it.
14004
+ *
14005
+ * Returns the number even when this package cannot handle it, so an SDK
14006
+ * consumer can say "this scene is v3, upgrade to render it" instead of "invalid
14007
+ * plan". `null` means it is not a Scene3D plan at all.
14008
+ */
14009
+ declare function scene3DPlanSchemaVersion(value: unknown): number | null;
14010
+ declare function isScene3DSchemaVersionSupported(version: number): version is Scene3DSupportedSchemaVersion;
14011
+ declare function isKnownScene3DEngine(engine: string): engine is Scene3DKnownEngine;
14012
+ /**
14013
+ * The shot owning `frame`, or `-1`. Ranges are half-open and contiguous, so
14014
+ * this is total over `[0, durationInFrames)` on a validated plan — and it is
14015
+ * the ONLY place a renderer decides which side of a cut a frame is on.
14016
+ */
14017
+ declare function scene3DShotIndexForFrame(shots: readonly Scene3DShot[], frame: number): number;
14018
+ declare function scene3DShotForFrame(shots: readonly Scene3DShot[], frame: number): Scene3DShot | undefined;
14019
+
14020
+ /**
14021
+ * Scene3D v2 resource admission and revision identity.
14022
+ *
14023
+ * Two gates and one hash, all of which have to agree across the builder, the
14024
+ * platform route and the renderer — so they live in one published place instead
14025
+ * of being re-derived three times.
14026
+ *
14027
+ * **Pre-allocation gate** (`scene3DV2AdmissionIssues`). Everything checkable
14028
+ * from the manifest alone, BEFORE a byte is fetched or a decoder is handed
14029
+ * anything: declared asset sizes, counts, timeline length, hierarchy depth, and
14030
+ * the decoded size of the manifest itself. A limit enforced after the download
14031
+ * is not a limit.
14032
+ *
14033
+ * **Post-decode gate** (`scene3DV2NormalizationIssues`). What only the actual
14034
+ * bytes can answer: real length versus declared, digest versus declared,
14035
+ * triangles, mesh nodes, node depth, image dimensions. A 2 MiB GLB can decode
14036
+ * to a hundred million triangles, so compression never waives a geometry
14037
+ * budget.
14038
+ *
14039
+ * **Content hash.** The canonical form of a revision, which is what makes
14040
+ * "these two revisions are the same scene" a decidable question — for
14041
+ * content-addressed caching, and for asserting after a rebuild that the entities
14042
+ * the user locked really did come back unchanged.
14043
+ */
14044
+
14045
+ type Issue$1 = Scene3DSemanticIssue;
14046
+ interface Scene3DV2ResourceUsage {
14047
+ entities: number;
14048
+ assets: number;
14049
+ shots: number;
14050
+ overrides: number;
14051
+ references: number;
14052
+ frames: number;
14053
+ durationSeconds: number;
14054
+ /** Deepest entity parent chain, 1 for a flat scene. */
14055
+ hierarchyDepth: number;
14056
+ /** Declared bytes of everything the browser downloads. */
14057
+ rendererAssetBytes: number;
14058
+ /** Declared bytes of the camera sidecar. */
14059
+ cameraTrackBytes: number;
14060
+ /** Declared bytes of the retained native source, which the browser never sees. */
14061
+ blendSourceBytes: number;
14062
+ }
14063
+ /** Deepest parent chain, counting the entity itself. Bounded by the entity
14064
+ * count even on a cyclic plan, so it is safe to call before validation. */
14065
+ declare function scene3DV2HierarchyDepth(entities: readonly Scene3DEntityV2[]): number;
14066
+ /** What this manifest CLAIMS it will cost. Also the shape a capabilities or
14067
+ * quote surface displays — it is derived, never authored. */
14068
+ declare function scene3DV2ResourceUsage(plan: Scene3DPlanV2): Scene3DV2ResourceUsage;
14069
+ /**
14070
+ * The pre-allocation gate. `manifestBytes` is the DECODED size of the manifest
14071
+ * as it arrived — pass it when admitting a downloaded manifest, omit it when
14072
+ * the plan is already in memory.
14073
+ *
14074
+ * Most of these are also enforced by `scene3DPlanV2Schema`; this function is
14075
+ * what a caller runs when it wants the budget answer without re-parsing, and
14076
+ * what makes the ceilings quotable in one place by capabilities and docs.
14077
+ */
14078
+ declare function scene3DV2AdmissionIssues(plan: Scene3DPlanV2, manifestBytes?: number): Issue$1[];
14079
+ /**
14080
+ * What the normalizer measured on the ACTUAL bytes of one asset. Optional
14081
+ * fields are "not applicable to this kind" — a poster has image dimensions and
14082
+ * no triangles; a GLB is the other way round.
14083
+ */
14084
+ interface Scene3DNormalizedAssetStats {
14085
+ assetId: string;
14086
+ kind: Scene3DAssetKind;
14087
+ /** Decoded length, after any transport compression. */
14088
+ byteLength: number;
14089
+ /** Digest of the decoded bytes, lowercase hex, when computed. */
14090
+ sha256?: string;
14091
+ meshNodes?: number;
14092
+ triangles?: number;
14093
+ /** Deepest node chain inside the asset's own scene graph. */
14094
+ maxNodeDepth?: number;
14095
+ imageWidth?: number;
14096
+ imageHeight?: number;
14097
+ }
14098
+ /**
14099
+ * The post-decode gate: does what arrived match what the manifest promised, and
14100
+ * does the resolved geometry fit the budget?
14101
+ *
14102
+ * Mesh nodes and triangles are summed ACROSS assets — the ceiling is on the
14103
+ * scene the renderer assembles, not on any single file.
14104
+ */
14105
+ declare function scene3DV2NormalizationIssues(plan: Scene3DPlanV2, stats: readonly Scene3DNormalizedAssetStats[]): Issue$1[];
14106
+ /** Size-gate on the bytes, then parse, then the full v2 schema. Refuses an
14107
+ * oversized manifest before `JSON.parse` allocates it. */
14108
+ declare function parseScene3DPlanV2Json(text: string): Scene3DParseResult<Scene3DPlanV2>;
14109
+ /**
14110
+ * Fields excluded from the canonical form.
14111
+ *
14112
+ * `revisionId`/`parentRevisionId` are IDENTITY, not content: two revisions with
14113
+ * the same scene must hash the same, or a content-addressed cache never hits
14114
+ * and "did the rebuild preserve the locked entities?" cannot be answered by
14115
+ * comparing hashes. `provenance.contentHash` is excluded because a value cannot
14116
+ * contain its own hash.
14117
+ *
14118
+ * Everything else is in — entities, anchors, material bindings, overrides, asset
14119
+ * digests, shots, lighting, provenance versions.
14120
+ */
14121
+ declare const SCENE3D_V2_CONTENT_HASH_EXCLUDED: readonly ["revisionId", "parentRevisionId"];
14122
+ /**
14123
+ * The exact bytes a revision's content hash is computed over: recursively
14124
+ * key-sorted JSON with the identity fields removed. Key order in the input
14125
+ * cannot change the result, so a manifest that survives a round-trip through a
14126
+ * database or a re-serialization still hashes the same.
14127
+ */
14128
+ declare function canonicalScene3DPlanV2Json(plan: Scene3DPlanV2): string;
14129
+ /**
14130
+ * SHA-256 of the canonical form, lowercase hex — the value that belongs in
14131
+ * `provenance.contentHash`. Uses WebCrypto, which the browser, Node 18+ and the
14132
+ * Remotion renderer all expose, so producer and consumer compute it the same
14133
+ * way.
14134
+ */
14135
+ declare function computeScene3DPlanV2ContentHash(plan: Scene3DPlanV2): Promise<string>;
14136
+ /** Does the manifest's declared `provenance.contentHash` match its content? */
14137
+ declare function verifyScene3DPlanV2ContentHash(plan: Scene3DPlanV2): Promise<boolean>;
14138
+
14139
+ /**
14140
+ * The Scene3D v2 camera sidecar — one baked sample per frame.
14141
+ *
14142
+ * A 30-second scene is 720 camera samples. V1's 240-keyframe interpolated track
14143
+ * cannot carry that, and interpolating a sparse track across a hard cut blends
14144
+ * two shots into a frame that belongs to neither. So v2 moves the camera out of
14145
+ * the manifest into this dense JSON asset, and the rule becomes trivial:
14146
+ *
14147
+ * **at integer frame `f`, use `samples[f]`.**
14148
+ *
14149
+ * No interpolation, no easing, no "nearest key". Pausing, scrubbing backwards
14150
+ * and rendering frames out of order therefore produce identical state, which is
14151
+ * the whole reason preview and export can be trusted to agree.
14152
+ *
14153
+ * Two things this format refuses to guess at:
14154
+ *
14155
+ * - **Orientation is a quaternion, not a look-at.** A renderer that replaces the
14156
+ * exported quaternion with `lookAt(target)` throws away the authored roll and
14157
+ * the handheld component. `target` is carried for inspection and intent only.
14158
+ * - **Projection is a matrix, not a lens number.** A focal length cannot express
14159
+ * sensor fit or lens shift, and re-deriving a projection at a different aspect
14160
+ * silently reframes every shot. `focalLengthMm` is metadata; the 16-element
14161
+ * column-major matrix is authoritative.
14162
+ *
14163
+ * Changing fps or aspect ratio is an explicit resample/reprojection producing a
14164
+ * NEW revision — never a render-time override. `scene3DCameraTrackPlanIssues`
14165
+ * is what makes that non-negotiable.
14166
+ */
14167
+
14168
+ declare const SCENE3D_CAMERA_TRACK_FORMAT = "scene3d-camera-track";
14169
+ declare const SCENE3D_CAMERA_TRACK_VERSION = 1;
14170
+ declare const SCENE3D_CAMERA_TRACK_LIMITS: {
14171
+ readonly maxJsonBytes: number;
14172
+ readonly maxFrameCount: 3600;
14173
+ readonly minFps: 15;
14174
+ readonly maxFps: 60;
14175
+ /** A unit quaternion off by more than this is a bug, not float noise. */
14176
+ readonly quaternionTolerance: 0.0001;
14177
+ /** Absolute tolerance on the projection entries that must be exactly zero
14178
+ * (or exactly ∓1) in a perspective matrix. */
14179
+ readonly projectionEpsilon: 0.000001;
14180
+ /** Relative tolerance when comparing declared near/far against the values the
14181
+ * projection matrix implies. */
14182
+ readonly nearFarRelativeTolerance: 0.001;
14183
+ /** Relative tolerance on `m[0]/m[5]` vs the manifest's `height/width`. */
14184
+ readonly aspectRelativeTolerance: 0.001;
14185
+ readonly minNear: 0.0001;
14186
+ readonly maxFar: 10000000;
14187
+ };
14188
+ interface Scene3DCameraSample {
14189
+ position: Vec3;
14190
+ /** `[x, y, z, w]` — that order, normalized. */
14191
+ quaternion: [number, number, number, number];
14192
+ /** Exactly 16 entries, COLUMN-MAJOR (Three.js `Matrix4.elements` order). */
14193
+ projectionMatrix: number[];
14194
+ near: number;
14195
+ far: number;
14196
+ /** Authoring intent, for inspection and validation reporting. A renderer must
14197
+ * never feed this back through `lookAt()`. */
14198
+ target?: Vec3;
14199
+ /** Metadata only; the projection matrix wins. */
14200
+ focalLengthMm?: number;
14201
+ }
14202
+ interface Scene3DCameraTrackV1 {
14203
+ format: typeof SCENE3D_CAMERA_TRACK_FORMAT;
14204
+ version: typeof SCENE3D_CAMERA_TRACK_VERSION;
14205
+ /** Always 0: public frames are zero-based, and the exporter has already
14206
+ * subtracted the authoring package's start frame. */
14207
+ frameStart: 0;
14208
+ frameCount: number;
14209
+ fps: number;
14210
+ samples: Scene3DCameraSample[];
14211
+ }
14212
+ declare const scene3DCameraSampleSchema: z.ZodObject<{
14213
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
14214
+ quaternion: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
14215
+ projectionMatrix: z.ZodArray<z.ZodNumber>;
14216
+ near: z.ZodNumber;
14217
+ far: z.ZodNumber;
14218
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14219
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
14220
+ }, z.core.$strict>;
14221
+ /** Structure only; `scene3DCameraTrackIssues` carries the numeric rules. */
14222
+ declare const scene3DCameraTrackObjectSchema: z.ZodObject<{
14223
+ format: z.ZodLiteral<"scene3d-camera-track">;
14224
+ version: z.ZodLiteral<1>;
14225
+ frameStart: z.ZodLiteral<0>;
14226
+ frameCount: z.ZodNumber;
14227
+ fps: z.ZodNumber;
14228
+ samples: z.ZodArray<z.ZodObject<{
14229
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
14230
+ quaternion: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
14231
+ projectionMatrix: z.ZodArray<z.ZodNumber>;
14232
+ near: z.ZodNumber;
14233
+ far: z.ZodNumber;
14234
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14235
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
14236
+ }, z.core.$strict>>;
14237
+ }, z.core.$strict>;
14238
+ type Issue = Scene3DSemanticIssue;
14239
+ /**
14240
+ * Is this a real PERSPECTIVE projection, and does it agree with the declared
14241
+ * near/far?
14242
+ *
14243
+ * Column-major layout produced by every Three.js/glTF perspective camera:
14244
+ *
14245
+ * ```text
14246
+ * m0 0 m8 0
14247
+ * 0 m5 m9 0
14248
+ * 0 0 m10 m14
14249
+ * 0 0 -1 0
14250
+ * ```
14251
+ *
14252
+ * `m8`/`m9` carry lens shift and are free. Everything else is pinned. Inverting
14253
+ * the two depth terms recovers `near = m14 / (m10 - 1)` and
14254
+ * `far = m14 / (m10 + 1)`, which is how a matrix that quietly disagrees with its
14255
+ * own declared clip planes gets caught.
14256
+ *
14257
+ * Exported because the builder validates its export with the same function the
14258
+ * renderer admits it with.
14259
+ */
14260
+ declare function scene3DProjectionIssues(matrix: readonly number[], near: number, far: number, path: (string | number)[]): Issue[];
14261
+ /**
14262
+ * The numeric rules the schema cannot express: exact sample count, normalized
14263
+ * quaternions, and a real perspective projection on every frame.
14264
+ *
14265
+ * Split out of the schema (as v1 does) so a caller holding a parsed track can
14266
+ * re-check it, and so the per-sample walk stays one readable loop over up to
14267
+ * 3,600 samples.
14268
+ */
14269
+ declare function scene3DCameraTrackIssues(track: Scene3DCameraTrackV1): Issue[];
14270
+ /** THE camera-track validator: structure, then the numeric rules. */
14271
+ declare const scene3DCameraTrackSchema: z.ZodObject<{
14272
+ format: z.ZodLiteral<"scene3d-camera-track">;
14273
+ version: z.ZodLiteral<1>;
14274
+ frameStart: z.ZodLiteral<0>;
14275
+ frameCount: z.ZodNumber;
14276
+ fps: z.ZodNumber;
14277
+ samples: z.ZodArray<z.ZodObject<{
14278
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
14279
+ quaternion: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
14280
+ projectionMatrix: z.ZodArray<z.ZodNumber>;
14281
+ near: z.ZodNumber;
14282
+ far: z.ZodNumber;
14283
+ target: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14284
+ focalLengthMm: z.ZodOptional<z.ZodNumber>;
14285
+ }, z.core.$strict>>;
14286
+ }, z.core.$strict>;
14287
+ declare function isScene3DCameraTrack(value: unknown): value is Scene3DCameraTrackV1;
14288
+ /**
14289
+ * Track ↔ manifest agreement. A track that is valid on its own can still be the
14290
+ * WRONG track for this scene: a different fps, a different length, or a
14291
+ * projection baked for another aspect ratio. Each of those silently reframes or
14292
+ * retimes every shot, so each is an error here rather than a render-time
14293
+ * surprise.
14294
+ */
14295
+ declare function scene3DCameraTrackPlanIssues(track: Scene3DCameraTrackV1, plan: Pick<Scene3DPlanV2, "fps" | "durationInFrames" | "width" | "height">): Issue[];
14296
+ /**
14297
+ * The sample for an integer frame. `undefined` outside `[0, frameCount)` — a
14298
+ * caller must fail rather than clamp, because a clamped frame is a wrong frame
14299
+ * that looks plausible.
14300
+ */
14301
+ declare function scene3DSampleForFrame(track: Scene3DCameraTrackV1, frame: number): Scene3DCameraSample | undefined;
14302
+ /**
14303
+ * Size-gate, then parse, then validate. This is the admission path for a
14304
+ * downloaded camera track: an 80 MiB "8 MiB" track is refused before
14305
+ * `JSON.parse` gets a chance to allocate it.
14306
+ */
14307
+ declare function parseScene3DCameraTrackJson(text: string): Scene3DParseResult<Scene3DCameraTrackV1>;
14308
+
11833
14309
  /**
11834
14310
  * The parts of `settings.studio` that must not leave the owner's account.
11835
14311
  *
@@ -11893,4 +14369,120 @@ declare const STUDIO_SHOT_TRANSIENT_KEYS: readonly ["pendingClips", "pendingClip
11893
14369
  */
11894
14370
  declare function stripStudioTransientSettings(settings: unknown): unknown;
11895
14371
 
11896
- export { ACCESS_LEVELS, ACTIVE_SCENE_HELPERS, ADVANCED_MODE_UNAVAILABLE_REASON, AGGREGATEABLE_TYPES, AGGREGATE_LANE_SOURCE_TYPES, AI_AVATAR_DURATION_BUCKETS, AI_AVATAR_MAX_AUDIO_SEC, AI_AVATAR_MAX_DURATION_SEC, AI_AVATAR_RESERVE_IDS, AI_WRITER_PROVIDERS, ALA_CARTE_BOARDS, ALL_CAPTION_STYLES, ANIMALS, ANIMAL_SUBCATEGORY_LABELS, ANIMAL_SUBCATEGORY_ORDER, ASPECT_RATIO_DIMENSIONS, AUDIO_ADDON_PROVIDERS, AUDIO_CROSSFADE_CURVES, AUDIO_CROSSFADE_CURVE_IDS, AUDIO_FX_PRESETS, AUDIO_FX_PRESET_LABELS, AUDIO_FX_PRESET_SET, AUDIO_FX_REVERB_PRESETS, AUDIO_PRODUCER_TYPES, type AccessLevel, type AddBRollResult, AddBRollResultSchema, type AggregateableType, type AggregationBuckets, type AiAvatarDurationBucket, type AiAvatarEngine, type AiAvatarResolution, type AiWriterProvider, type AlaCarteBoard, type AnalyzedScene, type AnchorSceneStyleResult, AnchorSceneStyleResultSchema, type Animal, type AnimalSubcategory, type AssetRef, AssetRefSchema, type AudioCrossfadeCurve, type AudioFxPreset, type AudioLayer, type AuditImagesResult, AuditImagesResultSchema, type AuditImagesShotEntry, AuditImagesShotEntrySchema, AuditPromptIssueSchema, type AuditPromptResult, AuditPromptResultSchema, AvatarPayloadError, BOARD_TO_ASSET_TYPE, BOARD_TO_COLUMN, BOARD_VARIANTS, type BoardEntityKind, type BoardPromptContext, type BoardTemplate, BridgeToNextSceneInputSchema, type BridgeToNextSceneResult, BridgeToNextSceneResultSchema, type BrowseCommunityParams, type BrowseCommunityResult, CATEGORY_DURATION_DEFAULTS, CHARACTER_ASPECT_DEFAULTS, CHARACTER_ASPECT_OPTIONS, CHARACTER_ASSET_TYPES, CHARACTER_ASSET_VARIANTS, CHARACTER_ATTACH_COLUMNS, CHARACTER_FACETS, CHARACTER_FACET_IDS, CHARACTER_LORA_TRAINING_JOB_TYPE, CHARACTER_MOTION_PROVIDERS, CHARACTER_PICKER_DISPLAY_ORDER, CHARACTER_REFERENCE_PHOTO_KINDS, CHARACTER_STYLES, CHARACTER_VARIANT_ASSET_BUCKETS, CHAT_ENABLED_STAGES, CHAT_STAGES, CHAT_TURN_CAPS, CHAT_WIRED_STAGES, CINEMATIC_DEFAULT_DURATION_SEC, CINEMATIC_DEFAULT_RESOLUTION, CINEMATIC_MAX_DURATION_SEC, CINEMATIC_MAX_LOOKS, CINEMATIC_MAX_REFERENCE_IMAGES, CINEMATIC_MAX_REFERENCE_VIDEOS, CINEMATIC_MIN_DURATION_SEC, CINEMATIC_MIN_LOOKS, CINEMATIC_PROMPT_MAX, CINEMATIC_RESERVE_IDS, COLLABORATOR_ROLES, COLLECT_IN_HANDLE, COMBINE_TRANSITIONS, COMBINE_TRANSITION_GROUP_LABELS, COMBINE_TRANSITION_GROUP_ORDER, COMBINE_TRANSITION_IDS, COMPOSER_PLAN_FIELDS, COMPOSER_PLAN_MAP, CONTENT_TYPES_BY_PLATFORM, CREATURE_ATTACH_COLUMNS, CREDIT_BASE_USD, CREDIT_ROUNDING_RESOLUTION, type CaptionStyle, type CastCoverageCriticVerdict, CastCoverageCriticVerdictSchema, type CharacterAspectRatio, type CharacterAssetType, type CharacterAssetTypeForAspect, type CharacterAttachColumn, type CharacterDef, type CharacterFacet, type CharacterImageCriticVerdict, CharacterImageCriticVerdictSchema, type CharacterLoraFields, type CharacterMentionTokenInfo, CharacterMetadataSchema, type CharacterMotionProvider, type CharacterReferencePhoto, type CharacterReferencePhotoKind, type CharacterVariantAssetBucket, type CharacterVariantAssetItem, type CharacterVoiceSpec, type ChatEnabledStage, type ChatTurnResponse, ChatTurnResponseSchema, type CinematicResolution, type ClipLook, type CloneListingResult, type CollaboratorRole, type CombineTransition, type CombineTransitionGroup, type CombineVideosEstimatorInput, type CommunityCard, type CommunityEntityType, type CommunityFullDetail, type CommunityReportReason, type CommunitySort, type ComponentHandle, type ComponentMetadata, type ConnectedReference, type CreatureAttachColumn, CriticIssueSchema, type CustomEntry, DEFAULT_AUDIO_CROSSFADE_CURVE_ID, DEFAULT_CARRIED_FRACTION, DEFAULT_CHARACTER_ANGLE_COUNT, DEFAULT_CHARACTER_EXPRESSION_COUNT, DEFAULT_CHARACTER_FACET, DEFAULT_LABEL_BY_SOURCE, DEFAULT_LOCATION_USAGE_MODE, DEFAULT_PANEL_COUNT, DEFAULT_REF_IMAGE_MAX, DEFAULT_SECTIONS, DEFAULT_USAGE_MODE, DEFAULT_VIDEO_ANALYSIS_MODEL, DEFAULT_VIDEO_ANALYSIS_TIER, DEFAULT_VIDEO_CLIP_COST, DEFAULT_VIDEO_DURATION_SEC, DEFAULT_VIDEO_PROVIDER, DEFAULT_VOICE_CHANGER_MODEL, DEFAULT_VOICE_DESIGN_MODEL, DETAIL_VARIANTS, DURATION_PRICED_PROVIDERS, DYNAMIC_PRODUCER_TYPES, type DescribedReference, type DetectionResult, DetectionResultSchema, type DialogueLine, EFFORT_TIER_BUMP, EMOTIONAL_BEAT, ENTITY_ASPECT_DEFAULTS, ENTITY_BUCKET_FIELDS, ENTITY_DB_ID_FIELD, ENTITY_IMAGE_HANDLE_TYPES, ENTITY_KIND_SCALAR_FIELDS, ENTITY_NAME_FIELD, ENTITY_NODE_KINDS, ENTITY_SCALAR_FIELDS, ENTITY_SECTIONS, ENTITY_STATUSES, ENTITY_TABLE, ENTITY_TOOL_RETRY_CAP, ENTITY_TYPES, EXECUTION_DATA_KEYS, EXTEND_VIDEO_PROVIDERS, type EntityKind, type EntityMentionTokenInfo, type EntityMetadata, EntityMetadataSchema, type EntityNodeKind, type EntityReferenceInput, type EntityRejectInput, EntityRejectInputSchema, type EntitySlot, type EntityStaleEvent, EntityStaleEventSchema, type EntityStateChangeEvent, EntityStateChangeEventSchema, type EntityStatus, type EntityStudioKind, type EntityStyle, type EntityType, type EvaluateConditionOptions, type ExportedPreset, type ExposableField, type ExposableOutput, type ExposedSetting, type ExtendVideoProvider, type ExtraRefCharacterContext, type ExtraRefInput, FACE_SWAP_PROVIDERS, FAL_LIP_SYNC_PROVIDERS, FAN_OUT_EACH_TYPES, FEATURED_ENTITIES, FILM_BASE_CREDITS, FLEXIBLE_INPUT_LIP_SYNC_PROVIDERS, FLUX2_RES_MP, FLUX_LORA_CHARACTER_MODEL_ID, FRAME_MODE_ADAPTIVE_ONLY_ASPECT, FRAME_TARGET_HANDLES, FREECUT_EXPORT_COMPLETE, FREECUT_EXPORT_PROGRESS, FREECUT_READY, FREECUT_REQUEST_IMPORT, FURNITURE, FURNITURE_SUBCATEGORY_LABELS, FURNITURE_SUBCATEGORY_ORDER, type FaceSwapProvider, type FavoriteListingResult, type FeaturedEntity, type FilmCreditEstimate, type FilterListCondition, type FilterListOperator, type FilterOperator, type FixContinuityInput, FixContinuityInputSchema, type FixContinuityResult, FixContinuityResultSchema, type Flux2Model, type FreecutExportCompletePayload, type FreecutExportProgressPayload, type FreecutImportFile, type FreecutRequestImportPayload, type FullSelectorMode, type Furniture, type FurnitureSubcategory, GEMINI_OMNI_PROVIDERS, GENERATE_TEXT_DELIMITER, GLOBAL_MAX_DURATION_SECONDS, GRANTED_ACCESS, GROUP_HANDLE_PREFIX, GUIDANCE_SCALE_SUPPORT, GVP_ANCHOR_CHOICES, GVP_DEFAULT_PROVIDER, GVP_END_FRAME_PROVIDERS, GVP_EXTEND_PROVIDERS, GVP_SUPPORTED_PROVIDERS, GenerateMotionInputSchema, type GenerateMotionResult, GenerateMotionResultSchema, type GenericEdge, type GenericNode, type GrantedAccess, type GvpAnchorChoice, type GvpAnchorWireMode, HANDLE_PORT_SEPARATOR, HELPERS_SHIPPED_IN_1B3, HIGH_QUALITY_PROVIDERS, HINT_EXEMPT_PARAMETER_TYPES, type HintEdgeLike, type HintGraphContext, type HintNodeLike, type I18nCatalogId, I2I_MASK_SUPPORT, I2I_STRENGTH_SUPPORT, IDEOGRAM_PROVIDERS, IMAGE_ASPECT_RATIO_VALUES, IMAGE_CRITIC_LEAF_MODES, IMAGE_CRITIC_MAX_RETRIES, IMAGE_CRITIC_METADATA_KEYS, IMAGE_CRITIC_MIN_ADHERENCE_SCORE, IMAGE_CRITIC_MODES, IMAGE_CRITIC_UNRESOLVABLE, IMAGE_EDIT_PROVIDERS, IMAGE_GEN_PROVIDERS, IMAGE_I2I_PROVIDERS, IMAGE_MASK_MODE, IMAGE_PROMPT_MAX, IMAGE_REF_TYPES, IMAGE_TO_VIDEO_PROVIDERS, INPUT_FIELD_MAP, INPUT_NODE_TYPES, INSTAGRAM_CAROUSEL_MAX_ITEMS, INSTAGRAM_CAROUSEL_MIN_ITEMS, ITER_CLONE_PATTERN, type IdentityFidelity, type IdentityMeta, type ImageAspectRatio, type ImageCriticIssue, ImageCriticIssueSchema, type ImageCriticLeafMode, type ImageCriticMetadataKey, type ImageCriticMode, type ImageCriticNodeIssue, type ImageCriticResult, ImageCriticResultSchema, type ImageCriticVerdict, ImageCriticVerdictSchema, type ImageEditProvider, type ImageGenProvider, type ImageI2IProvider, type ImageMaskMode, type ImageMentionTokenInfo, type ImageToVideoProvider, type ImprovePromptInput, ImprovePromptInputSchema, type ImprovePromptResult, ImprovePromptResultSchema, type InputFieldSchema, type InvitationDelivery, type InvitationPreview, type InvitationState, type InvitationView, type JoinCodeView, type JsonEvalResult, type JsonFilter, type JsonPatch, KEYFRAME_CREDITS_PER_SHOT, KINETIC_CAPTION_STYLES, type KieApiFormat, type KineticCaptionStyle, LANGUAGES, LEGACY_LOTTIE_HOST_REMAP, LIP_SYNC_DURATION_BUCKETS, LIP_SYNC_MAX_AUDIO_SECONDS, LIP_SYNC_PROVIDERS, LLM_FEATURE_DEFAULTS, LLM_MODALITY_CAPS, LLM_MODELS, LLM_MODEL_IDS, LLM_REASONING_EFFORTS, LLM_ROUTE_DEFAULTS, LLM_TEXT_INPUT_MAX, LLM_VENDOR_LABELS, LLM_VENDOR_ORDER, LOCATION_ASSET_TYPES, LOCATION_ASSET_VARIANTS, LOCATION_ATMOSPHERE_PROVIDERS, LOCATION_ATTACH_COLUMNS, LOCATION_BUCKET_TO_CATALOG_ID, LOCATION_PRESET_TO_CATALOG, LOCATION_REFERENCE_PHOTO_KINDS, LOCATION_REFERENCE_PHOTO_KIND_LABELS, LOCATION_USAGE_MODES, LOTTIE_OVERLAY_CATALOG, LOTTIE_SLOT_FIELD_PREFIX, type LabeledOption, type LipSyncDurationBucket, type LipSyncProvider, type LlmFeature, type LlmModelDef, type LlmModelGroup, type LlmReasoningEffort, type LlmRouteDefaults, type LlmTier, type LlmVendor, type LocaleCatalogMap, type LocaleDirection, type LocaleId, type LocationAssetType, type LocationAtmosphereProvider, type LocationAttachColumn, type LocationCatalogRef, type LocationImageCriticVerdict, LocationImageCriticVerdictSchema, type LocationMentionTokenInfo, LocationMetadataSchema, type LocationReferencePhotoKind, type LocationUsageMode, LocationsCoverageCriticIssueSchema, type LocationsCoverageCriticVerdict, LocationsCoverageCriticVerdictSchema, type LoopTrimEstimatorInput, type LoopVideoEstimatorInput, type LoraEligibleRef, type LoraRouting, type LottieOverlayCatalogEntry, type LottieSlotField, MAX_CUSTOM_ENTRIES_PER_BOARD, MAX_IMAGE_PROMPT_CHARS_BY_PROVIDER, MAX_LOCATION_VARIANTS, MAX_NEGATIVE_PROMPT_CHARS_BY_PROVIDER, MAX_PANELS_PER_SHEET, MAX_TTS_CHARS_BY_PROVIDER, MAX_VIDEO_PROMPT_CHARS_BY_PROVIDER, MEMBER_STATUSES, MINIMAX_H3_DEFAULT_RESOLUTION, MINIMAX_H3_PROVIDERS, MODELS_WITH_REFERENCE_IMAGE_SUPPORT, MODEL_CATALOG, MODEL_PARAM_NODE_TYPES, MODEL_RECOMMENDATIONS, MODIFY_IMAGE_PROVIDERS, MOTION_COLUMN, MOTION_TRANSFER_PROVIDERS, MUSIC_PROVIDERS, type MaskRegionDescriptor, type MatchCutVerdict, MatchCutVerdictSchema, type MeOrganizations, type Member, type MemberStatus, type MinimalEdge, type MinimalNode, type ModelCatalogEntry, type ModelInputAdjustment, type ModelKind, type ModelMenuOption, type ModelMode, type ModelNodeTarget, type ModelPromptingStyle, type ModelRecommendation, type ModelTreeLine, type ModelTreeVariant, type ModelValidationIssue, type ModifyImageProvider, type MotionTransferProviderType, type MusicProvider, NATIVE_ADAPTIVE_ASPECT, NATIVE_NEGATIVE_PROMPT_MODELS, NATIVE_NEGATIVE_VIDEO_PROVIDERS, NEGATIVE_PROMPT_MAX, NODARO_IMPORT_FILES, NODARO_LOAD_TIMELINE, NODARO_LOAD_VIDEO, NODARO_RESET_PROJECT, NODE_DEFAULT_TYPES, NODE_MAPPABLE_FIELDS, NODE_PRESET_EXPORT_KIND, NODE_REF_PATTERN, NON_EN_LOCALE_IDS, NO_SPLIT_DELIMITER, type NodaroLoadTimelinePayload, type NodaroLoadVideoPayload, type NodeDefaultType, type NodeParamAdjustment, type NodePresetExport, type NormalizedImageGen, type NormalizedModelInput, type NormalizedNodes, type NormalizedVideoRequest, OBJECT_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS, OBJECT_ASSET_TYPES, OBJECT_ASSET_VARIANTS, OBJECT_ATTACH_COLUMNS, OBJECT_MOTION_PROVIDERS, OBJECT_PICKER_NODE_TYPES, ORG_ERROR_CODES, ORG_KINDS, ORG_ROLES, ORG_STATUSES, OUTPUT_FIELD_MAP, OUTPUT_FORMATS, type ObjectAspectRatio, type ObjectAssetType, type ObjectAssetTypeForAspect, type ObjectAttachColumn, ObjectMetadataSchema, type ObjectMotionProvider, type ObjectsValidationIssue, type ObjectsValidationResult, OptimizeForModelInputSchema, type OptimizeForModelResult, OptimizeForModelResultSchema, type OrgAuditEntry, type OrgErrorCode, type OrgKind, type OrgMemberView, type OrgPage, type OrgRole, type OrgSettings, OrgSettingsSchema, type OrgStatus, type OrganizationSummary, type OrganizationView, type OutputFormat, type OutputMode, type OutputType, PARAMETER_NODE_TYPES, PASSTHROUGH_TYPES, PAYG_RETENTION_DAYS, PER_FORMAT_DURATION_BOUNDS, PICKER_TO_COMBINE_TRANSITION, PIPELINE_ACTIVATION_MODES, PIPELINE_FORMATS, PIPELINE_HARD_TIMEOUT_MS, PIPELINE_MODEL_STAGES, PIPELINE_MODES, PIPELINE_OUTPUT_RESOLUTIONS, PIPELINE_PINNABLE_IMAGE_MODELS, PIPELINE_PINNABLE_SCRIPT_LLMS, PIPELINE_PINNABLE_VIDEO_MODELS, PIPELINE_STAGE_NAMES, PIPELINE_STAGE_TIMEOUT_MS, PIPELINE_TYPES, PLACEHOLDER_CHARACTER_NAME, PLATFORM_LABELS, PLATFORM_SPECS, PRESET_APPLY_CLEAR_KEYS, PRESET_EXCLUDED_KEYS, PRESET_LABELS, PRESET_SETTING_KEYS, PRICING_DEFAULT_DURATION_SEC, PRICING_DEFAULT_RESOLUTION, PROMPT_HARD_CEILING, PROMPT_PREFIX_KEY, PROMPT_SUFFIX_KEY, PROVIDER_DIRECTIVE_DEFAULTS, PROVIDER_PLACEHOLDER_PREFIX, type PanelGenRequest, type PanelRequest, type PanelSource, type PipelineActivationMode, type PipelineCompletedEvent, PipelineCompletedEventSchema, type PipelineConfig, PipelineConfigSchema, type PipelineDriftSummary, PipelineDriftSummarySchema, type PipelineEditorDecisionsReadyEvent, PipelineEditorDecisionsReadyEventSchema, type PipelineEvent, type PipelineForkedEvent, PipelineForkedEventSchema, type PipelineFormat, type PipelineInput, PipelineInputSchema, type PipelineLifecycleEvent, type PipelineMode, type PipelineModelStage, type PipelineMusicReadyEvent, PipelineMusicReadyEventSchema, type PipelineOutputResolution, type PipelinePinnableImageModel, type PipelinePinnableScriptLlm, type PipelinePinnableVideoModel, type PipelineStageName, PipelineStageNameSchema, type PipelineStageStatus, PipelineStageStatusSchema, type PipelineState, PipelineStateSchema, type PipelineStatus, PipelineStatusSchema, type PipelineType, type PixelBox, type PresentationItem, type PresetEntry, type PresetSettingKey, type PresetSettings, PresetSettingsSchema, type PriceVariant, type PricedVideoSelection, type ProgressSegment, type ProjectedCatalog, type ProjectedCatalogDimension, type ProjectedCatalogOption, type PromptAffixFields, type PromptAffixes, type ProposedChange, type PublishListingParams, type PublishListingResult, QA_CHECK_PROVIDERS, type QaCheckProvider, type QualityLevel, REDUCE_STRATEGIES, REDUCE_STRATEGY_IDS, REFERENCE_BOARD_PROVIDERS, REFERENCE_BOARD_TEMPLATES, REFERENCE_HANDLE_MAP, REFERENCE_ROLE_PRESETS, REF_HANDLE_CATEGORY, REF_IMAGE_MAX_LIMITS, REF_TOKEN_NAMESPACE_PREFIXES, RENDERING_SPEED_SUPPORT, REPEATABLE_NODE_TYPES, REPEAT_PLACEHOLDER, REPLICATE_LIP_SYNC_PROVIDERS, RESERVED_TEMPLATE_VARS, type ReduceMeta, type ReduceStrategy, type ReduceStrategyId, type RefCandidate, type RefModalityEdge, type RefTokenKind, type RefVideoDurationLimit, type ReferenceBoardProvider, type ReferenceModality, type ReferenceSheet, type ReferenceSource, type ReportListingResult, type ResolveCharacterAspectOptions, type ResolveObjectAspectOptions, type ResolveSeparatorOptions, type ResolvedDialogueVoiceLine, type RouterConditionGroup, SCENE_HELPER_NAMES, SCRAPER_ACTOR_LABELS, SCRAPER_CREDIT_COSTS, SCRAPER_OUTPUT_FIELDS, SCRIPT_PROVIDERS, SEASONS, SECTION_BOARD, SECTION_KINDS, SEEDANCE_2_5_REF_LIMITS, SEEDANCE_2_CONTINUATION_REF_SEC, SEEDANCE_2_EXTEND_STITCH, SEEDANCE_2_PROVIDERS, SEEDANCE_2_R2V_MAX_AUDIO_SEC_BY_PROVIDER, SEEDANCE_2_R2V_MIN_REF_VIDEO_SEC, SEEDANCE_2_REF_LIMITS, SEEDANCE_LIP_SYNC_PROVIDERS, SEED_SUPPORT, SEPARATOR_DISPLAY, SEPARATOR_PRESETS, SHEET_ASPECTS, SHEET_BACKGROUNDS, SHEET_PRESETS, SHEET_SKINS, SHEET_TYPES, SHORT_FILM_ANGLE_COUNT, SHORT_FILM_EXPRESSION_COUNT, SHORT_FILM_VARIANT_THRESHOLD_SEC, SLOT_TOKEN_RE, SMART_CUT_WINDOW_DEFAULT, SMART_CUT_WINDOW_MAX, SMART_CUT_WINDOW_MIN, SOCIAL_POST_NODE_TYPES, STAGE_PATCH_SCHEMA, STATIC_CAPTION_STYLES, STRUCTURAL_SECTIONS, STRUCTURED_VISION_MODELS, STUDIO_SHOT_TRANSIENT_KEYS, STUDIO_TRANSIENT_KEYS, SUBMISSION_STATUSES, SUNO_ADD_TRACK_MODELS, SUNO_FIELD_HANDLE_FIELDS, SUNO_HARD_CEILING, SUNO_MODELS, SUNO_SELECT_OPERATIONS, SUNO_TEXT_MAX, SUNO_TITLE_MAX, SUNO_TRACK_SOURCE_TYPES, SUNO_VERSION_PRICED_OPERATIONS, SUPPORTED_FONT_NAMES, SURROUND_DIRECTIONS, SWITCHX_BLOCK_FRAMES, SWITCHX_FRAME_TIERS, type SafetyRetryPolicy, type SceneData, type SceneHelperName, SceneHelperNameSchema, type SceneInputMode, SceneInputModeSchema, type SceneMetadata, SceneMetadataSchema, type SceneNodeData, SceneNodeDataSchema, SceneSpecSchema, type ScraperActorId, type ScriptCriticVerdict, ScriptCriticVerdictSchema, type ScriptProvider, type Season, type SectionKind, type SelectorConfig, type SelectorFields, type SelectorMode, type SelectorPredicateOp, type SelectorResult, type SemanticAspectRatio, type SeparatorPreset, type SharedListing, type SharedVoice, type SheetAspect, type SheetBackground, type SheetCostEstimate, type SheetEntry, type SheetFlavour, type SheetGenerationPlan, type SheetPreset, type SheetPresetId, type SheetSection, type SheetSkin, type SheetTextData, type SheetType, type ShotElement, type ShotImageElement, type ShotShapeElement, type ShotSpec, ShotSpecSchema, type ShotTextElement, type ShowrunnerPlan, ShowrunnerPlanSchema, type SidecarLoader, type SlotControlDescriptor, type SlotControlKind, type SlotVariation, type SocialMediaContentType, type SocialMediaPlatform, type SocialMediaSpec, type SortDirection, type SortListOptions, type SortType, type StageAwaitingSubGateEvent, StageAwaitingSubGateEventSchema, type StaticCaptionStyle, type StoryboardCohesionCriticVerdict, StoryboardCohesionCriticVerdictSchema, type StyleDirectives, StyleDirectivesSchema, type SubGateName, SubGateNameSchema, type SubmissionStatus, type SunoAddTrackModel, type SunoModel, type SupportedFontName, type SurroundDirection, type Swatch, T2I_TO_I2I_VARIANT, TASK_CHAINED_EDIT_PROVIDERS, TEXT_TO_AUDIO_PROVIDERS, TEXT_TO_VIDEO_PROVIDERS, TIER_MAX_PIPELINE_COST_CREDITS, TIER_PIPELINE_PARALLELISM, TILT_CARRIED_FRACTION, TOPAZ_DEFAULT_UPSCALE_FACTOR, TOPAZ_UPSCALE_FACTORS, TRANSCRIBE_PROVIDERS, TRANSIENT_RUNTIME_KEYS, TTS_PROVIDERS, TTS_TEXT_MAX, TWO_K_RESOLUTION_PROVIDERS, type TextToAudioProvider, type TextToVideoProvider, type TopazUpscaleAdjustment, type TopazUpscaleFactor, type TopazUpscaleResolution, type TranscribeProvider, type TransitionType, TransitionTypeSchema, type TrimVideoEstimatorInput, type TtsProvider, UPSCALE_IMAGE_PROVIDERS, USAGE_GROUP_BYS, USAGE_MODES, type UpscaleImageProvider, type UsageGroupBy, type UsageLogEntry, type UsageMode, type UsageQuery, type UsageReport, type UsageReportRow, type UsageReportTotals, type UsageVarianceRow, VARIABLES_HANDLE_ID, VARIABLE_PRICING_MODELS, VEHICLES, VEHICLE_SUBCATEGORY_LABELS, VEHICLE_SUBCATEGORY_ORDER, VEO_PROVIDERS, VIDEO_ANALYSIS_AUDIO_MODES, VIDEO_ANALYSIS_BUCKET_CREDITS, VIDEO_ANALYSIS_CLIP_TRANSITIONS_IN, VIDEO_ANALYSIS_DEFAULT_VARIATION, VIDEO_ANALYSIS_DURATION_BUCKETS, VIDEO_ANALYSIS_DURATION_TOLERANCE_SEC, VIDEO_ANALYSIS_ENTITY_SOURCES, VIDEO_ANALYSIS_FACELESS_ANGLES, VIDEO_ANALYSIS_LEGACY_MODELS, VIDEO_ANALYSIS_LLM_MODELS, VIDEO_ANALYSIS_MAX_DURATION_SEC, VIDEO_ANALYSIS_MAX_SCENE_SEC, VIDEO_ANALYSIS_MAX_VARIATIONS, VIDEO_ANALYSIS_MIXED_TIERS, VIDEO_ANALYSIS_SHOT_ANGLES, VIDEO_ANALYSIS_SPEED_EFFECTS, VIDEO_ANALYSIS_STORY_JUMPS, VIDEO_ANALYSIS_TEXT_KINDS, VIDEO_ANALYSIS_TIERS, VIDEO_ANALYSIS_TIER_LABELS, VIDEO_ANALYSIS_TIER_ORDER, VIDEO_ANALYSIS_TIMES_OF_DAY, VIDEO_ANALYSIS_TRANSITIONS, VIDEO_ANALYSIS_VARIATION_SLUGS, VIDEO_ANALYSIS_VISUAL_EFFECTS, VIDEO_ANALYSIS_WINDOW, VIDEO_AUDIO_CAPABILITY, VIDEO_AUDIT_BUCKET_CREDITS, VIDEO_CLIP_CREDITS, VIDEO_CRITIC_CREDITS_PER_SHOT, VIDEO_CRITIC_FRAME_MODES, VIDEO_CRITIC_MAX_RETRIES, VIDEO_CRITIC_METADATA_KEYS, VIDEO_CRITIC_MIN_ADHERENCE_SCORE, VIDEO_DURATION_TIERS, VIDEO_GEN_COLLAPSED_T2V_IDS, VIDEO_GEN_PROVIDERS, VIDEO_INPUT_LIP_SYNC_PROVIDERS, VIDEO_MODEL_CAPS, VIDEO_MODE_ALIASES, VIDEO_PRODUCER_TYPES, VIDEO_PROMPT_MAX, VIDEO_PROVIDERS_REQUIRING_IMAGE, VIDEO_PROVIDERS_WITHOUT_DISPATCH, VIDEO_REF_LIMITS_BY_PROVIDER, VIDEO_REF_VIDEO_DURATION_LIMITS, VIDEO_TO_VIDEO_PROVIDERS, VIDEO_UPSCALE_PROVIDERS, VIDEO_UTIL_PRICING, VIDEO_VARIABLE_PRICING, VOICE_CHANGER_MODELS, VOICE_CHANGER_MODEL_IDS, VOICE_DESIGN_MODELS, type ValidateMatchCutInput, ValidateMatchCutInputSchema, type ValidateMatchCutResult, ValidateMatchCutResultSchema, type ValidationField, type Vehicle, type VehicleSubcategory, type VideoAnalysisAudioMode, type VideoAnalysisClipTransitionIn, type VideoAnalysisEntitySource, type VideoAnalysisMixedTier, type VideoAnalysisModelTier, type VideoAnalysisResult, type VideoAnalysisShotAngle, type VideoAnalysisSpeedEffect, type VideoAnalysisTextKind, type VideoAnalysisTier, type VideoAnalysisTransition, type VideoAnalysisVisualEffect, type VideoAudioCapability, type VideoAudioMode, type VideoClipCost, type VideoCriticFrameMode, type VideoCriticMetadataKey, type VideoCriticShotFields, type VideoCriticVerdict, VideoCriticVerdictSchema, type VideoGenProvider, type VideoModeAlias, type VideoModelCapabilities, type VideoToVideoProvider, type VideoUpscaleProvider, type Voice, type VoiceChangerModel, type VoiceClone, type VoiceDesignModel, type VoiceLibraryParams, type VoiceLibraryResponse, type VoiceMatch, VoiceMatchSchema, type VoiceType, WAN_3_DEFAULT_RESOLUTION, WAN_3_PROVIDERS, WARDROBE_VARIANTS, WEAPONS, WEAPON_SUBCATEGORY_LABELS, WEAPON_SUBCATEGORY_ORDER, WORKFLOW_VISIBILITIES, WORKSPACE_HEADER, WORKSPACE_HEADER_LOWER, WORKSPACE_ROLES, type Weapon, type WeaponSubcategory, type WindowAnalysis, type WindowScene, type WorkflowAssetKind, type WorkflowExport, type WorkflowExportCharacter, type WorkflowExportCreature, type WorkflowExportLocation, type WorkflowExportObject, type WorkflowImportReport, type WorkflowImportSkippedAsset, type WorkflowMediaRef, type WorkflowPortability, type WorkflowVisibility, type WorkspaceMemberView, type WorkspaceRole, type WorkspaceSettings, WorkspaceSettingsSchema, type WorkspaceSummary, type WorkspaceView, aggregateByType, aiAvatarReserveCreditId, analyzedSceneSchema, applyDefaultVideoSelection, applyHandleInputOverride, applyRange, applyRangeIndices, applySlots, applyVideoAudioToggle, applyVideoNegativePrompt, aspectRatioFromDims, aspectRatioOptionsByKind, aspectRatioToNumber, assembleNarratedVideoCredits, availableReasoningEfforts, bucketSecondsFromAuditCreditId, bucketSecondsFromCreditId, buildBoardPrompt, buildChildrenByParent, buildConditionVariables, buildCreditModelIdentifier, buildExpressionFromVisual, buildLipSyncCreditId, buildLlmCreditIdentifier, buildModelMenu, buildModelTree, buildMotionCreditModelIdentifier, buildNodePresetExport, buildPanelPrompt, buildProgressSegments, buildRangeLabel, buildScraperCreditId, buildVideoAnalysisCreditId, buildVideoAuditCreditId, buildVideoCreditModelIdentifier, calculateCombinedProgress, calculateMonetizationMarkup, calculateMonetizedCost, calculateProgress, canonicalVarName, characterBoardItems, characterBucketDisplayRank, characterMentionSlug, characterMentionableAssetArrays, characterSheetRefItems, characterVariantAssetArrays, checkRefVideoDurations, cinematicCreditId, clampCinematicDuration, clampSmartCutWindow, classifyRefToken, cleanOrphanedItems, clearImageCriticMetadata, clearVideoCriticMetadata, clipLookSchema, collectAncestorRefs, combineSameLabelRefs, computeAggregateLanes, countRefModalityEdges, creditRangesAll, creditsToUsd, decodeProviderItem, defaultCarriedFraction, defaultResolutionFor, defaultRoleForSource, defaultVideoAspectRatio, deriveLinkedFields, deriveLottieSlotFields, deriveSlotRefs, describeEdgeBehavior, describeMaskRegion, describeNodeAdjustments, describeSlotControl, dropUnknownBindings, dropUnknownSpeakers, durationsByMode, effectiveReasoningEffort, encodeProviderItem, ensureLocaleCatalogLoaded, entityHydrationColumns, entityMentionSlug, entityMentionSlugForRef, entityScalarFields, entitySlotSchema, entryMatchesQuery, estimateCombineVideosCredits, estimateFilmCredits, estimateLoopTrimAddonCredits, estimateLoopVideoCredits, estimateScriptDurationSec, estimateSheetCost, estimateTrimVideoCredits, evaluateCondition, evaluateConditionGroup, evaluateJsonExpression, evaluateJsonPath, expandExtraRefsToConnectedReferences, expandItemsWithRepeat, extractAllGeneratedResults, extractCharacterLoraFields, extractGeneratedJsonAsList, extractPresetData, extractReferencedLabels, extractVideoDurationFromNode, fieldKeyFromHandle, filterCloneNodes, findCharacterMentionTokens, findEntityMentionTokens, findImageMentionTokens, findLocationMentionTokens, findSeedance2AudioOverLimit, firstSightExtraRole, flattenItems, getAnimal, getAnimalLabel, getAnimalPromptHint, getAnimalTerm, getAspectRatioOptions, getAudioCrossfadeCurve, getCharacterFacet, getCombineTransition, getCreditRange, getDurationsForModel, getEffectiveRepeatCount, getFeaturedEntities, getFurniture, getFurnitureLabel, getInputFieldSchema, getInputNodes, getItemSortId, getLipSyncMaxAudioSeconds, getLlmModalityCaps, getLlmModel, getLlmTier, getLocaleDirection, getMaxImagePromptChars, getMaxNegativePromptChars, getMaxSunoPromptChars, getMaxSunoStyleChars, getMaxTtsChars, getMaxVideoPromptChars, getModel, getNodeLabel, getNodeResult, getOutputNodes, getOutputType, getParameterValue, getQualityOptions, getResolutionOptions, getRouteReachableNodeIds, getStrategy, getTargetField, getValidValues, getVehicle, getVehicleLabel, getVideoAudioCapability, getWeapon, getWeaponLabel, groupByFamily, groupHandleId, groupLlmModelsByVendor, hasContiguousSegmentDurations, hasFeature, hexToRgbaArray, humanizeSlotSid, imageMentionSlug, imageMentionSlugForRef, imageReferenceLimit, inferMusicVideo, isAggregateableType, isCharacterAspectRatio, isCollectInEdge, isDefaultSelectorConfig, isExpandedClone, isFlux2Model, isGeminiOmniProvider, isGvpSupportedProvider, isHandleInputWired, isKineticCaptionStyle, isLocationUsageMode, isMinimaxH3Provider, isObjectAspectRatio, isOversizedScene, isPaygRetentionActive, isPerSecondLipSyncProvider, isScraperActor, isSeedance2Provider, isTiltDirection, isUsageMode, isVeoProvider, isVideoAnalysisMixedTier, isVideoAnalysisTier, isWan3Provider, jsonResultToList, knownEntitySlugsFromRefs, knownImageSlugsFromRefs, listBoardTemplates, listModels, listSlotSids, llmRouteDefaults, locationMentionSlug, locationReferencePhotoKindLabel, locationUsageModeLabel, mapAspectRatio, mapQuality, mapShotIntentToProviderDirectives, matchVariant, maxSegmentSecFor, maxSegmentsFor, mergeClipLook, mergeExposedSettings, migrateEdgeOutputMode, migrateToItems, minSegmentSecFor, modelIdsByKindMode, modelToNodeTarget, modelsForInputMode, modelsWithFeature, motionGraphicsFeature, normalizeLottieLayers, normalizeMinimaxH3Resolution, normalizeModelInput, normalizeNodeModelParams, normalizePinterestUrl, normalizeRoleSlug, normalizeVideoRequestParams, normalizeWan3Resolution, orderedLlmModels, parseAttributedDialogue, parseCharacterMentionToken, parseEntityMentionToken, parseGroupHandle, parseHandleId, parseImageMentionToken, parseListExpression, parseLocationMentionToken, parseNodePresetExport, parseNodeRef, pickAiAvatarBucket, pickIds, pickLipSyncBucket, pickSwitchXFrameTier, pickVideoAnalysisBucket, planSheetGeneration, planSheetPanels, preferredInputModeForModel, presentTypes, presetApplyClearKeys, presetDataMatches, presetEntries, pricedVideoSelection, qualityOptionsByKind, readPromptAffixes, refHandleCategory, referenceModalityForHandle, referenceSheetCreditId, registerCatalogSidecars, registerSidecarLoaders, renderAnalyzedScene, resetCatalogSidecars, resolutionOptionsByKind, resolveAiAvatarCreditId, resolveAudioCrossfadeCurve, resolveCharacterAspectRatio, resolveCinematicCreditId, resolveConditionValue, resolveDefaultRole, resolveDescription, resolveDialogueVoices, resolveEffectiveSourceType, resolveEffectiveTier, resolveEntityAspect, resolveFieldMappings, resolveGvpAnchorWire, resolveImageGenCreditIdentifier, resolveIndex, resolveLabel, resolveListExpression, resolveLlmCreditId, resolveLocationFields, resolveLocationPresetCatalog, resolveLottieOverlaySrc, resolveNodeRefs, resolveNormalizedImageGen, resolveObjectAspectRatio, resolvePipelineModel, resolveRelativeWindowToken, resolveScraperCreditId, resolveSelectorRefs, resolveSeparator, resolveSheetSections, resolveSlideshowTransition, resolveSourceThroughConnectedList, resolveStoredTier, resolveSwitchXCreditId, resolveTopazUpscale, resolveVideoAnalysisModel, resolveVideoModeForInputs, resolveVideoProviderForMode, resolveXfadeName, rewriteSceneBindings, rewriteSlotTokens, rewriteSpeakerSlots, rgbaArrayToHex, roleToPhrase, runSelector, safetyRetryPolicy, sanitizeRole, searchModelVariants, seedance2AudioLimitSec, segmentDurationsFor, selectByModulo, selectByNamedKey, selectByPredicate, selectListItems, selectLoraRoutingForMentions, selectRandom, setRegisteredPersonPackFields, settledWithLimit, slotVariationSchema, sortCharacterEntriesForDisplay, sortListItems, sourceRefKey, spliceDelimitedRows, splitByLoopDelimiter, splitGeneratedItems, spreadJsonArrayIfSingleton, stringifyPathResults, stripDerivedAnalysisFields, stripExportContent, stripStudioTransientSettings, stripTransientRuntimeData, sunoCreditType, supportedDefaultDimensions, supportsAdvancedMode, supportsEndAnchor, supportsExtendRender, toConnectedReference, toConnectedReferences, togglePick, tryParseJson, uiAspectRatioFill, uiDurationFill, uiResolutionFill, unresolvedRefTokens, unwrapUnresolvedTokens, usageModeDirective, usageModeIncludesName, usageModeLabel, usdToCredits, validateAiAvatarPayload, validateCinematicAvatarPayload, validateDurationForFormat, validateModeActivation, validateModelInput, validateNoNestedGroups, validateObjects, validateProviderForNodeType, validateSubWorkflowRoutes, variantJobId, videoAnalysisCreditSegment, videoAnalysisNumWindows, videoAnalysisResultSchema, videoAuditCreditsForBucket, videoModelCanSpeakDialogue, videoModelSupportsAudio, videoNegativeSuffix, videoProviderFoldsLoneEndFrame, videoProviderRequiresImage, windowAnalysisSchema, zipMergeLists };
14372
+ /** Immutable, deterministic edits over a baked scene. No asset bytes are mutated. */
14373
+
14374
+ /** Callers describe values. Revision identity and provenance are assigned here. */
14375
+ declare const scene3DV2OverrideInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
14376
+ kind: z.ZodLiteral<"entity-transform">;
14377
+ entityId: z.ZodString;
14378
+ space: z.ZodEnum<{
14379
+ local: "local";
14380
+ world: "world";
14381
+ }>;
14382
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14383
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14384
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14385
+ }, z.core.$strict>, z.ZodObject<{
14386
+ kind: z.ZodLiteral<"entity-color">;
14387
+ entityId: z.ZodString;
14388
+ materialRole: z.ZodString;
14389
+ color: z.ZodString;
14390
+ }, z.core.$strict>, z.ZodObject<{
14391
+ kind: z.ZodLiteral<"entity-visibility">;
14392
+ entityId: z.ZodString;
14393
+ visible: z.ZodBoolean;
14394
+ }, z.core.$strict>, z.ZodObject<{
14395
+ kind: z.ZodLiteral<"camera-shot-offset">;
14396
+ shotId: z.ZodString;
14397
+ positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14398
+ targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14399
+ }, z.core.$strict>], "kind">;
14400
+ declare const scene3DV2EditOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
14401
+ op: z.ZodLiteral<"set-override">;
14402
+ override: z.ZodDiscriminatedUnion<[z.ZodObject<{
14403
+ kind: z.ZodLiteral<"entity-transform">;
14404
+ entityId: z.ZodString;
14405
+ space: z.ZodEnum<{
14406
+ local: "local";
14407
+ world: "world";
14408
+ }>;
14409
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14410
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14411
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14412
+ }, z.core.$strict>, z.ZodObject<{
14413
+ kind: z.ZodLiteral<"entity-color">;
14414
+ entityId: z.ZodString;
14415
+ materialRole: z.ZodString;
14416
+ color: z.ZodString;
14417
+ }, z.core.$strict>, z.ZodObject<{
14418
+ kind: z.ZodLiteral<"entity-visibility">;
14419
+ entityId: z.ZodString;
14420
+ visible: z.ZodBoolean;
14421
+ }, z.core.$strict>, z.ZodObject<{
14422
+ kind: z.ZodLiteral<"camera-shot-offset">;
14423
+ shotId: z.ZodString;
14424
+ positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14425
+ targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14426
+ }, z.core.$strict>], "kind">;
14427
+ }, z.core.$strict>, z.ZodObject<{
14428
+ op: z.ZodLiteral<"remove-override">;
14429
+ overrideId: z.ZodString;
14430
+ }, z.core.$strict>], "op">;
14431
+ declare const scene3DV2EditOperationsSchema: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
14432
+ op: z.ZodLiteral<"set-override">;
14433
+ override: z.ZodDiscriminatedUnion<[z.ZodObject<{
14434
+ kind: z.ZodLiteral<"entity-transform">;
14435
+ entityId: z.ZodString;
14436
+ space: z.ZodEnum<{
14437
+ local: "local";
14438
+ world: "world";
14439
+ }>;
14440
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14441
+ rotation: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14442
+ scale: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14443
+ }, z.core.$strict>, z.ZodObject<{
14444
+ kind: z.ZodLiteral<"entity-color">;
14445
+ entityId: z.ZodString;
14446
+ materialRole: z.ZodString;
14447
+ color: z.ZodString;
14448
+ }, z.core.$strict>, z.ZodObject<{
14449
+ kind: z.ZodLiteral<"entity-visibility">;
14450
+ entityId: z.ZodString;
14451
+ visible: z.ZodBoolean;
14452
+ }, z.core.$strict>, z.ZodObject<{
14453
+ kind: z.ZodLiteral<"camera-shot-offset">;
14454
+ shotId: z.ZodString;
14455
+ positionOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14456
+ targetOffset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
14457
+ }, z.core.$strict>], "kind">;
14458
+ }, z.core.$strict>, z.ZodObject<{
14459
+ op: z.ZodLiteral<"remove-override">;
14460
+ overrideId: z.ZodString;
14461
+ }, z.core.$strict>], "op">>;
14462
+ type Scene3DV2OverrideInput = z.infer<typeof scene3DV2OverrideInputSchema>;
14463
+ type Scene3DV2EditOperation = z.infer<typeof scene3DV2EditOperationSchema>;
14464
+ interface Scene3DV2EditOptions {
14465
+ expectedRevisionId: string;
14466
+ expectedContentHash?: string;
14467
+ lockedObjectIds?: readonly string[];
14468
+ /** Hosts may allocate identity at admission for idempotent job replay. */
14469
+ newRevisionId?: string;
14470
+ }
14471
+ type Scene3DV2EditResult = {
14472
+ ok: true;
14473
+ plan: Scene3DPlanV2;
14474
+ changeSummary: string;
14475
+ } | {
14476
+ ok: false;
14477
+ code: "invalid_plan" | "invalid_operations" | "stale_revision" | "locked";
14478
+ message: string;
14479
+ };
14480
+ /**
14481
+ * Edits are all-or-nothing. The expected revision and content hash are checked
14482
+ * before writing, and the result is validated and hashed before acceptance.
14483
+ * A source file belongs to its exact base revision: until the host materializes
14484
+ * these edits, the new revision must not advertise the old native download.
14485
+ */
14486
+ declare function applyScene3DV2EditOperations(input: Scene3DPlanV2, operations: readonly Scene3DV2EditOperation[], options: Scene3DV2EditOptions): Promise<Scene3DV2EditResult>;
14487
+
14488
+ export { ACCESS_LEVELS, ACTIVE_SCENE_HELPERS, ADVANCED_MODE_UNAVAILABLE_REASON, AGGREGATEABLE_TYPES, AGGREGATE_LANE_SOURCE_TYPES, AI_AVATAR_DURATION_BUCKETS, AI_AVATAR_MAX_AUDIO_SEC, AI_AVATAR_MAX_DURATION_SEC, AI_AVATAR_RESERVE_IDS, AI_WRITER_PROVIDERS, ALA_CARTE_BOARDS, ALL_CAPTION_STYLES, ANIMALS, ANIMAL_SUBCATEGORY_LABELS, ANIMAL_SUBCATEGORY_ORDER, ASPECT_RATIO_DIMENSIONS, AUDIO_ADDON_PROVIDERS, AUDIO_CROSSFADE_CURVES, AUDIO_CROSSFADE_CURVE_IDS, AUDIO_FX_PRESETS, AUDIO_FX_PRESET_LABELS, AUDIO_FX_PRESET_SET, AUDIO_FX_REVERB_PRESETS, AUDIO_PRODUCER_TYPES, type AccessLevel, type AddBRollResult, AddBRollResultSchema, type AggregateableType, type AggregationBuckets, type AiAvatarDurationBucket, type AiAvatarEngine, type AiAvatarResolution, type AiWriterProvider, type AlaCarteBoard, type AnalyzedScene, type AnchorSceneStyleResult, AnchorSceneStyleResultSchema, type Animal, type AnimalSubcategory, type AssetRef, AssetRefSchema, type AudioCrossfadeCurve, type AudioFxPreset, type AudioLayer, type AuditImagesResult, AuditImagesResultSchema, type AuditImagesShotEntry, AuditImagesShotEntrySchema, AuditPromptIssueSchema, type AuditPromptResult, AuditPromptResultSchema, AvatarPayloadError, BOARD_TO_ASSET_TYPE, BOARD_TO_COLUMN, BOARD_VARIANTS, type BoardEntityKind, type BoardPromptContext, type BoardTemplate, BridgeToNextSceneInputSchema, type BridgeToNextSceneResult, BridgeToNextSceneResultSchema, type BrowseCommunityParams, type BrowseCommunityResult, CATEGORY_DURATION_DEFAULTS, CHARACTER_ASPECT_DEFAULTS, CHARACTER_ASPECT_OPTIONS, CHARACTER_ASSET_TYPES, CHARACTER_ASSET_VARIANTS, CHARACTER_ATTACH_COLUMNS, CHARACTER_FACETS, CHARACTER_FACET_IDS, CHARACTER_LORA_TRAINING_JOB_TYPE, CHARACTER_MOTION_PROVIDERS, CHARACTER_PICKER_DISPLAY_ORDER, CHARACTER_REFERENCE_PHOTO_KINDS, CHARACTER_STYLES, CHARACTER_VARIANT_ASSET_BUCKETS, CHAT_ENABLED_STAGES, CHAT_STAGES, CHAT_TURN_CAPS, CHAT_WIRED_STAGES, CINEMATIC_DEFAULT_DURATION_SEC, CINEMATIC_DEFAULT_RESOLUTION, CINEMATIC_MAX_DURATION_SEC, CINEMATIC_MAX_LOOKS, CINEMATIC_MAX_REFERENCE_IMAGES, CINEMATIC_MAX_REFERENCE_VIDEOS, CINEMATIC_MIN_DURATION_SEC, CINEMATIC_MIN_LOOKS, CINEMATIC_PROMPT_MAX, CINEMATIC_RESERVE_IDS, COLLABORATOR_ROLES, COLLECT_IN_HANDLE, COMBINE_TRANSITIONS, COMBINE_TRANSITION_GROUP_LABELS, COMBINE_TRANSITION_GROUP_ORDER, COMBINE_TRANSITION_IDS, COMPOSER_PLAN_FIELDS, COMPOSER_PLAN_MAP, CONTENT_TYPES_BY_PLATFORM, CREATURE_ATTACH_COLUMNS, CREDIT_BASE_USD, CREDIT_ROUNDING_RESOLUTION, type CaptionStyle, type CastCoverageCriticVerdict, CastCoverageCriticVerdictSchema, type CharacterAspectRatio, type CharacterAssetType, type CharacterAssetTypeForAspect, type CharacterAttachColumn, type CharacterDef, type CharacterFacet, type CharacterImageCriticVerdict, CharacterImageCriticVerdictSchema, type CharacterLoraFields, type CharacterMentionTokenInfo, CharacterMetadataSchema, type CharacterMotionProvider, type CharacterReferencePhoto, type CharacterReferencePhotoKind, type CharacterVariantAssetBucket, type CharacterVariantAssetItem, type CharacterVoiceSpec, type ChatEnabledStage, type ChatTurnResponse, ChatTurnResponseSchema, type CinematicResolution, type ClipLook, type CloneListingResult, type CollaboratorRole, type CombineTransition, type CombineTransitionGroup, type CombineVideosEstimatorInput, type CommunityCard, type CommunityEntityType, type CommunityFullDetail, type CommunityReportReason, type CommunitySort, type ComponentHandle, type ComponentMetadata, type ConnectedReference, type CreatureAttachColumn, CriticIssueSchema, type CustomEntry, DEFAULT_AUDIO_CROSSFADE_CURVE_ID, DEFAULT_CARRIED_FRACTION, DEFAULT_CHARACTER_ANGLE_COUNT, DEFAULT_CHARACTER_EXPRESSION_COUNT, DEFAULT_CHARACTER_FACET, DEFAULT_LABEL_BY_SOURCE, DEFAULT_LOCATION_USAGE_MODE, DEFAULT_PANEL_COUNT, DEFAULT_REF_IMAGE_MAX, DEFAULT_SECTIONS, DEFAULT_USAGE_MODE, DEFAULT_VIDEO_ANALYSIS_MODEL, DEFAULT_VIDEO_ANALYSIS_TIER, DEFAULT_VIDEO_CLIP_COST, DEFAULT_VIDEO_DURATION_SEC, DEFAULT_VIDEO_PROVIDER, DEFAULT_VOICE_CHANGER_MODEL, DEFAULT_VOICE_DESIGN_MODEL, DETAIL_VARIANTS, DURATION_PRICED_PROVIDERS, DYNAMIC_PRODUCER_TYPES, type DescribedReference, type DetectionResult, DetectionResultSchema, type DialogueLine, EFFORT_TIER_BUMP, EMOTIONAL_BEAT, ENTITY_ASPECT_DEFAULTS, ENTITY_BUCKET_FIELDS, ENTITY_DB_ID_FIELD, ENTITY_IMAGE_HANDLE_TYPES, ENTITY_KIND_SCALAR_FIELDS, ENTITY_NAME_FIELD, ENTITY_NODE_KINDS, ENTITY_SCALAR_FIELDS, ENTITY_SECTIONS, ENTITY_STATUSES, ENTITY_TABLE, ENTITY_TOOL_RETRY_CAP, ENTITY_TYPES, EXECUTION_DATA_KEYS, EXTEND_VIDEO_PROVIDERS, type EntityKind, type EntityMentionTokenInfo, type EntityMetadata, EntityMetadataSchema, type EntityNodeKind, type EntityReferenceInput, type EntityRejectInput, EntityRejectInputSchema, type EntitySlot, type EntityStaleEvent, EntityStaleEventSchema, type EntityStateChangeEvent, EntityStateChangeEventSchema, type EntityStatus, type EntityStudioKind, type EntityStyle, type EntityType, type EvaluateConditionOptions, type ExportedPreset, type ExposableField, type ExposableOutput, type ExposedSetting, type ExtendVideoProvider, type ExtraRefCharacterContext, type ExtraRefInput, FACE_SWAP_PROVIDERS, FAL_LIP_SYNC_PROVIDERS, FAN_OUT_EACH_TYPES, FEATURED_ENTITIES, FILM_BASE_CREDITS, FLEXIBLE_INPUT_LIP_SYNC_PROVIDERS, FLUX2_RES_MP, FLUX_LORA_CHARACTER_MODEL_ID, FRAME_MODE_ADAPTIVE_ONLY_ASPECT, FRAME_TARGET_HANDLES, FREECUT_EXPORT_COMPLETE, FREECUT_EXPORT_PROGRESS, FREECUT_READY, FREECUT_REQUEST_IMPORT, FURNITURE, FURNITURE_SUBCATEGORY_LABELS, FURNITURE_SUBCATEGORY_ORDER, type FaceSwapProvider, type FavoriteListingResult, type FeaturedEntity, type FilmCreditEstimate, type FilterListCondition, type FilterListOperator, type FilterOperator, type FixContinuityInput, FixContinuityInputSchema, type FixContinuityResult, FixContinuityResultSchema, type Flux2Model, type FreecutExportCompletePayload, type FreecutExportProgressPayload, type FreecutImportFile, type FreecutRequestImportPayload, type FullSelectorMode, type Furniture, type FurnitureSubcategory, GEMINI_OMNI_PROVIDERS, GENERATE_TEXT_DELIMITER, GLOBAL_MAX_DURATION_SECONDS, GRANTED_ACCESS, GROUP_HANDLE_PREFIX, GUIDANCE_SCALE_SUPPORT, GVP_ANCHOR_CHOICES, GVP_DEFAULT_PROVIDER, GVP_END_FRAME_PROVIDERS, GVP_EXTEND_PROVIDERS, GVP_SUPPORTED_PROVIDERS, GenerateMotionInputSchema, type GenerateMotionResult, GenerateMotionResultSchema, type GenericEdge, type GenericNode, type GrantedAccess, type GvpAnchorChoice, type GvpAnchorWireMode, HANDLE_PORT_SEPARATOR, HELPERS_SHIPPED_IN_1B3, HIGH_QUALITY_PROVIDERS, HINT_EXEMPT_PARAMETER_TYPES, type HintEdgeLike, type HintGraphContext, type HintNodeLike, type I18nCatalogId, I2I_MASK_SUPPORT, I2I_STRENGTH_SUPPORT, IDEOGRAM_PROVIDERS, IMAGE_ASPECT_RATIO_VALUES, IMAGE_CRITIC_LEAF_MODES, IMAGE_CRITIC_MAX_RETRIES, IMAGE_CRITIC_METADATA_KEYS, IMAGE_CRITIC_MIN_ADHERENCE_SCORE, IMAGE_CRITIC_MODES, IMAGE_CRITIC_UNRESOLVABLE, IMAGE_EDIT_PROVIDERS, IMAGE_GEN_PROVIDERS, IMAGE_I2I_PROVIDERS, IMAGE_MASK_MODE, IMAGE_PROMPT_MAX, IMAGE_REF_TYPES, IMAGE_TO_VIDEO_PROVIDERS, INPUT_FIELD_MAP, INPUT_NODE_TYPES, INSTAGRAM_CAROUSEL_MAX_ITEMS, INSTAGRAM_CAROUSEL_MIN_ITEMS, ITER_CLONE_PATTERN, type IdentityFidelity, type IdentityMeta, type ImageAspectRatio, type ImageCriticIssue, ImageCriticIssueSchema, type ImageCriticLeafMode, type ImageCriticMetadataKey, type ImageCriticMode, type ImageCriticNodeIssue, type ImageCriticResult, ImageCriticResultSchema, type ImageCriticVerdict, ImageCriticVerdictSchema, type ImageEditProvider, type ImageGenProvider, type ImageI2IProvider, type ImageMaskMode, type ImageMentionTokenInfo, type ImageToVideoProvider, type ImprovePromptInput, ImprovePromptInputSchema, type ImprovePromptResult, ImprovePromptResultSchema, type InputFieldSchema, type InvitationDelivery, type InvitationPreview, type InvitationState, type InvitationView, type JoinCodeView, type JsonEvalResult, type JsonFilter, type JsonPatch, KEYFRAME_CREDITS_PER_SHOT, KINETIC_CAPTION_STYLES, type KieApiFormat, type KineticCaptionStyle, LANGUAGES, LEGACY_LOTTIE_HOST_REMAP, LIP_SYNC_DURATION_BUCKETS, LIP_SYNC_MAX_AUDIO_SECONDS, LIP_SYNC_PROVIDERS, LLM_FEATURE_DEFAULTS, LLM_MODALITY_CAPS, LLM_MODELS, LLM_MODEL_IDS, LLM_REASONING_EFFORTS, LLM_ROUTE_DEFAULTS, LLM_TEXT_INPUT_MAX, LLM_VENDOR_LABELS, LLM_VENDOR_ORDER, LOCATION_ASSET_TYPES, LOCATION_ASSET_VARIANTS, LOCATION_ATMOSPHERE_PROVIDERS, LOCATION_ATTACH_COLUMNS, LOCATION_BUCKET_TO_CATALOG_ID, LOCATION_PRESET_TO_CATALOG, LOCATION_REFERENCE_PHOTO_KINDS, LOCATION_REFERENCE_PHOTO_KIND_LABELS, LOCATION_USAGE_MODES, LOTTIE_OVERLAY_CATALOG, LOTTIE_SLOT_FIELD_PREFIX, type LabeledOption, type LipSyncDurationBucket, type LipSyncProvider, type LlmFeature, type LlmModelDef, type LlmModelGroup, type LlmReasoningEffort, type LlmRouteDefaults, type LlmTier, type LlmVendor, type LocaleCatalogMap, type LocaleDirection, type LocaleId, type LocationAssetType, type LocationAtmosphereProvider, type LocationAttachColumn, type LocationCatalogRef, type LocationImageCriticVerdict, LocationImageCriticVerdictSchema, type LocationMentionTokenInfo, LocationMetadataSchema, type LocationReferencePhotoKind, type LocationUsageMode, LocationsCoverageCriticIssueSchema, type LocationsCoverageCriticVerdict, LocationsCoverageCriticVerdictSchema, type LoopTrimEstimatorInput, type LoopVideoEstimatorInput, type LoraEligibleRef, type LoraRouting, type LottieOverlayCatalogEntry, type LottieSlotField, MAX_CUSTOM_ENTRIES_PER_BOARD, MAX_IMAGE_PROMPT_CHARS_BY_PROVIDER, MAX_LOCATION_VARIANTS, MAX_NEGATIVE_PROMPT_CHARS_BY_PROVIDER, MAX_PANELS_PER_SHEET, MAX_TTS_CHARS_BY_PROVIDER, MAX_VIDEO_PROMPT_CHARS_BY_PROVIDER, MEMBER_STATUSES, MINIMAX_H3_DEFAULT_RESOLUTION, MINIMAX_H3_PROVIDERS, MODELS_WITH_REFERENCE_IMAGE_SUPPORT, MODEL_CATALOG, MODEL_PARAM_NODE_TYPES, MODEL_RECOMMENDATIONS, MODIFY_IMAGE_PROVIDERS, MOTION_COLUMN, MOTION_TRANSFER_PROVIDERS, MUSIC_PROVIDERS, type MaskRegionDescriptor, type MatchCutVerdict, MatchCutVerdictSchema, type MeOrganizations, type Member, type MemberStatus, type MinimalEdge, type MinimalNode, type ModelCatalogEntry, type ModelInputAdjustment, type ModelKind, type ModelMenuOption, type ModelMode, type ModelNodeTarget, type ModelPromptingStyle, type ModelRecommendation, type ModelTreeLine, type ModelTreeVariant, type ModelValidationIssue, type ModifyImageProvider, type MotionTransferProviderType, type MusicProvider, NATIVE_ADAPTIVE_ASPECT, NATIVE_NEGATIVE_PROMPT_MODELS, NATIVE_NEGATIVE_VIDEO_PROVIDERS, NEGATIVE_PROMPT_MAX, NODARO_IMPORT_FILES, NODARO_LOAD_TIMELINE, NODARO_LOAD_VIDEO, NODARO_RESET_PROJECT, NODE_DEFAULT_TYPES, NODE_MAPPABLE_FIELDS, NODE_PRESET_EXPORT_KIND, NODE_REF_PATTERN, NON_EN_LOCALE_IDS, NO_SPLIT_DELIMITER, type NodaroLoadTimelinePayload, type NodaroLoadVideoPayload, type NodeDefaultType, type NodeParamAdjustment, type NodePresetExport, type NormalizedImageGen, type NormalizedModelInput, type NormalizedNodes, type NormalizedVideoRequest, OBJECT_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS, OBJECT_ASSET_TYPES, OBJECT_ASSET_VARIANTS, OBJECT_ATTACH_COLUMNS, OBJECT_MOTION_PROVIDERS, OBJECT_PICKER_NODE_TYPES, ORG_ERROR_CODES, ORG_KINDS, ORG_ROLES, ORG_STATUSES, OUTPUT_FIELD_MAP, OUTPUT_FORMATS, type ObjectAspectRatio, type ObjectAssetType, type ObjectAssetTypeForAspect, type ObjectAttachColumn, ObjectMetadataSchema, type ObjectMotionProvider, type ObjectsValidationIssue, type ObjectsValidationResult, OptimizeForModelInputSchema, type OptimizeForModelResult, OptimizeForModelResultSchema, type OrgAuditEntry, type OrgErrorCode, type OrgKind, type OrgMemberView, type OrgPage, type OrgRole, type OrgSettings, OrgSettingsSchema, type OrgStatus, type OrganizationSummary, type OrganizationView, type OutputFormat, type OutputMode, type OutputType, PARAMETER_NODE_TYPES, PASSTHROUGH_TYPES, PAYG_RETENTION_DAYS, PER_FORMAT_DURATION_BOUNDS, PICKER_TO_COMBINE_TRANSITION, PIPELINE_ACTIVATION_MODES, PIPELINE_FORMATS, PIPELINE_HARD_TIMEOUT_MS, PIPELINE_MODEL_STAGES, PIPELINE_MODES, PIPELINE_OUTPUT_RESOLUTIONS, PIPELINE_PINNABLE_IMAGE_MODELS, PIPELINE_PINNABLE_SCRIPT_LLMS, PIPELINE_PINNABLE_VIDEO_MODELS, PIPELINE_STAGE_NAMES, PIPELINE_STAGE_TIMEOUT_MS, PIPELINE_TYPES, PLACEHOLDER_CHARACTER_NAME, PLATFORM_LABELS, PLATFORM_SPECS, PRESET_APPLY_CLEAR_KEYS, PRESET_EXCLUDED_KEYS, PRESET_LABELS, PRESET_SETTING_KEYS, PRICING_DEFAULT_DURATION_SEC, PRICING_DEFAULT_RESOLUTION, PROMPT_HARD_CEILING, PROMPT_PREFIX_KEY, PROMPT_SUFFIX_KEY, PROVIDER_DIRECTIVE_DEFAULTS, PROVIDER_PLACEHOLDER_PREFIX, type PanelGenRequest, type PanelRequest, type PanelSource, type PipelineActivationMode, type PipelineCompletedEvent, PipelineCompletedEventSchema, type PipelineConfig, PipelineConfigSchema, type PipelineDriftSummary, PipelineDriftSummarySchema, type PipelineEditorDecisionsReadyEvent, PipelineEditorDecisionsReadyEventSchema, type PipelineEvent, type PipelineForkedEvent, PipelineForkedEventSchema, type PipelineFormat, type PipelineInput, PipelineInputSchema, type PipelineLifecycleEvent, type PipelineMode, type PipelineModelStage, type PipelineMusicReadyEvent, PipelineMusicReadyEventSchema, type PipelineOutputResolution, type PipelinePinnableImageModel, type PipelinePinnableScriptLlm, type PipelinePinnableVideoModel, type PipelineStageName, PipelineStageNameSchema, type PipelineStageStatus, PipelineStageStatusSchema, type PipelineState, PipelineStateSchema, type PipelineStatus, PipelineStatusSchema, type PipelineType, type PixelBox, type PresentationItem, type PresetEntry, type PresetSettingKey, type PresetSettings, PresetSettingsSchema, type PriceVariant, type PricedVideoSelection, type ProgressSegment, type ProjectedCatalog, type ProjectedCatalogDimension, type ProjectedCatalogOption, type PromptAffixFields, type PromptAffixes, type ProposedChange, type PublishListingParams, type PublishListingResult, QA_CHECK_PROVIDERS, type QaCheckProvider, type QualityLevel, REDUCE_STRATEGIES, REDUCE_STRATEGY_IDS, REFERENCE_BOARD_PROVIDERS, REFERENCE_BOARD_TEMPLATES, REFERENCE_HANDLE_MAP, REFERENCE_ROLE_PRESETS, REF_HANDLE_CATEGORY, REF_IMAGE_MAX_LIMITS, REF_TOKEN_NAMESPACE_PREFIXES, RENDERING_SPEED_SUPPORT, REPEATABLE_NODE_TYPES, REPEAT_PLACEHOLDER, REPLICATE_LIP_SYNC_PROVIDERS, RESERVED_TEMPLATE_VARS, type ReduceMeta, type ReduceStrategy, type ReduceStrategyId, type RefCandidate, type RefModalityEdge, type RefTokenKind, type RefVideoDurationLimit, type ReferenceBoardProvider, type ReferenceModality, type ReferenceSheet, type ReferenceSource, type ReportListingResult, type ResolveCharacterAspectOptions, type ResolveObjectAspectOptions, type ResolveSeparatorOptions, type ResolvedDialogueVoiceLine, type RouterConditionGroup, SCENE3D_ASSET_KINDS, SCENE3D_ASSET_ROLES, SCENE3D_ASSET_ROLE_KINDS, SCENE3D_CAMERA_TRACK_FORMAT, SCENE3D_CAMERA_TRACK_LIMITS, SCENE3D_CAMERA_TRACK_VERSION, SCENE3D_CLAY_LIGHTING_PRESETS, SCENE3D_DEFAULT_DURATION_SECONDS, SCENE3D_DEFAULT_ENTITY_CAPABILITIES, SCENE3D_DEFAULT_FPS, SCENE3D_EDIT_NODE_TYPE, SCENE3D_ENTITY_CAPABILITIES, SCENE3D_ENTITY_ROLES, SCENE3D_GENERATE_NODE_TYPE, SCENE3D_GLB_EXTRAS_ALLOWLIST, SCENE3D_GLB_EXTRAS_ENTITY_ID, SCENE3D_GLB_EXTRAS_MATERIAL_ROLE, SCENE3D_GLB_EXTRAS_SUBPART_ID, SCENE3D_LIMITS, SCENE3D_PLAN_FIELD, SCENE3D_PLAN_TYPE, SCENE3D_PRIMITIVES, SCENE3D_PRIMITIVE_MATERIAL_ROLE, SCENE3D_RENDERER_ASSET_KINDS, SCENE3D_SCHEMA_VERSION, SCENE3D_SCHEMA_VERSION_V2, SCENE3D_SUPPORTED_SCHEMA_VERSIONS, SCENE3D_V2_CONTENT_HASH_EXCLUDED, SCENE3D_V2_ENGINES, SCENE3D_V2_LIMITS, SCENE3D_V2_OVERRIDE_OPERATION_VERSION, SCENE3D_V2_PRIMITIVES, SCENE_HELPER_NAMES, SCRAPER_ACTOR_LABELS, SCRAPER_CREDIT_COSTS, SCRAPER_OUTPUT_FIELDS, SCRIPT_PROVIDERS, SEASONS, SECTION_BOARD, SECTION_KINDS, SEEDANCE_2_5_REF_LIMITS, SEEDANCE_2_CONTINUATION_REF_SEC, SEEDANCE_2_EXTEND_STITCH, SEEDANCE_2_PROVIDERS, SEEDANCE_2_R2V_MAX_AUDIO_SEC_BY_PROVIDER, SEEDANCE_2_R2V_MIN_REF_VIDEO_SEC, SEEDANCE_2_REF_LIMITS, SEEDANCE_LIP_SYNC_PROVIDERS, SEED_SUPPORT, SEPARATOR_DISPLAY, SEPARATOR_PRESETS, SHEET_ASPECTS, SHEET_BACKGROUNDS, SHEET_PRESETS, SHEET_SKINS, SHEET_TYPES, SHORT_FILM_ANGLE_COUNT, SHORT_FILM_EXPRESSION_COUNT, SHORT_FILM_VARIANT_THRESHOLD_SEC, SLOT_TOKEN_RE, SMART_CUT_WINDOW_DEFAULT, SMART_CUT_WINDOW_MAX, SMART_CUT_WINDOW_MIN, SOCIAL_POST_NODE_TYPES, STAGE_PATCH_SCHEMA, STATIC_CAPTION_STYLES, STRUCTURAL_SECTIONS, STRUCTURED_VISION_MODELS, STUDIO_SHOT_TRANSIENT_KEYS, STUDIO_TRANSIENT_KEYS, SUBMISSION_STATUSES, SUNO_ADD_TRACK_MODELS, SUNO_FIELD_HANDLE_FIELDS, SUNO_HARD_CEILING, SUNO_MODELS, SUNO_SELECT_OPERATIONS, SUNO_TEXT_MAX, SUNO_TITLE_MAX, SUNO_TRACK_SOURCE_TYPES, SUNO_VERSION_PRICED_OPERATIONS, SUPPORTED_FONT_NAMES, SURROUND_DIRECTIONS, SWITCHX_BLOCK_FRAMES, SWITCHX_FRAME_TIERS, type SafetyRetryPolicy, type Scene3DAnchor, type Scene3DAssetAnimation, type Scene3DAssetKind, type Scene3DAssetRef, type Scene3DAssetRole, type Scene3DCamera, type Scene3DCameraChanges, type Scene3DCameraKeyframe, type Scene3DCameraSample, type Scene3DCameraTrackV1, type Scene3DClayLighting, type Scene3DClayLightingPreset, type Scene3DEasing, type Scene3DEditErrorCode, type Scene3DEditOperation, type Scene3DEditOptions, type Scene3DEditResult, type Scene3DEntityCapability, type Scene3DEntityRole, type Scene3DEntityV2, type Scene3DEntityVisual, type Scene3DJobOutput, type Scene3DJobOutputAny, type Scene3DJobOutputV2, type Scene3DKnownEngine, type Scene3DLighting, type Scene3DLightingChanges, type Scene3DMaterialBinding, type Scene3DNormalizedAssetStats, type Scene3DObject, type Scene3DObjectChanges, type Scene3DObjectKeyframe, type Scene3DOverride, type Scene3DOverrideSpace, type Scene3DParseResult, type Scene3DPlan, type Scene3DPlanV1, type Scene3DPlanV2, type Scene3DPrimitive, type Scene3DProvenance, type Scene3DReference, type Scene3DReferenceKind, type Scene3DReferenceRole, type Scene3DSemanticIssue, type Scene3DShot, type Scene3DSupportedSchemaVersion, type Scene3DV2EditOperation, type Scene3DV2EditOptions, type Scene3DV2EditResult, type Scene3DV2OverrideInput, type Scene3DV2Primitive, type Scene3DV2ResourceUsage, type SceneData, type SceneHelperName, SceneHelperNameSchema, type SceneInputMode, SceneInputModeSchema, type SceneMetadata, SceneMetadataSchema, type SceneNodeData, SceneNodeDataSchema, SceneSpecSchema, type ScraperActorId, type ScriptCriticVerdict, ScriptCriticVerdictSchema, type ScriptProvider, type Season, type SectionKind, type SelectorConfig, type SelectorFields, type SelectorMode, type SelectorPredicateOp, type SelectorResult, type SemanticAspectRatio, type SeparatorPreset, type SharedListing, type SharedVoice, type SheetAspect, type SheetBackground, type SheetCostEstimate, type SheetEntry, type SheetFlavour, type SheetGenerationPlan, type SheetPreset, type SheetPresetId, type SheetSection, type SheetSkin, type SheetTextData, type SheetType, type ShotElement, type ShotImageElement, type ShotShapeElement, type ShotSpec, ShotSpecSchema, type ShotTextElement, type ShowrunnerPlan, ShowrunnerPlanSchema, type SidecarLoader, type SlotControlDescriptor, type SlotControlKind, type SlotVariation, type SocialMediaContentType, type SocialMediaPlatform, type SocialMediaSpec, type SortDirection, type SortListOptions, type SortType, type StageAwaitingSubGateEvent, StageAwaitingSubGateEventSchema, type StaticCaptionStyle, type StoryboardCohesionCriticVerdict, StoryboardCohesionCriticVerdictSchema, type StyleDirectives, StyleDirectivesSchema, type SubGateName, SubGateNameSchema, type SubmissionStatus, type SunoAddTrackModel, type SunoModel, type SupportedFontName, type SurroundDirection, type Swatch, T2I_TO_I2I_VARIANT, TASK_CHAINED_EDIT_PROVIDERS, TEXT_TO_AUDIO_PROVIDERS, TEXT_TO_VIDEO_PROVIDERS, TIER_MAX_PIPELINE_COST_CREDITS, TIER_PIPELINE_PARALLELISM, TILT_CARRIED_FRACTION, TOPAZ_DEFAULT_UPSCALE_FACTOR, TOPAZ_UPSCALE_FACTORS, TRANSCRIBE_PROVIDERS, TRANSIENT_RUNTIME_KEYS, TTS_PROVIDERS, TTS_TEXT_MAX, TWO_K_RESOLUTION_PROVIDERS, type TextToAudioProvider, type TextToVideoProvider, type TopazUpscaleAdjustment, type TopazUpscaleFactor, type TopazUpscaleResolution, type TranscribeProvider, type TransitionType, TransitionTypeSchema, type TrimVideoEstimatorInput, type TtsProvider, UPSCALE_IMAGE_PROVIDERS, USAGE_GROUP_BYS, USAGE_MODES, type UpscaleImageProvider, type UsageGroupBy, type UsageLogEntry, type UsageMode, type UsageQuery, type UsageReport, type UsageReportRow, type UsageReportTotals, type UsageVarianceRow, VARIABLES_HANDLE_ID, VARIABLE_PRICING_MODELS, VEHICLES, VEHICLE_SUBCATEGORY_LABELS, VEHICLE_SUBCATEGORY_ORDER, VEO_PROVIDERS, VIDEO_ANALYSIS_AUDIO_MODES, VIDEO_ANALYSIS_BUCKET_CREDITS, VIDEO_ANALYSIS_CLIP_TRANSITIONS_IN, VIDEO_ANALYSIS_DEFAULT_VARIATION, VIDEO_ANALYSIS_DURATION_BUCKETS, VIDEO_ANALYSIS_DURATION_TOLERANCE_SEC, VIDEO_ANALYSIS_ENTITY_SOURCES, VIDEO_ANALYSIS_FACELESS_ANGLES, VIDEO_ANALYSIS_LEGACY_MODELS, VIDEO_ANALYSIS_LLM_MODELS, VIDEO_ANALYSIS_MAX_DURATION_SEC, VIDEO_ANALYSIS_MAX_SCENE_SEC, VIDEO_ANALYSIS_MAX_VARIATIONS, VIDEO_ANALYSIS_MIXED_TIERS, VIDEO_ANALYSIS_SHOT_ANGLES, VIDEO_ANALYSIS_SPEED_EFFECTS, VIDEO_ANALYSIS_STORY_JUMPS, VIDEO_ANALYSIS_TEXT_KINDS, VIDEO_ANALYSIS_TIERS, VIDEO_ANALYSIS_TIER_LABELS, VIDEO_ANALYSIS_TIER_ORDER, VIDEO_ANALYSIS_TIMES_OF_DAY, VIDEO_ANALYSIS_TRANSITIONS, VIDEO_ANALYSIS_VARIATION_SLUGS, VIDEO_ANALYSIS_VISUAL_EFFECTS, VIDEO_ANALYSIS_WINDOW, VIDEO_AUDIO_CAPABILITY, VIDEO_AUDIT_BUCKET_CREDITS, VIDEO_CLIP_CREDITS, VIDEO_CRITIC_CREDITS_PER_SHOT, VIDEO_CRITIC_FRAME_MODES, VIDEO_CRITIC_MAX_RETRIES, VIDEO_CRITIC_METADATA_KEYS, VIDEO_CRITIC_MIN_ADHERENCE_SCORE, VIDEO_DURATION_TIERS, VIDEO_GEN_COLLAPSED_T2V_IDS, VIDEO_GEN_PROVIDERS, VIDEO_INPUT_LIP_SYNC_PROVIDERS, VIDEO_MODEL_CAPS, VIDEO_MODE_ALIASES, VIDEO_PRODUCER_TYPES, VIDEO_PROMPT_MAX, VIDEO_PROVIDERS_REQUIRING_IMAGE, VIDEO_PROVIDERS_WITHOUT_DISPATCH, VIDEO_REF_LIMITS_BY_PROVIDER, VIDEO_REF_VIDEO_DURATION_LIMITS, VIDEO_TO_VIDEO_PROVIDERS, VIDEO_UPSCALE_PROVIDERS, VIDEO_UTIL_PRICING, VIDEO_VARIABLE_PRICING, VOICE_CHANGER_MODELS, VOICE_CHANGER_MODEL_IDS, VOICE_DESIGN_MODELS, type ValidateMatchCutInput, ValidateMatchCutInputSchema, type ValidateMatchCutResult, ValidateMatchCutResultSchema, type ValidationField, type Vec3, type Vehicle, type VehicleSubcategory, type VideoAnalysisAudioMode, type VideoAnalysisClipTransitionIn, type VideoAnalysisEntitySource, type VideoAnalysisMixedTier, type VideoAnalysisModelTier, type VideoAnalysisResult, type VideoAnalysisShotAngle, type VideoAnalysisSpeedEffect, type VideoAnalysisTextKind, type VideoAnalysisTier, type VideoAnalysisTransition, type VideoAnalysisVisualEffect, type VideoAudioCapability, type VideoAudioMode, type VideoClipCost, type VideoCriticFrameMode, type VideoCriticMetadataKey, type VideoCriticShotFields, type VideoCriticVerdict, VideoCriticVerdictSchema, type VideoGenProvider, type VideoModeAlias, type VideoModelCapabilities, type VideoToVideoProvider, type VideoUpscaleProvider, type Voice, type VoiceChangerModel, type VoiceClone, type VoiceDesignModel, type VoiceLibraryParams, type VoiceLibraryResponse, type VoiceMatch, VoiceMatchSchema, type VoiceType, WAN_3_DEFAULT_RESOLUTION, WAN_3_PROVIDERS, WARDROBE_VARIANTS, WEAPONS, WEAPON_SUBCATEGORY_LABELS, WEAPON_SUBCATEGORY_ORDER, WORKFLOW_VISIBILITIES, WORKSPACE_HEADER, WORKSPACE_HEADER_LOWER, WORKSPACE_ROLES, type Weapon, type WeaponSubcategory, type WindowAnalysis, type WindowScene, type WorkflowAssetKind, type WorkflowExport, type WorkflowExportCharacter, type WorkflowExportCreature, type WorkflowExportLocation, type WorkflowExportObject, type WorkflowImportReport, type WorkflowImportSkippedAsset, type WorkflowMediaRef, type WorkflowPortability, type WorkflowVisibility, type WorkspaceMemberView, type WorkspaceRole, type WorkspaceSettings, WorkspaceSettingsSchema, type WorkspaceSummary, type WorkspaceView, aggregateByType, aiAvatarReserveCreditId, analyzedSceneSchema, applyDefaultVideoSelection, applyHandleInputOverride, applyRange, applyRangeIndices, applyScene3DEditOperations, applyScene3DV2EditOperations, applySlots, applyVideoAudioToggle, applyVideoNegativePrompt, aspectRatioFromDims, aspectRatioOptionsByKind, aspectRatioToNumber, assembleNarratedVideoCredits, availableReasoningEfforts, bucketSecondsFromAuditCreditId, bucketSecondsFromCreditId, buildBoardPrompt, buildChildrenByParent, buildConditionVariables, buildCreditModelIdentifier, buildExpressionFromVisual, buildLipSyncCreditId, buildLlmCreditIdentifier, buildModelMenu, buildModelTree, buildMotionCreditModelIdentifier, buildNodePresetExport, buildPanelPrompt, buildProgressSegments, buildRangeLabel, buildScraperCreditId, buildVideoAnalysisCreditId, buildVideoAuditCreditId, buildVideoCreditModelIdentifier, calculateCombinedProgress, calculateMonetizationMarkup, calculateMonetizedCost, calculateProgress, canonicalScene3DPlanV2Json, canonicalVarName, characterBoardItems, characterBucketDisplayRank, characterMentionSlug, characterMentionableAssetArrays, characterSheetRefItems, characterVariantAssetArrays, checkRefVideoDurations, cinematicCreditId, clampCinematicDuration, clampSmartCutWindow, classifyRefToken, cleanOrphanedItems, clearImageCriticMetadata, clearVideoCriticMetadata, clipLookSchema, collectAncestorRefs, combineSameLabelRefs, computeAggregateLanes, computeScene3DPlanV2ContentHash, countRefModalityEdges, creditRangesAll, creditsToUsd, decodeProviderItem, defaultCarriedFraction, defaultResolutionFor, defaultRoleForSource, defaultVideoAspectRatio, deriveLinkedFields, deriveLottieSlotFields, deriveSlotRefs, describeEdgeBehavior, describeMaskRegion, describeNodeAdjustments, describeSlotControl, dropUnknownBindings, dropUnknownSpeakers, durationsByMode, effectiveReasoningEffort, encodeProviderItem, ensureLocaleCatalogLoaded, entityHydrationColumns, entityMentionSlug, entityMentionSlugForRef, entityScalarFields, entitySlotSchema, entryMatchesQuery, estimateCombineVideosCredits, estimateFilmCredits, estimateLoopTrimAddonCredits, estimateLoopVideoCredits, estimateScriptDurationSec, estimateSheetCost, estimateTrimVideoCredits, evaluateCondition, evaluateConditionGroup, evaluateJsonExpression, evaluateJsonPath, expandExtraRefsToConnectedReferences, expandItemsWithRepeat, extractAllGeneratedResults, extractCharacterLoraFields, extractGeneratedJsonAsList, extractPresetData, extractReferencedLabels, extractVideoDurationFromNode, fieldKeyFromHandle, filterCloneNodes, findCharacterMentionTokens, findEntityMentionTokens, findImageMentionTokens, findLocationMentionTokens, findSeedance2AudioOverLimit, firstSightExtraRole, flattenItems, getAnimal, getAnimalLabel, getAnimalPromptHint, getAnimalTerm, getAspectRatioOptions, getAudioCrossfadeCurve, getCharacterFacet, getCombineTransition, getCreditRange, getDurationsForModel, getEffectiveRepeatCount, getFeaturedEntities, getFurniture, getFurnitureLabel, getInputFieldSchema, getInputNodes, getItemSortId, getLipSyncMaxAudioSeconds, getLlmModalityCaps, getLlmModel, getLlmTier, getLocaleDirection, getMaxImagePromptChars, getMaxNegativePromptChars, getMaxSunoPromptChars, getMaxSunoStyleChars, getMaxTtsChars, getMaxVideoPromptChars, getModel, getNodeLabel, getNodeResult, getOutputNodes, getOutputType, getParameterValue, getQualityOptions, getResolutionOptions, getRouteReachableNodeIds, getStrategy, getTargetField, getValidValues, getVehicle, getVehicleLabel, getVideoAudioCapability, getWeapon, getWeaponLabel, groupByFamily, groupHandleId, groupLlmModelsByVendor, hasContiguousSegmentDurations, hasFeature, hexToRgbaArray, humanizeSlotSid, imageMentionSlug, imageMentionSlugForRef, imageReferenceLimit, inferMusicVideo, isAggregateableType, isCharacterAspectRatio, isCollectInEdge, isDefaultSelectorConfig, isExpandedClone, isFlux2Model, isGeminiOmniProvider, isGvpSupportedProvider, isHandleInputWired, isKineticCaptionStyle, isKnownScene3DEngine, isLocationUsageMode, isMinimaxH3Provider, isObjectAspectRatio, isOversizedScene, isPaygRetentionActive, isPerSecondLipSyncProvider, isScene3DCameraTrack, isScene3DHttpUrl, isScene3DPlan, isScene3DPlanV1, isScene3DPlanV2, isScene3DSchemaVersionSupported, isScraperActor, isSeedance2Provider, isTiltDirection, isUsageMode, isVeoProvider, isVideoAnalysisMixedTier, isVideoAnalysisTier, isWan3Provider, jsonResultToList, knownEntitySlugsFromRefs, knownImageSlugsFromRefs, listBoardTemplates, listModels, listSlotSids, llmRouteDefaults, locationMentionSlug, locationReferencePhotoKindLabel, locationUsageModeLabel, mapAspectRatio, mapQuality, mapShotIntentToProviderDirectives, matchVariant, maxSegmentSecFor, maxSegmentsFor, mergeClipLook, mergeExposedSettings, migrateEdgeOutputMode, migrateToItems, minSegmentSecFor, modelIdsByKindMode, modelToNodeTarget, modelsForInputMode, modelsWithFeature, motionGraphicsFeature, newScene3DRevisionId, normalizeLottieLayers, normalizeMinimaxH3Resolution, normalizeModelInput, normalizeNodeModelParams, normalizePinterestUrl, normalizeRoleSlug, normalizeVideoRequestParams, normalizeWan3Resolution, orderedLlmModels, parseAttributedDialogue, parseCharacterMentionToken, parseEntityMentionToken, parseGroupHandle, parseHandleId, parseImageMentionToken, parseListExpression, parseLocationMentionToken, parseNodePresetExport, parseNodeRef, parseScene3DCameraTrackJson, parseScene3DPlanV2Json, pickAiAvatarBucket, pickIds, pickLipSyncBucket, pickSwitchXFrameTier, pickVideoAnalysisBucket, planSheetGeneration, planSheetPanels, preferredInputModeForModel, presentTypes, presetApplyClearKeys, presetDataMatches, presetEntries, pricedVideoSelection, qualityOptionsByKind, readPromptAffixes, refHandleCategory, referenceModalityForHandle, referenceSheetCreditId, registerCatalogSidecars, registerSidecarLoaders, renderAnalyzedScene, resetCatalogSidecars, resolutionOptionsByKind, resolveAiAvatarCreditId, resolveAudioCrossfadeCurve, resolveCharacterAspectRatio, resolveCinematicCreditId, resolveConditionValue, resolveDefaultRole, resolveDescription, resolveDialogueVoices, resolveEffectiveSourceType, resolveEffectiveTier, resolveEntityAspect, resolveFieldMappings, resolveGvpAnchorWire, resolveImageGenCreditIdentifier, resolveIndex, resolveLabel, resolveListExpression, resolveLlmCreditId, resolveLocationFields, resolveLocationPresetCatalog, resolveLottieOverlaySrc, resolveNodeRefs, resolveNormalizedImageGen, resolveObjectAspectRatio, resolvePipelineModel, resolveRelativeWindowToken, resolveScraperCreditId, resolveSelectorRefs, resolveSeparator, resolveSheetSections, resolveSlideshowTransition, resolveSourceThroughConnectedList, resolveStoredTier, resolveSwitchXCreditId, resolveTopazUpscale, resolveVideoAnalysisModel, resolveVideoModeForInputs, resolveVideoProviderForMode, resolveXfadeName, rewriteSceneBindings, rewriteSlotTokens, rewriteSpeakerSlots, rgbaArrayToHex, roleToPhrase, rotationVec3Schema, runSelector, safetyRetryPolicy, sanitizeRole, scaleVec3Schema, scene3DAcceptedSchemaVersionsSchema, scene3DAnchorNameSchema, scene3DAnchorSchema, scene3DAnyPlanSchema, scene3DAssetAnimationSchema, scene3DAssetIdSchema, scene3DAssetRefSchema, scene3DCameraChangesSchema, scene3DCameraKeyframeSchema, scene3DCameraSampleSchema, scene3DCameraSchema, scene3DCameraTrackIssues, scene3DCameraTrackObjectSchema, scene3DCameraTrackPlanIssues, scene3DCameraTrackSchema, scene3DClayLightingSchema, scene3DColorSchema, scene3DDeepEqual, scene3DEasingSchema, scene3DEditOperationSchema, scene3DEditOperationsSchema, scene3DEngineIdSchema, scene3DEntityAcceptsOverlay, scene3DEntityCapabilitySchema, scene3DEntityV2Schema, scene3DEntityVisualSchema, scene3DIdSchema, scene3DJsonByteLength, scene3DLightingChangesSchema, scene3DLightingSchema, scene3DMaterialBindingSchema, scene3DMaterialNameSchema, scene3DMaterialRoleSchema, scene3DNodeIdSchema, scene3DObjectChangesSchema, scene3DObjectKeyframeSchema, scene3DObjectSchema, scene3DOverrideSchema, scene3DPlanIssues, scene3DPlanSchema, scene3DPlanSchemaVersion, scene3DPlanV1Issues, scene3DPlanV1ObjectSchema, scene3DPlanV1Schema, scene3DPlanV2Issues, scene3DPlanV2ObjectSchema, scene3DPlanV2Schema, scene3DPrimitiveSchema, scene3DProjectionIssues, scene3DProvenanceSchema, scene3DReferenceSchema, scene3DSampleForFrame, scene3DSha256Schema, scene3DShotForFrame, scene3DShotIndexForFrame, scene3DShotSchema, scene3DUrlSchema, scene3DV2AdmissionIssues, scene3DV2EditOperationSchema, scene3DV2EditOperationsSchema, scene3DV2HierarchyDepth, scene3DV2NormalizationIssues, scene3DV2OverrideInputSchema, scene3DV2ResourceUsage, scene3DVersionTokenSchema, scene3DZodIssues, searchModelVariants, seedance2AudioLimitSec, segmentDurationsFor, selectByModulo, selectByNamedKey, selectByPredicate, selectListItems, selectLoraRoutingForMentions, selectRandom, setRegisteredPersonPackFields, settledWithLimit, sizeVec3Schema, slotVariationSchema, sortCharacterEntriesForDisplay, sortListItems, sourceRefKey, spliceDelimitedRows, splitByLoopDelimiter, splitGeneratedItems, spreadJsonArrayIfSingleton, stringifyPathResults, stripDerivedAnalysisFields, stripExportContent, stripStudioTransientSettings, stripTransientRuntimeData, summarizeScene3DOperations, sunoCreditType, supportedDefaultDimensions, supportsAdvancedMode, supportsEndAnchor, supportsExtendRender, toConnectedReference, toConnectedReferences, togglePick, tryParseJson, uiAspectRatioFill, uiDurationFill, uiResolutionFill, unresolvedRefTokens, unwrapUnresolvedTokens, usageModeDirective, usageModeIncludesName, usageModeLabel, usdToCredits, validateAiAvatarPayload, validateCinematicAvatarPayload, validateDurationForFormat, validateModeActivation, validateModelInput, validateNoNestedGroups, validateObjects, validateProviderForNodeType, validateSubWorkflowRoutes, variantJobId, vec3Schema, verifyScene3DPlanV2ContentHash, videoAnalysisCreditSegment, videoAnalysisNumWindows, videoAnalysisResultSchema, videoAuditCreditsForBucket, videoModelCanSpeakDialogue, videoModelSupportsAudio, videoNegativeSuffix, videoProviderFoldsLoneEndFrame, videoProviderRequiresImage, windowAnalysisSchema, zipMergeLists };