@holoscript/engine 6.0.3 → 6.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/dist/AutoMesher-CK47F6AV.js +17 -0
  2. package/dist/GPUBuffers-2LHBCD7X.js +9 -0
  3. package/dist/WebGPUContext-TNEUYU2Y.js +11 -0
  4. package/dist/animation/index.cjs +38 -38
  5. package/dist/animation/index.d.cts +1 -1
  6. package/dist/animation/index.d.ts +1 -1
  7. package/dist/animation/index.js +1 -1
  8. package/dist/audio/index.cjs +16 -6
  9. package/dist/audio/index.d.cts +1 -1
  10. package/dist/audio/index.d.ts +1 -1
  11. package/dist/audio/index.js +1 -1
  12. package/dist/camera/index.cjs +23 -23
  13. package/dist/camera/index.d.cts +1 -1
  14. package/dist/camera/index.d.ts +1 -1
  15. package/dist/camera/index.js +1 -1
  16. package/dist/character/index.cjs +6 -4
  17. package/dist/character/index.js +1 -1
  18. package/dist/choreography/index.cjs +1194 -0
  19. package/dist/choreography/index.d.cts +687 -0
  20. package/dist/choreography/index.d.ts +687 -0
  21. package/dist/choreography/index.js +1156 -0
  22. package/dist/chunk-2CSNRI2N.js +217 -0
  23. package/dist/chunk-33T2WINR.js +266 -0
  24. package/dist/chunk-35R73OFM.js +1257 -0
  25. package/dist/chunk-4MMDSUNP.js +1256 -0
  26. package/dist/chunk-5V6HOU72.js +319 -0
  27. package/dist/chunk-6QOP6PYF.js +1038 -0
  28. package/dist/chunk-7KMJVHIL.js +8944 -0
  29. package/dist/chunk-7VPUC62U.js +1106 -0
  30. package/dist/chunk-A2Y6RCAT.js +1878 -0
  31. package/dist/chunk-AHM42MK6.js +8944 -0
  32. package/dist/chunk-BL7IDTHE.js +218 -0
  33. package/dist/chunk-CITOMSWL.js +10462 -0
  34. package/dist/chunk-CXDPKW2K.js +8944 -0
  35. package/dist/chunk-CXZPLD4S.js +223 -0
  36. package/dist/chunk-CZYJE7IH.js +5169 -0
  37. package/dist/chunk-D2OP7YC7.js +6325 -0
  38. package/dist/chunk-EDRVQHUU.js +1544 -0
  39. package/dist/chunk-EJSLOOW2.js +3589 -0
  40. package/dist/chunk-F53SFGW5.js +1878 -0
  41. package/dist/chunk-HCFPELPY.js +919 -0
  42. package/dist/chunk-HNEE36PY.js +93 -0
  43. package/dist/chunk-HYXNV36F.js +1256 -0
  44. package/dist/chunk-IB7KHVFY.js +821 -0
  45. package/dist/chunk-IBBO7YYG.js +690 -0
  46. package/dist/chunk-ILIBGINU.js +5470 -0
  47. package/dist/chunk-IS4MHLKN.js +5479 -0
  48. package/dist/chunk-JT2PFKWD.js +5479 -0
  49. package/dist/chunk-K4CUB4NY.js +1038 -0
  50. package/dist/chunk-KATDQXRJ.js +10462 -0
  51. package/dist/chunk-KBQE6ZFJ.js +8944 -0
  52. package/dist/chunk-KBVD5K7E.js +560 -0
  53. package/dist/chunk-KCDPVQRY.js +4088 -0
  54. package/dist/chunk-KN4QJPKN.js +8944 -0
  55. package/dist/chunk-KWJ3ROSI.js +8944 -0
  56. package/dist/chunk-L45VF6DD.js +919 -0
  57. package/dist/chunk-LY4T37YK.js +307 -0
  58. package/dist/chunk-MDN5WZXA.js +1544 -0
  59. package/dist/chunk-MGCDP6VU.js +928 -0
  60. package/dist/chunk-NCX7X6G2.js +8681 -0
  61. package/dist/chunk-OF54BPVD.js +913 -0
  62. package/dist/chunk-OWSN2Q3Q.js +690 -0
  63. package/dist/chunk-PRRB5TTA.js +406 -0
  64. package/dist/chunk-PXWVQF76.js +4086 -0
  65. package/dist/chunk-PYCOIDT2.js +812 -0
  66. package/dist/chunk-PZCSADOV.js +928 -0
  67. package/dist/chunk-Q2XBVS2K.js +1038 -0
  68. package/dist/chunk-QDZRXWN5.js +1776 -0
  69. package/dist/chunk-RNWOZ6WQ.js +913 -0
  70. package/dist/chunk-ROLFT4CJ.js +1693 -0
  71. package/dist/chunk-SLTJRZ2N.js +266 -0
  72. package/dist/chunk-SRUS5XSU.js +4088 -0
  73. package/dist/chunk-TKCA3WZ5.js +5409 -0
  74. package/dist/chunk-TNRMXYI2.js +1650 -0
  75. package/dist/chunk-TQB3GJGM.js +9763 -0
  76. package/dist/chunk-TUFGXG6K.js +510 -0
  77. package/dist/chunk-U6KMTGQJ.js +632 -0
  78. package/dist/chunk-VMGJQST6.js +8681 -0
  79. package/dist/chunk-X4F4TCG4.js +5470 -0
  80. package/dist/chunk-ZIFROE75.js +1544 -0
  81. package/dist/chunk-ZIJQYHSQ.js +1204 -0
  82. package/dist/combat/index.cjs +4 -4
  83. package/dist/combat/index.d.cts +1 -1
  84. package/dist/combat/index.d.ts +1 -1
  85. package/dist/combat/index.js +1 -1
  86. package/dist/ecs/index.cjs +1 -1
  87. package/dist/ecs/index.js +1 -1
  88. package/dist/environment/index.cjs +14 -14
  89. package/dist/environment/index.d.cts +1 -1
  90. package/dist/environment/index.d.ts +1 -1
  91. package/dist/environment/index.js +1 -1
  92. package/dist/gpu/index.cjs +4810 -0
  93. package/dist/gpu/index.js +3714 -0
  94. package/dist/hologram/index.cjs +27 -1
  95. package/dist/hologram/index.js +1 -1
  96. package/dist/index-B2PIsAmR.d.cts +2180 -0
  97. package/dist/index-B2PIsAmR.d.ts +2180 -0
  98. package/dist/index-BHySEPX7.d.cts +2921 -0
  99. package/dist/index-BJV21zuy.d.cts +341 -0
  100. package/dist/index-BJV21zuy.d.ts +341 -0
  101. package/dist/index-BQutTphC.d.cts +790 -0
  102. package/dist/index-ByIq2XrS.d.cts +3910 -0
  103. package/dist/index-BysHjDSO.d.cts +224 -0
  104. package/dist/index-BysHjDSO.d.ts +224 -0
  105. package/dist/index-CKwAJGck.d.ts +455 -0
  106. package/dist/index-CUl3QstQ.d.cts +3006 -0
  107. package/dist/index-CUl3QstQ.d.ts +3006 -0
  108. package/dist/index-CmYtNiI-.d.cts +953 -0
  109. package/dist/index-CmYtNiI-.d.ts +953 -0
  110. package/dist/index-CnRzWxi_.d.cts +522 -0
  111. package/dist/index-CnRzWxi_.d.ts +522 -0
  112. package/dist/index-CwRWbSC7.d.ts +2921 -0
  113. package/dist/index-CxKIBstO.d.ts +790 -0
  114. package/dist/index-DJ6-R8vh.d.cts +455 -0
  115. package/dist/index-DQKisbcI.d.cts +4968 -0
  116. package/dist/index-DQKisbcI.d.ts +4968 -0
  117. package/dist/index-DRT2zJez.d.ts +3910 -0
  118. package/dist/index-DfNLiAka.d.cts +192 -0
  119. package/dist/index-DfNLiAka.d.ts +192 -0
  120. package/dist/index-nMvkoRm8.d.cts +405 -0
  121. package/dist/index-nMvkoRm8.d.ts +405 -0
  122. package/dist/index-s9yOFU37.d.cts +604 -0
  123. package/dist/index-s9yOFU37.d.ts +604 -0
  124. package/dist/index.cjs +22966 -6960
  125. package/dist/index.d.cts +864 -20
  126. package/dist/index.d.ts +864 -20
  127. package/dist/index.js +3062 -48
  128. package/dist/input/index.cjs +1 -1
  129. package/dist/input/index.js +1 -1
  130. package/dist/orbital/index.cjs +3 -3
  131. package/dist/orbital/index.d.cts +1 -1
  132. package/dist/orbital/index.d.ts +1 -1
  133. package/dist/orbital/index.js +1 -1
  134. package/dist/particles/index.cjs +16 -16
  135. package/dist/particles/index.d.cts +1 -1
  136. package/dist/particles/index.d.ts +1 -1
  137. package/dist/particles/index.js +1 -1
  138. package/dist/physics/index.cjs +2377 -21
  139. package/dist/physics/index.d.cts +1 -1
  140. package/dist/physics/index.d.ts +1 -1
  141. package/dist/physics/index.js +35 -1
  142. package/dist/postfx/index.cjs +3491 -0
  143. package/dist/postfx/index.js +93 -0
  144. package/dist/procedural/index.cjs +1 -1
  145. package/dist/procedural/index.js +1 -1
  146. package/dist/puppeteer-5VF6KDVO.js +52197 -0
  147. package/dist/puppeteer-IZVZ3SG4.js +52197 -0
  148. package/dist/rendering/index.cjs +33 -32
  149. package/dist/rendering/index.d.cts +1 -1
  150. package/dist/rendering/index.d.ts +1 -1
  151. package/dist/rendering/index.js +8 -6
  152. package/dist/runtime/index.cjs +23 -13
  153. package/dist/runtime/index.d.cts +1 -1
  154. package/dist/runtime/index.d.ts +1 -1
  155. package/dist/runtime/index.js +8 -6
  156. package/dist/runtime/protocols/index.cjs +349 -0
  157. package/dist/runtime/protocols/index.js +15 -0
  158. package/dist/scene/index.cjs +8 -8
  159. package/dist/scene/index.d.cts +1 -1
  160. package/dist/scene/index.d.ts +1 -1
  161. package/dist/scene/index.js +1 -1
  162. package/dist/shader/index.cjs +3087 -0
  163. package/dist/shader/index.js +3044 -0
  164. package/dist/simulation/index.cjs +10680 -0
  165. package/dist/simulation/index.d.cts +3 -0
  166. package/dist/simulation/index.d.ts +3 -0
  167. package/dist/simulation/index.js +307 -0
  168. package/dist/spatial/index.cjs +2443 -0
  169. package/dist/spatial/index.d.cts +1545 -0
  170. package/dist/spatial/index.d.ts +1545 -0
  171. package/dist/spatial/index.js +2400 -0
  172. package/dist/terrain/index.cjs +1 -1
  173. package/dist/terrain/index.d.cts +1 -1
  174. package/dist/terrain/index.d.ts +1 -1
  175. package/dist/terrain/index.js +1 -1
  176. package/dist/transformers.node-4NKAPD5U.js +45620 -0
  177. package/dist/vm/index.cjs +7 -8
  178. package/dist/vm/index.d.cts +1 -1
  179. package/dist/vm/index.d.ts +1 -1
  180. package/dist/vm/index.js +1 -1
  181. package/dist/vm-bridge/index.cjs +2 -2
  182. package/dist/vm-bridge/index.d.cts +2 -2
  183. package/dist/vm-bridge/index.d.ts +2 -2
  184. package/dist/vm-bridge/index.js +1 -1
  185. package/dist/vr/index.cjs +6 -6
  186. package/dist/vr/index.js +1 -1
  187. package/dist/world/index.cjs +3 -3
  188. package/dist/world/index.d.cts +1 -1
  189. package/dist/world/index.d.ts +1 -1
  190. package/dist/world/index.js +1 -1
  191. package/package.json +53 -21
  192. package/LICENSE +0 -21
@@ -0,0 +1,455 @@
1
+ import { W as World } from './World-CgKA4O2J.js';
2
+
3
+ /**
4
+ * ProjectManager.ts
5
+ *
6
+ * Project-level management: project files, scene references,
7
+ * asset dependency tracking, and build configuration.
8
+ *
9
+ * @module scene
10
+ */
11
+ interface SceneReference {
12
+ id: string;
13
+ name: string;
14
+ path: string;
15
+ isStartScene: boolean;
16
+ lastModified: number;
17
+ }
18
+ interface ProjectAssetRef {
19
+ id: string;
20
+ type: string;
21
+ path: string;
22
+ usedByScenes: string[];
23
+ sizeBytes: number;
24
+ }
25
+ interface BuildConfig {
26
+ target: 'development' | 'production' | 'debug';
27
+ optimizeAssets: boolean;
28
+ minifyScripts: boolean;
29
+ bundleAssets: boolean;
30
+ outputDir: string;
31
+ }
32
+ interface ProjectFile {
33
+ name: string;
34
+ version: string;
35
+ createdAt: number;
36
+ modifiedAt: number;
37
+ scenes: SceneReference[];
38
+ assets: ProjectAssetRef[];
39
+ buildConfig: BuildConfig;
40
+ settings: Record<string, unknown>;
41
+ }
42
+ declare class ProjectManager {
43
+ private project;
44
+ constructor(name: string, version?: string);
45
+ addScene(ref: Omit<SceneReference, 'lastModified'>): void;
46
+ removeScene(sceneId: string): boolean;
47
+ getScene(sceneId: string): SceneReference | undefined;
48
+ getScenes(): SceneReference[];
49
+ getStartScene(): SceneReference | undefined;
50
+ setStartScene(sceneId: string): boolean;
51
+ addAsset(ref: ProjectAssetRef): void;
52
+ removeAsset(assetId: string): boolean;
53
+ getAsset(assetId: string): ProjectAssetRef | undefined;
54
+ getAssets(): ProjectAssetRef[];
55
+ /**
56
+ * Find unused assets (not referenced by any scene).
57
+ */
58
+ findUnusedAssets(): ProjectAssetRef[];
59
+ /**
60
+ * Get total project size in bytes.
61
+ */
62
+ getTotalAssetSize(): number;
63
+ setBuildConfig(config: Partial<BuildConfig>): void;
64
+ getBuildConfig(): BuildConfig;
65
+ setSetting(key: string, value: unknown): void;
66
+ getSetting<T = unknown>(key: string): T | undefined;
67
+ serialize(): string;
68
+ static deserialize(json: string): ProjectManager;
69
+ getProjectFile(): ProjectFile;
70
+ }
71
+
72
+ /**
73
+ * Minimal HoloScript+ node shape used by extracted engine scene modules.
74
+ */
75
+ interface HSPlusNode {
76
+ id?: string;
77
+ type?: string;
78
+ properties?: Record<string, unknown>;
79
+ traits?: Map<string, unknown>;
80
+ children?: HSPlusNode[];
81
+ }
82
+
83
+ /**
84
+ * SceneSerializer.ts
85
+ *
86
+ * Serializes HoloScript+ scene graphs to JSON-compatible format.
87
+ * Handles Map/Set conversion, circular reference protection,
88
+ * and trait config extraction.
89
+ */
90
+
91
+ interface SerializedScene {
92
+ version: number;
93
+ timestamp: string;
94
+ name: string;
95
+ root: SerializedNode;
96
+ metadata?: Record<string, unknown>;
97
+ }
98
+ interface SerializedNode {
99
+ id: string;
100
+ type: string;
101
+ properties: Record<string, unknown>;
102
+ traits: Record<string, unknown>;
103
+ children: SerializedNode[];
104
+ }
105
+ declare class SceneSerializer {
106
+ private world?;
107
+ private visitedIds;
108
+ constructor(world?: World);
109
+ /**
110
+ * Serialize a scene.
111
+ * Overload 1: serialize(root: HSPlusNode, name?, metadata?) — from node tree
112
+ * Overload 2: serialize(name?, metadata?) — from World entities
113
+ */
114
+ serialize(rootOrName?: HSPlusNode | string, sceneNameOrMeta?: string | Record<string, unknown>, metadata?: Record<string, unknown>): SerializedScene;
115
+ /**
116
+ * Node-based serialization helper.
117
+ */
118
+ private serializeFromNode;
119
+ private serializeEntity;
120
+ /**
121
+ * Legacy/Utility: Serialize a HSPlusNode tree
122
+ */
123
+ serializeNode(node: HSPlusNode): SerializedNode;
124
+ /**
125
+ * Serialize a node tree to a JSON string.
126
+ */
127
+ toJSON(root: HSPlusNode, sceneName?: string): string;
128
+ private sanitizeProperties;
129
+ private sanitizeValue;
130
+ }
131
+
132
+ /**
133
+ * SceneDeserializer.ts
134
+ *
135
+ * Reconstructs live HoloScript+ node trees from serialized JSON.
136
+ * Rebuilds Map-based traits from Object representations.
137
+ */
138
+
139
+ declare class SceneDeserializer {
140
+ /**
141
+ * Deserialize from a SerializedScene object.
142
+ */
143
+ deserialize(scene: SerializedScene): HSPlusNode;
144
+ /**
145
+ * Deserialize from a JSON string.
146
+ */
147
+ fromJSON(json: string): {
148
+ node: HSPlusNode;
149
+ name: string;
150
+ metadata?: Record<string, any>;
151
+ };
152
+ private rebuildNode;
153
+ }
154
+
155
+ /**
156
+ * StateSnapshot.ts
157
+ *
158
+ * Captures runtime state beyond the scene graph:
159
+ * animation progress, particle emitter state, scroll offsets, focus state.
160
+ */
161
+ interface AnimationSnapshot {
162
+ activeClipIds: string[];
163
+ springValues: Record<string, number>;
164
+ }
165
+ interface ParticleSnapshot {
166
+ emitterId: string;
167
+ isEmitting: boolean;
168
+ activeCount: number;
169
+ }
170
+ interface UISnapshot {
171
+ focusedInputId: string | null;
172
+ cursorIndex: number;
173
+ scrollOffsets: Record<string, number>;
174
+ }
175
+ interface RuntimeStateSnapshot {
176
+ timestamp: string;
177
+ animation: AnimationSnapshot;
178
+ particles: ParticleSnapshot[];
179
+ ui: UISnapshot;
180
+ custom: Record<string, any>;
181
+ }
182
+ /**
183
+ * Capture current runtime state from various subsystems.
184
+ */
185
+ declare class StateSnapshotCapture {
186
+ /**
187
+ * Create a snapshot of the current runtime state.
188
+ * Subsystem references are passed in to avoid coupling.
189
+ */
190
+ capture(options: {
191
+ animationEngine?: {
192
+ getActiveIds: () => string[];
193
+ };
194
+ particleSystems?: Array<{
195
+ id: string;
196
+ isEmitting: () => boolean;
197
+ getActiveCount: () => number;
198
+ }>;
199
+ keyboardSystem?: {
200
+ focusedInputId: string | null;
201
+ cursorIndex: number;
202
+ };
203
+ scrollOffsets?: Record<string, number>;
204
+ custom?: Record<string, any>;
205
+ }): RuntimeStateSnapshot;
206
+ }
207
+
208
+ /**
209
+ * SceneManager.ts
210
+ *
211
+ * High-level API for saving, loading, and listing HoloScript+ scenes.
212
+ * Combines SceneSerializer + SceneDeserializer + StateSnapshot.
213
+ */
214
+
215
+ interface SavedScene {
216
+ scene: SerializedScene;
217
+ state?: RuntimeStateSnapshot;
218
+ }
219
+ interface SceneListEntry {
220
+ name: string;
221
+ timestamp: string;
222
+ nodeCount: number;
223
+ }
224
+ declare class SceneManager {
225
+ private serializer;
226
+ private deserializer;
227
+ private stateCapture;
228
+ private storage;
229
+ /**
230
+ * Save a scene to the internal store.
231
+ */
232
+ save(name: string, root: HSPlusNode, stateOptions?: Parameters<StateSnapshotCapture['capture']>[0], metadata?: Record<string, any>): SavedScene;
233
+ /**
234
+ * Load a scene by name.
235
+ */
236
+ load(name: string): {
237
+ node: HSPlusNode;
238
+ state?: RuntimeStateSnapshot;
239
+ } | null;
240
+ /**
241
+ * Check if a scene exists.
242
+ */
243
+ has(name: string): boolean;
244
+ /**
245
+ * Delete a saved scene.
246
+ */
247
+ delete(name: string): boolean;
248
+ /**
249
+ * List all saved scenes.
250
+ */
251
+ list(): SceneListEntry[];
252
+ /**
253
+ * Export a scene to JSON string.
254
+ */
255
+ exportJSON(name: string): string | null;
256
+ /**
257
+ * Import a scene from JSON string.
258
+ */
259
+ importJSON(json: string): string;
260
+ /**
261
+ * Get count of saved scenes.
262
+ */
263
+ get count(): number;
264
+ private countNodes;
265
+ }
266
+
267
+ /**
268
+ * SceneNode.ts
269
+ *
270
+ * Scene graph node: hierarchical transform, parent/child,
271
+ * local+world matrices, dirty flags, tag/layer assignment.
272
+ *
273
+ * @module scene
274
+ */
275
+ interface Transform {
276
+ position: [number, number, number];
277
+ rotation: {
278
+ x: number;
279
+ y: number;
280
+ z: number;
281
+ };
282
+ scale: {
283
+ x: number;
284
+ y: number;
285
+ z: number;
286
+ };
287
+ }
288
+ type Matrix4 = Float64Array;
289
+ declare class SceneNode {
290
+ readonly id: string;
291
+ name: string;
292
+ tags: Set<string>;
293
+ layer: number;
294
+ visible: boolean;
295
+ private local;
296
+ private worldMatrix;
297
+ private dirty;
298
+ private parent;
299
+ private children;
300
+ constructor(id: string, name?: string);
301
+ setPosition(x: number, y: number, z: number): void;
302
+ setRotation(x: number, y: number, z: number): void;
303
+ setScale(x: number, y: number, z: number): void;
304
+ getLocalTransform(): Transform;
305
+ getWorldPosition(): {
306
+ x: number;
307
+ y: number;
308
+ z: number;
309
+ };
310
+ getWorldMatrix(): Matrix4;
311
+ addChild(child: SceneNode): void;
312
+ removeChild(child: SceneNode): void;
313
+ getParent(): SceneNode | null;
314
+ getChildren(): SceneNode[];
315
+ getChildCount(): number;
316
+ traverse(callback: (node: SceneNode, depth: number) => void, depth?: number): void;
317
+ private markDirty;
318
+ updateWorldMatrix(): void;
319
+ private computeLocalMatrix;
320
+ private setIdentity;
321
+ private multiply;
322
+ isDirty(): boolean;
323
+ }
324
+
325
+ /**
326
+ * SceneQuery.ts
327
+ *
328
+ * Scene queries: frustum culling, spatial range queries,
329
+ * tag/layer filtering, and visitor pattern.
330
+ *
331
+ * @module scene
332
+ */
333
+
334
+ interface Frustum {
335
+ position: [number, number, number];
336
+ direction: {
337
+ x: number;
338
+ y: number;
339
+ z: number;
340
+ };
341
+ fov: number;
342
+ near: number;
343
+ far: number;
344
+ }
345
+ type NodeVisitor = (node: SceneNode) => boolean;
346
+ declare class SceneQuery {
347
+ static findByTag(root: SceneNode, tag: string): SceneNode[];
348
+ static findByLayer(root: SceneNode, layer: number): SceneNode[];
349
+ static findByName(root: SceneNode, name: string): SceneNode | null;
350
+ static findInRadius(root: SceneNode, center: {
351
+ x: number;
352
+ y: number;
353
+ z: number;
354
+ }, radius: number): SceneNode[];
355
+ static frustumCull(root: SceneNode, frustum: Frustum): SceneNode[];
356
+ static visit(root: SceneNode, visitor: NodeVisitor): void;
357
+ private static normalize;
358
+ }
359
+
360
+ /**
361
+ * VersionMigration.ts
362
+ *
363
+ * Schema versioning and backward-compatible migration.
364
+ * Automatically upgrades old scene data to the current version.
365
+ *
366
+ * @module scene
367
+ */
368
+ interface MigrationStep {
369
+ fromVersion: number;
370
+ toVersion: number;
371
+ name: string;
372
+ migrate: (data: Record<string, unknown>) => Record<string, unknown>;
373
+ }
374
+ interface MigrationResult {
375
+ success: boolean;
376
+ fromVersion: number;
377
+ toVersion: number;
378
+ stepsApplied: string[];
379
+ warnings: string[];
380
+ data: Record<string, unknown>;
381
+ }
382
+ interface MigrationLog {
383
+ timestamp: number;
384
+ fromVersion: number;
385
+ toVersion: number;
386
+ stepsApplied: string[];
387
+ dataHash: string;
388
+ }
389
+ declare const CURRENT_SCHEMA_VERSION = 5;
390
+ declare class VersionMigration {
391
+ private migrations;
392
+ private logs;
393
+ constructor();
394
+ register(step: MigrationStep): void;
395
+ getMigrations(): MigrationStep[];
396
+ getMigrationCount(): number;
397
+ /**
398
+ * Migrate data from its current version to the target version.
399
+ */
400
+ migrate(data: Record<string, unknown>, targetVersion?: number): MigrationResult;
401
+ /**
402
+ * Check if data needs migration.
403
+ */
404
+ needsMigration(data: Record<string, unknown>): boolean;
405
+ /**
406
+ * Get the version of the given data.
407
+ */
408
+ getDataVersion(data: Record<string, unknown>): number;
409
+ getLogs(): MigrationLog[];
410
+ clearLogs(): void;
411
+ private registerBuiltIns;
412
+ private simpleHash;
413
+ }
414
+
415
+ type index_AnimationSnapshot = AnimationSnapshot;
416
+ type index_BuildConfig = BuildConfig;
417
+ declare const index_CURRENT_SCHEMA_VERSION: typeof CURRENT_SCHEMA_VERSION;
418
+ type index_Frustum = Frustum;
419
+ type index_Matrix4 = Matrix4;
420
+ type index_MigrationLog = MigrationLog;
421
+ type index_MigrationResult = MigrationResult;
422
+ type index_MigrationStep = MigrationStep;
423
+ type index_NodeVisitor = NodeVisitor;
424
+ type index_ParticleSnapshot = ParticleSnapshot;
425
+ type index_ProjectAssetRef = ProjectAssetRef;
426
+ type index_ProjectFile = ProjectFile;
427
+ type index_ProjectManager = ProjectManager;
428
+ declare const index_ProjectManager: typeof ProjectManager;
429
+ type index_RuntimeStateSnapshot = RuntimeStateSnapshot;
430
+ type index_SavedScene = SavedScene;
431
+ type index_SceneDeserializer = SceneDeserializer;
432
+ declare const index_SceneDeserializer: typeof SceneDeserializer;
433
+ type index_SceneListEntry = SceneListEntry;
434
+ type index_SceneManager = SceneManager;
435
+ declare const index_SceneManager: typeof SceneManager;
436
+ type index_SceneNode = SceneNode;
437
+ declare const index_SceneNode: typeof SceneNode;
438
+ type index_SceneQuery = SceneQuery;
439
+ declare const index_SceneQuery: typeof SceneQuery;
440
+ type index_SceneReference = SceneReference;
441
+ type index_SceneSerializer = SceneSerializer;
442
+ declare const index_SceneSerializer: typeof SceneSerializer;
443
+ type index_SerializedNode = SerializedNode;
444
+ type index_SerializedScene = SerializedScene;
445
+ type index_StateSnapshotCapture = StateSnapshotCapture;
446
+ declare const index_StateSnapshotCapture: typeof StateSnapshotCapture;
447
+ type index_Transform = Transform;
448
+ type index_UISnapshot = UISnapshot;
449
+ type index_VersionMigration = VersionMigration;
450
+ declare const index_VersionMigration: typeof VersionMigration;
451
+ declare namespace index {
452
+ export { type index_AnimationSnapshot as AnimationSnapshot, type index_BuildConfig as BuildConfig, index_CURRENT_SCHEMA_VERSION as CURRENT_SCHEMA_VERSION, type index_Frustum as Frustum, type index_Matrix4 as Matrix4, type index_MigrationLog as MigrationLog, type index_MigrationResult as MigrationResult, type index_MigrationStep as MigrationStep, type index_NodeVisitor as NodeVisitor, type index_ParticleSnapshot as ParticleSnapshot, type index_ProjectAssetRef as ProjectAssetRef, type index_ProjectFile as ProjectFile, index_ProjectManager as ProjectManager, type index_RuntimeStateSnapshot as RuntimeStateSnapshot, type index_SavedScene as SavedScene, index_SceneDeserializer as SceneDeserializer, type index_SceneListEntry as SceneListEntry, index_SceneManager as SceneManager, index_SceneNode as SceneNode, index_SceneQuery as SceneQuery, type index_SceneReference as SceneReference, index_SceneSerializer as SceneSerializer, type index_SerializedNode as SerializedNode, type index_SerializedScene as SerializedScene, index_StateSnapshotCapture as StateSnapshotCapture, type index_Transform as Transform, type index_UISnapshot as UISnapshot, index_VersionMigration as VersionMigration };
453
+ }
454
+
455
+ export { type AnimationSnapshot as A, type BuildConfig as B, CURRENT_SCHEMA_VERSION as C, type Frustum as F, type Matrix4 as M, type NodeVisitor as N, type ParticleSnapshot as P, type RuntimeStateSnapshot as R, type SavedScene as S, type Transform as T, type UISnapshot as U, VersionMigration as V, type MigrationLog as a, type MigrationResult as b, type MigrationStep as c, type ProjectAssetRef as d, type ProjectFile as e, ProjectManager as f, SceneDeserializer as g, type SceneListEntry as h, index as i, SceneManager as j, SceneNode as k, SceneQuery as l, type SceneReference as m, SceneSerializer as n, type SerializedNode as o, type SerializedScene as p, StateSnapshotCapture as q };