gaussian-splat-lite 1.2.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/CHANGELOG.md +32 -2
  2. package/CONTRIBUTING.md +4 -2
  3. package/README.md +4 -3
  4. package/dist/gaussian-splat-lite.cjs +6379 -1441
  5. package/dist/gaussian-splat-lite.cjs.map +1 -1
  6. package/dist/gaussian-splat-lite.min.cjs +978 -11
  7. package/dist/gaussian-splat-lite.min.cjs.map +1 -1
  8. package/dist/gaussian-splat-lite.module.js +5920 -982
  9. package/dist/gaussian-splat-lite.module.js.map +1 -1
  10. package/dist/gaussian-splat-lite.module.min.js +7882 -3373
  11. package/dist/gaussian-splat-lite.module.min.js.map +1 -1
  12. package/dist/types/addons/NeuralDenoiseNode.d.cts +72 -0
  13. package/dist/types/addons/NeuralDenoiseNode.d.ts +72 -0
  14. package/dist/types/addons/NeuralDenoisePass.d.cts +34 -0
  15. package/dist/types/addons/NeuralDenoisePass.d.ts +34 -0
  16. package/dist/types/addons/TAANode.d.cts +46 -33
  17. package/dist/types/addons/TAANode.d.ts +46 -33
  18. package/dist/types/addons/TAAPass.d.cts +47 -32
  19. package/dist/types/addons/TAAPass.d.ts +47 -32
  20. package/dist/types/addons/neuralDenoiseGL.d.cts +25 -0
  21. package/dist/types/addons/neuralDenoiseGL.d.ts +25 -0
  22. package/dist/types/addons/neuralDenoiseGLSL.d.cts +8 -0
  23. package/dist/types/addons/neuralDenoiseGLSL.d.ts +8 -0
  24. package/dist/types/addons/neuralDenoisePasses.d.cts +26 -0
  25. package/dist/types/addons/neuralDenoisePasses.d.ts +26 -0
  26. package/dist/types/addons/neuralDenoiseShaders.d.cts +38 -0
  27. package/dist/types/addons/neuralDenoiseShaders.d.ts +38 -0
  28. package/dist/types/addons/neuralDenoiseWeights.d.cts +118 -0
  29. package/dist/types/addons/neuralDenoiseWeights.d.ts +118 -0
  30. package/dist/types/addons/stochasticCoverage.d.cts +14 -0
  31. package/dist/types/addons/stochasticCoverage.d.ts +14 -0
  32. package/dist/types/addons/taaShared.d.cts +58 -39
  33. package/dist/types/addons/taaShared.d.ts +58 -39
  34. package/dist/types/capture/SplatCapture.d.cts +54 -53
  35. package/dist/types/capture/SplatCapture.d.ts +54 -53
  36. package/dist/types/capture/WebGLCapture.d.cts +10 -10
  37. package/dist/types/capture/WebGLCapture.d.ts +10 -10
  38. package/dist/types/capture/WebGPUCapture.d.cts +14 -14
  39. package/dist/types/capture/WebGPUCapture.d.ts +14 -14
  40. package/dist/types/capture/pixels.d.cts +15 -4
  41. package/dist/types/capture/pixels.d.ts +15 -4
  42. package/dist/types/capture/rendererState.d.cts +5 -2
  43. package/dist/types/capture/rendererState.d.ts +5 -2
  44. package/dist/types/data/IndexedSplats.d.cts +76 -58
  45. package/dist/types/data/IndexedSplats.d.ts +76 -58
  46. package/dist/types/data/RadPagedSplats.d.cts +65 -61
  47. package/dist/types/data/RadPagedSplats.d.ts +65 -61
  48. package/dist/types/data/SogRegionSplats.d.cts +25 -19
  49. package/dist/types/data/SogRegionSplats.d.ts +25 -19
  50. package/dist/types/data/SplatOpacityTable.d.cts +29 -29
  51. package/dist/types/data/SplatOpacityTable.d.ts +29 -29
  52. package/dist/types/data/Splats.d.cts +99 -69
  53. package/dist/types/data/Splats.d.ts +99 -69
  54. package/dist/types/data/defines.d.cts +24 -24
  55. package/dist/types/data/defines.d.ts +24 -24
  56. package/dist/types/data/raycast.d.cts +13 -9
  57. package/dist/types/data/raycast.d.ts +13 -9
  58. package/dist/types/data/splatCodec.d.cts +29 -5
  59. package/dist/types/data/splatCodec.d.ts +29 -5
  60. package/dist/types/data/splatData.d.cts +18 -11
  61. package/dist/types/data/splatData.d.ts +18 -11
  62. package/dist/types/data/splatRange.d.cts +6 -2
  63. package/dist/types/data/splatRange.d.ts +6 -2
  64. package/dist/types/data/textureLayout.d.cts +9 -6
  65. package/dist/types/data/textureLayout.d.ts +9 -6
  66. package/dist/types/data/unpack.d.cts +16 -9
  67. package/dist/types/data/unpack.d.ts +16 -9
  68. package/dist/types/index.d.cts +65 -19
  69. package/dist/types/index.d.ts +65 -19
  70. package/dist/types/loaders/SplatLoader.d.cts +27 -14
  71. package/dist/types/loaders/SplatLoader.d.ts +27 -14
  72. package/dist/types/loaders/loadSplatData.d.cts +35 -17
  73. package/dist/types/loaders/loadSplatData.d.ts +35 -17
  74. package/dist/types/loaders/loadTypes.d.cts +46 -40
  75. package/dist/types/loaders/loadTypes.d.ts +46 -40
  76. package/dist/types/loaders/morton.d.cts +9 -3
  77. package/dist/types/loaders/morton.d.ts +9 -3
  78. package/dist/types/loaders/postDecode/builder.d.cts +222 -127
  79. package/dist/types/loaders/postDecode/builder.d.ts +222 -127
  80. package/dist/types/loaders/postDecode/compiler.d.cts +25 -11
  81. package/dist/types/loaders/postDecode/compiler.d.ts +25 -11
  82. package/dist/types/loaders/postDecode/operations.d.cts +22 -3
  83. package/dist/types/loaders/postDecode/operations.d.ts +22 -3
  84. package/dist/types/loaders/postDecode/optimizer.d.cts +5 -2
  85. package/dist/types/loaders/postDecode/optimizer.d.ts +5 -2
  86. package/dist/types/loaders/postDecode/program.d.cts +13 -6
  87. package/dist/types/loaders/postDecode/program.d.ts +13 -6
  88. package/dist/types/loaders/postDecode/protocol.d.cts +136 -111
  89. package/dist/types/loaders/postDecode/protocol.d.ts +136 -111
  90. package/dist/types/loaders/postDecode/registers.d.cts +12 -7
  91. package/dist/types/loaders/postDecode/registers.d.ts +12 -7
  92. package/dist/types/loaders/postDecode/runtime.d.cts +9 -2
  93. package/dist/types/loaders/postDecode/runtime.d.ts +9 -2
  94. package/dist/types/loaders/rad/RadSource.d.cts +81 -66
  95. package/dist/types/loaders/rad/RadSource.d.ts +81 -66
  96. package/dist/types/loaders/rad/radFormat.d.cts +41 -36
  97. package/dist/types/loaders/rad/radFormat.d.ts +41 -36
  98. package/dist/types/loaders/rad.d.cts +4 -4
  99. package/dist/types/loaders/rad.d.ts +4 -4
  100. package/dist/types/loaders/sog/SogSource.d.cts +14 -4
  101. package/dist/types/loaders/sog/SogSource.d.ts +14 -4
  102. package/dist/types/loaders/sog/sogZip.d.cts +12 -12
  103. package/dist/types/loaders/sog/sogZip.d.ts +12 -12
  104. package/dist/types/loaders/sog.d.cts +3 -3
  105. package/dist/types/loaders/sog.d.ts +3 -3
  106. package/dist/types/loaders/source.d.cts +43 -15
  107. package/dist/types/loaders/source.d.ts +43 -15
  108. package/dist/types/loaders/stream/StreamByteBudget.d.cts +4 -4
  109. package/dist/types/loaders/stream/StreamByteBudget.d.ts +4 -4
  110. package/dist/types/loaders/stream/StreamCameras.d.cts +27 -18
  111. package/dist/types/loaders/stream/StreamCameras.d.ts +27 -18
  112. package/dist/types/loaders/stream/StreamWorkerPool.d.cts +37 -34
  113. package/dist/types/loaders/stream/StreamWorkerPool.d.ts +37 -34
  114. package/dist/types/loaders/stream/rad-stream/RadSelectionState.d.cts +15 -11
  115. package/dist/types/loaders/stream/rad-stream/RadSelectionState.d.ts +15 -11
  116. package/dist/types/loaders/stream/rad-stream/RadStreamBatch.d.cts +13 -9
  117. package/dist/types/loaders/stream/rad-stream/RadStreamBatch.d.ts +13 -9
  118. package/dist/types/loaders/stream/rad-stream/RadStreamLoader.d.cts +64 -49
  119. package/dist/types/loaders/stream/rad-stream/RadStreamLoader.d.ts +64 -49
  120. package/dist/types/loaders/stream/rad-stream/RadStreamScheduler.d.cts +110 -102
  121. package/dist/types/loaders/stream/rad-stream/RadStreamScheduler.d.ts +110 -102
  122. package/dist/types/loaders/stream/rad-stream/RadStreamWorker.d.cts +3 -3
  123. package/dist/types/loaders/stream/rad-stream/RadStreamWorker.d.ts +3 -3
  124. package/dist/types/loaders/stream/rad-stream/prepareRadSelection.d.cts +27 -15
  125. package/dist/types/loaders/stream/rad-stream/prepareRadSelection.d.ts +27 -15
  126. package/dist/types/loaders/stream/rad-stream/radFade.d.cts +13 -8
  127. package/dist/types/loaders/stream/rad-stream/radFade.d.ts +13 -8
  128. package/dist/types/loaders/stream/rad-stream/radLod.d.cts +26 -26
  129. package/dist/types/loaders/stream/rad-stream/radLod.d.ts +26 -26
  130. package/dist/types/loaders/stream/rad-stream/worker.d.cts +3 -59
  131. package/dist/types/loaders/stream/rad-stream/worker.d.ts +3 -59
  132. package/dist/types/loaders/stream/rad-stream/workerHandlers.d.cts +85 -59
  133. package/dist/types/loaders/stream/rad-stream/workerHandlers.d.ts +85 -59
  134. package/dist/types/loaders/stream/sog-stream/SogStreamBatch.d.cts +17 -12
  135. package/dist/types/loaders/stream/sog-stream/SogStreamBatch.d.ts +17 -12
  136. package/dist/types/loaders/stream/sog-stream/SogStreamLoader.d.cts +56 -41
  137. package/dist/types/loaders/stream/sog-stream/SogStreamLoader.d.ts +56 -41
  138. package/dist/types/loaders/stream/sog-stream/SogStreamScheduler.d.cts +82 -81
  139. package/dist/types/loaders/stream/sog-stream/SogStreamScheduler.d.ts +82 -81
  140. package/dist/types/loaders/stream/sog-stream/SogStreamWorker.d.cts +3 -3
  141. package/dist/types/loaders/stream/sog-stream/SogStreamWorker.d.ts +3 -3
  142. package/dist/types/loaders/stream/sog-stream/sogLod.d.cts +59 -44
  143. package/dist/types/loaders/stream/sog-stream/sogLod.d.ts +59 -44
  144. package/dist/types/loaders/stream/sog-stream/sogVisibility.d.cts +30 -22
  145. package/dist/types/loaders/stream/sog-stream/sogVisibility.d.ts +30 -22
  146. package/dist/types/loaders/stream/sog-stream/worker.d.cts +7 -40
  147. package/dist/types/loaders/stream/sog-stream/worker.d.ts +7 -40
  148. package/dist/types/loaders/stream/sog-stream/workerHandlers.d.cts +69 -44
  149. package/dist/types/loaders/stream/sog-stream/workerHandlers.d.ts +69 -44
  150. package/dist/types/loaders/stream/streamOptions.d.cts +41 -32
  151. package/dist/types/loaders/stream/streamOptions.d.ts +41 -32
  152. package/dist/types/loaders/workerDecode.d.cts +30 -12
  153. package/dist/types/loaders/workerDecode.d.ts +30 -12
  154. package/dist/types/patches/threeR186.d.cts +3 -0
  155. package/dist/types/patches/threeR186.d.ts +3 -0
  156. package/dist/types/rendering/GaussianSplatRenderer.d.cts +393 -376
  157. package/dist/types/rendering/GaussianSplatRenderer.d.ts +393 -376
  158. package/dist/types/rendering/MaterialState.d.cts +9 -0
  159. package/dist/types/rendering/MaterialState.d.ts +9 -0
  160. package/dist/types/rendering/SortCenterCache.d.cts +17 -17
  161. package/dist/types/rendering/SortCenterCache.d.ts +17 -17
  162. package/dist/types/rendering/SplatAccumulator.d.cts +93 -77
  163. package/dist/types/rendering/SplatAccumulator.d.ts +93 -77
  164. package/dist/types/rendering/SplatGeometry.d.cts +2 -2
  165. package/dist/types/rendering/SplatGeometry.d.ts +2 -2
  166. package/dist/types/rendering/StochasticSplatMaterial.d.cts +14 -0
  167. package/dist/types/rendering/StochasticSplatMaterial.d.ts +14 -0
  168. package/dist/types/rendering/backend.d.cts +30 -18
  169. package/dist/types/rendering/backend.d.ts +30 -18
  170. package/dist/types/rendering/blueNoise.d.cts +1 -1
  171. package/dist/types/rendering/blueNoise.d.ts +1 -1
  172. package/dist/types/rendering/rendererUtils.d.cts +25 -10
  173. package/dist/types/rendering/rendererUtils.d.ts +25 -10
  174. package/dist/types/rendering/tsl/GenerateProgram.d.cts +19 -17
  175. package/dist/types/rendering/tsl/GenerateProgram.d.ts +19 -17
  176. package/dist/types/rendering/tsl/ProjectionProgram.d.cts +38 -33
  177. package/dist/types/rendering/tsl/ProjectionProgram.d.ts +38 -33
  178. package/dist/types/rendering/tsl/SplatBackend.d.cts +22 -10
  179. package/dist/types/rendering/tsl/SplatBackend.d.ts +22 -10
  180. package/dist/types/rendering/tsl/SplatMaterial.d.cts +38 -25
  181. package/dist/types/rendering/tsl/SplatMaterial.d.ts +38 -25
  182. package/dist/types/rendering/tsl/shaderUtils.d.cts +55 -17
  183. package/dist/types/rendering/tsl/shaderUtils.d.ts +55 -17
  184. package/dist/types/rendering/tsl/stochasticCoverage.d.cts +7 -0
  185. package/dist/types/rendering/tsl/stochasticCoverage.d.ts +7 -0
  186. package/dist/types/rendering/tsl/viewUniforms.d.cts +19 -9
  187. package/dist/types/rendering/tsl/viewUniforms.d.ts +19 -9
  188. package/dist/types/rendering/uniforms.d.cts +83 -83
  189. package/dist/types/rendering/uniforms.d.ts +83 -83
  190. package/dist/types/rendering/webgl/AccumulatorGenerator.d.cts +28 -12
  191. package/dist/types/rendering/webgl/AccumulatorGenerator.d.ts +28 -12
  192. package/dist/types/rendering/webgl/OrderingTexture.d.cts +10 -7
  193. package/dist/types/rendering/webgl/OrderingTexture.d.ts +10 -7
  194. package/dist/types/rendering/webgl/SplatBackend.d.cts +20 -15
  195. package/dist/types/rendering/webgl/SplatBackend.d.ts +20 -15
  196. package/dist/types/rendering/webgl/SplatMaterial.d.cts +9 -4
  197. package/dist/types/rendering/webgl/SplatMaterial.d.ts +9 -4
  198. package/dist/types/rendering/webgl/textureUtils.d.cts +10 -3
  199. package/dist/types/rendering/webgl/textureUtils.d.ts +10 -3
  200. package/dist/types/rendering/webgl-fallback/AccumulatorGenerator.d.cts +8 -10
  201. package/dist/types/rendering/webgl-fallback/AccumulatorGenerator.d.ts +8 -10
  202. package/dist/types/rendering/webgl-fallback/SplatBackend.d.cts +18 -14
  203. package/dist/types/rendering/webgl-fallback/SplatBackend.d.ts +18 -14
  204. package/dist/types/rendering/webgpu/ProjectedSplats.d.cts +76 -66
  205. package/dist/types/rendering/webgpu/ProjectedSplats.d.ts +76 -66
  206. package/dist/types/rendering/webgpu/ProjectionCache.d.cts +43 -28
  207. package/dist/types/rendering/webgpu/ProjectionCache.d.ts +43 -28
  208. package/dist/types/rendering/webgpu/ProjectionKernel.d.cts +22 -0
  209. package/dist/types/rendering/webgpu/ProjectionKernel.d.ts +22 -0
  210. package/dist/types/rendering/webgpu/RadixSort.d.cts +44 -40
  211. package/dist/types/rendering/webgpu/RadixSort.d.ts +44 -40
  212. package/dist/types/rendering/webgpu/SplatBackend.d.cts +14 -12
  213. package/dist/types/rendering/webgpu/SplatBackend.d.ts +14 -12
  214. package/dist/types/runtime/SplatWorker.d.cts +17 -13
  215. package/dist/types/runtime/SplatWorker.d.ts +17 -13
  216. package/dist/types/runtime/WorkerRpc.d.cts +26 -20
  217. package/dist/types/runtime/WorkerRpc.d.ts +26 -20
  218. package/dist/types/runtime/abort.d.cts +10 -5
  219. package/dist/types/runtime/abort.d.ts +10 -5
  220. package/dist/types/runtime/retry.d.cts +6 -6
  221. package/dist/types/runtime/retry.d.ts +6 -6
  222. package/dist/types/runtime/wasmCall.d.cts +3 -3
  223. package/dist/types/runtime/wasmCall.d.ts +3 -3
  224. package/dist/types/runtime/worker.d.cts +44 -24
  225. package/dist/types/runtime/worker.d.ts +44 -24
  226. package/dist/types/runtime/workerServer.d.cts +3 -1
  227. package/dist/types/runtime/workerServer.d.ts +3 -1
  228. package/dist/types/scene/SplatEdit.d.cts +74 -67
  229. package/dist/types/scene/SplatEdit.d.ts +74 -67
  230. package/dist/types/scene/SplatMesh.d.cts +92 -70
  231. package/dist/types/scene/SplatMesh.d.ts +92 -70
  232. package/dist/types/utils/index.d.cts +15 -7
  233. package/dist/types/utils/index.d.ts +15 -7
  234. package/dist/types/utils/three.d.cts +3 -3
  235. package/dist/types/utils/three.d.ts +3 -3
  236. package/dist/types/utils/transforms.d.cts +10 -3
  237. package/dist/types/utils/transforms.d.ts +10 -3
  238. package/docs/GaussianSplatRenderer.md +3 -1
  239. package/docs/NeuralDenoiseNode.md +148 -0
  240. package/docs/SplatMesh.md +1 -1
  241. package/docs/StochasticRendering.md +36 -10
  242. package/docs/TAAPass.md +20 -3
  243. package/package.json +9 -11
  244. package/dist/types/capture/sceneView.d.cts +0 -3
  245. package/dist/types/capture/sceneView.d.ts +0 -3
  246. package/dist/types/rendering/tsl/tslCompat.d.cts +0 -68
  247. package/dist/types/rendering/tsl/tslCompat.d.ts +0 -68
  248. package/docs/Architecture.md +0 -200
@@ -1,54 +1,60 @@
1
- import { SerializedSplatPostDecode } from './postDecode/protocol.cjs';
1
+ import type { SerializedSplatPostDecode } from "./postDecode/protocol.cjs";
2
2
  export type SplatLoadStage = "download" | "postDecode" | "optimize";
3
3
  /** loaded/total describe the current stage; only download uses bytes. */
4
4
  export type SplatProgressEvent = ProgressEvent & {
5
- readonly stage: SplatLoadStage;
5
+ readonly stage: SplatLoadStage;
6
6
  };
7
7
  export type SplatFileInput = string | Blob | Uint8Array | ArrayBuffer;
8
8
  /** Resolves an external SOG image or RAD page named by its metadata. */
9
- export type SplatFileResolver = (filename: string, signal: AbortSignal) => SplatFileInput | Promise<SplatFileInput>;
9
+ export type SplatFileResolver = (
10
+ filename: string,
11
+ signal: AbortSignal,
12
+ ) => SplatFileInput | Promise<SplatFileInput>;
10
13
  export type SplatRequestOptions = {
11
- requestHeader?: Record<string, string>;
12
- withCredentials?: boolean;
14
+ requestHeader?: Record<string, string>;
15
+ withCredentials?: boolean;
13
16
  };
14
17
  /** Format loaders share transport and resolver inputs; decoding stays format-specific. */
15
18
  export type SplatSourceArgs = SplatRequestOptions & {
16
- url?: string;
17
- file?: Blob;
18
- fileBytes?: Uint8Array;
19
- readChunk?: () => Promise<Uint8Array | undefined>;
20
- baseUrl?: string;
21
- resolveFile?: SplatFileResolver;
22
- resolveAsset?: (url: string) => Promise<string>;
23
- signal?: AbortSignal;
24
- sendStatus: (status: {
25
- loaded: number;
26
- total: number;
27
- }) => void;
19
+ url?: string;
20
+ file?: Blob;
21
+ fileBytes?: Uint8Array;
22
+ readChunk?: () => Promise<Uint8Array | undefined>;
23
+ baseUrl?: string;
24
+ resolveFile?: SplatFileResolver;
25
+ resolveAsset?: (url: string) => Promise<string>;
26
+ signal?: AbortSignal;
27
+ sendStatus: (status: {
28
+ loaded: number;
29
+ total: number;
30
+ }) => void;
28
31
  };
29
32
  /** Shared input contract for worker-side decoding. */
30
33
  export type SplatLoadArgs = SplatRequestOptions & {
31
- url?: string;
32
- file?: Blob;
33
- fileBytes?: Uint8Array;
34
- fileType?: string;
35
- pathName?: string;
36
- baseUrl?: string;
37
- postDecode?: SerializedSplatPostDecode;
38
- expectedSogCount?: number;
39
- hasFileResolver?: boolean;
40
- /** Request processing progress; streaming loaders only track downloaded bytes. */
41
- reportProcessingProgress?: boolean;
42
- signal?: AbortSignal;
43
- };
44
- export type SplatLoadStatus = {
45
- loaded: number;
46
- total: number;
47
- stage?: SplatLoadStage;
48
- } | {
49
- assetRequest: number;
50
- url: string;
51
- } | {
52
- fileRequest: number;
53
- filename: string;
34
+ url?: string;
35
+ file?: Blob;
36
+ fileBytes?: Uint8Array;
37
+ fileType?: string;
38
+ pathName?: string;
39
+ baseUrl?: string;
40
+ postDecode?: SerializedSplatPostDecode;
41
+ expectedSogCount?: number;
42
+ hasFileResolver?: boolean;
43
+ /** Request processing progress; streaming loaders only track downloaded bytes. */
44
+ reportProcessingProgress?: boolean;
45
+ signal?: AbortSignal;
54
46
  };
47
+ export type SplatLoadStatus =
48
+ | {
49
+ loaded: number;
50
+ total: number;
51
+ stage?: SplatLoadStage;
52
+ }
53
+ | {
54
+ assetRequest: number;
55
+ url: string;
56
+ }
57
+ | {
58
+ fileRequest: number;
59
+ filename: string;
60
+ };
@@ -1,54 +1,60 @@
1
- import { SerializedSplatPostDecode } from './postDecode/protocol';
1
+ import type { SerializedSplatPostDecode } from "./postDecode/protocol.js";
2
2
  export type SplatLoadStage = "download" | "postDecode" | "optimize";
3
3
  /** loaded/total describe the current stage; only download uses bytes. */
4
4
  export type SplatProgressEvent = ProgressEvent & {
5
- readonly stage: SplatLoadStage;
5
+ readonly stage: SplatLoadStage;
6
6
  };
7
7
  export type SplatFileInput = string | Blob | Uint8Array | ArrayBuffer;
8
8
  /** Resolves an external SOG image or RAD page named by its metadata. */
9
- export type SplatFileResolver = (filename: string, signal: AbortSignal) => SplatFileInput | Promise<SplatFileInput>;
9
+ export type SplatFileResolver = (
10
+ filename: string,
11
+ signal: AbortSignal,
12
+ ) => SplatFileInput | Promise<SplatFileInput>;
10
13
  export type SplatRequestOptions = {
11
- requestHeader?: Record<string, string>;
12
- withCredentials?: boolean;
14
+ requestHeader?: Record<string, string>;
15
+ withCredentials?: boolean;
13
16
  };
14
17
  /** Format loaders share transport and resolver inputs; decoding stays format-specific. */
15
18
  export type SplatSourceArgs = SplatRequestOptions & {
16
- url?: string;
17
- file?: Blob;
18
- fileBytes?: Uint8Array;
19
- readChunk?: () => Promise<Uint8Array | undefined>;
20
- baseUrl?: string;
21
- resolveFile?: SplatFileResolver;
22
- resolveAsset?: (url: string) => Promise<string>;
23
- signal?: AbortSignal;
24
- sendStatus: (status: {
25
- loaded: number;
26
- total: number;
27
- }) => void;
19
+ url?: string;
20
+ file?: Blob;
21
+ fileBytes?: Uint8Array;
22
+ readChunk?: () => Promise<Uint8Array | undefined>;
23
+ baseUrl?: string;
24
+ resolveFile?: SplatFileResolver;
25
+ resolveAsset?: (url: string) => Promise<string>;
26
+ signal?: AbortSignal;
27
+ sendStatus: (status: {
28
+ loaded: number;
29
+ total: number;
30
+ }) => void;
28
31
  };
29
32
  /** Shared input contract for worker-side decoding. */
30
33
  export type SplatLoadArgs = SplatRequestOptions & {
31
- url?: string;
32
- file?: Blob;
33
- fileBytes?: Uint8Array;
34
- fileType?: string;
35
- pathName?: string;
36
- baseUrl?: string;
37
- postDecode?: SerializedSplatPostDecode;
38
- expectedSogCount?: number;
39
- hasFileResolver?: boolean;
40
- /** Request processing progress; streaming loaders only track downloaded bytes. */
41
- reportProcessingProgress?: boolean;
42
- signal?: AbortSignal;
43
- };
44
- export type SplatLoadStatus = {
45
- loaded: number;
46
- total: number;
47
- stage?: SplatLoadStage;
48
- } | {
49
- assetRequest: number;
50
- url: string;
51
- } | {
52
- fileRequest: number;
53
- filename: string;
34
+ url?: string;
35
+ file?: Blob;
36
+ fileBytes?: Uint8Array;
37
+ fileType?: string;
38
+ pathName?: string;
39
+ baseUrl?: string;
40
+ postDecode?: SerializedSplatPostDecode;
41
+ expectedSogCount?: number;
42
+ hasFileResolver?: boolean;
43
+ /** Request processing progress; streaming loaders only track downloaded bytes. */
44
+ reportProcessingProgress?: boolean;
45
+ signal?: AbortSignal;
54
46
  };
47
+ export type SplatLoadStatus =
48
+ | {
49
+ loaded: number;
50
+ total: number;
51
+ stage?: SplatLoadStage;
52
+ }
53
+ | {
54
+ assetRequest: number;
55
+ url: string;
56
+ }
57
+ | {
58
+ fileRequest: number;
59
+ filename: string;
60
+ };
@@ -1,7 +1,13 @@
1
- import { ReorderedSplatResult, SplatResult } from '../data/defines.cjs';
1
+ import type { ReorderedSplatResult, SplatResult } from "../data/defines.cjs";
2
2
  /** Reorder packed attributes together and retain their original source indices. */
3
- export declare function reorderSplats(data: SplatResult, boundsBlocks?: Float32Array, onProgress?: (loaded: number, total: number) => void): asserts data is ReorderedSplatResult;
3
+ export declare function reorderSplats(
4
+ data: SplatResult,
5
+ boundsBlocks?: Float32Array,
6
+ onProgress?: (loaded: number, total: number) => void,
7
+ ): asserts data is ReorderedSplatResult;
4
8
  /** Restore packed chunk file order bit for bit; discard unused sort centers. */
5
9
  export declare function restoreSplatOrder(data: SplatResult): void;
6
10
  /** Original index to storage index; chunk ranges require a complete permutation. */
7
- export declare function invertSplatOrder(order: Uint32Array): Uint32Array<ArrayBuffer>;
11
+ export declare function invertSplatOrder(
12
+ order: Uint32Array,
13
+ ): Uint32Array<ArrayBuffer>;
@@ -1,7 +1,13 @@
1
- import { ReorderedSplatResult, SplatResult } from '../data/defines';
1
+ import type { ReorderedSplatResult, SplatResult } from "../data/defines.js";
2
2
  /** Reorder packed attributes together and retain their original source indices. */
3
- export declare function reorderSplats(data: SplatResult, boundsBlocks?: Float32Array, onProgress?: (loaded: number, total: number) => void): asserts data is ReorderedSplatResult;
3
+ export declare function reorderSplats(
4
+ data: SplatResult,
5
+ boundsBlocks?: Float32Array,
6
+ onProgress?: (loaded: number, total: number) => void,
7
+ ): asserts data is ReorderedSplatResult;
4
8
  /** Restore packed chunk file order bit for bit; discard unused sort centers. */
5
9
  export declare function restoreSplatOrder(data: SplatResult): void;
6
10
  /** Original index to storage index; chunk ranges require a complete permutation. */
7
- export declare function invertSplatOrder(order: Uint32Array): Uint32Array<ArrayBuffer>;
11
+ export declare function invertSplatOrder(
12
+ order: Uint32Array,
13
+ ): Uint32Array<ArrayBuffer>;
@@ -1,14 +1,24 @@
1
- import { AttributeBinding, AttributeComponents, InputField, SplatPostDecodeAttributeFormat, SplatPostDecodeInstruction, SplatPostDecodeOutputs, SplatPostDecodeValueType } from './protocol.cjs';
1
+ import type {
2
+ AttributeBinding,
3
+ AttributeComponents,
4
+ InputField,
5
+ SplatPostDecodeAttributeFormat,
6
+ SplatPostDecodeInstruction,
7
+ SplatPostDecodeOutputs,
8
+ SplatPostDecodeValueType,
9
+ } from "./protocol.cjs";
2
10
  type NumericValueType = "float" | "vec2" | "vec3" | "vec4";
3
11
  type VectorValueType = "vec2" | "vec3" | "vec4";
4
12
  declare class SplatPostDecodeValue<T extends SplatPostDecodeValueType> {
5
- readonly type: T;
6
- /** @internal */ readonly register: number;
7
- /** @internal */ readonly owner: ProgramBuilder;
8
- /** @internal */
9
- constructor(type: T,
10
- /** @internal */ register: number,
11
- /** @internal */ owner: ProgramBuilder);
13
+ readonly type: T;
14
+ /** @internal */ readonly register: number;
15
+ /** @internal */ readonly owner: ProgramBuilder;
16
+ /** @internal */
17
+ constructor(
18
+ type: T,
19
+ /** @internal */ register: number,
20
+ /** @internal */ owner: ProgramBuilder,
21
+ );
12
22
  }
13
23
  type FloatValue = SplatPostDecodeValue<"float">;
14
24
  type BoolValue = SplatPostDecodeValue<"bool">;
@@ -25,141 +35,226 @@ type Vec2Like = Vec2Literal | Vec2Value;
25
35
  type Vec3Like = Vec3Literal | Vec3Value;
26
36
  type Vec4Like = Vec4Literal | Vec4Value;
27
37
  type QuaternionLike = Vec4Literal | QuaternionValue;
28
- type LiteralFor<T extends SplatPostDecodeValueType> = T extends "float" ? number : T extends "bool" ? boolean : T extends "vec2" ? Vec2Literal : T extends "vec3" ? Vec3Literal : Vec4Literal;
29
- type ValueLike<T extends SplatPostDecodeValueType> = LiteralFor<T> | SplatPostDecodeValue<T>;
38
+ type LiteralFor<T extends SplatPostDecodeValueType> = T extends "float"
39
+ ? number
40
+ : T extends "bool"
41
+ ? boolean
42
+ : T extends "vec2"
43
+ ? Vec2Literal
44
+ : T extends "vec3"
45
+ ? Vec3Literal
46
+ : Vec4Literal;
47
+ type ValueLike<T extends SplatPostDecodeValueType> =
48
+ | LiteralFor<T>
49
+ | SplatPostDecodeValue<T>;
30
50
  type BroadcastLike<T extends NumericValueType> = ValueLike<T> | FloatLike;
31
- type SplatPostDecodeAttributeOptions<Components extends AttributeComponents = 1> = {
32
- data: ArrayBufferView;
33
- format: SplatPostDecodeAttributeFormat;
34
- count: number;
35
- components?: Components;
36
- /** Byte offset relative to the supplied data view. */
37
- byteOffset?: number;
38
- byteStride?: number;
51
+ type SplatPostDecodeAttributeOptions<
52
+ Components extends AttributeComponents = 1,
53
+ > = {
54
+ data: ArrayBufferView;
55
+ format: SplatPostDecodeAttributeFormat;
56
+ count: number;
57
+ components?: Components;
58
+ /** Byte offset relative to the supplied data view. */
59
+ byteOffset?: number;
60
+ byteStride?: number;
39
61
  };
40
- type AttributeValue<Components extends AttributeComponents> = Components extends 1 ? FloatValue : Components extends 2 ? Vec2Value : Components extends 3 ? Vec3Value : Vec4Value;
62
+ type AttributeValue<Components extends AttributeComponents> =
63
+ Components extends 1
64
+ ? FloatValue
65
+ : Components extends 2
66
+ ? Vec2Value
67
+ : Components extends 3
68
+ ? Vec3Value
69
+ : Vec4Value;
41
70
  type SplatShCoefficientContext = {
42
- index: number;
43
- degree: 1 | 2 | 3;
44
- order: number;
71
+ index: number;
72
+ degree: 1 | 2 | 3;
73
+ order: number;
45
74
  };
46
75
  declare class SplatPostDecodeShPatch {
47
- /** @internal */ readonly owner: ProgramBuilder;
48
- /** @internal */ readonly coefficients: readonly Vec3Value[];
49
- /** @internal */
50
- constructor(
51
- /** @internal */ owner: ProgramBuilder,
52
- /** @internal */ coefficients: readonly Vec3Value[]);
76
+ /** @internal */ readonly owner: ProgramBuilder;
77
+ /** @internal */ readonly coefficients: readonly Vec3Value[];
78
+ /** @internal */
79
+ constructor(
80
+ /** @internal */ owner: ProgramBuilder,
81
+ /** @internal */ coefficients: readonly Vec3Value[],
82
+ );
53
83
  }
54
84
  declare class SplatPostDecodeShValue {
55
- private readonly owner;
56
- /** @internal */
57
- constructor(owner: ProgramBuilder);
58
- coefficient(index: number): Vec3Value;
59
- map(transform: (coefficient: Vec3Value, context: SplatShCoefficientContext) => Vec3Like): SplatPostDecodeShPatch;
85
+ private readonly owner;
86
+ /** @internal */
87
+ constructor(owner: ProgramBuilder);
88
+ coefficient(index: number): Vec3Value;
89
+ map(
90
+ transform: (
91
+ coefficient: Vec3Value,
92
+ context: SplatShCoefficientContext,
93
+ ) => Vec3Like,
94
+ ): SplatPostDecodeShPatch;
60
95
  }
61
96
  type SplatPostDecodeInput = {
62
- readonly position: Vec3Value;
63
- readonly scale: Vec3Value;
64
- readonly quaternion: QuaternionValue;
65
- /** Semantic opacity in [0, exp(24/e)] (approximately 6830.182). */
66
- readonly opacity: FloatValue;
67
- /** Standard alpha in the [0, 1] range. */
68
- readonly alpha: FloatValue;
69
- readonly color: Vec3Value;
70
- readonly sh: SplatPostDecodeShValue;
97
+ readonly position: Vec3Value;
98
+ readonly scale: Vec3Value;
99
+ readonly quaternion: QuaternionValue;
100
+ /** Semantic opacity in [0, exp(24/e)] (approximately 6830.182). */
101
+ readonly opacity: FloatValue;
102
+ /** Standard alpha in the [0, 1] range. */
103
+ readonly alpha: FloatValue;
104
+ readonly color: Vec3Value;
105
+ readonly sh: SplatPostDecodeShValue;
71
106
  };
72
107
  export type SplatPostDecodePatch = {
73
- /** If false, this splat's packed values are left byte-for-byte unchanged. */
74
- when?: BoolLike;
75
- position?: Vec3Like;
76
- scale?: Vec3Like;
77
- quaternion?: QuaternionLike;
78
- /** Semantic opacity, encoded within the renderer's shape range [0, 1]. */
79
- opacity?: FloatLike;
80
- /**
81
- * Standard alpha, clamped to [0, 1] and independent from semantic opacity.
82
- * Cannot be output with opacity in the same patch.
83
- */
84
- alpha?: FloatLike;
85
- color?: Vec3Like;
86
- sh?: SplatPostDecodeShPatch;
108
+ /** If false, this splat's packed values are left byte-for-byte unchanged. */
109
+ when?: BoolLike;
110
+ position?: Vec3Like;
111
+ scale?: Vec3Like;
112
+ quaternion?: QuaternionLike;
113
+ /** Semantic opacity, encoded within the renderer's shape range [0, 1]. */
114
+ opacity?: FloatLike;
115
+ /**
116
+ * Standard alpha, clamped to [0, 1] and independent from semantic opacity.
117
+ * Cannot be output with opacity in the same patch.
118
+ */
119
+ alpha?: FloatLike;
120
+ color?: Vec3Like;
121
+ sh?: SplatPostDecodeShPatch;
87
122
  };
88
- type VariadicNumericOperation = <T extends NumericValueType>(first: ValueLike<T>, ...rest: BroadcastLike<T>[]) => SplatPostDecodeValue<T>;
89
- type BinaryNumericOperation = <T extends NumericValueType>(left: ValueLike<T>, right: BroadcastLike<T>) => SplatPostDecodeValue<T>;
90
- type UnaryNumericOperation = <T extends NumericValueType>(value: ValueLike<T>) => SplatPostDecodeValue<T>;
123
+ type VariadicNumericOperation = <T extends NumericValueType>(
124
+ first: ValueLike<T>,
125
+ ...rest: BroadcastLike<T>[]
126
+ ) => SplatPostDecodeValue<T>;
127
+ type BinaryNumericOperation = <T extends NumericValueType>(
128
+ left: ValueLike<T>,
129
+ right: BroadcastLike<T>,
130
+ ) => SplatPostDecodeValue<T>;
131
+ type UnaryNumericOperation = <T extends NumericValueType>(
132
+ value: ValueLike<T>,
133
+ ) => SplatPostDecodeValue<T>;
91
134
  type SplatPostDecodeOperations = {
92
- add: VariadicNumericOperation;
93
- sub: BinaryNumericOperation;
94
- mul: VariadicNumericOperation;
95
- div: BinaryNumericOperation;
96
- min: BinaryNumericOperation;
97
- max: BinaryNumericOperation;
98
- pow: BinaryNumericOperation;
99
- clamp<T extends NumericValueType>(value: ValueLike<T>, min: BroadcastLike<T>, max: BroadcastLike<T>): SplatPostDecodeValue<T>;
100
- mix<T extends NumericValueType>(left: ValueLike<T>, right: ValueLike<T>, amount: BroadcastLike<T>): SplatPostDecodeValue<T>;
101
- neg: UnaryNumericOperation;
102
- abs: UnaryNumericOperation;
103
- sqrt: UnaryNumericOperation;
104
- log: UnaryNumericOperation;
105
- exp: UnaryNumericOperation;
106
- floor: UnaryNumericOperation;
107
- ceil: UnaryNumericOperation;
108
- round: UnaryNumericOperation;
109
- sin: UnaryNumericOperation;
110
- cos: UnaryNumericOperation;
111
- acos: UnaryNumericOperation;
112
- tan: UnaryNumericOperation;
113
- asin: UnaryNumericOperation;
114
- atan: UnaryNumericOperation;
115
- atan2: BinaryNumericOperation;
116
- normalize<T extends VectorValueType | "quaternion">(value: ValueLike<T>): SplatPostDecodeValue<T>;
117
- length(value: Vec2Like | Vec3Like | Vec4Like): FloatValue;
118
- isFinite(value: FloatLike | Vec2Like | Vec3Like | Vec4Like | QuaternionLike): BoolValue;
119
- not(value: BoolLike): BoolValue;
120
- eq<T extends SplatPostDecodeValueType>(left: ValueLike<T>, right: ValueLike<T>): BoolValue;
121
- ne<T extends SplatPostDecodeValueType>(left: ValueLike<T>, right: ValueLike<T>): BoolValue;
122
- lt(left: FloatLike, right: FloatLike): BoolValue;
123
- lte(left: FloatLike, right: FloatLike): BoolValue;
124
- gt(left: FloatLike, right: FloatLike): BoolValue;
125
- gte(left: FloatLike, right: FloatLike): BoolValue;
126
- and(first: BoolLike, ...rest: BoolLike[]): BoolValue;
127
- or(first: BoolLike, ...rest: BoolLike[]): BoolValue;
128
- select<T extends SplatPostDecodeValueType>(condition: BoolLike, whenTrue: ValueLike<T>, whenFalse: ValueLike<T>): SplatPostDecodeValue<T>;
129
- dot(left: Vec2Like | Vec3Like | Vec4Like, right: Vec2Like | Vec3Like | Vec4Like): FloatValue;
130
- cross(left: Vec3Like, right: Vec3Like): Vec3Value;
131
- vec2(x: FloatLike, y: FloatLike): Vec2Value;
132
- vec3(x: FloatLike, y: FloatLike, z: FloatLike): Vec3Value;
133
- vec4(x: FloatLike, y: FloatLike, z: FloatLike, w: FloatLike): Vec4Value;
134
- quaternion(x: FloatLike, y: FloatLike, z: FloatLike, w: FloatLike): QuaternionValue;
135
- component(value: Vec2Like | Vec3Like | Vec4Like | QuaternionLike, index: number): FloatValue;
136
- maxComponentIndex(value: Vec2Like | Vec3Like | Vec4Like): FloatValue;
137
- quatMul(left: QuaternionLike, right: QuaternionLike): QuaternionValue;
138
- rotateVector(quaternion: QuaternionLike, vector: Vec3Like): Vec3Value;
135
+ add: VariadicNumericOperation;
136
+ sub: BinaryNumericOperation;
137
+ mul: VariadicNumericOperation;
138
+ div: BinaryNumericOperation;
139
+ min: BinaryNumericOperation;
140
+ max: BinaryNumericOperation;
141
+ pow: BinaryNumericOperation;
142
+ clamp<T extends NumericValueType>(
143
+ value: ValueLike<T>,
144
+ min: BroadcastLike<T>,
145
+ max: BroadcastLike<T>,
146
+ ): SplatPostDecodeValue<T>;
147
+ mix<T extends NumericValueType>(
148
+ left: ValueLike<T>,
149
+ right: ValueLike<T>,
150
+ amount: BroadcastLike<T>,
151
+ ): SplatPostDecodeValue<T>;
152
+ neg: UnaryNumericOperation;
153
+ abs: UnaryNumericOperation;
154
+ sqrt: UnaryNumericOperation;
155
+ log: UnaryNumericOperation;
156
+ exp: UnaryNumericOperation;
157
+ floor: UnaryNumericOperation;
158
+ ceil: UnaryNumericOperation;
159
+ round: UnaryNumericOperation;
160
+ sin: UnaryNumericOperation;
161
+ cos: UnaryNumericOperation;
162
+ acos: UnaryNumericOperation;
163
+ tan: UnaryNumericOperation;
164
+ asin: UnaryNumericOperation;
165
+ atan: UnaryNumericOperation;
166
+ atan2: BinaryNumericOperation;
167
+ normalize<T extends VectorValueType | "quaternion">(
168
+ value: ValueLike<T>,
169
+ ): SplatPostDecodeValue<T>;
170
+ length(value: Vec2Like | Vec3Like | Vec4Like): FloatValue;
171
+ isFinite(
172
+ value: FloatLike | Vec2Like | Vec3Like | Vec4Like | QuaternionLike,
173
+ ): BoolValue;
174
+ not(value: BoolLike): BoolValue;
175
+ eq<T extends SplatPostDecodeValueType>(
176
+ left: ValueLike<T>,
177
+ right: ValueLike<T>,
178
+ ): BoolValue;
179
+ ne<T extends SplatPostDecodeValueType>(
180
+ left: ValueLike<T>,
181
+ right: ValueLike<T>,
182
+ ): BoolValue;
183
+ lt(left: FloatLike, right: FloatLike): BoolValue;
184
+ lte(left: FloatLike, right: FloatLike): BoolValue;
185
+ gt(left: FloatLike, right: FloatLike): BoolValue;
186
+ gte(left: FloatLike, right: FloatLike): BoolValue;
187
+ and(first: BoolLike, ...rest: BoolLike[]): BoolValue;
188
+ or(first: BoolLike, ...rest: BoolLike[]): BoolValue;
189
+ select<T extends SplatPostDecodeValueType>(
190
+ condition: BoolLike,
191
+ whenTrue: ValueLike<T>,
192
+ whenFalse: ValueLike<T>,
193
+ ): SplatPostDecodeValue<T>;
194
+ dot(
195
+ left: Vec2Like | Vec3Like | Vec4Like,
196
+ right: Vec2Like | Vec3Like | Vec4Like,
197
+ ): FloatValue;
198
+ cross(left: Vec3Like, right: Vec3Like): Vec3Value;
199
+ vec2(x: FloatLike, y: FloatLike): Vec2Value;
200
+ vec3(x: FloatLike, y: FloatLike, z: FloatLike): Vec3Value;
201
+ vec4(x: FloatLike, y: FloatLike, z: FloatLike, w: FloatLike): Vec4Value;
202
+ quaternion(
203
+ x: FloatLike,
204
+ y: FloatLike,
205
+ z: FloatLike,
206
+ w: FloatLike,
207
+ ): QuaternionValue;
208
+ component(
209
+ value: Vec2Like | Vec3Like | Vec4Like | QuaternionLike,
210
+ index: number,
211
+ ): FloatValue;
212
+ maxComponentIndex(value: Vec2Like | Vec3Like | Vec4Like): FloatValue;
213
+ quatMul(left: QuaternionLike, right: QuaternionLike): QuaternionValue;
214
+ rotateVector(quaternion: QuaternionLike, vector: Vec3Like): Vec3Value;
139
215
  };
140
216
  export type SplatPostDecodeContext = {
141
- splat: SplatPostDecodeInput;
142
- op: SplatPostDecodeOperations;
143
- attribute<Components extends AttributeComponents = 1>(options: SplatPostDecodeAttributeOptions<Components>): AttributeValue<Components>;
217
+ splat: SplatPostDecodeInput;
218
+ op: SplatPostDecodeOperations;
219
+ attribute<Components extends AttributeComponents = 1>(
220
+ options: SplatPostDecodeAttributeOptions<Components>,
221
+ ): AttributeValue<Components>;
144
222
  };
145
223
  export declare class ProgramBuilder {
146
- readonly instructions: SplatPostDecodeInstruction[];
147
- readonly constants: number[];
148
- readonly attributes: AttributeBinding[];
149
- readonly op: SplatPostDecodeOperations;
150
- readonly splat: SplatPostDecodeInput;
151
- readonly constantRegisters: Map<string, SplatPostDecodeValue<SplatPostDecodeValueType>>;
152
- readonly inputRegisters: Map<number, SplatPostDecodeValue<SplatPostDecodeValueType>>;
153
- constructor();
154
- private instruction;
155
- inputField<T extends SplatPostDecodeValueType>(type: T, field: InputField): SplatPostDecodeValue<T>;
156
- attribute<Components extends AttributeComponents = 1>(options: SplatPostDecodeAttributeOptions<Components>): AttributeValue<Components>;
157
- coerce<T extends SplatPostDecodeValueType>(value: ValueLike<T>, expectedType?: T): SplatPostDecodeValue<T>;
158
- private unary;
159
- private binary;
160
- private ternary;
161
- private coerceForBinary;
162
- private createOperations;
224
+ readonly instructions: SplatPostDecodeInstruction[];
225
+ readonly constants: number[];
226
+ readonly attributes: AttributeBinding[];
227
+ readonly op: SplatPostDecodeOperations;
228
+ readonly splat: SplatPostDecodeInput;
229
+ readonly constantRegisters: Map<
230
+ string,
231
+ SplatPostDecodeValue<SplatPostDecodeValueType>
232
+ >;
233
+ readonly inputRegisters: Map<
234
+ number,
235
+ SplatPostDecodeValue<SplatPostDecodeValueType>
236
+ >;
237
+ constructor();
238
+ private instruction;
239
+ inputField<T extends SplatPostDecodeValueType>(
240
+ type: T,
241
+ field: InputField,
242
+ ): SplatPostDecodeValue<T>;
243
+ attribute<Components extends AttributeComponents = 1>(
244
+ options: SplatPostDecodeAttributeOptions<Components>,
245
+ ): AttributeValue<Components>;
246
+ coerce<T extends SplatPostDecodeValueType>(
247
+ value: ValueLike<T>,
248
+ expectedType?: T,
249
+ ): SplatPostDecodeValue<T>;
250
+ private unary;
251
+ private binary;
252
+ private ternary;
253
+ private coerceForBinary;
254
+ private createOperations;
163
255
  }
164
- export declare function buildOutputs(builder: ProgramBuilder, patch: SplatPostDecodePatch): SplatPostDecodeOutputs;
256
+ export declare function buildOutputs(
257
+ builder: ProgramBuilder,
258
+ patch: SplatPostDecodePatch,
259
+ ): SplatPostDecodeOutputs;
165
260
  export {};