@microsoft/fast-element 3.0.0-rc.1 → 3.0.0-rc.2

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/CHANGELOG.md +51 -1
  2. package/README.md +50 -14
  3. package/dist/context/context.api.json +13 -13
  4. package/dist/declarative/declarative.api.json +654 -15
  5. package/dist/di/di.api.json +15 -15
  6. package/dist/dts/__test__/helpers.d.ts +6 -0
  7. package/dist/dts/__test__/setup-node.d.ts +0 -0
  8. package/dist/dts/binding/binding.d.ts +15 -5
  9. package/dist/dts/binding/one-time.d.ts +1 -1
  10. package/dist/dts/binding/one-way.d.ts +1 -1
  11. package/dist/dts/binding/signal.d.ts +1 -1
  12. package/dist/dts/binding/two-way.d.ts +1 -1
  13. package/dist/dts/components/attributes.d.ts +1 -1
  14. package/dist/dts/components/enable-hydration.d.ts +22 -2
  15. package/dist/dts/components/fast-definitions.d.ts +7 -4
  16. package/dist/dts/components/fast-element.d.ts +42 -12
  17. package/dist/dts/components/hydration-tracker.d.ts +47 -4
  18. package/dist/dts/components/hydration.d.ts +5 -0
  19. package/dist/dts/context.d.ts +7 -7
  20. package/dist/dts/declarative/debug.d.ts +2 -3
  21. package/dist/dts/declarative/index.d.ts +3 -2
  22. package/dist/dts/declarative/interfaces.d.ts +1 -2
  23. package/dist/dts/declarative/template.d.ts +2 -1
  24. package/dist/dts/declarative/utilities.d.ts +50 -4
  25. package/dist/dts/di/di.d.ts +6 -6
  26. package/dist/dts/dom-policy.d.ts +22 -4
  27. package/dist/dts/dom.d.ts +4 -16
  28. package/dist/dts/hydration/diagnostics.d.ts +93 -0
  29. package/dist/dts/hydration/hydration-debugger.d.ts +35 -0
  30. package/dist/dts/hydration/messages.d.ts +62 -0
  31. package/dist/dts/hydration/target-builder.d.ts +26 -1
  32. package/dist/dts/hydration.d.ts +7 -3
  33. package/dist/dts/index.d.ts +7 -3
  34. package/dist/dts/interfaces.d.ts +1 -0
  35. package/dist/dts/observation/observable.d.ts +3 -3
  36. package/dist/dts/platform.d.ts +20 -4
  37. package/dist/dts/registry.d.ts +1 -0
  38. package/dist/dts/templating/children.d.ts +1 -1
  39. package/dist/dts/templating/compiler.d.ts +1 -1
  40. package/dist/dts/templating/html-binding-directive.d.ts +6 -2
  41. package/dist/dts/templating/html-directive.d.ts +2 -1
  42. package/dist/dts/templating/hydration-view.d.ts +24 -3
  43. package/dist/dts/templating/ref.d.ts +1 -1
  44. package/dist/dts/templating/render.d.ts +2 -2
  45. package/dist/dts/templating/repeat.d.ts +1 -1
  46. package/dist/dts/templating/slotted.d.ts +1 -1
  47. package/dist/dts/templating/template.d.ts +5 -5
  48. package/dist/dts/templating/when.d.ts +1 -1
  49. package/dist/dts/testing/fakes.d.ts +4 -4
  50. package/dist/esm/__test__/helpers.js +22 -0
  51. package/dist/esm/__test__/setup-node.js +18 -0
  52. package/dist/esm/binding/two-way.js +1 -2
  53. package/dist/esm/components/attributes.js +12 -8
  54. package/dist/esm/components/element-controller.js +11 -6
  55. package/dist/esm/components/enable-hydration.js +27 -3
  56. package/dist/esm/components/fast-definitions.js +19 -18
  57. package/dist/esm/components/hydration-tracker.js +34 -5
  58. package/dist/esm/components/hydration.js +85 -6
  59. package/dist/esm/debug.js +1 -0
  60. package/dist/esm/declarative/attribute-map.js +2 -1
  61. package/dist/esm/declarative/debug.js +0 -1
  62. package/dist/esm/declarative/index.js +1 -0
  63. package/dist/esm/declarative/interfaces.js +0 -1
  64. package/dist/esm/declarative/observer-map-utilities.js +58 -55
  65. package/dist/esm/declarative/template-bridge.js +4 -14
  66. package/dist/esm/declarative/template.js +4 -3
  67. package/dist/esm/declarative/utilities.js +236 -1
  68. package/dist/esm/di/di.js +2 -1
  69. package/dist/esm/dom-policy.js +33 -4
  70. package/dist/esm/hydration/diagnostics.js +50 -0
  71. package/dist/esm/hydration/hydration-debugger.js +112 -0
  72. package/dist/esm/hydration/messages.js +84 -0
  73. package/dist/esm/hydration/target-builder.js +65 -19
  74. package/dist/esm/hydration.js +3 -1
  75. package/dist/esm/index.js +6 -2
  76. package/dist/esm/interfaces.js +1 -0
  77. package/dist/esm/metadata.js +2 -8
  78. package/dist/esm/observation/notifier.js +2 -4
  79. package/dist/esm/registry.js +1 -0
  80. package/dist/esm/templating/html-binding-directive.js +1 -1
  81. package/dist/esm/templating/hydration-view.js +20 -27
  82. package/dist/esm/templating/render.js +39 -18
  83. package/dist/esm/templating/repeat.js +51 -17
  84. package/dist/esm/templating/view.js +1 -1
  85. package/dist/esm/testing/fixture.js +2 -2
  86. package/dist/esm/testing/timeout.js +2 -2
  87. package/dist/fast-element.api.json +1329 -99
  88. package/dist/fast-element.d.ts +147 -66
  89. package/dist/fast-element.debug.js +392 -99
  90. package/dist/fast-element.debug.min.js +2 -2
  91. package/dist/fast-element.js +392 -99
  92. package/dist/fast-element.min.js +2 -2
  93. package/dist/fast-element.untrimmed.d.ts +133 -70
  94. package/dist/hydration/hydration.api.json +1280 -57
  95. package/dist/styles/styles.api.json +1 -1
  96. package/package.json +21 -9
  97. package/ARCHITECTURE_FASTELEMENT.md +0 -63
  98. package/ARCHITECTURE_HTML_TAGGED_TEMPLATE_LITERAL.md +0 -36
  99. package/ARCHITECTURE_INTRO.md +0 -10
  100. package/ARCHITECTURE_OVERVIEW.md +0 -52
  101. package/ARCHITECTURE_UPDATES.md +0 -11
  102. package/CHANGELOG.json +0 -2275
  103. package/DECLARATIVE_DESIGN.md +0 -806
  104. package/DECLARATIVE_HTML.md +0 -470
  105. package/DECLARATIVE_MIGRATION.md +0 -215
  106. package/DECLARATIVE_RENDERING.md +0 -530
  107. package/DECLARATIVE_RENDERING_LIFECYCLE.md +0 -288
  108. package/DECLARATIVE_SCHEMA_OBSERVER_MAP.md +0 -489
  109. package/DESIGN.md +0 -615
  110. package/MIGRATION.md +0 -387
  111. package/SIZES.md +0 -25
  112. package/api-extractor.arrays.json +0 -15
  113. package/api-extractor.context.json +0 -15
  114. package/api-extractor.declarative.json +0 -15
  115. package/api-extractor.di.json +0 -15
  116. package/api-extractor.hydration.json +0 -15
  117. package/api-extractor.styles.json +0 -15
  118. package/biome.json +0 -4
  119. package/docs/ACKNOWLEDGEMENTS.md +0 -12
  120. package/docs/api-report.api.md +0 -1299
  121. package/docs/arrays/api-report.api.md +0 -114
  122. package/docs/context/api-report.api.md +0 -69
  123. package/docs/declarative/api-report.api.md +0 -397
  124. package/docs/di/api-report.api.md +0 -315
  125. package/docs/fast-element-2-changes.md +0 -15
  126. package/docs/hydration/api-report.api.md +0 -285
  127. package/docs/styles/api-report.api.md +0 -135
  128. package/playwright.config.ts +0 -26
  129. package/playwright.declarative.config.ts +0 -26
  130. package/playwright.declarative.webui.config.ts +0 -20
  131. package/scripts/declarative/build-fixtures-with-webui.js +0 -135
  132. package/scripts/declarative/build-fixtures.js +0 -49
  133. package/scripts/declarative/build-fixtures.utilities.js +0 -101
  134. package/scripts/measure-sizes.js +0 -219
  135. package/scripts/run-api-extractor.js +0 -70
  136. package/test/declarative/fixtures/README.md +0 -72
  137. package/test/declarative/fixtures/WRITING_FIXTURES.md +0 -330
  138. package/test/declarative/fixtures/bindings/README.md +0 -12
  139. package/test/declarative/fixtures/bindings/attribute/entry.html +0 -13
  140. package/test/declarative/fixtures/bindings/attribute/fast-build.config.json +0 -6
  141. package/test/declarative/fixtures/bindings/attribute/index.html +0 -25
  142. package/test/declarative/fixtures/bindings/attribute/main.ts +0 -41
  143. package/test/declarative/fixtures/bindings/attribute/state.json +0 -8
  144. package/test/declarative/fixtures/bindings/attribute/templates.html +0 -11
  145. package/test/declarative/fixtures/bindings/content/entry.html +0 -12
  146. package/test/declarative/fixtures/bindings/content/fast-build.config.json +0 -6
  147. package/test/declarative/fixtures/bindings/content/index.html +0 -19
  148. package/test/declarative/fixtures/bindings/content/main.ts +0 -27
  149. package/test/declarative/fixtures/bindings/content/state.json +0 -4
  150. package/test/declarative/fixtures/bindings/content/templates.html +0 -6
  151. package/test/declarative/fixtures/bindings/dot-syntax/entry.html +0 -11
  152. package/test/declarative/fixtures/bindings/dot-syntax/fast-build.config.json +0 -6
  153. package/test/declarative/fixtures/bindings/dot-syntax/index.html +0 -47
  154. package/test/declarative/fixtures/bindings/dot-syntax/main.ts +0 -59
  155. package/test/declarative/fixtures/bindings/dot-syntax/state.json +0 -16
  156. package/test/declarative/fixtures/bindings/dot-syntax/templates.html +0 -17
  157. package/test/declarative/fixtures/bindings/event/entry.html +0 -11
  158. package/test/declarative/fixtures/bindings/event/fast-build.config.json +0 -6
  159. package/test/declarative/fixtures/bindings/event/index.html +0 -43
  160. package/test/declarative/fixtures/bindings/event/main.ts +0 -43
  161. package/test/declarative/fixtures/bindings/event/state.json +0 -3
  162. package/test/declarative/fixtures/bindings/event/templates.html +0 -18
  163. package/test/declarative/fixtures/bindings/host/entry.html +0 -40
  164. package/test/declarative/fixtures/bindings/host/fast-build.config.json +0 -6
  165. package/test/declarative/fixtures/bindings/host/index.html +0 -96
  166. package/test/declarative/fixtures/bindings/host/main.ts +0 -222
  167. package/test/declarative/fixtures/bindings/host/state.json +0 -9
  168. package/test/declarative/fixtures/bindings/host/templates.html +0 -55
  169. package/test/declarative/fixtures/directives/README.md +0 -12
  170. package/test/declarative/fixtures/directives/children/entry.html +0 -11
  171. package/test/declarative/fixtures/directives/children/fast-build.config.json +0 -6
  172. package/test/declarative/fixtures/directives/children/index.html +0 -15
  173. package/test/declarative/fixtures/directives/children/main.ts +0 -22
  174. package/test/declarative/fixtures/directives/children/state.json +0 -3
  175. package/test/declarative/fixtures/directives/children/templates.html +0 -3
  176. package/test/declarative/fixtures/directives/ref/entry.html +0 -11
  177. package/test/declarative/fixtures/directives/ref/fast-build.config.json +0 -6
  178. package/test/declarative/fixtures/directives/ref/index.html +0 -15
  179. package/test/declarative/fixtures/directives/ref/main.ts +0 -17
  180. package/test/declarative/fixtures/directives/ref/state.json +0 -1
  181. package/test/declarative/fixtures/directives/ref/templates.html +0 -3
  182. package/test/declarative/fixtures/directives/repeat/entry.html +0 -21
  183. package/test/declarative/fixtures/directives/repeat/fast-build.config.json +0 -6
  184. package/test/declarative/fixtures/directives/repeat/index.html +0 -133
  185. package/test/declarative/fixtures/directives/repeat/main.ts +0 -110
  186. package/test/declarative/fixtures/directives/repeat/sprites.svg +0 -8
  187. package/test/declarative/fixtures/directives/repeat/state.json +0 -10
  188. package/test/declarative/fixtures/directives/repeat/templates.html +0 -75
  189. package/test/declarative/fixtures/directives/slotted/entry.html +0 -17
  190. package/test/declarative/fixtures/directives/slotted/fast-build.config.json +0 -6
  191. package/test/declarative/fixtures/directives/slotted/index.html +0 -27
  192. package/test/declarative/fixtures/directives/slotted/main.ts +0 -29
  193. package/test/declarative/fixtures/directives/slotted/state.json +0 -1
  194. package/test/declarative/fixtures/directives/slotted/templates.html +0 -7
  195. package/test/declarative/fixtures/directives/when/entry.html +0 -51
  196. package/test/declarative/fixtures/directives/when/fast-build.config.json +0 -6
  197. package/test/declarative/fixtures/directives/when/index.html +0 -136
  198. package/test/declarative/fixtures/directives/when/main.ts +0 -172
  199. package/test/declarative/fixtures/directives/when/state.json +0 -12
  200. package/test/declarative/fixtures/directives/when/templates.html +0 -75
  201. package/test/declarative/fixtures/ecosystem/README.md +0 -11
  202. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/entry.html +0 -12
  203. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/fast-build.config.json +0 -6
  204. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/index.html +0 -20
  205. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/main.ts +0 -68
  206. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/state.json +0 -4
  207. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/templates.html +0 -7
  208. package/test/declarative/fixtures/ecosystem/errors/entry.html +0 -12
  209. package/test/declarative/fixtures/ecosystem/errors/fast-build.config.json +0 -6
  210. package/test/declarative/fixtures/ecosystem/errors/index.html +0 -20
  211. package/test/declarative/fixtures/ecosystem/errors/main.ts +0 -17
  212. package/test/declarative/fixtures/ecosystem/errors/state.json +0 -1
  213. package/test/declarative/fixtures/ecosystem/errors/templates.html +0 -7
  214. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/entry.html +0 -17
  215. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/fast-build.config.json +0 -6
  216. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/index.html +0 -56
  217. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/main.ts +0 -134
  218. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/state.json +0 -12
  219. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/templates.html +0 -34
  220. package/test/declarative/fixtures/ecosystem/performance-metrics/entry.html +0 -25
  221. package/test/declarative/fixtures/ecosystem/performance-metrics/fast-build.config.json +0 -6
  222. package/test/declarative/fixtures/ecosystem/performance-metrics/fast-card.css +0 -10
  223. package/test/declarative/fixtures/ecosystem/performance-metrics/index.html +0 -181
  224. package/test/declarative/fixtures/ecosystem/performance-metrics/main.ts +0 -58
  225. package/test/declarative/fixtures/ecosystem/performance-metrics/state.json +0 -6
  226. package/test/declarative/fixtures/ecosystem/performance-metrics/templates.html +0 -15
  227. package/test/declarative/fixtures/extensions/README.md +0 -15
  228. package/test/declarative/fixtures/extensions/attribute-map/entry.html +0 -14
  229. package/test/declarative/fixtures/extensions/attribute-map/fast-build.config.json +0 -6
  230. package/test/declarative/fixtures/extensions/attribute-map/index.html +0 -31
  231. package/test/declarative/fixtures/extensions/attribute-map/main.ts +0 -40
  232. package/test/declarative/fixtures/extensions/attribute-map/state.json +0 -4
  233. package/test/declarative/fixtures/extensions/attribute-map/templates.html +0 -14
  234. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/entry.html +0 -12
  235. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/fast-build.config.json +0 -7
  236. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/index.html +0 -25
  237. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/main.ts +0 -31
  238. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/state.json +0 -5
  239. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/templates.html +0 -11
  240. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/entry.html +0 -13
  241. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/fast-build.config.json +0 -7
  242. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/index.html +0 -23
  243. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/main.ts +0 -37
  244. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/state.json +0 -1
  245. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/templates.html +0 -9
  246. package/test/declarative/fixtures/extensions/observer-map/entry.html +0 -15
  247. package/test/declarative/fixtures/extensions/observer-map/fast-build.config.json +0 -6
  248. package/test/declarative/fixtures/extensions/observer-map/index.html +0 -442
  249. package/test/declarative/fixtures/extensions/observer-map/main.ts +0 -482
  250. package/test/declarative/fixtures/extensions/observer-map/state.json +0 -158
  251. package/test/declarative/fixtures/extensions/observer-map/templates.html +0 -172
  252. package/test/declarative/fixtures/extensions/observer-map-config-object/entry.html +0 -16
  253. package/test/declarative/fixtures/extensions/observer-map-config-object/fast-build.config.json +0 -6
  254. package/test/declarative/fixtures/extensions/observer-map-config-object/index.html +0 -27
  255. package/test/declarative/fixtures/extensions/observer-map-config-object/main.ts +0 -53
  256. package/test/declarative/fixtures/extensions/observer-map-config-object/state.json +0 -9
  257. package/test/declarative/fixtures/extensions/observer-map-config-object/templates.html +0 -12
  258. package/test/declarative/fixtures/extensions/observer-map-deep-merge/README.md +0 -98
  259. package/test/declarative/fixtures/extensions/observer-map-deep-merge/entry.html +0 -156
  260. package/test/declarative/fixtures/extensions/observer-map-deep-merge/fast-build.config.json +0 -6
  261. package/test/declarative/fixtures/extensions/observer-map-deep-merge/index.html +0 -376
  262. package/test/declarative/fixtures/extensions/observer-map-deep-merge/main.ts +0 -366
  263. package/test/declarative/fixtures/extensions/observer-map-deep-merge/state.json +0 -69
  264. package/test/declarative/fixtures/extensions/observer-map-deep-merge/templates.html +0 -91
  265. package/test/declarative/fixtures/extensions/observer-map-properties/entry.html +0 -14
  266. package/test/declarative/fixtures/extensions/observer-map-properties/fast-build.config.json +0 -6
  267. package/test/declarative/fixtures/extensions/observer-map-properties/index.html +0 -110
  268. package/test/declarative/fixtures/extensions/observer-map-properties/main.ts +0 -175
  269. package/test/declarative/fixtures/extensions/observer-map-properties/state.json +0 -29
  270. package/test/declarative/fixtures/extensions/observer-map-properties/templates.html +0 -55
  271. package/test/declarative/fixtures/scenarios/README.md +0 -7
  272. package/test/declarative/fixtures/scenarios/nested-elements/entry.html +0 -16
  273. package/test/declarative/fixtures/scenarios/nested-elements/fast-build.config.json +0 -6
  274. package/test/declarative/fixtures/scenarios/nested-elements/index.html +0 -126
  275. package/test/declarative/fixtures/scenarios/nested-elements/main.ts +0 -214
  276. package/test/declarative/fixtures/scenarios/nested-elements/state.json +0 -10
  277. package/test/declarative/fixtures/scenarios/nested-elements/templates.html +0 -54
  278. package/test/declarative/index.html +0 -12
  279. package/test/declarative/vite.config.ts +0 -55
  280. package/test/declarative-main.ts +0 -6
  281. package/test/extension-subpaths-main.ts +0 -9
  282. package/test/index.html +0 -11
  283. package/test/main.ts +0 -109
  284. package/test/pure-declarative-main.ts +0 -1
  285. package/test/vite.config.ts +0 -19
  286. package/tsconfig.api-extractor.json +0 -6
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Core APIs for building standards-based Web Components with FAST Element.
3
+ * @packageDocumentation
4
+ */
5
+
1
6
  /**
2
7
  * A path discovered from an access expression.
3
8
  * @public
@@ -149,7 +154,7 @@ export declare const AttributeConfiguration: Readonly<{
149
154
  }>;
150
155
 
151
156
  /**
152
- * An implementation of `Accessor` that supports reactivity,
157
+ * An implementation of {@link Accessor} that supports reactivity,
153
158
  * change callbacks, attribute reflection, and type conversion for
154
159
  * custom elements.
155
160
  * @public
@@ -225,20 +230,29 @@ export declare type AttributeMode = "reflect" | "boolean" | "fromView";
225
230
  * @public
226
231
  */
227
232
  export declare abstract class Binding<TSource = any, TReturn = any, TParent = any> {
228
- evaluate: Expression<TSource, TReturn, TParent>;
229
- policy?: DOMPolicy_2 | undefined;
230
- isVolatile: boolean;
231
233
  /**
232
234
  * Options associated with the binding.
233
235
  */
234
236
  options?: any;
237
+ /**
238
+ * Evaluates the binding.
239
+ */
240
+ evaluate: Expression<TSource, TReturn, TParent>;
241
+ /**
242
+ * The security policy to associate with this binding.
243
+ */
244
+ policy?: DOMPolicy;
245
+ /**
246
+ * Indicates whether the binding is volatile.
247
+ */
248
+ isVolatile: boolean;
235
249
  /**
236
250
  * Creates a binding.
237
251
  * @param evaluate - Evaluates the binding.
238
252
  * @param policy - The security policy to associate with this binding.
239
253
  * @param isVolatile - Indicates whether the binding is volatile.
240
254
  */
241
- constructor(evaluate: Expression<TSource, TReturn, TParent>, policy?: DOMPolicy_2 | undefined, isVolatile?: boolean);
255
+ constructor(evaluate: Expression<TSource, TReturn, TParent>, policy?: DOMPolicy, isVolatile?: boolean);
242
256
  /**
243
257
  * Creates an observer capable of notifying a subscriber when the output of a binding changes.
244
258
  * @param subscriber - The subscriber to changes in the binding.
@@ -310,7 +324,7 @@ export declare type Callable = typeof Function.prototype.call | {
310
324
  * into templates.
311
325
  * @public
312
326
  */
313
- export declare interface CaptureType {
327
+ export declare interface CaptureType<TSource = any, TParent = any> {
314
328
  }
315
329
 
316
330
  /**
@@ -326,7 +340,7 @@ export declare interface ChildListDirectiveOptions<T = any> extends NodeBehavior
326
340
  * @param propertyOrOptions - The options used to configure child node observation.
327
341
  * @public
328
342
  */
329
- export declare function children<TSource = any>(propertyOrOptions: (keyof TSource & string) | ChildrenDirectiveOptions<keyof TSource & string>): CaptureType;
343
+ export declare function children<TSource = any, TParent = any>(propertyOrOptions: (keyof TSource & string) | ChildrenDirectiveOptions<keyof TSource & string>): CaptureType<TSource, TParent>;
330
344
 
331
345
  /**
332
346
  * The runtime behavior for child node observation.
@@ -399,7 +413,7 @@ factories: Record<string, ViewBehaviorFactory>,
399
413
  /**
400
414
  * The security policy to compile the html with.
401
415
  */
402
- policy: DOMPolicy_2) => HTMLTemplateCompilationResult;
416
+ policy: DOMPolicy) => HTMLTemplateCompilationResult;
403
417
 
404
418
  /**
405
419
  * Represents a ViewBehaviorFactory after the compilation process has completed.
@@ -424,7 +438,7 @@ export declare const Compiler: {
424
438
  * it is recommended that you clone the original and pass the clone to this API.
425
439
  * @public
426
440
  */
427
- compile<TSource = any, TParent = any>(html: string | HTMLTemplateElement, factories: Record<string, ViewBehaviorFactory>, policy?: DOMPolicy_2): HTMLTemplateCompilationResult<TSource, TParent>;
441
+ compile<TSource = any, TParent = any>(html: string | HTMLTemplateElement, factories: Record<string, ViewBehaviorFactory>, policy?: DOMPolicy): HTMLTemplateCompilationResult<TSource, TParent>;
428
442
  /**
429
443
  * Sets the default compilation strategy that will be used by the ViewTemplate whenever
430
444
  * it needs to compile a view preprocessed with the html template function.
@@ -438,7 +452,7 @@ export declare const Compiler: {
438
452
  * @param policy - The security policy to use with the aggregated bindings.
439
453
  * @returns A single inline directive that aggregates the behavior of all the parts.
440
454
  */
441
- aggregate(parts: (string | ViewBehaviorFactory)[], policy?: DOMPolicy_2): ViewBehaviorFactory;
455
+ aggregate(parts: (string | ViewBehaviorFactory)[], policy?: DOMPolicy): ViewBehaviorFactory;
442
456
  };
443
457
 
444
458
  /**
@@ -447,10 +461,6 @@ export declare const Compiler: {
447
461
  */
448
462
  export declare type ComposableStyles = string | ElementStyles | CSSStyleSheet;
449
463
 
450
- declare function compose<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(this: TType, nameOrDef: string | PartialFASTElementDefinition<TType>): Promise<FASTElementDefinition<TType>>;
451
-
452
- declare function compose<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(type: TType, nameOrDef?: string | PartialFASTElementDefinition<TType>): Promise<FASTElementDefinition<TType>>;
453
-
454
464
  /**
455
465
  * Determines if the reference element contains the test element in a "composed" DOM tree that
456
466
  * ignores shadow DOM boundaries.
@@ -759,10 +769,6 @@ export declare class DefaultExecutionContext<TParent> implements ExecutionContex
759
769
  eventTarget<TTarget extends EventTarget>(): TTarget;
760
770
  }
761
771
 
762
- declare function define<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(this: TType, nameOrDef: string | PartialFASTElementDefinition<TType>, extensions?: FASTElementExtension[]): Promise<TType>;
763
-
764
- declare function define<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(type: TType, nameOrDef?: string | PartialFASTElementDefinition<TType>, extensions?: FASTElementExtension[]): Promise<TType>;
765
-
766
772
  /**
767
773
  * Provides a mechanism for releasing resources.
768
774
  * @public
@@ -782,7 +788,7 @@ export declare const DOM: Readonly<{
782
788
  /**
783
789
  * Gets the dom policy used by the templating system.
784
790
  */
785
- readonly policy: DOMPolicy_2;
791
+ readonly policy: DOMPolicy;
786
792
  /**
787
793
  * Sets the dom policy used by the templating system.
788
794
  * @param policy - The policy to set.
@@ -790,7 +796,7 @@ export declare const DOM: Readonly<{
790
796
  * This API can only be called once, for security reasons. It should be
791
797
  * called by the application developer at the start of their program.
792
798
  */
793
- setPolicy(value: DOMPolicy_2): void;
799
+ setPolicy(value: DOMPolicy): void;
794
800
  /**
795
801
  * Sets an attribute value on an element.
796
802
  * @param element - The element to set the attribute value on.
@@ -906,23 +912,10 @@ export declare type DOMGuards = {
906
912
  };
907
913
 
908
914
  /**
909
- * A helper for creating DOM policies.
915
+ * A policy that controls whether values can be written to DOM sinks.
910
916
  * @public
911
917
  */
912
- export declare const DOMPolicy: Readonly<{
913
- /**
914
- * Creates a new DOM Policy object.
915
- * @param options - The options to use in creating the policy.
916
- * @returns The newly created DOMPolicy.
917
- */
918
- create(options?: DOMPolicyOptions): Readonly<DOMPolicy_2>;
919
- }>;
920
-
921
- /**
922
- * A security policy that FAST can use to interact with the DOM.
923
- * @public
924
- */
925
- declare interface DOMPolicy_2 {
918
+ export declare interface DOMPolicy {
926
919
  /**
927
920
  * Creates safe HTML from the provided value.
928
921
  * @param value - The source to convert to safe HTML.
@@ -938,6 +931,19 @@ declare interface DOMPolicy_2 {
938
931
  protect(tagName: string | null, aspect: DOMAspect, aspectName: string, sink: DOMSink): DOMSink;
939
932
  }
940
933
 
934
+ /**
935
+ * A helper for creating DOM policies.
936
+ * @public
937
+ */
938
+ export declare const DOMPolicy: Readonly<{
939
+ /**
940
+ * Creates a new DOM Policy object.
941
+ * @param options - The options to use in creating the policy.
942
+ * @returns The newly created DOMPolicy.
943
+ */
944
+ create(options?: DOMPolicyOptions): Readonly<DOMPolicy>;
945
+ }>;
946
+
941
947
  /**
942
948
  * Options for creating a DOM Policy.
943
949
  * @public
@@ -1430,7 +1436,7 @@ export declare const ExecutionContext: Readonly<{
1430
1436
  /**
1431
1437
  * A default execution context.
1432
1438
  */
1433
- default: ExecutionContext<any>;
1439
+ default: ExecutionContext;
1434
1440
  /**
1435
1441
  * Gets the current event.
1436
1442
  * @returns An event object.
@@ -1594,12 +1600,49 @@ export declare interface FASTElement extends HTMLElement {
1594
1600
  * static helpers for working with FASTElements.
1595
1601
  * @public
1596
1602
  */
1597
- export declare const FASTElement: {
1603
+ export declare const FASTElement: FASTElementConstructor;
1604
+
1605
+ /**
1606
+ * The FASTElement constructor and static registration helpers.
1607
+ * @public
1608
+ */
1609
+ export declare interface FASTElementConstructor {
1610
+ /**
1611
+ * Creates a FASTElement instance.
1612
+ */
1598
1613
  new (): FASTElement;
1599
- define: typeof define;
1600
- compose: typeof compose;
1601
- from: typeof from;
1602
- };
1614
+ /**
1615
+ * Defines a platform custom element based on the provided type and definition.
1616
+ * @param nameOrDef - The name of the element to define or a definition object.
1617
+ * @param extensions - Optional callbacks to run before registration.
1618
+ */
1619
+ define<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(this: TType, nameOrDef: string | PartialFASTElementDefinition<TType>, extensions?: FASTElementExtension[]): Promise<TType>;
1620
+ /**
1621
+ * Defines a platform custom element based on the provided type and definition.
1622
+ * @param type - The custom element type to define.
1623
+ * @param nameOrDef - The name of the element to define or a definition object.
1624
+ * @param extensions - Optional callbacks to run before registration.
1625
+ */
1626
+ define<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(type: TType, nameOrDef?: string | PartialFASTElementDefinition<TType>, extensions?: FASTElementExtension[]): Promise<TType>;
1627
+ /**
1628
+ * Composes FASTElement metadata without registering the element.
1629
+ * @param nameOrDef - The name of the element to compose or a definition object.
1630
+ */
1631
+ compose<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(this: TType, nameOrDef: string | PartialFASTElementDefinition<TType>): Promise<FASTElementDefinition<TType>>;
1632
+ /**
1633
+ * Composes FASTElement metadata without registering the element.
1634
+ * @param type - The custom element type to compose.
1635
+ * @param nameOrDef - The name of the element to compose or a definition object.
1636
+ */
1637
+ compose<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(type: TType, nameOrDef?: string | PartialFASTElementDefinition<TType>): Promise<FASTElementDefinition<TType>>;
1638
+ /**
1639
+ * Creates a new FASTElement base class inherited from the provided base type.
1640
+ * @param BaseType - The base element type to inherit from.
1641
+ */
1642
+ from<TBase extends typeof HTMLElement>(BaseType: TBase): {
1643
+ new (): InstanceType<TBase> & FASTElement;
1644
+ };
1645
+ }
1603
1646
 
1604
1647
  /**
1605
1648
  * Defines metadata for a FASTElement.
@@ -1704,7 +1747,14 @@ export declare class FASTElementDefinition<TType extends Constructable<HTMLEleme
1704
1747
  */
1705
1748
  export declare type FASTElementExtension = (definition: FASTElementDefinition) => void;
1706
1749
 
1707
- /* Excluded from this release type: fastElementRegistry */
1750
+ /**
1751
+ * The FAST custom element registry.
1752
+ * @remarks
1753
+ * This registry stores FAST element definitions by constructor so consumers can
1754
+ * look up the `FASTElementDefinition` associated with an element type or instance.
1755
+ * @public
1756
+ */
1757
+ export declare const fastElementRegistry: TypeRegistry<FASTElementDefinition>;
1708
1758
 
1709
1759
  /**
1710
1760
  * Resolves an element template from a composed definition.
@@ -1712,8 +1762,6 @@ export declare type FASTElementExtension = (definition: FASTElementDefinition) =
1712
1762
  */
1713
1763
  export declare type FASTElementTemplateResolver<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>> = (definition: FASTElementDefinition<TType>) => ElementViewTemplate<InstanceType<TType>> | Promise<ElementViewTemplate<InstanceType<TType>>>;
1714
1764
 
1715
- declare function from<TBase extends typeof HTMLElement>(BaseType: TBase): new () => InstanceType<TBase> & FASTElement;
1716
-
1717
1765
  /**
1718
1766
  * Represents an object that can contribute behavior to a host.
1719
1767
  * @public
@@ -1806,7 +1854,6 @@ export declare const html: HTMLTemplateTag;
1806
1854
  * @public
1807
1855
  */
1808
1856
  export declare class HTMLBindingDirective implements HTMLDirective, ViewBehaviorFactory, ViewBehavior, Aspected, BindingDirective {
1809
- dataBinding: Binding;
1810
1857
  private data;
1811
1858
  private updateTarget;
1812
1859
  /**
@@ -1824,7 +1871,7 @@ export declare class HTMLBindingDirective implements HTMLDirective, ViewBehavior
1824
1871
  /**
1825
1872
  * The policy that the created behavior must run under.
1826
1873
  */
1827
- policy: DOMPolicy_2;
1874
+ policy: DOMPolicy;
1828
1875
  /**
1829
1876
  * The original source aspect exactly as represented in markup.
1830
1877
  */
@@ -1837,6 +1884,10 @@ export declare class HTMLBindingDirective implements HTMLDirective, ViewBehavior
1837
1884
  * The type of aspect to target.
1838
1885
  */
1839
1886
  aspectType: DOMAspect;
1887
+ /**
1888
+ * The binding configuration to apply.
1889
+ */
1890
+ dataBinding: Binding;
1840
1891
  /**
1841
1892
  * Creates an instance of HTMLBindingDirective.
1842
1893
  * @param dataBinding - The binding configuration to apply.
@@ -2373,13 +2424,13 @@ export declare const Observable: Readonly<{
2373
2424
  * @param initialSubscriber - An initial subscriber to changes in the binding value.
2374
2425
  * @param isVolatileBinding - Indicates whether the binding's dependency list must be re-evaluated on every value evaluation.
2375
2426
  */
2376
- binding<TSource = any, TReturn = any>(expression: Expression<TSource, TReturn, any>, initialSubscriber?: Subscriber, isVolatileBinding?: boolean): ExpressionNotifier<TSource, TReturn, any>;
2427
+ binding<TSource = any, TReturn = any>(expression: Expression<TSource, TReturn>, initialSubscriber?: Subscriber, isVolatileBinding?: boolean): ExpressionNotifier<TSource, TReturn>;
2377
2428
  /**
2378
2429
  * Determines whether a binding expression is volatile and needs to have its dependency list re-evaluated
2379
2430
  * on every evaluation of the value.
2380
2431
  * @param expression - The binding to inspect.
2381
2432
  */
2382
- isVolatileBinding<TSource_1 = any, TReturn_1 = any>(expression: Expression<TSource_1, TReturn_1, any>): boolean;
2433
+ isVolatileBinding<TSource = any, TReturn = any>(expression: Expression<TSource, TReturn>): boolean;
2383
2434
  }>;
2384
2435
 
2385
2436
  /**
@@ -2412,7 +2463,7 @@ export declare interface ObservationRecord {
2412
2463
  * @returns A binding configuration.
2413
2464
  * @public
2414
2465
  */
2415
- export declare function oneTime<T = any>(expression: Expression<T>, policy?: DOMPolicy_2): Binding<T>;
2466
+ export declare function oneTime<T = any>(expression: Expression<T>, policy?: DOMPolicy): Binding<T>;
2416
2467
 
2417
2468
  /**
2418
2469
  * Creates an standard binding.
@@ -2422,7 +2473,7 @@ export declare function oneTime<T = any>(expression: Expression<T>, policy?: DOM
2422
2473
  * @returns A binding configuration.
2423
2474
  * @public
2424
2475
  */
2425
- export declare function oneWay<T = any>(expression: Expression<T>, policy?: DOMPolicy_2, isVolatile?: boolean): Binding<T>;
2476
+ export declare function oneWay<T = any>(expression: Expression<T>, policy?: DOMPolicy, isVolatile?: boolean): Binding<T>;
2426
2477
 
2427
2478
  /**
2428
2479
  * A read/write stateful value associated with an owner.
@@ -2604,7 +2655,7 @@ export declare type ReadonlyState<T> = {
2604
2655
  * @param propertyName - The name of the property to assign the reference to.
2605
2656
  * @public
2606
2657
  */
2607
- export declare const ref: <TSource = any>(propertyName: keyof TSource & string) => CaptureType;
2658
+ export declare const ref: <TSource = any, TParent = any>(propertyName: keyof TSource & string) => CaptureType<TSource, TParent>;
2608
2659
 
2609
2660
  /**
2610
2661
  * The runtime behavior for template references.
@@ -2648,7 +2699,7 @@ export declare interface RegisterPathConfig {
2648
2699
  * RenderInstruction to determine the view.
2649
2700
  * @public
2650
2701
  */
2651
- export declare function render<TSource = any, TItem = any, TParent = any>(value?: Expression<TSource, TItem> | Binding<TSource, TItem> | {}, template?: ContentTemplate | string | Expression<TSource, ContentTemplate | string | Node, TParent> | Binding<TSource, ContentTemplate | string | Node, TParent>): CaptureType;
2702
+ export declare function render<TSource = any, TItem = any, TParent = any>(value?: Expression<TSource, TItem> | Binding<TSource, TItem> | {}, template?: ContentTemplate | string | Expression<TSource, ContentTemplate | string | Node, TParent> | Binding<TSource, ContentTemplate | string | Node, TParent>): CaptureType<TSource, TParent>;
2652
2703
 
2653
2704
  /**
2654
2705
  * A Behavior that enables advanced rendering.
@@ -2721,7 +2772,7 @@ export declare class RenderDirective<TSource = any> implements HTMLDirective, Vi
2721
2772
  * @param options - Options used to turn on special repeat features.
2722
2773
  * @public
2723
2774
  */
2724
- export declare function repeat<TSource = any, TArray extends ReadonlyArray<any> = ReadonlyArray<any>, TParent = any>(items: Expression<TSource, TArray, TParent> | Binding<TSource, TArray, TParent> | ReadonlyArray<any>, template: Expression<TSource, ViewTemplate<any, TSource>> | Binding<TSource, ViewTemplate<any, TSource>> | ViewTemplate<any, TSource>, options?: RepeatOptions): CaptureType;
2775
+ export declare function repeat<TSource = any, TArray extends ReadonlyArray<any> = ReadonlyArray<any>, TParent = any>(items: Expression<TSource, TArray, TParent> | Binding<TSource, TArray, TParent> | ReadonlyArray<any>, template: Expression<TSource, ViewTemplate<any, TSource>> | Binding<TSource, ViewTemplate<any, TSource>> | ViewTemplate<any, TSource>, options?: RepeatOptions): CaptureType<TSource, TParent>;
2725
2776
 
2726
2777
  /**
2727
2778
  * A behavior that renders a template for each item in an array.
@@ -2972,7 +3023,7 @@ export declare const Signal: Readonly<{
2972
3023
  * @returns A binding configuration.
2973
3024
  * @public
2974
3025
  */
2975
- export declare function signal<T = any>(expression: Expression<T>, options: string | Expression<T>, policy?: DOMPolicy_2): Binding<T>;
3026
+ export declare function signal<T = any>(expression: Expression<T>, options: string | Expression<T>, policy?: DOMPolicy): Binding<T>;
2976
3027
 
2977
3028
  /**
2978
3029
  * A directive that observes the `assignedNodes()` of a slot and updates a property
@@ -2980,7 +3031,7 @@ export declare function signal<T = any>(expression: Expression<T>, options: stri
2980
3031
  * @param propertyOrOptions - The options used to configure slotted node observation.
2981
3032
  * @public
2982
3033
  */
2983
- export declare function slotted<TSource = any>(propertyOrOptions: (keyof TSource & string) | SlottedDirectiveOptions<keyof TSource & string>): CaptureType;
3034
+ export declare function slotted<TSource = any, TParent = any>(propertyOrOptions: (keyof TSource & string) | SlottedDirectiveOptions<keyof TSource & string>): CaptureType<TSource, TParent>;
2984
3035
 
2985
3036
  /**
2986
3037
  * The runtime behavior for slotted node observation.
@@ -3465,7 +3516,7 @@ export declare interface SyntheticViewTemplate<TSource = any, TParent = any> {
3465
3516
  /**
3466
3517
  * Returns a directive that can inline the template.
3467
3518
  */
3468
- inline(): CaptureType;
3519
+ inline(): CaptureType<TSource, TParent>;
3469
3520
  }
3470
3521
 
3471
3522
  /**
@@ -3503,7 +3554,7 @@ export declare interface TemplateLifecycleCallbacks {
3503
3554
  * Represents the types of values that can be interpolated into a template.
3504
3555
  * @public
3505
3556
  */
3506
- export declare type TemplateValue<TSource, TParent = any> = Expression<TSource, any, TParent> | Binding<TSource, any, TParent> | HTMLDirective | CaptureType;
3557
+ export declare type TemplateValue<TSource, TParent = any> = Expression<TSource, any, TParent> | Binding<TSource, any, TParent> | HTMLDirective | CaptureType<TSource, TParent>;
3507
3558
 
3508
3559
  /**
3509
3560
  * A policy for use with the standard trustedTypes platform API.
@@ -3526,7 +3577,7 @@ export declare type TrustedTypesPolicy = {
3526
3577
  * @returns A binding.
3527
3578
  * @public
3528
3579
  */
3529
- export declare function twoWay<T = any>(expression: Expression<T>, optionsOrChangeEvent?: TwoWayBindingOptions | string, policy?: DOMPolicy_2, isBindingVolatile?: boolean): Binding<T>;
3580
+ export declare function twoWay<T = any>(expression: Expression<T>, optionsOrChangeEvent?: TwoWayBindingOptions | string, policy?: DOMPolicy, isBindingVolatile?: boolean): Binding<T>;
3530
3581
 
3531
3582
  /**
3532
3583
  * The twoWay binding options.
@@ -3562,9 +3613,39 @@ export declare const TwoWaySettings: Readonly<{
3562
3613
  configure(settings: TwoWaySettings): void;
3563
3614
  }>;
3564
3615
 
3565
- /* Excluded from this release type: TypeDefinition */
3616
+ /**
3617
+ * A type that can be registered with a `TypeRegistry`.
3618
+ * @public
3619
+ */
3620
+ export declare interface TypeDefinition {
3621
+ /**
3622
+ * The registered type constructor.
3623
+ */
3624
+ type: Function;
3625
+ }
3566
3626
 
3567
- /* Excluded from this release type: TypeRegistry */
3627
+ /**
3628
+ * A registry that stores definitions by type.
3629
+ * @public
3630
+ */
3631
+ export declare interface TypeRegistry<TDefinition extends TypeDefinition> {
3632
+ /**
3633
+ * Registers a type definition.
3634
+ * @param definition - The type definition to register.
3635
+ * @returns `true` when the definition was registered, otherwise `false`.
3636
+ */
3637
+ register(definition: TDefinition): boolean;
3638
+ /**
3639
+ * Gets a definition by type.
3640
+ * @param key - The type to retrieve the definition for.
3641
+ */
3642
+ getByType(key: Function): TDefinition | undefined;
3643
+ /**
3644
+ * Gets a definition by instance.
3645
+ * @param object - The instance to retrieve the definition for.
3646
+ */
3647
+ getForInstance(object: any): TDefinition | undefined;
3648
+ }
3568
3649
 
3569
3650
  /* Excluded from this release type: UnobservableMutationObserver */
3570
3651
 
@@ -3688,7 +3769,7 @@ export declare interface ViewBehaviorFactory {
3688
3769
  /**
3689
3770
  * The policy that the created behavior must run under.
3690
3771
  */
3691
- policy?: DOMPolicy_2;
3772
+ policy?: DOMPolicy;
3692
3773
  /**
3693
3774
  * Creates a behavior.
3694
3775
  */
@@ -3786,12 +3867,12 @@ export declare class ViewTemplate<TSource = any, TParent = any> implements Eleme
3786
3867
  * @param factories - The directives that will be connected to placeholders in the html.
3787
3868
  * @param policy - The security policy to use when compiling this template.
3788
3869
  */
3789
- constructor(html: string | HTMLTemplateElement, factories?: Record<string, ViewBehaviorFactory>, policy?: DOMPolicy_2 | undefined);
3870
+ constructor(html: string | HTMLTemplateElement, factories?: Record<string, ViewBehaviorFactory>, policy?: DOMPolicy | undefined);
3790
3871
  /* Excluded from this release type: compile */
3791
3872
  /**
3792
3873
  * Returns a directive that can inline the template.
3793
3874
  */
3794
- inline(): CaptureType;
3875
+ inline(): CaptureType<TSource, TParent>;
3795
3876
  /**
3796
3877
  * Sets the DOMPolicy for this template.
3797
3878
  * @param policy - The policy to associated with this template.
@@ -3800,7 +3881,7 @@ export declare class ViewTemplate<TSource = any, TParent = any> implements Eleme
3800
3881
  * The DOMPolicy can only be set once for a template and cannot be
3801
3882
  * set after the template is compiled.
3802
3883
  */
3803
- withPolicy(policy: DOMPolicy_2): this;
3884
+ withPolicy(policy: DOMPolicy): this;
3804
3885
  /**
3805
3886
  * Creates an HTMLView from this template, binds it to the source, and then appends it to the host.
3806
3887
  * @param source - The data source to bind the template to.
@@ -3845,7 +3926,7 @@ export declare class ViewTemplate<TSource = any, TParent = any> implements Eleme
3845
3926
  * and also be sure to manually sanitize all static strings particularly if they can
3846
3927
  * come from user input.
3847
3928
  */
3848
- static create<TSource = any, TParent = any>(strings: string[], values: TemplateValue<TSource, TParent>[], policy?: DOMPolicy_2): ViewTemplate<TSource, TParent>;
3929
+ static create<TSource = any, TParent = any>(strings: string[], values: TemplateValue<TSource, TParent>[], policy?: DOMPolicy): ViewTemplate<TSource, TParent>;
3849
3930
  }
3850
3931
 
3851
3932
  /**
@@ -3875,6 +3956,6 @@ export declare function watch(object: any, subscriber: Subscriber | ((subject: a
3875
3956
  * gets the template to render when the conditional is false.
3876
3957
  * @public
3877
3958
  */
3878
- export declare function when<TSource = any, TReturn = any, TParent = any>(condition: Expression<TSource, TReturn, TParent> | boolean, templateOrTemplateBinding: SyntheticViewTemplate<TSource, TParent> | Expression<TSource, SyntheticViewTemplate<TSource, TParent>, TParent>, elseTemplateOrTemplateBinding?: SyntheticViewTemplate<TSource, TParent> | Expression<TSource, SyntheticViewTemplate<TSource, TParent>, TParent>): CaptureType;
3959
+ export declare function when<TSource = any, TReturn = any, TParent = any>(condition: Expression<TSource, TReturn, TParent> | boolean, templateOrTemplateBinding: SyntheticViewTemplate<TSource, TParent> | Expression<TSource, SyntheticViewTemplate<TSource, TParent>, TParent>, elseTemplateOrTemplateBinding?: SyntheticViewTemplate<TSource, TParent> | Expression<TSource, SyntheticViewTemplate<TSource, TParent>, TParent>): CaptureType<TSource, TParent>;
3879
3960
 
3880
3961
  export { }