@unrulysystems/native-motion-core 0.1.0-alpha.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 (326) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/LICENSE +21 -0
  3. package/README.md +48 -0
  4. package/dist/clock.cjs +71 -0
  5. package/dist/clock.d.cts +23 -0
  6. package/dist/clock.d.ts +23 -0
  7. package/dist/clock.js +66 -0
  8. package/dist/collect-reads.cjs +68 -0
  9. package/dist/collect-reads.d.cts +23 -0
  10. package/dist/collect-reads.d.ts +23 -0
  11. package/dist/collect-reads.js +62 -0
  12. package/dist/component/boundedArray.cjs +74 -0
  13. package/dist/component/boundedArray.d.cts +25 -0
  14. package/dist/component/boundedArray.d.ts +25 -0
  15. package/dist/component/boundedArray.js +68 -0
  16. package/dist/component/index.cjs +57 -0
  17. package/dist/component/index.d.cts +12 -0
  18. package/dist/component/index.d.ts +12 -0
  19. package/dist/component/index.js +22 -0
  20. package/dist/component/orchestration.cjs +129 -0
  21. package/dist/component/orchestration.d.cts +66 -0
  22. package/dist/component/orchestration.d.ts +66 -0
  23. package/dist/component/orchestration.js +124 -0
  24. package/dist/component/resolve.cjs +104 -0
  25. package/dist/component/resolve.d.cts +11 -0
  26. package/dist/component/resolve.d.ts +11 -0
  27. package/dist/component/resolve.js +97 -0
  28. package/dist/component/transition.cjs +352 -0
  29. package/dist/component/transition.d.cts +33 -0
  30. package/dist/component/transition.d.ts +33 -0
  31. package/dist/component/transition.js +339 -0
  32. package/dist/component/types.cjs +114 -0
  33. package/dist/component/types.d.cts +60 -0
  34. package/dist/component/types.d.ts +60 -0
  35. package/dist/component/types.js +111 -0
  36. package/dist/component/validate.cjs +1015 -0
  37. package/dist/component/validate.d.cts +37 -0
  38. package/dist/component/validate.d.ts +37 -0
  39. package/dist/component/validate.js +1002 -0
  40. package/dist/component/variants.cjs +333 -0
  41. package/dist/component/variants.d.cts +106 -0
  42. package/dist/component/variants.d.ts +106 -0
  43. package/dist/component/variants.js +321 -0
  44. package/dist/config/constants.cjs +41 -0
  45. package/dist/config/constants.d.cts +29 -0
  46. package/dist/config/constants.d.ts +29 -0
  47. package/dist/config/constants.js +38 -0
  48. package/dist/delay.cjs +72 -0
  49. package/dist/delay.d.cts +26 -0
  50. package/dist/delay.d.ts +26 -0
  51. package/dist/delay.js +70 -0
  52. package/dist/derived.cjs +143 -0
  53. package/dist/derived.d.cts +41 -0
  54. package/dist/derived.d.ts +41 -0
  55. package/dist/derived.js +139 -0
  56. package/dist/driver/index.cjs +22 -0
  57. package/dist/driver/index.d.cts +7 -0
  58. package/dist/driver/index.d.ts +7 -0
  59. package/dist/driver/index.js +14 -0
  60. package/dist/driver/keyframeTiming.cjs +130 -0
  61. package/dist/driver/keyframeTiming.d.cts +18 -0
  62. package/dist/driver/keyframeTiming.d.ts +18 -0
  63. package/dist/driver/keyframeTiming.js +124 -0
  64. package/dist/driver/keyframeTimingConfig.cjs +24 -0
  65. package/dist/driver/keyframeTimingConfig.d.cts +5 -0
  66. package/dist/driver/keyframeTimingConfig.d.ts +5 -0
  67. package/dist/driver/keyframeTimingConfig.js +22 -0
  68. package/dist/driver/prepare.cjs +459 -0
  69. package/dist/driver/prepare.d.cts +4 -0
  70. package/dist/driver/prepare.d.ts +4 -0
  71. package/dist/driver/prepare.js +454 -0
  72. package/dist/driver/reference.cjs +762 -0
  73. package/dist/driver/reference.d.cts +53 -0
  74. package/dist/driver/reference.d.ts +53 -0
  75. package/dist/driver/reference.js +757 -0
  76. package/dist/driver/step.cjs +55 -0
  77. package/dist/driver/step.d.cts +9 -0
  78. package/dist/driver/step.d.ts +9 -0
  79. package/dist/driver/step.js +52 -0
  80. package/dist/driver/tiers.cjs +40 -0
  81. package/dist/driver/tiers.d.cts +2 -0
  82. package/dist/driver/tiers.d.ts +2 -0
  83. package/dist/driver/tiers.js +37 -0
  84. package/dist/driver/types.cjs +9 -0
  85. package/dist/driver/types.d.cts +68 -0
  86. package/dist/driver/types.d.ts +68 -0
  87. package/dist/driver/types.js +8 -0
  88. package/dist/external-animation-ledger.cjs +1250 -0
  89. package/dist/external-animation-ledger.d.cts +416 -0
  90. package/dist/external-animation-ledger.d.ts +416 -0
  91. package/dist/external-animation-ledger.js +1243 -0
  92. package/dist/gesture/directionLock.cjs +25 -0
  93. package/dist/gesture/directionLock.d.cts +8 -0
  94. package/dist/gesture/directionLock.d.ts +8 -0
  95. package/dist/gesture/directionLock.js +21 -0
  96. package/dist/gesture/dragConfig.cjs +634 -0
  97. package/dist/gesture/dragConfig.d.cts +298 -0
  98. package/dist/gesture/dragConfig.d.ts +298 -0
  99. package/dist/gesture/dragConfig.js +624 -0
  100. package/dist/gesture/elastic.cjs +44 -0
  101. package/dist/gesture/elastic.d.cts +4 -0
  102. package/dist/gesture/elastic.d.ts +4 -0
  103. package/dist/gesture/elastic.js +39 -0
  104. package/dist/gesture/handoffSession.cjs +161 -0
  105. package/dist/gesture/handoffSession.d.cts +35 -0
  106. package/dist/gesture/handoffSession.d.ts +35 -0
  107. package/dist/gesture/handoffSession.js +158 -0
  108. package/dist/gesture/index.cjs +37 -0
  109. package/dist/gesture/index.d.cts +12 -0
  110. package/dist/gesture/index.d.ts +12 -0
  111. package/dist/gesture/index.js +11 -0
  112. package/dist/gesture/projection.cjs +95 -0
  113. package/dist/gesture/projection.d.cts +7 -0
  114. package/dist/gesture/projection.d.ts +7 -0
  115. package/dist/gesture/projection.js +87 -0
  116. package/dist/gesture/session.cjs +162 -0
  117. package/dist/gesture/session.d.cts +29 -0
  118. package/dist/gesture/session.d.ts +29 -0
  119. package/dist/gesture/session.js +158 -0
  120. package/dist/gesture/types.cjs +5 -0
  121. package/dist/gesture/types.d.cts +13 -0
  122. package/dist/gesture/types.d.ts +13 -0
  123. package/dist/gesture/types.js +4 -0
  124. package/dist/gesture/viewportConstraints.cjs +38 -0
  125. package/dist/gesture/viewportConstraints.d.cts +6 -0
  126. package/dist/gesture/viewportConstraints.d.ts +6 -0
  127. package/dist/gesture/viewportConstraints.js +34 -0
  128. package/dist/graph.cjs +226 -0
  129. package/dist/graph.d.cts +2 -0
  130. package/dist/graph.d.ts +2 -0
  131. package/dist/graph.js +223 -0
  132. package/dist/index.cjs +140 -0
  133. package/dist/index.d.cts +33 -0
  134. package/dist/index.d.ts +33 -0
  135. package/dist/index.js +70 -0
  136. package/dist/inertia.cjs +214 -0
  137. package/dist/inertia.d.cts +53 -0
  138. package/dist/inertia.d.ts +53 -0
  139. package/dist/inertia.js +212 -0
  140. package/dist/instant.cjs +66 -0
  141. package/dist/instant.d.cts +16 -0
  142. package/dist/instant.d.ts +16 -0
  143. package/dist/instant.js +63 -0
  144. package/dist/internal-driver.cjs +81 -0
  145. package/dist/internal-driver.d.cts +19 -0
  146. package/dist/internal-driver.d.ts +19 -0
  147. package/dist/internal-driver.js +35 -0
  148. package/dist/keyframes.cjs +191 -0
  149. package/dist/keyframes.d.cts +13 -0
  150. package/dist/keyframes.d.ts +13 -0
  151. package/dist/keyframes.js +188 -0
  152. package/dist/layout/commitDetector.cjs +67 -0
  153. package/dist/layout/commitDetector.d.cts +21 -0
  154. package/dist/layout/commitDetector.d.ts +21 -0
  155. package/dist/layout/commitDetector.js +64 -0
  156. package/dist/layout/compose.cjs +67 -0
  157. package/dist/layout/compose.d.cts +30 -0
  158. package/dist/layout/compose.d.ts +30 -0
  159. package/dist/layout/compose.js +65 -0
  160. package/dist/layout/constants.cjs +13 -0
  161. package/dist/layout/constants.d.cts +6 -0
  162. package/dist/layout/constants.d.ts +6 -0
  163. package/dist/layout/constants.js +10 -0
  164. package/dist/layout/identity.cjs +700 -0
  165. package/dist/layout/identity.d.cts +67 -0
  166. package/dist/layout/identity.d.ts +67 -0
  167. package/dist/layout/identity.js +698 -0
  168. package/dist/layout/index.cjs +36 -0
  169. package/dist/layout/index.d.cts +18 -0
  170. package/dist/layout/index.d.ts +18 -0
  171. package/dist/layout/index.js +13 -0
  172. package/dist/layout/measure.cjs +81 -0
  173. package/dist/layout/measure.d.cts +43 -0
  174. package/dist/layout/measure.d.ts +43 -0
  175. package/dist/layout/measure.js +78 -0
  176. package/dist/layout/projection.cjs +99 -0
  177. package/dist/layout/projection.d.cts +23 -0
  178. package/dist/layout/projection.d.ts +23 -0
  179. package/dist/layout/projection.js +97 -0
  180. package/dist/layout/scroll.cjs +27 -0
  181. package/dist/layout/scroll.d.cts +13 -0
  182. package/dist/layout/scroll.d.ts +13 -0
  183. package/dist/layout/scroll.js +24 -0
  184. package/dist/layout/session.cjs +207 -0
  185. package/dist/layout/session.d.cts +73 -0
  186. package/dist/layout/session.d.ts +73 -0
  187. package/dist/layout/session.js +205 -0
  188. package/dist/layout/tree.cjs +826 -0
  189. package/dist/layout/tree.d.cts +70 -0
  190. package/dist/layout/tree.d.ts +70 -0
  191. package/dist/layout/tree.js +823 -0
  192. package/dist/layout/types.cjs +36 -0
  193. package/dist/layout/types.d.cts +31 -0
  194. package/dist/layout/types.d.ts +31 -0
  195. package/dist/layout/types.js +35 -0
  196. package/dist/motion-arc.cjs +184 -0
  197. package/dist/motion-arc.d.cts +78 -0
  198. package/dist/motion-arc.d.ts +78 -0
  199. package/dist/motion-arc.js +183 -0
  200. package/dist/motion-mix.cjs +205 -0
  201. package/dist/motion-mix.d.cts +3 -0
  202. package/dist/motion-mix.d.ts +3 -0
  203. package/dist/motion-mix.js +202 -0
  204. package/dist/motion-value-driver-port.cjs +636 -0
  205. package/dist/motion-value-driver-port.d.cts +406 -0
  206. package/dist/motion-value-driver-port.d.ts +406 -0
  207. package/dist/motion-value-driver-port.js +627 -0
  208. package/dist/motion-value.cjs +189 -0
  209. package/dist/motion-value.d.cts +51 -0
  210. package/dist/motion-value.d.ts +51 -0
  211. package/dist/motion-value.js +185 -0
  212. package/dist/presence/controller.cjs +657 -0
  213. package/dist/presence/controller.d.cts +6 -0
  214. package/dist/presence/controller.d.ts +6 -0
  215. package/dist/presence/controller.js +652 -0
  216. package/dist/presence/index.cjs +19 -0
  217. package/dist/presence/index.d.cts +4 -0
  218. package/dist/presence/index.d.ts +4 -0
  219. package/dist/presence/index.js +12 -0
  220. package/dist/presence/machine.cjs +50 -0
  221. package/dist/presence/machine.d.cts +10 -0
  222. package/dist/presence/machine.d.ts +10 -0
  223. package/dist/presence/machine.js +46 -0
  224. package/dist/presence/types.cjs +6 -0
  225. package/dist/presence/types.d.cts +32 -0
  226. package/dist/presence/types.d.ts +32 -0
  227. package/dist/presence/types.js +5 -0
  228. package/dist/repeat.cjs +311 -0
  229. package/dist/repeat.d.cts +174 -0
  230. package/dist/repeat.d.ts +174 -0
  231. package/dist/repeat.js +300 -0
  232. package/dist/spring.cjs +128 -0
  233. package/dist/spring.d.cts +18 -0
  234. package/dist/spring.d.ts +18 -0
  235. package/dist/spring.js +125 -0
  236. package/dist/subscriptions.cjs +74 -0
  237. package/dist/subscriptions.d.cts +19 -0
  238. package/dist/subscriptions.d.ts +19 -0
  239. package/dist/subscriptions.js +69 -0
  240. package/dist/subset/index.cjs +23 -0
  241. package/dist/subset/index.d.cts +6 -0
  242. package/dist/subset/index.d.ts +6 -0
  243. package/dist/subset/index.js +13 -0
  244. package/dist/subset/normalize.cjs +90 -0
  245. package/dist/subset/normalize.d.cts +10 -0
  246. package/dist/subset/normalize.d.ts +10 -0
  247. package/dist/subset/normalize.js +85 -0
  248. package/dist/subset/registry.cjs +259 -0
  249. package/dist/subset/registry.d.cts +25 -0
  250. package/dist/subset/registry.d.ts +25 -0
  251. package/dist/subset/registry.js +256 -0
  252. package/dist/subset/resolve.cjs +98 -0
  253. package/dist/subset/resolve.d.cts +24 -0
  254. package/dist/subset/resolve.d.ts +24 -0
  255. package/dist/subset/resolve.js +90 -0
  256. package/dist/timing.cjs +206 -0
  257. package/dist/timing.d.cts +17 -0
  258. package/dist/timing.d.ts +17 -0
  259. package/dist/timing.js +201 -0
  260. package/dist/transformTemplate.cjs +219 -0
  261. package/dist/transformTemplate.d.cts +29 -0
  262. package/dist/transformTemplate.d.ts +29 -0
  263. package/dist/transformTemplate.js +215 -0
  264. package/dist/transition.cjs +231 -0
  265. package/dist/transition.d.cts +89 -0
  266. package/dist/transition.d.ts +89 -0
  267. package/dist/transition.js +223 -0
  268. package/dist/types.cjs +4 -0
  269. package/dist/types.d.cts +175 -0
  270. package/dist/types.d.ts +175 -0
  271. package/dist/types.js +3 -0
  272. package/dist/value-types/color.cjs +220 -0
  273. package/dist/value-types/color.d.cts +19 -0
  274. package/dist/value-types/color.d.ts +19 -0
  275. package/dist/value-types/color.js +218 -0
  276. package/dist/value-types/complex.cjs +160 -0
  277. package/dist/value-types/complex.d.cts +19 -0
  278. package/dist/value-types/complex.d.ts +19 -0
  279. package/dist/value-types/complex.js +155 -0
  280. package/dist/value-types/constants.cjs +15 -0
  281. package/dist/value-types/constants.d.cts +6 -0
  282. package/dist/value-types/constants.d.ts +6 -0
  283. package/dist/value-types/constants.js +12 -0
  284. package/dist/value-types/discrete.cjs +62 -0
  285. package/dist/value-types/discrete.d.cts +4 -0
  286. package/dist/value-types/discrete.d.ts +4 -0
  287. package/dist/value-types/discrete.js +56 -0
  288. package/dist/value-types/index.cjs +59 -0
  289. package/dist/value-types/index.d.cts +14 -0
  290. package/dist/value-types/index.d.ts +14 -0
  291. package/dist/value-types/index.js +24 -0
  292. package/dist/value-types/measure-resolve.cjs +325 -0
  293. package/dist/value-types/measure-resolve.d.cts +91 -0
  294. package/dist/value-types/measure-resolve.d.ts +91 -0
  295. package/dist/value-types/measure-resolve.js +313 -0
  296. package/dist/value-types/mix.cjs +90 -0
  297. package/dist/value-types/mix.d.cts +27 -0
  298. package/dist/value-types/mix.d.ts +27 -0
  299. package/dist/value-types/mix.js +85 -0
  300. package/dist/value-types/named-colors.cjs +61 -0
  301. package/dist/value-types/named-colors.d.cts +2 -0
  302. package/dist/value-types/named-colors.d.ts +2 -0
  303. package/dist/value-types/named-colors.js +58 -0
  304. package/dist/value-types/numeric.cjs +86 -0
  305. package/dist/value-types/numeric.d.cts +16 -0
  306. package/dist/value-types/numeric.d.ts +16 -0
  307. package/dist/value-types/numeric.js +79 -0
  308. package/dist/worklet-layout/config/constants.js +39 -0
  309. package/dist/worklet-layout/layout/constants.js +11 -0
  310. package/dist/worklet-layout/layout/identity.js +699 -0
  311. package/dist/worklet-layout/layout/projection.js +98 -0
  312. package/dist/worklet-layout/layout/session.js +206 -0
  313. package/dist/worklet-layout/layout/tree.js +824 -0
  314. package/dist/worklet-layout/layout/types.js +36 -0
  315. package/dist/worklet-layout/spring.js +125 -0
  316. package/dist/worklet-layout/timing.js +201 -0
  317. package/dist/worklet-layout/transition.js +223 -0
  318. package/dist/worklet-layout.cjs +47 -0
  319. package/dist/worklet-layout.d.cts +15 -0
  320. package/dist/worklet-layout.d.ts +15 -0
  321. package/dist/worklet-layout.js +28 -0
  322. package/dist/wrap.cjs +7 -0
  323. package/dist/wrap.d.cts +1 -0
  324. package/dist/wrap.d.ts +1 -0
  325. package/dist/wrap.js +4 -0
  326. package/package.json +45 -0
@@ -0,0 +1,416 @@
1
+ import type { MotionGraph } from "./types.js";
2
+ export type PublicControlSlotState = {
3
+ readonly kind: 'empty';
4
+ } | {
5
+ readonly kind: 'installed';
6
+ readonly controlId: number;
7
+ readonly executionId: number;
8
+ };
9
+ /** Immutable identity-side reference to one dependency in the canonical graph-global batch. */
10
+ export interface TargetBatchDependencyReference {
11
+ readonly batchId: number;
12
+ readonly dependencyId: number;
13
+ readonly valueCompletionSequence: number;
14
+ }
15
+ export type PublicIdentityTargetBatchDependencySource = {
16
+ readonly kind: 'public-identity';
17
+ readonly identityId: number;
18
+ readonly executionId: number;
19
+ };
20
+ export type PrivateControlTargetBatchDependencySource = {
21
+ readonly kind: 'private-control';
22
+ readonly controlId: number;
23
+ };
24
+ /** Immutable provenance for one dependency in the canonical graph-global batch. */
25
+ export type TargetBatchDependencySource = PublicIdentityTargetBatchDependencySource | PrivateControlTargetBatchDependencySource;
26
+ interface ExternalAnimationExecutionIdentity {
27
+ readonly executionId: number;
28
+ readonly controlId: number;
29
+ readonly creationSequence: number;
30
+ readonly directOperationEpoch: number;
31
+ /** Captured in authored order; the canonical batch record never enters execution state. */
32
+ readonly capturedTargetBatchDependencies: readonly TargetBatchDependencyReference[];
33
+ }
34
+ export type ExternalAnimationExecutionState = (ExternalAnimationExecutionIdentity & {
35
+ readonly kind: 'running-unarmed';
36
+ }) | (ExternalAnimationExecutionIdentity & {
37
+ readonly kind: 'completion-armed-running';
38
+ readonly completionSequence: number;
39
+ readonly lifecycleEventSequence: number;
40
+ readonly cancellationCountAfterArm: number;
41
+ }) | (ExternalAnimationExecutionIdentity & {
42
+ readonly kind: 'completion-armed-physical-resolved';
43
+ readonly completionSequence: number;
44
+ readonly lifecycleEventSequence: number;
45
+ readonly cancellationCountAfterArm: number;
46
+ }) | (ExternalAnimationExecutionIdentity & {
47
+ readonly kind: 'completion-dispatching';
48
+ readonly completionSequence: number;
49
+ readonly lifecycleEventSequence: number;
50
+ readonly cancellationCountAfterArm: number;
51
+ }) | (ExternalAnimationExecutionIdentity & {
52
+ readonly kind: 'awaiting-completion-authoritative-acknowledgement';
53
+ readonly completionSequence: number;
54
+ readonly lifecycleEventSequence: number;
55
+ readonly publicStartPromiseResolved: true;
56
+ }) | (ExternalAnimationExecutionIdentity & {
57
+ readonly kind: 'awaiting-cancellation-authoritative-acknowledgement';
58
+ readonly cancellationSequence: number;
59
+ readonly rawControlPromise: 'permanently-pending';
60
+ readonly publicControlSlotCleared: true;
61
+ /** Independent from acknowledgement of every caused identity-outbox event. */
62
+ readonly authoritativeCancellationAcknowledged: boolean;
63
+ });
64
+ interface TargetBatchDependencyEventIdentity {
65
+ readonly batchId: number;
66
+ readonly dependencyId: number;
67
+ readonly source: TargetBatchDependencySource;
68
+ readonly valueCompletionSequence: number;
69
+ readonly eventSequence: number;
70
+ }
71
+ export type TargetBatchDependencyEvent = (TargetBatchDependencyEventIdentity & {
72
+ readonly kind: 'raw-resolved';
73
+ }) | (TargetBatchDependencyEventIdentity & {
74
+ readonly kind: 'value-acknowledged';
75
+ }) | (TargetBatchDependencyEventIdentity & {
76
+ readonly kind: 'permanently-unresolved';
77
+ });
78
+ export type IdentityTargetBatchDependencyEvent = TargetBatchDependencyEvent & {
79
+ readonly source: PublicIdentityTargetBatchDependencySource;
80
+ };
81
+ export interface IdentityTargetBatchDependencyEventOutboxEntry {
82
+ readonly event: IdentityTargetBatchDependencyEvent;
83
+ }
84
+ export interface TargetBatchDependencyAcknowledgement extends TargetBatchDependencyReference {
85
+ readonly valueAcknowledgedEventSequence: number;
86
+ }
87
+ interface TargetBatchDependencyIdentity {
88
+ readonly dependencyId: number;
89
+ readonly source: TargetBatchDependencySource;
90
+ readonly valueCompletionSequence: number;
91
+ }
92
+ export type TargetBatchDependencyState = (TargetBatchDependencyIdentity & {
93
+ readonly kind: 'waiting-raw';
94
+ readonly eventAckWatermark: number;
95
+ }) | (TargetBatchDependencyIdentity & {
96
+ readonly kind: 'waiting-value-acknowledgement';
97
+ readonly rawResolvedEventSequence: number;
98
+ readonly eventAckWatermark: number;
99
+ }) | (TargetBatchDependencyIdentity & {
100
+ readonly kind: 'acknowledged';
101
+ readonly rawResolvedEventSequence: number;
102
+ readonly valueAcknowledgedEventSequence: number;
103
+ readonly eventAckWatermark: number;
104
+ }) | (TargetBatchDependencyIdentity & {
105
+ readonly kind: 'permanently-unresolved';
106
+ readonly eventSequence: number;
107
+ readonly eventAcknowledged: boolean;
108
+ });
109
+ interface TargetBatchActivityIdentity {
110
+ readonly batchId: number;
111
+ readonly dependencies: readonly TargetBatchDependencyState[];
112
+ }
113
+ export interface TargetBatchAuthoredCarrier {
114
+ readonly identityId: number;
115
+ readonly carrierSequence: number;
116
+ }
117
+ /** One exact carrier whose queued write/commit still owns pending-frame retention. */
118
+ export interface PendingFrameActivityRetention {
119
+ readonly carrierSequence: number;
120
+ }
121
+ interface SealedTargetBatchActivityIdentity extends TargetBatchActivityIdentity {
122
+ readonly aggregateReactionSequence: number;
123
+ readonly authoredCarriers: readonly TargetBatchAuthoredCarrier[];
124
+ }
125
+ export type TargetBatchActivityState = (TargetBatchActivityIdentity & {
126
+ readonly kind: 'capturing';
127
+ readonly aggregateReactionSequence: null;
128
+ }) | (TargetBatchActivityIdentity & {
129
+ readonly kind: 'waiting-dependencies';
130
+ readonly aggregateReactionSequence: number;
131
+ readonly authoredCarriers: readonly TargetBatchAuthoredCarrier[];
132
+ }) | (SealedTargetBatchActivityIdentity & {
133
+ readonly kind: 'sealed-empty';
134
+ readonly dependencies: readonly [];
135
+ readonly nextCarrierRetentionIndex: number;
136
+ }) | (SealedTargetBatchActivityIdentity & {
137
+ readonly kind: 'ready-awaiting-carrier-retention';
138
+ readonly nextCarrierRetentionIndex: number;
139
+ }) | (SealedTargetBatchActivityIdentity & {
140
+ readonly kind: 'ready-awaiting-delivery';
141
+ }) | (SealedTargetBatchActivityIdentity & {
142
+ readonly kind: 'waiting-orchestration';
143
+ }) | (TargetBatchActivityIdentity & {
144
+ readonly kind: 'permanently-unrunnable';
145
+ readonly aggregateReactionSequence: number;
146
+ readonly authoredCarriers: readonly TargetBatchAuthoredCarrier[];
147
+ readonly everyOtherDependencyTerminal: boolean;
148
+ readonly unacknowledgedEventCount: number;
149
+ }) | {
150
+ readonly kind: 'released';
151
+ readonly batchId: number;
152
+ readonly terminal: 'delivered' | 'permanently-unrunnable';
153
+ };
154
+ export interface ExternalAnimationIdentityAuthorityState {
155
+ readonly identityId: number;
156
+ readonly publicControlSlot: PublicControlSlotState;
157
+ readonly executions: readonly ExternalAnimationExecutionState[];
158
+ /** Public-identity events retained until the matching identity authority accepts their ack. */
159
+ readonly identityTargetBatchDependencyEventOutbox: readonly IdentityTargetBatchDependencyEventOutboxEntry[];
160
+ readonly identityTargetBatchDependencyEventAcknowledgementWatermark: number;
161
+ readonly nextIdentityTargetBatchDependencyEventSequence: number;
162
+ readonly pendingFrameActivities: readonly PendingFrameActivityRetention[];
163
+ /** Exact identity-local sequences retained as replay tombstones. */
164
+ readonly releasedPendingFrameActivities: readonly PendingFrameActivityRetention[];
165
+ /** Highest authoritative execution acknowledgement irreversibly accepted. */
166
+ readonly authoritativeAcknowledgementWatermark: number;
167
+ readonly nextExecutionCreationSequence: number;
168
+ }
169
+ /** The one canonical target-batch authority for the entire Motion graph. */
170
+ export interface ExternalAnimationTargetBatchAuthorityState {
171
+ readonly targetBatchActivities: readonly TargetBatchActivityState[];
172
+ readonly nextAggregateReactionSequence: number;
173
+ }
174
+ export interface ExternalAnimationLedgerState {
175
+ readonly identityAuthorities: readonly ExternalAnimationIdentityAuthorityState[];
176
+ readonly targetBatchAuthority: ExternalAnimationTargetBatchAuthorityState;
177
+ }
178
+ export interface ExternalAnimationIdentityObservation {
179
+ readonly identityId: number;
180
+ readonly publicControlSlotExecutionId: number | null;
181
+ readonly retainedPhysicalExecutionCount: number;
182
+ readonly externalActiveAnimationCount: number;
183
+ readonly completionArmedExecutionCount: number;
184
+ readonly awaitingAuthoritativeAcknowledgementCount: number;
185
+ readonly pendingFrameActivityCount: number;
186
+ readonly identityTargetBatchDependencyEventOutboxCount: number;
187
+ readonly identityTargetBatchDependencyEventAcknowledgementWatermark: number;
188
+ readonly authoritativeAcknowledgementWatermark: number;
189
+ }
190
+ export interface ExternalAnimationLedgerObservation {
191
+ readonly identityObservations: readonly ExternalAnimationIdentityObservation[];
192
+ readonly retainedPhysicalExecutionCount: number;
193
+ readonly externalActiveAnimationCount: number;
194
+ readonly completionArmedExecutionCount: number;
195
+ readonly awaitingAuthoritativeAcknowledgementCount: number;
196
+ readonly openTargetBatchActivityCount: number;
197
+ readonly pendingFrameActivityCount: number;
198
+ readonly identityTargetBatchDependencyEventOutboxCount: number;
199
+ readonly combinedActiveAnimationCount: number;
200
+ readonly isSettled: boolean;
201
+ }
202
+ export type ExternalAnimationLedgerEvent = {
203
+ readonly kind: 'register-external-animation-identity';
204
+ readonly identityId: number;
205
+ } | {
206
+ readonly kind: 'retire-external-animation-identity';
207
+ readonly identityId: number;
208
+ } | {
209
+ readonly kind: 'install-ordinary-execution';
210
+ readonly identityId: number;
211
+ readonly executionId: number;
212
+ readonly controlId: number;
213
+ readonly creationSequence: number;
214
+ readonly directOperationEpoch: number;
215
+ } | {
216
+ readonly kind: 'replace-public-control-slot';
217
+ readonly identityId: number;
218
+ readonly executionId: number;
219
+ readonly controlId: number;
220
+ } | {
221
+ readonly kind: 'capture-execution-target-batch-dependency';
222
+ readonly identityId: number;
223
+ readonly executionId: number;
224
+ readonly batchId: number;
225
+ readonly dependencyId: number;
226
+ readonly valueCompletionSequence: number;
227
+ } | {
228
+ readonly kind: 'arm-completion-before-final-change';
229
+ readonly identityId: number;
230
+ readonly executionId: number;
231
+ readonly completionSequence: number;
232
+ readonly lifecycleEventSequence: number;
233
+ } | {
234
+ readonly kind: 'cancel-installed-control';
235
+ readonly identityId: number;
236
+ readonly cancellationSequence: number;
237
+ } | {
238
+ readonly kind: 'acknowledge-cancellation';
239
+ readonly identityId: number;
240
+ readonly executionId: number;
241
+ readonly cancellationSequence: number;
242
+ readonly authoritativeAcknowledgementSequence: number;
243
+ } | {
244
+ readonly kind: 'resolve-armed-physical-execution';
245
+ readonly identityId: number;
246
+ readonly executionId: number;
247
+ readonly completionSequence: number;
248
+ } | {
249
+ readonly kind: 'drain-armed-completion';
250
+ readonly identityId: number;
251
+ readonly executionId: number;
252
+ readonly completionSequence: number;
253
+ } | {
254
+ readonly kind: 'finish-completion-dispatch';
255
+ readonly identityId: number;
256
+ readonly executionId: number;
257
+ readonly completionSequence: number;
258
+ } | {
259
+ readonly kind: 'acknowledge-completion';
260
+ readonly identityId: number;
261
+ readonly executionId: number;
262
+ readonly completionSequence: number;
263
+ readonly authoritativeAcknowledgementSequence: number;
264
+ /** Must match the execution's immutable captured set in authored order. */
265
+ readonly targetBatchDependencyAcknowledgements: readonly TargetBatchDependencyAcknowledgement[];
266
+ } | {
267
+ readonly kind: 'open-target-batch-activity';
268
+ readonly batchId: number;
269
+ } | {
270
+ readonly kind: 'append-target-batch-dependency';
271
+ readonly batchId: number;
272
+ readonly dependencyId: number;
273
+ readonly source: TargetBatchDependencySource;
274
+ readonly valueCompletionSequence: number;
275
+ } | {
276
+ readonly kind: 'seal-target-batch-activity';
277
+ readonly batchId: number;
278
+ readonly aggregateReactionSequence: number;
279
+ readonly authoredCarriers: readonly TargetBatchAuthoredCarrier[];
280
+ } | {
281
+ readonly kind: 'report-target-batch-dependency-event';
282
+ readonly event: TargetBatchDependencyEvent;
283
+ } | {
284
+ readonly kind: 'acknowledge-target-batch-dependency-event';
285
+ readonly event: TargetBatchDependencyEvent;
286
+ } | {
287
+ readonly kind: 'acknowledge-identity-target-batch-dependency-event';
288
+ readonly identityId: number;
289
+ readonly event: IdentityTargetBatchDependencyEvent;
290
+ } | {
291
+ readonly kind: 'transfer-next-authored-carrier-retention';
292
+ readonly batchId: number;
293
+ readonly carrierIndex: number;
294
+ readonly identityId: number;
295
+ readonly carrierSequence: number;
296
+ } | {
297
+ readonly kind: 'react-to-target-batch-aggregate';
298
+ readonly batchId: number;
299
+ readonly aggregateReactionSequence: number;
300
+ readonly orchestrationPending: boolean;
301
+ readonly ownerGenerationLive: boolean;
302
+ } | {
303
+ readonly kind: 'complete-target-batch-orchestration';
304
+ readonly batchId: number;
305
+ readonly aggregateReactionSequence: number;
306
+ readonly ownerGenerationLive: boolean;
307
+ } | {
308
+ readonly kind: 'release-target-batch-activity';
309
+ readonly batchId: number;
310
+ readonly terminal: 'delivered' | 'permanently-unrunnable';
311
+ } | {
312
+ readonly kind: 'acquire-pending-frame-activity';
313
+ readonly identityId: number;
314
+ readonly carrierSequence: number;
315
+ } | {
316
+ readonly kind: 'release-pending-frame-activity';
317
+ readonly identityId: number;
318
+ readonly carrierSequence: number;
319
+ };
320
+ export type ExternalAnimationLedgerEffect = {
321
+ readonly kind: 'stop-physical-execution';
322
+ readonly identityId: number;
323
+ readonly executionId: number;
324
+ } | {
325
+ readonly kind: 'emit-animation-cancel-listeners';
326
+ readonly identityId: number;
327
+ readonly executionId: number;
328
+ } | {
329
+ readonly kind: 'emit-animation-complete-listeners';
330
+ readonly identityId: number;
331
+ readonly executionId: number;
332
+ readonly completionSequence: number;
333
+ } | {
334
+ readonly kind: 'drain-reentrant-listener-commands';
335
+ readonly identityId: number;
336
+ readonly executionId: number;
337
+ } | {
338
+ readonly kind: 'clear-public-control-slot-token-blind';
339
+ readonly identityId: number;
340
+ readonly causedByExecutionId: number;
341
+ } | {
342
+ readonly kind: 'resolve-public-start-promise';
343
+ readonly identityId: number;
344
+ readonly executionId: number;
345
+ readonly completionSequence: number;
346
+ } | {
347
+ readonly kind: 'emit-target-batch-dependency-event';
348
+ readonly identityId: number;
349
+ readonly event: IdentityTargetBatchDependencyEvent;
350
+ } | {
351
+ readonly kind: 'acknowledge-authoritative-completion';
352
+ readonly identityId: number;
353
+ readonly executionId: number;
354
+ readonly acknowledgementSequence: number;
355
+ } | {
356
+ readonly kind: 'acknowledge-authoritative-cancellation';
357
+ readonly identityId: number;
358
+ readonly executionId: number;
359
+ readonly acknowledgementSequence: number;
360
+ } | {
361
+ readonly kind: 'release-external-animation-entry';
362
+ readonly identityId: number;
363
+ readonly executionId: number;
364
+ } | {
365
+ readonly kind: 'acquire-pending-frame-activity';
366
+ readonly identityId: number;
367
+ readonly carrierSequence: number;
368
+ } | {
369
+ readonly kind: 'register-target-batch-aggregate-reaction';
370
+ readonly batchId: number;
371
+ readonly aggregateReactionSequence: number;
372
+ } | {
373
+ readonly kind: 'emit-target-owner-element-completion';
374
+ readonly batchId: number;
375
+ } | {
376
+ readonly kind: 'release-target-batch-activity';
377
+ readonly batchId: number;
378
+ readonly terminal: 'delivered' | 'permanently-unrunnable';
379
+ } | {
380
+ readonly kind: 'release-pending-frame-activity';
381
+ readonly identityId: number;
382
+ readonly carrierSequence: number;
383
+ };
384
+ export interface ExternalAnimationLedgerTransition {
385
+ readonly state: ExternalAnimationLedgerState;
386
+ readonly observation: ExternalAnimationLedgerObservation;
387
+ readonly orderedEffects: readonly ExternalAnimationLedgerEffect[];
388
+ }
389
+ export type ExternalAnimationLedgerOperation = ExternalAnimationLedgerEvent['kind'];
390
+ export type ExternalAnimationLedgerInvariant = 'identity-id-already-retained' | 'identity-not-retained' | 'identity-authority-not-quiescent' | 'execution-id-already-retained' | 'execution-not-retained' | 'execution-state-mismatch' | 'execution-creation-sequence-mismatch' | 'execution-target-batch-dependency-already-captured' | 'public-control-slot-reference-mismatch' | 'completion-sequence-mismatch' | 'cancellation-sequence-mismatch' | 'authoritative-acknowledgement-out-of-order' | 'identity-target-batch-dependency-event-acknowledgement-out-of-order' | 'identity-target-batch-dependency-event-not-retained' | 'target-batch-dependency-reference-mismatch' | 'target-batch-id-already-retained' | 'target-batch-not-retained' | 'target-batch-dependency-id-already-retained' | 'target-batch-dependency-state-mismatch' | 'target-batch-dependency-source-mismatch' | 'target-batch-dependency-value-completion-sequence-mismatch' | 'aggregate-reaction-sequence-mismatch' | 'target-batch-event-sequence-replay-conflict' | 'target-batch-carrier-order-mismatch' | 'target-batch-carrier-retention-incomplete' | 'target-batch-reaction-state-mismatch' | 'target-batch-release-before-terminal' | 'pending-frame-activity-already-retained' | 'pending-frame-activity-sequence-out-of-order' | 'pending-frame-activity-release-order-mismatch' | 'pending-frame-activity-not-retained' | 'ledger-event-kind-unrecognized';
391
+ export declare const EXTERNAL_ANIMATION_LEDGER_UNIMPLEMENTED: "NATIVE_MOTION_CORE_EXTERNAL_ANIMATION_LEDGER_UNIMPLEMENTED";
392
+ export declare class ExternalAnimationLedgerUnimplementedError extends Error {
393
+ readonly code: "NATIVE_MOTION_CORE_EXTERNAL_ANIMATION_LEDGER_UNIMPLEMENTED";
394
+ readonly operation: ExternalAnimationLedgerOperation;
395
+ constructor(operation: ExternalAnimationLedgerOperation);
396
+ }
397
+ export declare const EXTERNAL_ANIMATION_LEDGER_INVARIANT: "NATIVE_MOTION_CORE_EXTERNAL_ANIMATION_LEDGER_INVARIANT";
398
+ /** Typed fail-closed refusal for malformed, conflicting, or out-of-sequence ledger input. */
399
+ export declare class ExternalAnimationLedgerInvariantError extends Error {
400
+ readonly code: "NATIVE_MOTION_CORE_EXTERNAL_ANIMATION_LEDGER_INVARIANT";
401
+ readonly invariant: ExternalAnimationLedgerInvariant;
402
+ constructor(invariant: ExternalAnimationLedgerInvariant);
403
+ }
404
+ export interface ExternalAnimationLedger {
405
+ observeState(): ExternalAnimationLedgerState;
406
+ observe(): ExternalAnimationLedgerObservation;
407
+ observeIdentity(identityId: number): ExternalAnimationIdentityObservation;
408
+ advance(event: ExternalAnimationLedgerEvent): ExternalAnimationLedgerTransition;
409
+ }
410
+ export interface CreateExternalAnimationLedgerOptions {
411
+ readonly graph: MotionGraph;
412
+ readonly initialState?: ExternalAnimationLedgerState;
413
+ }
414
+ export declare function initialExternalAnimationLedgerState(): ExternalAnimationLedgerState;
415
+ export declare function createExternalAnimationLedger(options: CreateExternalAnimationLedgerOptions): ExternalAnimationLedger;
416
+ export {};