@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,192 @@
1
+ /**
2
+ * LODManager.ts
3
+ *
4
+ * Level-of-detail management: distance-based LOD selection,
5
+ * transition blending, hysteresis, and per-object bias config.
6
+ *
7
+ * @module world
8
+ */
9
+ interface LODLevel {
10
+ level: number;
11
+ maxDistance: number;
12
+ meshDetail: number;
13
+ }
14
+ interface LODObject {
15
+ id: string;
16
+ position: [number, number, number];
17
+ currentLevel: number;
18
+ levels: LODLevel[];
19
+ bias: number;
20
+ visible: boolean;
21
+ transitionAlpha: number;
22
+ }
23
+ interface LODConfig {
24
+ defaultLevels: LODLevel[];
25
+ hysteresis: number;
26
+ transitionSpeed: number;
27
+ maxObjects: number;
28
+ }
29
+ declare class LODManager {
30
+ private config;
31
+ private objects;
32
+ private viewerPosition;
33
+ constructor(config?: Partial<LODConfig>);
34
+ register(id: string, position: [number, number, number], levels?: LODLevel[], bias?: number): LODObject;
35
+ unregister(id: string): boolean;
36
+ setViewerPosition(x: number, y: number, z: number): void;
37
+ update(dt: number): void;
38
+ getObject(id: string): LODObject | undefined;
39
+ getObjectCount(): number;
40
+ getLevelDistribution(): Map<number, number>;
41
+ getObjectsAtLevel(level: number): LODObject[];
42
+ getAverageLOD(): number;
43
+ }
44
+
45
+ /**
46
+ * OcclusionCulling.ts
47
+ *
48
+ * Visibility determination: frustum culling, AABB tests,
49
+ * portal-based occlusion, and query batching.
50
+ *
51
+ * @module world
52
+ */
53
+ interface AABB {
54
+ min: {
55
+ x: number;
56
+ y: number;
57
+ z: number;
58
+ };
59
+ max: {
60
+ x: number;
61
+ y: number;
62
+ z: number;
63
+ };
64
+ }
65
+ interface FrustumPlane {
66
+ normal: {
67
+ x: number;
68
+ y: number;
69
+ z: number;
70
+ };
71
+ distance: number;
72
+ }
73
+ interface CullableObject {
74
+ id: string;
75
+ bounds: AABB;
76
+ visible: boolean;
77
+ lastTestFrame: number;
78
+ layer: number;
79
+ }
80
+ interface OcclusionPortal {
81
+ id: string;
82
+ bounds: AABB;
83
+ connectedZones: [string, string];
84
+ open: boolean;
85
+ }
86
+ interface OcclusionZone {
87
+ id: string;
88
+ bounds: AABB;
89
+ objects: string[];
90
+ }
91
+ declare class OcclusionCulling {
92
+ private objects;
93
+ private zones;
94
+ private portals;
95
+ private frustumPlanes;
96
+ private currentFrame;
97
+ private visibleCount;
98
+ private culledCount;
99
+ private layerMask;
100
+ register(id: string, bounds: AABB, layer?: number): CullableObject;
101
+ unregister(id: string): boolean;
102
+ updateBounds(id: string, bounds: AABB): void;
103
+ addZone(id: string, bounds: AABB, objectIds?: string[]): void;
104
+ addPortal(id: string, bounds: AABB, zone1: string, zone2: string): void;
105
+ setPortalOpen(id: string, open: boolean): void;
106
+ setFrustum(planes: FrustumPlane[]): void;
107
+ setLayerMask(mask: number): void;
108
+ performCulling(): void;
109
+ private isInFrustum;
110
+ testAABBOverlap(a: AABB, b: AABB): boolean;
111
+ queryRegion(region: AABB): CullableObject[];
112
+ getVisibleZones(startZone: string): string[];
113
+ getVisibleObjects(): CullableObject[];
114
+ getVisibleCount(): number;
115
+ getCulledCount(): number;
116
+ getTotalCount(): number;
117
+ getCullRatio(): number;
118
+ getCurrentFrame(): number;
119
+ }
120
+
121
+ /**
122
+ * WorldStreamer.ts
123
+ *
124
+ * Chunk-based world streaming: loading/unloading by distance,
125
+ * async chunk generation, seamless transitions, and memory budgets.
126
+ *
127
+ * @module world
128
+ */
129
+ type ChunkState = 'unloaded' | 'loading' | 'loaded' | 'unloading';
130
+ interface WorldChunk {
131
+ id: string;
132
+ x: number;
133
+ z: number;
134
+ state: ChunkState;
135
+ data: Record<string, unknown> | null;
136
+ priority: number;
137
+ lastAccessTime: number;
138
+ size: number;
139
+ }
140
+ interface StreamingConfig {
141
+ chunkSize: number;
142
+ loadRadius: number;
143
+ unloadRadius: number;
144
+ maxConcurrentLoads: number;
145
+ memoryBudget: number;
146
+ }
147
+ declare class WorldStreamer {
148
+ private config;
149
+ private chunks;
150
+ private viewerPosition;
151
+ private totalMemory;
152
+ private loadQueue;
153
+ private activeLoads;
154
+ private chunkGenerator;
155
+ constructor(config?: Partial<StreamingConfig>);
156
+ setChunkGenerator(gen: (x: number, z: number) => Record<string, unknown>): void;
157
+ setViewerPosition(x: number, z: number): void;
158
+ update(): void;
159
+ private requestLoad;
160
+ private processLoadQueue;
161
+ private unloadChunk;
162
+ loadChunk(x: number, z: number): WorldChunk;
163
+ getChunk(x: number, z: number): WorldChunk | undefined;
164
+ getLoadedChunks(): WorldChunk[];
165
+ getLoadedCount(): number;
166
+ getTotalMemory(): number;
167
+ isOverBudget(): boolean;
168
+ getChunkSize(): number;
169
+ }
170
+
171
+ type index_AABB = AABB;
172
+ type index_ChunkState = ChunkState;
173
+ type index_CullableObject = CullableObject;
174
+ type index_FrustumPlane = FrustumPlane;
175
+ type index_LODConfig = LODConfig;
176
+ type index_LODLevel = LODLevel;
177
+ type index_LODManager = LODManager;
178
+ declare const index_LODManager: typeof LODManager;
179
+ type index_LODObject = LODObject;
180
+ type index_OcclusionCulling = OcclusionCulling;
181
+ declare const index_OcclusionCulling: typeof OcclusionCulling;
182
+ type index_OcclusionPortal = OcclusionPortal;
183
+ type index_OcclusionZone = OcclusionZone;
184
+ type index_StreamingConfig = StreamingConfig;
185
+ type index_WorldChunk = WorldChunk;
186
+ type index_WorldStreamer = WorldStreamer;
187
+ declare const index_WorldStreamer: typeof WorldStreamer;
188
+ declare namespace index {
189
+ export { type index_AABB as AABB, type index_ChunkState as ChunkState, type index_CullableObject as CullableObject, type index_FrustumPlane as FrustumPlane, type index_LODConfig as LODConfig, type index_LODLevel as LODLevel, index_LODManager as LODManager, type index_LODObject as LODObject, index_OcclusionCulling as OcclusionCulling, type index_OcclusionPortal as OcclusionPortal, type index_OcclusionZone as OcclusionZone, type index_StreamingConfig as StreamingConfig, type index_WorldChunk as WorldChunk, index_WorldStreamer as WorldStreamer };
190
+ }
191
+
192
+ export { type AABB as A, type ChunkState as C, type FrustumPlane as F, type LODConfig as L, OcclusionCulling as O, type StreamingConfig as S, type WorldChunk as W, type CullableObject as a, type LODLevel as b, LODManager as c, type LODObject as d, type OcclusionPortal as e, type OcclusionZone as f, WorldStreamer as g, index as i };
@@ -0,0 +1,192 @@
1
+ /**
2
+ * LODManager.ts
3
+ *
4
+ * Level-of-detail management: distance-based LOD selection,
5
+ * transition blending, hysteresis, and per-object bias config.
6
+ *
7
+ * @module world
8
+ */
9
+ interface LODLevel {
10
+ level: number;
11
+ maxDistance: number;
12
+ meshDetail: number;
13
+ }
14
+ interface LODObject {
15
+ id: string;
16
+ position: [number, number, number];
17
+ currentLevel: number;
18
+ levels: LODLevel[];
19
+ bias: number;
20
+ visible: boolean;
21
+ transitionAlpha: number;
22
+ }
23
+ interface LODConfig {
24
+ defaultLevels: LODLevel[];
25
+ hysteresis: number;
26
+ transitionSpeed: number;
27
+ maxObjects: number;
28
+ }
29
+ declare class LODManager {
30
+ private config;
31
+ private objects;
32
+ private viewerPosition;
33
+ constructor(config?: Partial<LODConfig>);
34
+ register(id: string, position: [number, number, number], levels?: LODLevel[], bias?: number): LODObject;
35
+ unregister(id: string): boolean;
36
+ setViewerPosition(x: number, y: number, z: number): void;
37
+ update(dt: number): void;
38
+ getObject(id: string): LODObject | undefined;
39
+ getObjectCount(): number;
40
+ getLevelDistribution(): Map<number, number>;
41
+ getObjectsAtLevel(level: number): LODObject[];
42
+ getAverageLOD(): number;
43
+ }
44
+
45
+ /**
46
+ * OcclusionCulling.ts
47
+ *
48
+ * Visibility determination: frustum culling, AABB tests,
49
+ * portal-based occlusion, and query batching.
50
+ *
51
+ * @module world
52
+ */
53
+ interface AABB {
54
+ min: {
55
+ x: number;
56
+ y: number;
57
+ z: number;
58
+ };
59
+ max: {
60
+ x: number;
61
+ y: number;
62
+ z: number;
63
+ };
64
+ }
65
+ interface FrustumPlane {
66
+ normal: {
67
+ x: number;
68
+ y: number;
69
+ z: number;
70
+ };
71
+ distance: number;
72
+ }
73
+ interface CullableObject {
74
+ id: string;
75
+ bounds: AABB;
76
+ visible: boolean;
77
+ lastTestFrame: number;
78
+ layer: number;
79
+ }
80
+ interface OcclusionPortal {
81
+ id: string;
82
+ bounds: AABB;
83
+ connectedZones: [string, string];
84
+ open: boolean;
85
+ }
86
+ interface OcclusionZone {
87
+ id: string;
88
+ bounds: AABB;
89
+ objects: string[];
90
+ }
91
+ declare class OcclusionCulling {
92
+ private objects;
93
+ private zones;
94
+ private portals;
95
+ private frustumPlanes;
96
+ private currentFrame;
97
+ private visibleCount;
98
+ private culledCount;
99
+ private layerMask;
100
+ register(id: string, bounds: AABB, layer?: number): CullableObject;
101
+ unregister(id: string): boolean;
102
+ updateBounds(id: string, bounds: AABB): void;
103
+ addZone(id: string, bounds: AABB, objectIds?: string[]): void;
104
+ addPortal(id: string, bounds: AABB, zone1: string, zone2: string): void;
105
+ setPortalOpen(id: string, open: boolean): void;
106
+ setFrustum(planes: FrustumPlane[]): void;
107
+ setLayerMask(mask: number): void;
108
+ performCulling(): void;
109
+ private isInFrustum;
110
+ testAABBOverlap(a: AABB, b: AABB): boolean;
111
+ queryRegion(region: AABB): CullableObject[];
112
+ getVisibleZones(startZone: string): string[];
113
+ getVisibleObjects(): CullableObject[];
114
+ getVisibleCount(): number;
115
+ getCulledCount(): number;
116
+ getTotalCount(): number;
117
+ getCullRatio(): number;
118
+ getCurrentFrame(): number;
119
+ }
120
+
121
+ /**
122
+ * WorldStreamer.ts
123
+ *
124
+ * Chunk-based world streaming: loading/unloading by distance,
125
+ * async chunk generation, seamless transitions, and memory budgets.
126
+ *
127
+ * @module world
128
+ */
129
+ type ChunkState = 'unloaded' | 'loading' | 'loaded' | 'unloading';
130
+ interface WorldChunk {
131
+ id: string;
132
+ x: number;
133
+ z: number;
134
+ state: ChunkState;
135
+ data: Record<string, unknown> | null;
136
+ priority: number;
137
+ lastAccessTime: number;
138
+ size: number;
139
+ }
140
+ interface StreamingConfig {
141
+ chunkSize: number;
142
+ loadRadius: number;
143
+ unloadRadius: number;
144
+ maxConcurrentLoads: number;
145
+ memoryBudget: number;
146
+ }
147
+ declare class WorldStreamer {
148
+ private config;
149
+ private chunks;
150
+ private viewerPosition;
151
+ private totalMemory;
152
+ private loadQueue;
153
+ private activeLoads;
154
+ private chunkGenerator;
155
+ constructor(config?: Partial<StreamingConfig>);
156
+ setChunkGenerator(gen: (x: number, z: number) => Record<string, unknown>): void;
157
+ setViewerPosition(x: number, z: number): void;
158
+ update(): void;
159
+ private requestLoad;
160
+ private processLoadQueue;
161
+ private unloadChunk;
162
+ loadChunk(x: number, z: number): WorldChunk;
163
+ getChunk(x: number, z: number): WorldChunk | undefined;
164
+ getLoadedChunks(): WorldChunk[];
165
+ getLoadedCount(): number;
166
+ getTotalMemory(): number;
167
+ isOverBudget(): boolean;
168
+ getChunkSize(): number;
169
+ }
170
+
171
+ type index_AABB = AABB;
172
+ type index_ChunkState = ChunkState;
173
+ type index_CullableObject = CullableObject;
174
+ type index_FrustumPlane = FrustumPlane;
175
+ type index_LODConfig = LODConfig;
176
+ type index_LODLevel = LODLevel;
177
+ type index_LODManager = LODManager;
178
+ declare const index_LODManager: typeof LODManager;
179
+ type index_LODObject = LODObject;
180
+ type index_OcclusionCulling = OcclusionCulling;
181
+ declare const index_OcclusionCulling: typeof OcclusionCulling;
182
+ type index_OcclusionPortal = OcclusionPortal;
183
+ type index_OcclusionZone = OcclusionZone;
184
+ type index_StreamingConfig = StreamingConfig;
185
+ type index_WorldChunk = WorldChunk;
186
+ type index_WorldStreamer = WorldStreamer;
187
+ declare const index_WorldStreamer: typeof WorldStreamer;
188
+ declare namespace index {
189
+ export { type index_AABB as AABB, type index_ChunkState as ChunkState, type index_CullableObject as CullableObject, type index_FrustumPlane as FrustumPlane, type index_LODConfig as LODConfig, type index_LODLevel as LODLevel, index_LODManager as LODManager, type index_LODObject as LODObject, index_OcclusionCulling as OcclusionCulling, type index_OcclusionPortal as OcclusionPortal, type index_OcclusionZone as OcclusionZone, type index_StreamingConfig as StreamingConfig, type index_WorldChunk as WorldChunk, index_WorldStreamer as WorldStreamer };
190
+ }
191
+
192
+ export { type AABB as A, type ChunkState as C, type FrustumPlane as F, type LODConfig as L, OcclusionCulling as O, type StreamingConfig as S, type WorldChunk as W, type CullableObject as a, type LODLevel as b, LODManager as c, type LODObject as d, type OcclusionPortal as e, type OcclusionZone as f, WorldStreamer as g, index as i };