@zylem/game-lib 0.6.4 → 0.8.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 (156) hide show
  1. package/README.md +18 -2
  2. package/dist/actions.d.ts +321 -11
  3. package/dist/actions.js +1 -936
  4. package/dist/api/game-lib.api.json +54074 -0
  5. package/dist/api/game-lib.api.md +4544 -0
  6. package/dist/api/game-lib.d.ts +8258 -0
  7. package/dist/api/game-lib.typedoc.json +345421 -0
  8. package/dist/audio.d.ts +13 -0
  9. package/dist/audio.js +1 -0
  10. package/dist/base-node-life-cycle-D2NuN1VB.d.ts +151 -0
  11. package/dist/behavior.d.ts +2 -0
  12. package/dist/behavior.js +1 -0
  13. package/dist/blueprints-TbGY-h53.d.ts +162 -0
  14. package/dist/chunk-4QLJUQSJ.js +1 -0
  15. package/dist/chunk-7FR5JSQ2.js +1 -0
  16. package/dist/chunk-7GYFZKK7.js +1 -0
  17. package/dist/chunk-7WRQ2UAN.js +1 -0
  18. package/dist/chunk-BH53MBAZ.js +1 -0
  19. package/dist/chunk-BIGH6D34.js +0 -0
  20. package/dist/chunk-CM5YRNBJ.js +19 -0
  21. package/dist/chunk-COM6HJ2L.js +1 -0
  22. package/dist/chunk-D2PATZCC.js +1 -0
  23. package/dist/chunk-DFLI7ICU.js +0 -0
  24. package/dist/chunk-E3UBSUPX.js +1 -0
  25. package/dist/chunk-FKIKN7RP.js +24 -0
  26. package/dist/chunk-G4HONLWC.js +1 -0
  27. package/dist/chunk-IKWE2W6L.js +1 -0
  28. package/dist/chunk-IPWUDOV5.js +1 -0
  29. package/dist/chunk-JEHFHUH4.js +0 -0
  30. package/dist/chunk-JNKPTL77.js +1 -0
  31. package/dist/chunk-JQKS42G4.js +1 -0
  32. package/dist/chunk-M3XNO56P.js +1 -0
  33. package/dist/chunk-MSC2BEO5.js +1 -0
  34. package/dist/chunk-ORIDWL3T.js +0 -0
  35. package/dist/chunk-QB3NL7VQ.js +1 -0
  36. package/dist/chunk-QXVH6POE.js +1 -0
  37. package/dist/chunk-RXDTAWI2.js +29 -0
  38. package/dist/chunk-TAUWDQZF.js +9 -0
  39. package/dist/chunk-VS2D4B3W.js +1 -0
  40. package/dist/chunk-WQ3WMMZD.js +1 -0
  41. package/dist/chunk-XK63E4SX.js +1 -0
  42. package/dist/chunk-XNDS4YFR.js +1 -0
  43. package/dist/chunk-XNHVRFAK.js +1 -0
  44. package/dist/chunk-XRP4JJXL.js +1 -0
  45. package/dist/chunk-YHEWKN7N.js +1 -0
  46. package/dist/chunk-ZRT3ZQVH.js +1 -0
  47. package/dist/collision-builder-jF-toPIl.d.ts +38 -0
  48. package/dist/core.d.ts +223 -16
  49. package/dist/core.js +1 -12424
  50. package/dist/debug-state-BPT6jEog.d.ts +17 -0
  51. package/dist/debug.d.ts +76 -0
  52. package/dist/debug.js +1 -0
  53. package/dist/default-controls-0-vCnli7.d.ts +111 -0
  54. package/dist/{entity-vj-HTjzU.d.ts → entity-BdSI8CL3.d.ts} +119 -626
  55. package/dist/{entity-Bq_eNEDI.d.ts → entity-DZbFQ1Wg.d.ts} +4 -4
  56. package/dist/entity-type-map-Bd69SpAS.d.ts +928 -0
  57. package/dist/entity.d.ts +268 -0
  58. package/dist/entity.js +1 -0
  59. package/dist/events.d.ts +181 -0
  60. package/dist/events.js +1 -0
  61. package/dist/game-C1FHVqXl.d.ts +1886 -0
  62. package/dist/game-default-QHROHW2O.js +1 -0
  63. package/dist/game-interfaces-mchNYSZE.d.ts +90 -0
  64. package/dist/globals.d.ts +115 -0
  65. package/dist/globals.js +1 -0
  66. package/dist/graphics.d.ts +53 -0
  67. package/dist/graphics.js +1 -0
  68. package/dist/input-ui.d.ts +35 -0
  69. package/dist/input-ui.js +1 -0
  70. package/dist/input.d.ts +73 -0
  71. package/dist/input.js +1 -0
  72. package/dist/material-9vJ6SZaI.d.ts +126 -0
  73. package/dist/public.d.ts +38 -0
  74. package/dist/public.js +1 -0
  75. package/dist/runtime.d.ts +59 -0
  76. package/dist/runtime.js +1 -0
  77. package/dist/schema/entity.schema.json +244 -0
  78. package/dist/schema/game-config.schema.json +625 -0
  79. package/dist/schema/input-config.schema.json +499 -0
  80. package/dist/schema/stage-config.schema.json +93 -0
  81. package/dist/schema/stage.schema.json +271 -0
  82. package/dist/schema.d.ts +538 -0
  83. package/dist/schema.js +1 -0
  84. package/dist/stage-transition-CmGpV4tc.d.ts +46 -0
  85. package/dist/vector-CiSHbivc.d.ts +133 -0
  86. package/dist/web-components.d.ts +70 -0
  87. package/dist/web-components.js +1 -0
  88. package/dist/zylem-camera-C3bn6BTI.d.ts +575 -0
  89. package/package.json +70 -73
  90. package/dist/actions.js.map +0 -1
  91. package/dist/behavior/jumper-2d.d.ts +0 -114
  92. package/dist/behavior/jumper-2d.js +0 -711
  93. package/dist/behavior/jumper-2d.js.map +0 -1
  94. package/dist/behavior/platformer-3d.d.ts +0 -296
  95. package/dist/behavior/platformer-3d.js +0 -761
  96. package/dist/behavior/platformer-3d.js.map +0 -1
  97. package/dist/behavior/ricochet-2d.d.ts +0 -275
  98. package/dist/behavior/ricochet-2d.js +0 -425
  99. package/dist/behavior/ricochet-2d.js.map +0 -1
  100. package/dist/behavior/ricochet-3d.d.ts +0 -117
  101. package/dist/behavior/ricochet-3d.js +0 -443
  102. package/dist/behavior/ricochet-3d.js.map +0 -1
  103. package/dist/behavior/screen-visibility.d.ts +0 -79
  104. package/dist/behavior/screen-visibility.js +0 -358
  105. package/dist/behavior/screen-visibility.js.map +0 -1
  106. package/dist/behavior/screen-wrap.d.ts +0 -87
  107. package/dist/behavior/screen-wrap.js +0 -246
  108. package/dist/behavior/screen-wrap.js.map +0 -1
  109. package/dist/behavior/shooter-2d.d.ts +0 -79
  110. package/dist/behavior/shooter-2d.js +0 -180
  111. package/dist/behavior/shooter-2d.js.map +0 -1
  112. package/dist/behavior/thruster.d.ts +0 -11
  113. package/dist/behavior/thruster.js +0 -292
  114. package/dist/behavior/thruster.js.map +0 -1
  115. package/dist/behavior/top-down-movement.d.ts +0 -56
  116. package/dist/behavior/top-down-movement.js +0 -125
  117. package/dist/behavior/top-down-movement.js.map +0 -1
  118. package/dist/behavior/world-boundary-2d.d.ts +0 -142
  119. package/dist/behavior/world-boundary-2d.js +0 -235
  120. package/dist/behavior/world-boundary-2d.js.map +0 -1
  121. package/dist/behavior/world-boundary-3d.d.ts +0 -76
  122. package/dist/behavior/world-boundary-3d.js +0 -274
  123. package/dist/behavior/world-boundary-3d.js.map +0 -1
  124. package/dist/behavior-descriptor-BXnVR8Ki.d.ts +0 -159
  125. package/dist/blueprints-DmbK2dki.d.ts +0 -26
  126. package/dist/camera-4XO5gbQH.d.ts +0 -905
  127. package/dist/camera.d.ts +0 -6
  128. package/dist/camera.js +0 -1993
  129. package/dist/camera.js.map +0 -1
  130. package/dist/composition-BASvMKrW.d.ts +0 -218
  131. package/dist/core-CARRaS55.d.ts +0 -541
  132. package/dist/core.js.map +0 -1
  133. package/dist/entities-ChFirVL9.d.ts +0 -410
  134. package/dist/entities.d.ts +0 -9
  135. package/dist/entities.js +0 -4986
  136. package/dist/entities.js.map +0 -1
  137. package/dist/entity-types-DAu8sGJH.d.ts +0 -26
  138. package/dist/global-change-2JvMaz44.d.ts +0 -25
  139. package/dist/main.d.ts +0 -1353
  140. package/dist/main.js +0 -19525
  141. package/dist/main.js.map +0 -1
  142. package/dist/physics-pose-DCc4oE44.d.ts +0 -25
  143. package/dist/physics-protocol-BDD3P5W2.d.ts +0 -200
  144. package/dist/physics-worker.d.ts +0 -21
  145. package/dist/physics-worker.js +0 -306
  146. package/dist/physics-worker.js.map +0 -1
  147. package/dist/physics.d.ts +0 -205
  148. package/dist/physics.js +0 -577
  149. package/dist/physics.js.map +0 -1
  150. package/dist/stage-types-C19IhuzA.d.ts +0 -731
  151. package/dist/stage.d.ts +0 -52
  152. package/dist/stage.js +0 -8479
  153. package/dist/stage.js.map +0 -1
  154. package/dist/sync-state-machine-CZyspBpj.d.ts +0 -16
  155. package/dist/thruster-23lzoPZd.d.ts +0 -180
  156. package/dist/world-DfgxoNMt.d.ts +0 -105
@@ -0,0 +1,538 @@
1
+ export { f as EntityBlueprint, j as EntityJson, d as EntityJsonSchema, E as EntitySchema, i as LineEntityData, L as LineEntityDataSchema, h as SpriteEntityData, b as SpriteEntityDataSchema, S as StageBlueprint, k as StageJson, e as StageJsonSchema, c as StageSchema, g as TextEntityData, T as TextEntityDataSchema, V as Vector2Schema, a as Vector3TupleSchema } from './blueprints-TbGY-h53.js';
2
+ import * as _sinclair_typebox from '@sinclair/typebox';
3
+ import { Static } from '@sinclair/typebox';
4
+
5
+ /** Keyboard action → key-code list mapping. */
6
+ declare const KeyboardMappingSchema: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>;
7
+ /** Mouse action → input-property list mapping. */
8
+ declare const MouseMappingSchema: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>;
9
+ /** CSS-like style bag for virtual touch controls. */
10
+ declare const VirtualTouchStyleSchema: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
11
+ /** Absolute/relative position for a virtual touch control. */
12
+ declare const VirtualTouchPositionSchema: _sinclair_typebox.TObject<{
13
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
14
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
15
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
16
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
17
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
18
+ }>;
19
+ /** Virtual touch button configuration. */
20
+ declare const VirtualTouchButtonConfigSchema: _sinclair_typebox.TObject<{
21
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
22
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
23
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
24
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
25
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
26
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
27
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
28
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
29
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
30
+ }>>;
31
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
32
+ label: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
33
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
34
+ }>;
35
+ /** Virtual touch joystick configuration. */
36
+ declare const VirtualTouchJoystickConfigSchema: _sinclair_typebox.TObject<{
37
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
38
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
39
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
40
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
41
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
42
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
43
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
44
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
45
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
46
+ }>>;
47
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
48
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
49
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
50
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
51
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
52
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
53
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
54
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
55
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
56
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
57
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
58
+ }>>;
59
+ }>;
60
+ /**
61
+ * Virtual touch buttons map (slot → config or `false` to disable).
62
+ * Uses a string-keyed record so published JSON Schema stays compact
63
+ * (explicit per-slot properties would inline the button schema 14×).
64
+ */
65
+ declare const VirtualTouchButtonsConfigSchema: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
66
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
67
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
68
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
69
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
70
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
71
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
72
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
73
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
74
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
75
+ }>>;
76
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
77
+ label: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
78
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
79
+ }>, _sinclair_typebox.TLiteral<false>]>>;
80
+ /** Virtual touch joysticks map. */
81
+ declare const VirtualTouchJoysticksConfigSchema: _sinclair_typebox.TObject<{
82
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
83
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
84
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
85
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
86
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
87
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
88
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
89
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
90
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
91
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
92
+ }>>;
93
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
94
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
95
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
96
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
97
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
98
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
99
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
100
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
101
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
102
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
103
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
104
+ }>>;
105
+ }>, _sinclair_typebox.TLiteral<false>]>>;
106
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
107
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
108
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
109
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
110
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
111
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
112
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
113
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
114
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
115
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
116
+ }>>;
117
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
118
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
119
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
120
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
121
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
122
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
123
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
124
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
125
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
126
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
127
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
128
+ }>>;
129
+ }>, _sinclair_typebox.TLiteral<false>]>>;
130
+ }>;
131
+ /** Virtual touch input configuration. */
132
+ declare const VirtualTouchConfigSchema: _sinclair_typebox.TObject<{
133
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TBoolean, _sinclair_typebox.TLiteral<"auto">]>>;
134
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
135
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
136
+ joysticks: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
137
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
138
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
139
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
140
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
141
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
142
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
143
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
144
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
145
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
146
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
147
+ }>>;
148
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
149
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
150
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
151
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
152
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
153
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
154
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
155
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
156
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
157
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
158
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
159
+ }>>;
160
+ }>, _sinclair_typebox.TLiteral<false>]>>;
161
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
162
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
163
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
164
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
165
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
166
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
167
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
168
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
169
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
170
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
171
+ }>>;
172
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
173
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
174
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
175
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
176
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
177
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
178
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
179
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
180
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
181
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
182
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
183
+ }>>;
184
+ }>, _sinclair_typebox.TLiteral<false>]>>;
185
+ }>, _sinclair_typebox.TLiteral<false>]>>;
186
+ buttons: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
187
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
188
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
189
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
190
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
191
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
192
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
193
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
194
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
195
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
196
+ }>>;
197
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
198
+ label: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
199
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
200
+ }>, _sinclair_typebox.TLiteral<false>]>>, _sinclair_typebox.TLiteral<false>]>>;
201
+ }>;
202
+ /** Mouse input configuration. */
203
+ declare const MouseConfigSchema: _sinclair_typebox.TObject<{
204
+ mapping: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
205
+ pointerLock: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
206
+ sensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
207
+ }>;
208
+ /** Per-player input configuration. */
209
+ declare const GameInputPlayerConfigSchema: _sinclair_typebox.TObject<{
210
+ key: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
211
+ mouse: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
212
+ mapping: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
213
+ pointerLock: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
214
+ sensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
215
+ }>>;
216
+ touch: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
217
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TBoolean, _sinclair_typebox.TLiteral<"auto">]>>;
218
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
219
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
220
+ joysticks: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
221
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
222
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
223
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
224
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
225
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
226
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
227
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
228
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
229
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
230
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
231
+ }>>;
232
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
233
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
234
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
235
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
236
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
237
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
238
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
239
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
240
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
241
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
242
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
243
+ }>>;
244
+ }>, _sinclair_typebox.TLiteral<false>]>>;
245
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
246
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
247
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
248
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
249
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
250
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
251
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
252
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
253
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
254
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
255
+ }>>;
256
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
257
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
258
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
259
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
260
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
261
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
262
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
263
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
264
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
265
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
266
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
267
+ }>>;
268
+ }>, _sinclair_typebox.TLiteral<false>]>>;
269
+ }>, _sinclair_typebox.TLiteral<false>]>>;
270
+ buttons: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
271
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
272
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
273
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
274
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
275
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
276
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
277
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
278
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
279
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
280
+ }>>;
281
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
282
+ label: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
283
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
284
+ }>, _sinclair_typebox.TLiteral<false>]>>, _sinclair_typebox.TLiteral<false>]>>;
285
+ }>>;
286
+ includeDefaults: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
287
+ }>;
288
+ /**
289
+ * Top-level game input configuration (p1–p8).
290
+ * Uses a string-keyed record so published JSON Schema does not inline the
291
+ * player config eight times.
292
+ */
293
+ declare const GameInputConfigSchema: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TObject<{
294
+ key: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
295
+ mouse: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
296
+ mapping: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
297
+ pointerLock: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
298
+ sensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
299
+ }>>;
300
+ touch: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
301
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TBoolean, _sinclair_typebox.TLiteral<"auto">]>>;
302
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
303
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
304
+ joysticks: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
305
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
306
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
307
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
308
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
309
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
310
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
311
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
312
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
313
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
314
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
315
+ }>>;
316
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
317
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
318
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
319
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
320
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
321
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
322
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
323
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
324
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
325
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
326
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
327
+ }>>;
328
+ }>, _sinclair_typebox.TLiteral<false>]>>;
329
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
330
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
331
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
332
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
333
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
334
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
335
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
336
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
337
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
338
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
339
+ }>>;
340
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
341
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
342
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
343
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
344
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
345
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
346
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
347
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
348
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
349
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
350
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
351
+ }>>;
352
+ }>, _sinclair_typebox.TLiteral<false>]>>;
353
+ }>, _sinclair_typebox.TLiteral<false>]>>;
354
+ buttons: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
355
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
356
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
357
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
358
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
359
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
360
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
361
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
362
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
363
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
364
+ }>>;
365
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
366
+ label: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
367
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
368
+ }>, _sinclair_typebox.TLiteral<false>]>>, _sinclair_typebox.TLiteral<false>]>>;
369
+ }>>;
370
+ includeDefaults: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
371
+ }>>;
372
+ type GameInputConfigJson = Static<typeof GameInputConfigSchema>;
373
+
374
+ /** RGB(A) color as a CSS string or numeric hex. */
375
+ declare const ColorJsonSchema: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>;
376
+ /** Gravity as `[x, y, z]` components (JSON-serializable). */
377
+ declare const Vec3ComponentsSchema: _sinclair_typebox.TTuple<[_sinclair_typebox.TNumber, _sinclair_typebox.TNumber, _sinclair_typebox.TNumber]>;
378
+ /** GLTF loader options that are JSON-serializable. */
379
+ declare const StageGLTFAssetLoaderConfigSchema: _sinclair_typebox.TObject<{
380
+ meshopt: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
381
+ ktx2TranscoderPath: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
382
+ }>;
383
+ /** Stage asset loader configuration (JSON subset). */
384
+ declare const StageAssetLoaderConfigSchema: _sinclair_typebox.TObject<{
385
+ gltf: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
386
+ meshopt: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
387
+ ktx2TranscoderPath: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
388
+ }>>;
389
+ }>;
390
+ /**
391
+ * JSON-serializable subset of {@link StageConfigLike}.
392
+ * Excludes live objects (shaders, runtime adapters, post-effects, wasm builders).
393
+ */
394
+ declare const StageConfigJsonSchema: _sinclair_typebox.TObject<{
395
+ inputs: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
396
+ backgroundColor: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
397
+ backgroundImage: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>>;
398
+ gravity: _sinclair_typebox.TOptional<_sinclair_typebox.TTuple<[_sinclair_typebox.TNumber, _sinclair_typebox.TNumber, _sinclair_typebox.TNumber]>>;
399
+ variables: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnknown>>;
400
+ physicsRate: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
401
+ assetLoaders: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
402
+ gltf: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
403
+ meshopt: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
404
+ ktx2TranscoderPath: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
405
+ }>>;
406
+ }>>;
407
+ defaultLighting: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
408
+ }>;
409
+ type StageConfigJson = Static<typeof StageConfigJsonSchema>;
410
+
411
+ /** Resolution as `"WxH"`, a retro preset name, `{ width, height }`, or `"native"`. */
412
+ declare const ResolutionInputSchema: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
413
+ width: _sinclair_typebox.TNumber;
414
+ height: _sinclair_typebox.TNumber;
415
+ }>, _sinclair_typebox.TLiteral<"native">]>;
416
+ /** Per-device (e.g. mobile) aspect / resolution overrides. */
417
+ declare const GameDeviceConfigJsonSchema: _sinclair_typebox.TObject<{
418
+ aspectRatio: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TString]>>;
419
+ preset: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
420
+ resolution: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
421
+ width: _sinclair_typebox.TNumber;
422
+ height: _sinclair_typebox.TNumber;
423
+ }>, _sinclair_typebox.TLiteral<"native">]>>;
424
+ /** `true` enables default touch controls; object form is editor-extended later. */
425
+ controls: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
426
+ }>;
427
+ /**
428
+ * JSON-serializable subset of {@link GameConfigLike}.
429
+ * Excludes DOM nodes (`container`, `canvas`) and live stage instances.
430
+ */
431
+ declare const GameConfigJsonSchema: _sinclair_typebox.TObject<{
432
+ id: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
433
+ globals: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnknown>>;
434
+ debug: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
435
+ time: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
436
+ input: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TObject<{
437
+ key: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
438
+ mouse: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
439
+ mapping: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
440
+ pointerLock: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
441
+ sensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
442
+ }>>;
443
+ touch: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
444
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TBoolean, _sinclair_typebox.TLiteral<"auto">]>>;
445
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
446
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
447
+ joysticks: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
448
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
449
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
450
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
451
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
452
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
453
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
454
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
455
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
456
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
457
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
458
+ }>>;
459
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
460
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
461
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
462
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
463
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
464
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
465
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
466
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
467
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
468
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
469
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
470
+ }>>;
471
+ }>, _sinclair_typebox.TLiteral<false>]>>;
472
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
473
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
474
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
475
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
476
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
477
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
478
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
479
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
480
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
481
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
482
+ }>>;
483
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
484
+ thumbSize: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
485
+ maxDistance: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
486
+ deadzone: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
487
+ directionThreshold: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
488
+ horizontalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Horizontal">, _sinclair_typebox.TLiteral<"SecondaryHorizontal">]>>;
489
+ verticalAxis: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"Vertical">, _sinclair_typebox.TLiteral<"SecondaryVertical">]>>;
490
+ emitDirections: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
491
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
492
+ base: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
493
+ thumb: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
494
+ }>>;
495
+ }>, _sinclair_typebox.TLiteral<false>]>>;
496
+ }>, _sinclair_typebox.TLiteral<false>]>>;
497
+ buttons: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
498
+ enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
499
+ className: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
500
+ style: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>>;
501
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
502
+ top: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
503
+ right: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
504
+ bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
505
+ left: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber]>>;
506
+ transform: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
507
+ }>>;
508
+ size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
509
+ label: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
510
+ svg: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
511
+ }>, _sinclair_typebox.TLiteral<false>]>>, _sinclair_typebox.TLiteral<false>]>>;
512
+ }>>;
513
+ includeDefaults: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
514
+ }>>>;
515
+ aspectRatio: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TString]>>;
516
+ preset: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
517
+ resolution: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
518
+ width: _sinclair_typebox.TNumber;
519
+ height: _sinclair_typebox.TNumber;
520
+ }>, _sinclair_typebox.TLiteral<"native">]>>;
521
+ mobile: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
522
+ aspectRatio: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TString]>>;
523
+ preset: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
524
+ resolution: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
525
+ width: _sinclair_typebox.TNumber;
526
+ height: _sinclair_typebox.TNumber;
527
+ }>, _sinclair_typebox.TLiteral<"native">]>>;
528
+ /** `true` enables default touch controls; object form is editor-extended later. */
529
+ controls: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
530
+ }>>;
531
+ fullscreen: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
532
+ bodyBackground: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
533
+ containerId: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
534
+ }>;
535
+ type GameConfigJson = Static<typeof GameConfigJsonSchema>;
536
+ type GameDeviceConfigJson = Static<typeof GameDeviceConfigJsonSchema>;
537
+
538
+ export { ColorJsonSchema, type GameConfigJson, GameConfigJsonSchema, type GameDeviceConfigJson, GameDeviceConfigJsonSchema, type GameInputConfigJson, GameInputConfigSchema, GameInputPlayerConfigSchema, KeyboardMappingSchema, MouseConfigSchema, MouseMappingSchema, ResolutionInputSchema, StageAssetLoaderConfigSchema, type StageConfigJson, StageConfigJsonSchema, StageGLTFAssetLoaderConfigSchema, Vec3ComponentsSchema, VirtualTouchButtonConfigSchema, VirtualTouchButtonsConfigSchema, VirtualTouchConfigSchema, VirtualTouchJoystickConfigSchema, VirtualTouchJoysticksConfigSchema, VirtualTouchPositionSchema, VirtualTouchStyleSchema };
package/dist/schema.js ADDED
@@ -0,0 +1 @@
1
+ import{A,B,C,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-M3XNO56P.js";export{v as ColorJsonSchema,h as EntityJsonSchema,b as EntitySchema,C as GameConfigJsonSchema,B as GameDeviceConfigJsonSchema,u as GameInputConfigSchema,t as GameInputPlayerConfigSchema,j as KeyboardMappingSchema,f as LineEntityDataSchema,s as MouseConfigSchema,k as MouseMappingSchema,A as ResolutionInputSchema,g as SpriteEntityDataSchema,y as StageAssetLoaderConfigSchema,z as StageConfigJsonSchema,x as StageGLTFAssetLoaderConfigSchema,i as StageJsonSchema,c as StageSchema,d as TextEntityDataSchema,w as Vec3ComponentsSchema,a as Vector2Schema,e as Vector3TupleSchema,n as VirtualTouchButtonConfigSchema,p as VirtualTouchButtonsConfigSchema,r as VirtualTouchConfigSchema,o as VirtualTouchJoystickConfigSchema,q as VirtualTouchJoysticksConfigSchema,m as VirtualTouchPositionSchema,l as VirtualTouchStyleSchema};
@@ -0,0 +1,46 @@
1
+ /**
2
+ * A stage transition shader: receives the outgoing frame node (`fromNode`),
3
+ * the incoming frame node (`toNode`), and a float `progress` uniform node
4
+ * (0 = fully outgoing, 1 = fully incoming); returns the blended color node.
5
+ *
6
+ * Structurally compatible with `ZylemTransitionShader` from `@zylem/shaders`.
7
+ */
8
+ type ZylemTransitionShader = (ctx: {
9
+ fromNode: any;
10
+ toNode: any;
11
+ progress: any;
12
+ }) => any;
13
+ /** Named easing curves for transition progress. */
14
+ type StageTransitionEasing = 'linear' | 'easeInOut';
15
+ /**
16
+ * Configuration for a stage transition, passed as
17
+ * `game.nextStage({ transition: { ... } })`. All fields are optional;
18
+ * `{ transition: {} }` yields a 0.8s eased crossfade.
19
+ */
20
+ interface StageTransitionConfig {
21
+ /** Transition length in seconds (default `0.8`). */
22
+ duration?: number;
23
+ /**
24
+ * The blend shader (e.g. `createStageTransition({ pattern: 'noise' }).shader`
25
+ * from `@zylem/shaders`, or a `ZylemStageTransition` object directly).
26
+ * Defaults to a plain crossfade.
27
+ */
28
+ shader?: ZylemTransitionShader | {
29
+ shader: ZylemTransitionShader;
30
+ };
31
+ /** Easing applied to progress (default `'easeInOut'`). */
32
+ easing?: StageTransitionEasing | ((t: number) => number);
33
+ /** Invoked once the transition completes. */
34
+ onComplete?: () => void;
35
+ }
36
+ /** `StageTransitionConfig` with all defaults applied. */
37
+ interface ResolvedStageTransition {
38
+ duration: number;
39
+ shader: ZylemTransitionShader;
40
+ easing: (t: number) => number;
41
+ onComplete?: () => void;
42
+ }
43
+ /** Default blend: plain crossfade between the two frames. */
44
+ declare const crossfadeTransitionShader: ZylemTransitionShader;
45
+
46
+ export { type ResolvedStageTransition as R, type StageTransitionConfig as S, type ZylemTransitionShader as Z, type StageTransitionEasing as a, crossfadeTransitionShader as c };