@multitapio/multitap 0.0.1

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 (286) hide show
  1. package/dist/.stamp +0 -0
  2. package/dist/cache.d.ts +117 -0
  3. package/dist/cache.d.ts.map +1 -0
  4. package/dist/channel.d.ts +91 -0
  5. package/dist/channel.d.ts.map +1 -0
  6. package/dist/channel.worker.d.ts +3 -0
  7. package/dist/channel.worker.d.ts.map +1 -0
  8. package/dist/codegen/config.d.ts +107 -0
  9. package/dist/codegen/config.d.ts.map +1 -0
  10. package/dist/codegen/generator.d.ts +78 -0
  11. package/dist/codegen/generator.d.ts.map +1 -0
  12. package/dist/codegen/index.d.ts +13 -0
  13. package/dist/codegen/index.d.ts.map +1 -0
  14. package/dist/codegen/inject.d.ts +51 -0
  15. package/dist/codegen/inject.d.ts.map +1 -0
  16. package/dist/codegen/rust.d.ts +22 -0
  17. package/dist/codegen/rust.d.ts.map +1 -0
  18. package/dist/codegen/typescript.d.ts +22 -0
  19. package/dist/codegen/typescript.d.ts.map +1 -0
  20. package/dist/constants.d.ts +5 -0
  21. package/dist/constants.d.ts.map +1 -0
  22. package/dist/crypto.d.ts +141 -0
  23. package/dist/crypto.d.ts.map +1 -0
  24. package/dist/debug.d.ts +39 -0
  25. package/dist/debug.d.ts.map +1 -0
  26. package/dist/diagnostics/index.d.ts +12 -0
  27. package/dist/diagnostics/index.d.ts.map +1 -0
  28. package/dist/diagnostics.js +5502 -0
  29. package/dist/e2e/cli.d.ts +2 -0
  30. package/dist/e2e/cli.d.ts.map +1 -0
  31. package/dist/executor.d.ts +130 -0
  32. package/dist/executor.d.ts.map +1 -0
  33. package/dist/globals.d.ts +32 -0
  34. package/dist/helpers.d.ts +3 -0
  35. package/dist/helpers.d.ts.map +1 -0
  36. package/dist/input-codec.d.ts +136 -0
  37. package/dist/input-codec.d.ts.map +1 -0
  38. package/dist/input-graph.d.ts +106 -0
  39. package/dist/input-graph.d.ts.map +1 -0
  40. package/dist/lib.d.ts +10 -0
  41. package/dist/lib.d.ts.map +1 -0
  42. package/dist/lib.js +9409 -0
  43. package/dist/messages.d.ts +63 -0
  44. package/dist/messages.d.ts.map +1 -0
  45. package/dist/peer-mesh.d.ts +77 -0
  46. package/dist/peer-mesh.d.ts.map +1 -0
  47. package/dist/react/Crosshair.d.ts +17 -0
  48. package/dist/react/Crosshair.d.ts.map +1 -0
  49. package/dist/react/Player.d.ts +10 -0
  50. package/dist/react/Player.d.ts.map +1 -0
  51. package/dist/react/PlayerPoseContext.d.ts +31 -0
  52. package/dist/react/PlayerPoseContext.d.ts.map +1 -0
  53. package/dist/react/hooks/index.d.ts +7 -0
  54. package/dist/react/hooks/index.d.ts.map +1 -0
  55. package/dist/react/hooks/useEvent.d.ts +46 -0
  56. package/dist/react/hooks/useEvent.d.ts.map +1 -0
  57. package/dist/react/hooks/useFrame.d.ts +23 -0
  58. package/dist/react/hooks/useFrame.d.ts.map +1 -0
  59. package/dist/react/hooks/usePlayers.d.ts +24 -0
  60. package/dist/react/hooks/usePlayers.d.ts.map +1 -0
  61. package/dist/react/hooks/useQuery.d.ts +41 -0
  62. package/dist/react/hooks/useQuery.d.ts.map +1 -0
  63. package/dist/react/hooks/useSession.d.ts +10 -0
  64. package/dist/react/hooks/useSession.d.ts.map +1 -0
  65. package/dist/react/index.d.ts +18 -0
  66. package/dist/react/index.d.ts.map +1 -0
  67. package/dist/react/input/DesktopInputMapper.d.ts +38 -0
  68. package/dist/react/input/DesktopInputMapper.d.ts.map +1 -0
  69. package/dist/react/input/index.d.ts +4 -0
  70. package/dist/react/input/index.d.ts.map +1 -0
  71. package/dist/react/input/types.d.ts +46 -0
  72. package/dist/react/input/types.d.ts.map +1 -0
  73. package/dist/react/providers/SessionProvider.d.ts +17 -0
  74. package/dist/react/providers/SessionProvider.d.ts.map +1 -0
  75. package/dist/react/providers/index.d.ts +2 -0
  76. package/dist/react/providers/index.d.ts.map +1 -0
  77. package/dist/react/types/index.d.ts +2 -0
  78. package/dist/react/types/index.d.ts.map +1 -0
  79. package/dist/react/types/session.d.ts +88 -0
  80. package/dist/react/types/session.d.ts.map +1 -0
  81. package/dist/react/types.d.ts +134 -0
  82. package/dist/react/types.d.ts.map +1 -0
  83. package/dist/react/utils/math.d.ts +19 -0
  84. package/dist/react/utils/math.d.ts.map +1 -0
  85. package/dist/react/views/AsteroidsView.d.ts +24 -0
  86. package/dist/react/views/AsteroidsView.d.ts.map +1 -0
  87. package/dist/react/views/FirstPersonView.d.ts +10 -0
  88. package/dist/react/views/FirstPersonView.d.ts.map +1 -0
  89. package/dist/react/views/IsometricView.d.ts +21 -0
  90. package/dist/react/views/IsometricView.d.ts.map +1 -0
  91. package/dist/react/views/MapView.d.ts +16 -0
  92. package/dist/react/views/MapView.d.ts.map +1 -0
  93. package/dist/react/views/MobaView.d.ts +17 -0
  94. package/dist/react/views/MobaView.d.ts.map +1 -0
  95. package/dist/react/views/SideOnView.d.ts +23 -0
  96. package/dist/react/views/SideOnView.d.ts.map +1 -0
  97. package/dist/react/views/ThirdPersonFixedView.d.ts +21 -0
  98. package/dist/react/views/ThirdPersonFixedView.d.ts.map +1 -0
  99. package/dist/react/views/ThirdPersonView.d.ts +12 -0
  100. package/dist/react/views/ThirdPersonView.d.ts.map +1 -0
  101. package/dist/react/views/TopDownFixedView.d.ts +20 -0
  102. package/dist/react/views/TopDownFixedView.d.ts.map +1 -0
  103. package/dist/react/views/TopDownView.d.ts +12 -0
  104. package/dist/react/views/TopDownView.d.ts.map +1 -0
  105. package/dist/react/views/TwinStickView.d.ts +13 -0
  106. package/dist/react/views/TwinStickView.d.ts.map +1 -0
  107. package/dist/react/views/VehicleFixedView.d.ts +16 -0
  108. package/dist/react/views/VehicleFixedView.d.ts.map +1 -0
  109. package/dist/react/views/VehicleView.d.ts +13 -0
  110. package/dist/react/views/VehicleView.d.ts.map +1 -0
  111. package/dist/react/views/index.d.ts +21 -0
  112. package/dist/react/views/index.d.ts.map +1 -0
  113. package/dist/react/views/types.d.ts +136 -0
  114. package/dist/react/views/types.d.ts.map +1 -0
  115. package/dist/rollback.d.ts +193 -0
  116. package/dist/rollback.d.ts.map +1 -0
  117. package/dist/rollback.worker.d.ts +3 -0
  118. package/dist/rollback.worker.d.ts.map +1 -0
  119. package/dist/schema.d.ts +309 -0
  120. package/dist/schema.d.ts.map +1 -0
  121. package/dist/session-config.d.ts +119 -0
  122. package/dist/session-config.d.ts.map +1 -0
  123. package/dist/session.d.ts +120 -0
  124. package/dist/session.d.ts.map +1 -0
  125. package/dist/state.d.ts +400 -0
  126. package/dist/state.d.ts.map +1 -0
  127. package/dist/stats.d.ts +21 -0
  128. package/dist/stats.d.ts.map +1 -0
  129. package/dist/test-session.d.ts +170 -0
  130. package/dist/test-session.d.ts.map +1 -0
  131. package/dist/types/cache.d.ts +117 -0
  132. package/dist/types/cache.d.ts.map +1 -0
  133. package/dist/types/channel.d.ts +91 -0
  134. package/dist/types/channel.d.ts.map +1 -0
  135. package/dist/types/channel.worker.d.ts +3 -0
  136. package/dist/types/channel.worker.d.ts.map +1 -0
  137. package/dist/types/codegen/config.d.ts +107 -0
  138. package/dist/types/codegen/config.d.ts.map +1 -0
  139. package/dist/types/codegen/generator.d.ts +78 -0
  140. package/dist/types/codegen/generator.d.ts.map +1 -0
  141. package/dist/types/codegen/index.d.ts +13 -0
  142. package/dist/types/codegen/index.d.ts.map +1 -0
  143. package/dist/types/codegen/inject.d.ts +51 -0
  144. package/dist/types/codegen/inject.d.ts.map +1 -0
  145. package/dist/types/codegen/rust.d.ts +22 -0
  146. package/dist/types/codegen/rust.d.ts.map +1 -0
  147. package/dist/types/codegen/typescript.d.ts +22 -0
  148. package/dist/types/codegen/typescript.d.ts.map +1 -0
  149. package/dist/types/constants.d.ts +5 -0
  150. package/dist/types/constants.d.ts.map +1 -0
  151. package/dist/types/crypto.d.ts +141 -0
  152. package/dist/types/crypto.d.ts.map +1 -0
  153. package/dist/types/debug.d.ts +39 -0
  154. package/dist/types/debug.d.ts.map +1 -0
  155. package/dist/types/diagnostics/index.d.ts +12 -0
  156. package/dist/types/diagnostics/index.d.ts.map +1 -0
  157. package/dist/types/e2e/cli.d.ts +2 -0
  158. package/dist/types/e2e/cli.d.ts.map +1 -0
  159. package/dist/types/executor.d.ts +130 -0
  160. package/dist/types/executor.d.ts.map +1 -0
  161. package/dist/types/helpers.d.ts +3 -0
  162. package/dist/types/helpers.d.ts.map +1 -0
  163. package/dist/types/input-codec.d.ts +136 -0
  164. package/dist/types/input-codec.d.ts.map +1 -0
  165. package/dist/types/input-graph.d.ts +106 -0
  166. package/dist/types/input-graph.d.ts.map +1 -0
  167. package/dist/types/lib.d.ts +10 -0
  168. package/dist/types/lib.d.ts.map +1 -0
  169. package/dist/types/messages.d.ts +63 -0
  170. package/dist/types/messages.d.ts.map +1 -0
  171. package/dist/types/peer-mesh.d.ts +77 -0
  172. package/dist/types/peer-mesh.d.ts.map +1 -0
  173. package/dist/types/react/Crosshair.d.ts +17 -0
  174. package/dist/types/react/Crosshair.d.ts.map +1 -0
  175. package/dist/types/react/Player.d.ts +10 -0
  176. package/dist/types/react/Player.d.ts.map +1 -0
  177. package/dist/types/react/PlayerPoseContext.d.ts +31 -0
  178. package/dist/types/react/PlayerPoseContext.d.ts.map +1 -0
  179. package/dist/types/react/hooks/index.d.ts +7 -0
  180. package/dist/types/react/hooks/index.d.ts.map +1 -0
  181. package/dist/types/react/hooks/useEvent.d.ts +46 -0
  182. package/dist/types/react/hooks/useEvent.d.ts.map +1 -0
  183. package/dist/types/react/hooks/useFrame.d.ts +23 -0
  184. package/dist/types/react/hooks/useFrame.d.ts.map +1 -0
  185. package/dist/types/react/hooks/usePlayers.d.ts +24 -0
  186. package/dist/types/react/hooks/usePlayers.d.ts.map +1 -0
  187. package/dist/types/react/hooks/useQuery.d.ts +41 -0
  188. package/dist/types/react/hooks/useQuery.d.ts.map +1 -0
  189. package/dist/types/react/hooks/useSession.d.ts +10 -0
  190. package/dist/types/react/hooks/useSession.d.ts.map +1 -0
  191. package/dist/types/react/index.d.ts +18 -0
  192. package/dist/types/react/index.d.ts.map +1 -0
  193. package/dist/types/react/input/DesktopInputMapper.d.ts +38 -0
  194. package/dist/types/react/input/DesktopInputMapper.d.ts.map +1 -0
  195. package/dist/types/react/input/index.d.ts +4 -0
  196. package/dist/types/react/input/index.d.ts.map +1 -0
  197. package/dist/types/react/input/types.d.ts +46 -0
  198. package/dist/types/react/input/types.d.ts.map +1 -0
  199. package/dist/types/react/providers/SessionProvider.d.ts +17 -0
  200. package/dist/types/react/providers/SessionProvider.d.ts.map +1 -0
  201. package/dist/types/react/providers/index.d.ts +2 -0
  202. package/dist/types/react/providers/index.d.ts.map +1 -0
  203. package/dist/types/react/types/index.d.ts +2 -0
  204. package/dist/types/react/types/index.d.ts.map +1 -0
  205. package/dist/types/react/types/session.d.ts +88 -0
  206. package/dist/types/react/types/session.d.ts.map +1 -0
  207. package/dist/types/react/types.d.ts +134 -0
  208. package/dist/types/react/types.d.ts.map +1 -0
  209. package/dist/types/react/utils/math.d.ts +19 -0
  210. package/dist/types/react/utils/math.d.ts.map +1 -0
  211. package/dist/types/react/views/AsteroidsView.d.ts +24 -0
  212. package/dist/types/react/views/AsteroidsView.d.ts.map +1 -0
  213. package/dist/types/react/views/FirstPersonView.d.ts +10 -0
  214. package/dist/types/react/views/FirstPersonView.d.ts.map +1 -0
  215. package/dist/types/react/views/IsometricView.d.ts +21 -0
  216. package/dist/types/react/views/IsometricView.d.ts.map +1 -0
  217. package/dist/types/react/views/MapView.d.ts +16 -0
  218. package/dist/types/react/views/MapView.d.ts.map +1 -0
  219. package/dist/types/react/views/MobaView.d.ts +17 -0
  220. package/dist/types/react/views/MobaView.d.ts.map +1 -0
  221. package/dist/types/react/views/SideOnView.d.ts +23 -0
  222. package/dist/types/react/views/SideOnView.d.ts.map +1 -0
  223. package/dist/types/react/views/ThirdPersonFixedView.d.ts +21 -0
  224. package/dist/types/react/views/ThirdPersonFixedView.d.ts.map +1 -0
  225. package/dist/types/react/views/ThirdPersonView.d.ts +12 -0
  226. package/dist/types/react/views/ThirdPersonView.d.ts.map +1 -0
  227. package/dist/types/react/views/TopDownFixedView.d.ts +20 -0
  228. package/dist/types/react/views/TopDownFixedView.d.ts.map +1 -0
  229. package/dist/types/react/views/TopDownView.d.ts +12 -0
  230. package/dist/types/react/views/TopDownView.d.ts.map +1 -0
  231. package/dist/types/react/views/TwinStickView.d.ts +13 -0
  232. package/dist/types/react/views/TwinStickView.d.ts.map +1 -0
  233. package/dist/types/react/views/VehicleFixedView.d.ts +16 -0
  234. package/dist/types/react/views/VehicleFixedView.d.ts.map +1 -0
  235. package/dist/types/react/views/VehicleView.d.ts +13 -0
  236. package/dist/types/react/views/VehicleView.d.ts.map +1 -0
  237. package/dist/types/react/views/index.d.ts +21 -0
  238. package/dist/types/react/views/index.d.ts.map +1 -0
  239. package/dist/types/react/views/types.d.ts +136 -0
  240. package/dist/types/react/views/types.d.ts.map +1 -0
  241. package/dist/types/rollback.d.ts +193 -0
  242. package/dist/types/rollback.d.ts.map +1 -0
  243. package/dist/types/rollback.worker.d.ts +3 -0
  244. package/dist/types/rollback.worker.d.ts.map +1 -0
  245. package/dist/types/schema.d.ts +309 -0
  246. package/dist/types/schema.d.ts.map +1 -0
  247. package/dist/types/session-config.d.ts +119 -0
  248. package/dist/types/session-config.d.ts.map +1 -0
  249. package/dist/types/session.d.ts +120 -0
  250. package/dist/types/session.d.ts.map +1 -0
  251. package/dist/types/state.d.ts +400 -0
  252. package/dist/types/state.d.ts.map +1 -0
  253. package/dist/types/stats.d.ts +21 -0
  254. package/dist/types/stats.d.ts.map +1 -0
  255. package/dist/types/test-session.d.ts +170 -0
  256. package/dist/types/test-session.d.ts.map +1 -0
  257. package/dist/types/utils.d.ts +26 -0
  258. package/dist/types/utils.d.ts.map +1 -0
  259. package/dist/types/vite/codegen-runner.d.ts +27 -0
  260. package/dist/types/vite/codegen-runner.d.ts.map +1 -0
  261. package/dist/types/vite/index.d.ts +20 -0
  262. package/dist/types/vite/index.d.ts.map +1 -0
  263. package/dist/types/vite/module-builder.d.ts +28 -0
  264. package/dist/types/vite/module-builder.d.ts.map +1 -0
  265. package/dist/types/vite/plugin.d.ts +27 -0
  266. package/dist/types/vite/plugin.d.ts.map +1 -0
  267. package/dist/types/vite/types.d.ts +37 -0
  268. package/dist/types/vite/types.d.ts.map +1 -0
  269. package/dist/types/vite/wasm-compiler.d.ts +32 -0
  270. package/dist/types/vite/wasm-compiler.d.ts.map +1 -0
  271. package/dist/utils.d.ts +26 -0
  272. package/dist/utils.d.ts.map +1 -0
  273. package/dist/vite/codegen-runner.d.ts +27 -0
  274. package/dist/vite/codegen-runner.d.ts.map +1 -0
  275. package/dist/vite/index.d.ts +20 -0
  276. package/dist/vite/index.d.ts.map +1 -0
  277. package/dist/vite/index.js +4202 -0
  278. package/dist/vite/module-builder.d.ts +28 -0
  279. package/dist/vite/module-builder.d.ts.map +1 -0
  280. package/dist/vite/plugin.d.ts +27 -0
  281. package/dist/vite/plugin.d.ts.map +1 -0
  282. package/dist/vite/types.d.ts +37 -0
  283. package/dist/vite/types.d.ts.map +1 -0
  284. package/dist/vite/wasm-compiler.d.ts +32 -0
  285. package/dist/vite/wasm-compiler.d.ts.map +1 -0
  286. package/package.json +92 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Compute the session start time for a rolling session.
3
+ * All clients with synchronized clocks will compute the same startTime
4
+ * for the current time window (session duration = maxTicks / tickRate seconds).
5
+ *
6
+ * The returned startTime should be passed to SessionConfig to ensure all players
7
+ * join the same session with proper timing coordination by the relay.
8
+ *
9
+ * @param timestamp - Unix timestamp in milliseconds (e.g., Date.now())
10
+ * @param tickRate - Ticks per second (Hz)
11
+ * @param maxTicks - Maximum ticks per session (determines session duration)
12
+ * @param cooldown - Optional seconds to add between sessions (default: 0)
13
+ * @returns Unix timestamp in seconds for the session start time
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * // Basic usage
18
+ * const startTime = computeRollingSessionStart(Date.now(), 20, 2000);
19
+ *
20
+ * // With 30 second cooldown between sessions
21
+ * const startTime = computeRollingSessionStart(Date.now(), 20, 2000, 30);
22
+ *
23
+ * const sessionConfig = new SessionConfig({
24
+ * authority: 'relay.example.com',
25
+ * appID: 'mygame',
26
+ * path: ['lobby'],
27
+ * tickRate: 20,
28
+ * maxParticipants: 8,
29
+ * maxTicks: 2000,
30
+ * startTime,
31
+ * });
32
+ * ```
33
+ */
34
+ export declare function computeRollingSessionStart(timestamp: number, tickRate: number, maxTicks: number, cooldown?: number): number;
35
+ export type ConnectionURL = `multitap://${string}`;
36
+ /**
37
+ * SessionConfig holds all parameters that define a session's identity.
38
+ * Two clients must have matching configs to join the same session.
39
+ */
40
+ export interface SessionConfigOptions {
41
+ /** Protocol version (must be "v1") */
42
+ version: string;
43
+ /** Relay server authority (host:port) - NOT included in genesis hash, only needed for toConnectionURL() */
44
+ authority?: string;
45
+ /** Application identifier (DNS-style, lowercase) */
46
+ appID: string;
47
+ /** Path segments for session routing (max 8 segments, 32 chars each) */
48
+ path: string[] | string;
49
+ /** Tick rate in Hz (1-60) */
50
+ tickRate: number;
51
+ /** Maximum participants (1-255) */
52
+ maxParticipants: number;
53
+ /** Maximum ticks before session ends (required, 1-864000) */
54
+ maxTicks: number;
55
+ /** Session start time in Unix seconds (required, must be > 0) */
56
+ startTime: number;
57
+ /** Join credentials - NOT included in hash or filepath */
58
+ credentials?: string;
59
+ }
60
+ /**
61
+ * SessionConfig manages session connection configuration.
62
+ * Provides methods to compute genesis hash, build connection URLs, and validate config.
63
+ */
64
+ export declare class SessionConfig {
65
+ readonly version: string;
66
+ readonly authority: string;
67
+ readonly appID: string;
68
+ readonly path: string[];
69
+ readonly tickRate: number;
70
+ readonly maxParticipants: number;
71
+ readonly maxTicks: number;
72
+ readonly startTime: number;
73
+ credentials: string;
74
+ constructor(options: SessionConfigOptions);
75
+ /**
76
+ * Validate the session configuration identity fields.
77
+ * Authority is NOT validated here - it's only required for toConnectionURL().
78
+ * @throws Error if validation fails
79
+ */
80
+ validate(): void;
81
+ /**
82
+ * Compute the genesis hash - a deterministic 16-byte session identifier.
83
+ * Excludes Authority and Credentials from the hash.
84
+ *
85
+ * Format (must match Go protocol/session.go ToGenesisHash):
86
+ * SHA256("multitap:genesis:v1:" || AppID || \x00 || Path[0] || \x00 || ... || TickRate || MaxParticipants || MaxTicks || StartTime)[:16]
87
+ *
88
+ * @returns 16-byte genesis hash
89
+ */
90
+ toGenesisHash(): Uint8Array;
91
+ /**
92
+ * Build a multitap:// connection URL from this config.
93
+ * @returns multitap:// URL string
94
+ */
95
+ toConnectionURL(): ConnectionURL;
96
+ /**
97
+ * Build an HTTPS connection URL (for WebTransport).
98
+ * @returns HTTPS URL string
99
+ */
100
+ toHTTPSURL(): string;
101
+ /**
102
+ * Encode the connection URL as base64url for transport through URL-unsafe systems.
103
+ * @returns base64url-encoded connection URL string
104
+ */
105
+ toBase64EncodedConnectionURL(): string;
106
+ /**
107
+ * Create a SessionConfig from a base64url-encoded connection URL.
108
+ * @param encodedURL base64url-encoded connection URL
109
+ * @returns SessionConfig instance
110
+ */
111
+ static fromBase64EncodedConnectionURL(encodedURL: string): SessionConfig;
112
+ /**
113
+ * Create a SessionConfig from a multitap:// URL.
114
+ * @param url multitap:// URL string
115
+ * @returns SessionConfig instance
116
+ */
117
+ static fromConnectionURL(urlString: string): SessionConfig;
118
+ }
119
+ //# sourceMappingURL=session-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-config.d.ts","sourceRoot":"","sources":["../../src/session-config.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAU,GACnB,MAAM,CAgBR;AAGD,MAAM,MAAM,aAAa,GAAG,cAAc,MAAM,EAAE,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,2GAA2G;IAC3G,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACxB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;gBAER,OAAO,EAAE,oBAAoB;IAoBzC;;;;OAIG;IACH,QAAQ,IAAI,IAAI;IA6EhB;;;;;;;;OAQG;IACH,aAAa,IAAI,UAAU;IAmE3B;;;OAGG;IACH,eAAe,IAAI,aAAa;IA+BhC;;;OAGG;IACH,UAAU,IAAI,MAAM;IAKpB;;;OAGG;IACH,4BAA4B,IAAI,MAAM;IAKtC;;;;OAIG;IACH,MAAM,CAAC,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAKxE;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;CAyD3D"}
@@ -0,0 +1,120 @@
1
+ import { type InputCodec, type InputSchema } from './input-codec';
2
+ import { type CompiledSchema, type StateBuffer, type StateSchema, type StoreApi } from './state';
3
+ import { type Rollback as RollbackClass } from './rollback';
4
+ import { type Channel as ChannelClass } from './channel';
5
+ import { SessionConfig } from './session-config';
6
+ import type { Participant } from './input-graph';
7
+ export * from './input-graph';
8
+ export interface SessionStats {
9
+ inputs: Partial<Awaited<ReturnType<(typeof ChannelClass.prototype)['getStats']>>>;
10
+ simulation: Partial<Awaited<ReturnType<(typeof RollbackClass.prototype)['getStats']>>>;
11
+ renderer: Partial<{
12
+ fps: number;
13
+ }>;
14
+ }
15
+ export interface Renderer {
16
+ init(session: SessionInterface): void;
17
+ close(session: SessionInterface): void;
18
+ getStats?: () => SessionStats['renderer'];
19
+ }
20
+ export interface MultitapPlugin {
21
+ name: string;
22
+ wasmBytes: Uint8Array;
23
+ /** Reserved bytes in shared WASM memory for this plugin's data section and stack */
24
+ reservedBytes: number;
25
+ }
26
+ export interface MultitapConfig {
27
+ appID: string;
28
+ tickRate: number;
29
+ maxTicks: number;
30
+ maxParticipants: number;
31
+ plugins: MultitapPlugin[];
32
+ schema: {
33
+ state: CompiledSchema;
34
+ input: InputSchema;
35
+ };
36
+ }
37
+ export interface SessionOptions {
38
+ playerKey: Uint8Array;
39
+ authority?: string;
40
+ appID: string;
41
+ path: string[] | string;
42
+ tickRate: number;
43
+ maxParticipants: number;
44
+ maxTicks: number;
45
+ startTime: number;
46
+ debug?: boolean;
47
+ serverCertHash?: string;
48
+ validatorKeys?: Uint8Array[];
49
+ autoConnect?: boolean;
50
+ maxTicksPerBatch?: number;
51
+ tickLag?: number;
52
+ connectionTimeoutMs?: number;
53
+ plugins: MultitapPlugin[];
54
+ schema: {
55
+ state: StateSchema | CompiledSchema;
56
+ input: InputSchema;
57
+ };
58
+ renderer: Renderer;
59
+ dangerouslyDisableSessionCompatibilityHashCheck?: boolean;
60
+ logSyncTicks?: boolean;
61
+ enableStatsCollection?: boolean;
62
+ enableP2P?: boolean;
63
+ }
64
+ declare class Session {
65
+ private channel;
66
+ private rollback;
67
+ private config;
68
+ private initializing;
69
+ private initialized;
70
+ private playerKey;
71
+ private compiledStateSchema;
72
+ private channelWorkerUrl;
73
+ private rollbackWorkerUrl;
74
+ private rollbackWorker;
75
+ private channelWorker;
76
+ private maxTicksPerBatch;
77
+ private serverCertHash;
78
+ private validatorKeys;
79
+ readonly debug: boolean | undefined;
80
+ private autoConnect;
81
+ private connectionTimeoutMs;
82
+ private tickLag;
83
+ private logSyncTicks;
84
+ private schema;
85
+ private closed;
86
+ private latestState;
87
+ private loopTimer;
88
+ private renderer;
89
+ private plugins;
90
+ private inputCodec;
91
+ private stateBindings;
92
+ private statsTimer;
93
+ private enableStatsCollection;
94
+ private stats;
95
+ private participantsById;
96
+ private participantsSorted;
97
+ private peerMesh;
98
+ private enableP2P;
99
+ constructor(options: SessionOptions);
100
+ init(): Promise<void>;
101
+ getCurrentPlayerId(): string;
102
+ getParticipants(): readonly Participant[];
103
+ private onParticipantJoined;
104
+ getConfig(): SessionConfig;
105
+ getStateBindings(): StoreApi;
106
+ getInputBindings(): InputCodec;
107
+ sendInput(input: Uint8Array): void;
108
+ getState(): StateBuffer;
109
+ private onInputSendError;
110
+ private onStateUpdate;
111
+ getStats(): SessionStats;
112
+ close(): Promise<void>;
113
+ private _collectStats;
114
+ private collectStats;
115
+ private createRollbackWorker;
116
+ private createChannelWorker;
117
+ }
118
+ export declare function createSession(options: SessionOptions): Promise<Session>;
119
+ export type SessionInterface = Awaited<ReturnType<typeof createSession>>;
120
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,400 @@
1
+ /**
2
+ * Binary state format with Entity-Component-like access patterns and semantics
3
+ *
4
+ * A fixed-buffer database optimized for use with ECS and rollback networking:
5
+ * - O(1) state copying (memcpy semantics)
6
+ * - Bit-for-bit determinism across languages
7
+ * - Zero serialization overhead
8
+ * - Schema-first, cross-language compatible
9
+ *
10
+ * See ADR-014: Entity-Component State Format for specification details.
11
+ *
12
+ * @module state
13
+ */
14
+ import { MAGIC, NULL_ENTITY, STATE_ID_OFFSET, STATE_ID_SIZE, TICK_OFFSET, TICK_RATE_OFFSET, type PrimitiveType, type CompoundType, type ArrayType, type EnumType, type FieldType, type EntityRef, type StateBuffer, type FieldDef, type ComponentDef, type EventDef, type StateSchema, type CompiledField, type CompiledComponent, type CompiledEvent, type CompiledStateSchema, type Vec2, type Vec3, type Quat } from './schema';
15
+ export { MAGIC, NULL_ENTITY, STATE_ID_OFFSET, STATE_ID_SIZE, TICK_OFFSET, TICK_RATE_OFFSET, type PrimitiveType, type CompoundType, type ArrayType, type EnumType, type FieldType, type EntityRef, type StateBuffer, type FieldDef, type ComponentDef, type EventDef, type StateSchema, type CompiledField, type CompiledComponent, type CompiledEvent, type Vec2, type Vec3, type Quat, };
16
+ type CompiledSchema = CompiledStateSchema;
17
+ export type { CompiledSchema };
18
+ /**
19
+ * Pack an entity index and generation into an EntityRef.
20
+ *
21
+ * @param index - Entity slot index (0 to maxEntities-1)
22
+ * @param generation - Generation counter
23
+ * @returns Packed EntityRef value
24
+ */
25
+ export declare function packRef(index: number, generation: number): EntityRef;
26
+ /**
27
+ * Extract the entity index from an EntityRef.
28
+ *
29
+ * @param ref - Entity reference
30
+ * @returns Entity slot index
31
+ */
32
+ export declare function unpackIndex(ref: EntityRef): number;
33
+ /**
34
+ * Extract the generation from an EntityRef.
35
+ *
36
+ * @param ref - Entity reference
37
+ * @returns Generation counter
38
+ */
39
+ export declare function unpackGeneration(ref: EntityRef): number;
40
+ /**
41
+ * Check if a schema is already compiled.
42
+ * @deprecated Use isCompiledStateSchema from schema.ts instead
43
+ */
44
+ export declare function isCompiledSchema(schema: StateSchema | CompiledStateSchema): schema is CompiledStateSchema;
45
+ /**
46
+ * Compile a schema if needed, or return it if already compiled.
47
+ * @deprecated Use ensureCompiledStateSchema from schema.ts instead
48
+ */
49
+ export declare function ensureCompiled(schema: StateSchema | CompiledStateSchema): CompiledStateSchema;
50
+ /**
51
+ * Compile a schema definition into a CompiledSchema with all layout offsets.
52
+ * @deprecated Use compileStateSchema from schema.ts instead
53
+ */
54
+ export declare function compileSchema(schema: StateSchema): CompiledStateSchema;
55
+ /**
56
+ * Get the stateId from a state buffer.
57
+ * The stateId uniquely identifies a state based on its input history.
58
+ *
59
+ * @param state - State buffer
60
+ * @returns 32-byte stateId
61
+ */
62
+ export declare function getStateId(state: Uint8Array): Uint8Array;
63
+ /**
64
+ * Set the stateId in a state buffer.
65
+ *
66
+ * @param state - State buffer to modify
67
+ * @param stateId - 32-byte stateId to set
68
+ */
69
+ export declare function setStateId(state: Uint8Array, stateId: Uint8Array): void;
70
+ /**
71
+ * Get the current tick from a state buffer.
72
+ *
73
+ * @param state - State buffer to read from
74
+ * @returns Current tick number (uint32)
75
+ */
76
+ export declare function getTick(state: Uint8Array): number;
77
+ /**
78
+ * Set the current tick in a state buffer.
79
+ *
80
+ * @param state - State buffer to modify
81
+ * @param tick - Tick number to set (uint32)
82
+ */
83
+ export declare function setTick(state: Uint8Array, tick: number): void;
84
+ /**
85
+ * Get the tick rate from a state buffer.
86
+ *
87
+ * @param state - State buffer to read from
88
+ * @returns Tick rate (ticks per second, uint8)
89
+ */
90
+ export declare function getTickRate(state: Uint8Array): number;
91
+ /**
92
+ * Set the tick rate in a state buffer.
93
+ *
94
+ * @param state - State buffer to modify
95
+ * @param tickRate - Tick rate to set (ticks per second, uint8)
96
+ */
97
+ export declare function setTickRate(state: Uint8Array, tickRate: number): void;
98
+ /**
99
+ * Compute the stateId that would result from applying a state transition.
100
+ *
101
+ * Formula: SHA256(prevStateId || tick || orderedPayloadsHash)
102
+ *
103
+ * @param prevStateId - 32-byte stateId of the previous state
104
+ * @param tick - Tick number (will be encoded as little-endian uint32)
105
+ * @param orderedPayloadsHash - 32-byte hash of ordered payloads (one per participant at stable indices)
106
+ * @returns 32-byte stateId for the resulting state
107
+ */
108
+ export declare function computeNextStateId(prevStateId: Uint8Array, tick: number, orderedPayloadsHash: Uint8Array): Uint8Array;
109
+ /**
110
+ * Convenience helper: compute stateId directly from ordered payloads.
111
+ * Uses hashPayloads to derive the orderedPayloadsHash.
112
+ */
113
+ export declare function computeNextStateIdFromPayloads(prevStateId: Uint8Array, tick: number, orderedPayloads: Uint8Array[]): Uint8Array;
114
+ /**
115
+ * Compute the genesis stateId from a genesis hash.
116
+ * This seeds the stateId chain with global uniqueness.
117
+ *
118
+ * @param genesisHash - 16-byte genesis hash
119
+ * @returns 32-byte genesis stateId
120
+ */
121
+ export declare function computeGenesisStateId(genesisHash: Uint8Array): Uint8Array;
122
+ /**
123
+ * Create a new state buffer initialized with the given schema.
124
+ *
125
+ * Initial state:
126
+ * - Header: magic number, alive count = 0, stateId = SHA256(genesisHash) or zeros
127
+ * - Entity table: all generations = 0, all bitmasks = 0
128
+ * - Free stack: populated with all indices (0 to maxEntities-1) in reverse order
129
+ * - Component storage: all zeros
130
+ * - Singleton storage: all zeros
131
+ *
132
+ * @param schema - Compiled schema
133
+ * @param genesisHash - Optional 16-byte genesis hash to seed the genesis stateId.
134
+ * If not provided, stateId will be all zeros.
135
+ * @param tickRate - Optional tick rate (ticks per second). Required for physics.
136
+ * @returns New Uint8Array state buffer
137
+ */
138
+ export declare function createState(schema: CompiledSchema, genesisHash?: Uint8Array, tickRate?: number): StateBuffer;
139
+ /**
140
+ * Spawn a new entity.
141
+ *
142
+ * Allocation is deterministic - uses LIFO free stack, so spawn order
143
+ * depends only on previous despawn order.
144
+ *
145
+ * @param schema - Compiled schema
146
+ * @param state - State buffer
147
+ * @returns EntityRef for the new entity
148
+ * @throws Error if no free entity slots available
149
+ */
150
+ export declare function spawn(schema: CompiledSchema, state: StateBuffer): EntityRef;
151
+ /**
152
+ * Check if an entity reference is still valid (alive).
153
+ *
154
+ * An entity is alive if its generation matches the stored generation.
155
+ * After despawn, the generation increments, invalidating old references.
156
+ *
157
+ * @param schema - Compiled schema
158
+ * @param state - State buffer
159
+ * @param entity - Entity reference to check
160
+ * @returns true if entity is alive, false otherwise
161
+ */
162
+ export declare function isAlive(schema: CompiledSchema, state: StateBuffer, entity: EntityRef): boolean;
163
+ /**
164
+ * Despawn an entity.
165
+ *
166
+ * This operation:
167
+ * 1. Increments the generation counter (invalidates old references)
168
+ * 2. Clears the component bitmask
169
+ * 3. Zeros all component memory for this entity
170
+ * 4. Pushes the index back onto the free stack
171
+ * 5. Decrements the alive count
172
+ *
173
+ * @param schema - Compiled schema
174
+ * @param state - State buffer
175
+ * @param entity - Entity reference to despawn
176
+ * @throws Error if entity is not alive
177
+ */
178
+ export declare function despawn(schema: CompiledSchema, state: StateBuffer, entity: EntityRef): void;
179
+ /**
180
+ * Check if an entity has a specific component.
181
+ *
182
+ * @param schema - Compiled schema
183
+ * @param state - State buffer
184
+ * @param entity - Entity reference
185
+ * @param componentName - Component name
186
+ * @returns true if entity has the component
187
+ * @throws Error if component is unknown
188
+ */
189
+ export declare function hasComponent(schema: CompiledSchema, state: StateBuffer, entity: EntityRef, componentName: string): boolean;
190
+ /**
191
+ * Add a component to an entity.
192
+ *
193
+ * Component memory is already zero from state initialization or prior despawn.
194
+ * This operation only sets the component's presence bit in the entity bitmask.
195
+ * Calling this when the component already exists is a no-op (idempotent).
196
+ *
197
+ * @param schema - Compiled schema
198
+ * @param state - State buffer
199
+ * @param entity - Entity reference
200
+ * @param componentName - Component name to add
201
+ * @throws Error if entity is not alive or component is unknown
202
+ */
203
+ export declare function addComponent(schema: CompiledSchema, state: StateBuffer, entity: EntityRef, componentName: string): void;
204
+ /**
205
+ * Remove a component from an entity.
206
+ *
207
+ * For non-tag components, the component's memory is zeroed.
208
+ * Calling this when the component doesn't exist is a no-op (idempotent).
209
+ *
210
+ * @param schema - Compiled schema
211
+ * @param state - State buffer
212
+ * @param entity - Entity reference
213
+ * @param componentName - Component name to remove
214
+ * @throws Error if entity is not alive or component is unknown
215
+ */
216
+ export declare function removeComponent(schema: CompiledSchema, state: StateBuffer, entity: EntityRef, componentName: string): void;
217
+ /**
218
+ * Generic getter for a component field.
219
+ * Returns undefined if entity is dead or lacks the component.
220
+ */
221
+ export declare function getField(schema: CompiledSchema, state: StateBuffer, entity: EntityRef, componentName: string, fieldName: string, arrayIndex?: number): number | boolean | undefined;
222
+ /**
223
+ * Generic setter for a component field.
224
+ * Validates entity is alive and has the component.
225
+ */
226
+ export declare function setField(schema: CompiledSchema, state: StateBuffer, entity: EntityRef, componentName: string, fieldName: string, value: number | boolean, arrayIndex?: number): void;
227
+ export declare function getSingletonField(schema: CompiledSchema, state: StateBuffer, componentName: string, fieldName: string, arrayIndex?: number): number | boolean;
228
+ export declare function setSingletonField(schema: CompiledSchema, state: StateBuffer, componentName: string, fieldName: string, value: number | boolean, arrayIndex?: number): void;
229
+ /**
230
+ * Generic getter for a compound (vec2/vec3/quat) component field.
231
+ * Returns undefined if entity is dead or lacks the component.
232
+ */
233
+ export declare function getCompoundField(schema: CompiledSchema, state: StateBuffer, entity: EntityRef, componentName: string, fieldName: string): [number, number] | [number, number, number] | [number, number, number, number] | undefined;
234
+ /**
235
+ * Generic setter for a compound (vec2/vec3/quat) component field.
236
+ * Accepts a tuple of values.
237
+ */
238
+ export declare function setCompoundField(schema: CompiledSchema, state: StateBuffer, entity: EntityRef, componentName: string, fieldName: string, value: [number, number] | [number, number, number] | [number, number, number, number]): void;
239
+ export declare function getSingletonCompoundField(schema: CompiledSchema, state: StateBuffer, componentName: string, fieldName: string): [number, number] | [number, number, number] | [number, number, number, number];
240
+ export declare function setSingletonCompoundField(schema: CompiledSchema, state: StateBuffer, componentName: string, fieldName: string, value: [number, number] | [number, number, number] | [number, number, number, number]): void;
241
+ /**
242
+ * Query for entities with specific components.
243
+ *
244
+ * Iterates through all entity slots, yielding those that:
245
+ * - Are alive
246
+ * - Have all components in the `include` list
247
+ * - Have none of the components in the `exclude` list
248
+ *
249
+ * @param schema - Compiled schema
250
+ * @param state - State buffer
251
+ * @param include - Component names that must be present
252
+ * @param exclude - Component names that must NOT be present (optional)
253
+ * @yields EntityRef for each matching entity
254
+ */
255
+ export declare function query(schema: CompiledSchema, state: StateBuffer, include: string[], exclude?: string[]): Generator<EntityRef>;
256
+ /**
257
+ * Query entities by pre-computed bigint bitmasks.
258
+ *
259
+ * This is more efficient than `query()` when using generated bindings,
260
+ * as the masks are computed at module load time rather than per-query.
261
+ *
262
+ * @example
263
+ * // With generated bindings (type-safe):
264
+ * import { Position, Ship, RespawnTimer, queryMask } from '../generated/state';
265
+ * const SHIPS_MASK = queryMask([Position, Ship]);
266
+ * const RESPAWN_MASK = queryMask([RespawnTimer]);
267
+ * const ships = queryByMask(schema, state, SHIPS_MASK, RESPAWN_MASK);
268
+ *
269
+ * @param schema - Compiled schema
270
+ * @param state - State buffer
271
+ * @param includeMask - Bigint bitmask of components that must be present
272
+ * @param excludeMask - Bigint bitmask of components that must NOT be present (optional, default 0n)
273
+ * @yields EntityRef for each matching entity
274
+ */
275
+ export declare function queryByMask(schema: CompiledSchema, state: StateBuffer, includeMask: bigint, excludeMask?: bigint): Generator<EntityRef>;
276
+ /**
277
+ * Clear all events of a given type (call at tick start).
278
+ *
279
+ * @param schema - Compiled schema
280
+ * @param state - State buffer
281
+ * @param eventName - Event type name
282
+ */
283
+ export declare function clearEvents(schema: CompiledSchema, state: StateBuffer, eventName: string): void;
284
+ /**
285
+ * Get the count of events for a given type this tick.
286
+ *
287
+ * @param schema - Compiled schema
288
+ * @param state - State buffer
289
+ * @param eventName - Event type name
290
+ * @returns Number of events
291
+ */
292
+ export declare function getEventCount(schema: CompiledSchema, state: StateBuffer, eventName: string): number;
293
+ /**
294
+ * Push an event to the event buffer.
295
+ *
296
+ * @param schema - Compiled schema
297
+ * @param state - State buffer
298
+ * @param eventName - Event type name
299
+ * @param values - Field values as a record (e.g., { playerIndex: 0, targetX: 100.0, targetY: 200.0 })
300
+ * @returns true if event was pushed, false if buffer is full
301
+ */
302
+ export declare function pushEvent(schema: CompiledSchema, state: StateBuffer, eventName: string, values: Record<string, number | boolean | Vec2 | Vec3 | Quat>): boolean;
303
+ /**
304
+ * Get a field value from an event at a given index.
305
+ *
306
+ * @param schema - Compiled schema
307
+ * @param state - State buffer
308
+ * @param eventName - Event type name
309
+ * @param index - Event index (0 to getEventCount - 1)
310
+ * @param fieldName - Field name
311
+ * @returns Field value
312
+ */
313
+ export declare function getEventField(schema: CompiledSchema, state: StateBuffer, eventName: string, index: number, fieldName: string): number | boolean | Vec2 | Vec3 | Quat;
314
+ /**
315
+ * Iterate over events of a given type.
316
+ *
317
+ * @param schema - Compiled schema
318
+ * @param state - State buffer
319
+ * @param eventName - Event type name
320
+ * @yields Record of field values for each event
321
+ */
322
+ export declare function iterEvents(schema: CompiledSchema, state: StateBuffer, eventName: string): Generator<Record<string, number | boolean | Vec2 | Vec3 | Quat>>;
323
+ /**
324
+ * The StoreApi interface with dynamically generated accessors.
325
+ * Accessors like getPositionX(), setHealth() are generated at runtime.
326
+ */
327
+ export interface StoreApi {
328
+ /** The compiled schema */
329
+ readonly schema: CompiledSchema;
330
+ /** Create a new state buffer */
331
+ createState(): StateBuffer;
332
+ /** Spawn a new entity */
333
+ spawn(state: StateBuffer): EntityRef;
334
+ /** Despawn an entity */
335
+ despawn(state: StateBuffer, entity: EntityRef): void;
336
+ /** Check if entity is alive */
337
+ isAlive(state: StateBuffer, entity: EntityRef): boolean;
338
+ /** Add a component to an entity */
339
+ addComponent(state: StateBuffer, entity: EntityRef, component: string): void;
340
+ /** Remove a component from an entity */
341
+ removeComponent(state: StateBuffer, entity: EntityRef, component: string): void;
342
+ /** Check if entity has a component */
343
+ hasComponent(state: StateBuffer, entity: EntityRef, component: string): boolean;
344
+ /** Query for entities with specific components */
345
+ query(state: StateBuffer, include: string[], exclude?: string[]): Generator<EntityRef>;
346
+ /** Index signature for dynamically generated accessors (getX, setX methods) */
347
+ [key: string]: any;
348
+ }
349
+ /**
350
+ * Define a state memory layout with the given schema.
351
+ *
352
+ * Returns a StoreApi object with:
353
+ * - Type-safe accessor methods for all component fields
354
+ * - Type-safe component name parameters
355
+ * - Core entity/component lifecycle methods
356
+ *
357
+ * @param schemaDef - State schema definition (use `as const` for full type inference)
358
+ * @returns StoreApi object with type-safe API
359
+ *
360
+ * @example
361
+ * ```typescript
362
+ * const storeApi = createStoreApi({
363
+ * maxEntities: 1000,
364
+ * components: [
365
+ * { name: 'Position', type: 'vec2' },
366
+ * { name: 'Health', type: 'int16' },
367
+ * { name: 'IsPlayer', type: 'tag' },
368
+ * ],
369
+ * } as const);
370
+ *
371
+ * const state = storeApi.createState();
372
+ * const entity = storeApi.spawn(state);
373
+ * storeApi.addComponent(state, entity, 'Position');
374
+ * storeApi.setPositionX(state, entity, 100.5); // native f32 float
375
+ * storeApi.addComponent(state, entity, 'Health');
376
+ * storeApi.setHealth(state, entity, 100); // Scalar component accessor
377
+ * ```
378
+ */
379
+ export declare function createStoreApi(schemaDef: StateSchema | CompiledSchema): StoreApi;
380
+ /**
381
+ * Extract enum constants from a compiled schema.
382
+ *
383
+ * Returns a record mapping constant names to their numeric values.
384
+ * Naming convention matches the Rust codegen:
385
+ * - Standalone enum components: `COMPONENT_NAME_VARIANT`
386
+ * - Enum fields in compounds: `COMPONENT_NAME_FIELD_NAME_VARIANT`
387
+ *
388
+ * @param schema - Compiled schema (or raw schema that will be compiled)
389
+ * @returns Record of enum constant names to values
390
+ *
391
+ * @example
392
+ * ```typescript
393
+ * const enums = getEnumConstants(schema);
394
+ * // enums.RIGID_BODY_TYPE_DYNAMIC === 0
395
+ * // enums.RIGID_BODY_TYPE_FIXED === 1
396
+ * // enums.COLLIDER_SHAPE_TYPE_BALL === 0
397
+ * ```
398
+ */
399
+ export declare function getEnumConstants(schema: StateSchema | CompiledSchema): Record<string, number>;
400
+ //# sourceMappingURL=state.d.ts.map