@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
@@ -232,20 +237,29 @@ export declare type AttributeMode = "reflect" | "boolean" | "fromView";
232
237
  * @public
233
238
  */
234
239
  export declare abstract class Binding<TSource = any, TReturn = any, TParent = any> {
235
- evaluate: Expression<TSource, TReturn, TParent>;
236
- policy?: DOMPolicy_2 | undefined;
237
- isVolatile: boolean;
238
240
  /**
239
241
  * Options associated with the binding.
240
242
  */
241
243
  options?: any;
244
+ /**
245
+ * Evaluates the binding.
246
+ */
247
+ evaluate: Expression<TSource, TReturn, TParent>;
248
+ /**
249
+ * The security policy to associate with this binding.
250
+ */
251
+ policy?: DOMPolicy;
252
+ /**
253
+ * Indicates whether the binding is volatile.
254
+ */
255
+ isVolatile: boolean;
242
256
  /**
243
257
  * Creates a binding.
244
258
  * @param evaluate - Evaluates the binding.
245
259
  * @param policy - The security policy to associate with this binding.
246
260
  * @param isVolatile - Indicates whether the binding is volatile.
247
261
  */
248
- constructor(evaluate: Expression<TSource, TReturn, TParent>, policy?: DOMPolicy_2 | undefined, isVolatile?: boolean);
262
+ constructor(evaluate: Expression<TSource, TReturn, TParent>, policy?: DOMPolicy, isVolatile?: boolean);
249
263
  /**
250
264
  * Creates an observer capable of notifying a subscriber when the output of a binding changes.
251
265
  * @param subscriber - The subscriber to changes in the binding.
@@ -317,7 +331,7 @@ export declare type Callable = typeof Function.prototype.call | {
317
331
  * into templates.
318
332
  * @public
319
333
  */
320
- export declare interface CaptureType {
334
+ export declare interface CaptureType<TSource = any, TParent = any> {
321
335
  }
322
336
 
323
337
  /**
@@ -333,7 +347,7 @@ export declare interface ChildListDirectiveOptions<T = any> extends NodeBehavior
333
347
  * @param propertyOrOptions - The options used to configure child node observation.
334
348
  * @public
335
349
  */
336
- export declare function children<TSource = any>(propertyOrOptions: (keyof TSource & string) | ChildrenDirectiveOptions<keyof TSource & string>): CaptureType;
350
+ export declare function children<TSource = any, TParent = any>(propertyOrOptions: (keyof TSource & string) | ChildrenDirectiveOptions<keyof TSource & string>): CaptureType<TSource, TParent>;
337
351
 
338
352
  /**
339
353
  * The runtime behavior for child node observation.
@@ -406,7 +420,7 @@ factories: Record<string, ViewBehaviorFactory>,
406
420
  /**
407
421
  * The security policy to compile the html with.
408
422
  */
409
- policy: DOMPolicy_2) => HTMLTemplateCompilationResult;
423
+ policy: DOMPolicy) => HTMLTemplateCompilationResult;
410
424
 
411
425
  /**
412
426
  * Represents a ViewBehaviorFactory after the compilation process has completed.
@@ -431,7 +445,7 @@ export declare const Compiler: {
431
445
  * it is recommended that you clone the original and pass the clone to this API.
432
446
  * @public
433
447
  */
434
- compile<TSource = any, TParent = any>(html: string | HTMLTemplateElement, factories: Record<string, ViewBehaviorFactory>, policy?: DOMPolicy_2): HTMLTemplateCompilationResult<TSource, TParent>;
448
+ compile<TSource = any, TParent = any>(html: string | HTMLTemplateElement, factories: Record<string, ViewBehaviorFactory>, policy?: DOMPolicy): HTMLTemplateCompilationResult<TSource, TParent>;
435
449
  /**
436
450
  * Sets the default compilation strategy that will be used by the ViewTemplate whenever
437
451
  * it needs to compile a view preprocessed with the html template function.
@@ -445,7 +459,7 @@ export declare const Compiler: {
445
459
  * @param policy - The security policy to use with the aggregated bindings.
446
460
  * @returns A single inline directive that aggregates the behavior of all the parts.
447
461
  */
448
- aggregate(parts: (string | ViewBehaviorFactory)[], policy?: DOMPolicy_2): ViewBehaviorFactory;
462
+ aggregate(parts: (string | ViewBehaviorFactory)[], policy?: DOMPolicy): ViewBehaviorFactory;
449
463
  };
450
464
 
451
465
  /**
@@ -454,10 +468,6 @@ export declare const Compiler: {
454
468
  */
455
469
  export declare type ComposableStyles = string | ElementStyles | CSSStyleSheet;
456
470
 
457
- declare function compose<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(this: TType, nameOrDef: string | PartialFASTElementDefinition<TType>): Promise<FASTElementDefinition<TType>>;
458
-
459
- declare function compose<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(type: TType, nameOrDef?: string | PartialFASTElementDefinition<TType>): Promise<FASTElementDefinition<TType>>;
460
-
461
471
  /**
462
472
  * Determines if the reference element contains the test element in a "composed" DOM tree that
463
473
  * ignores shadow DOM boundaries.
@@ -766,10 +776,6 @@ export declare class DefaultExecutionContext<TParent> implements ExecutionContex
766
776
  eventTarget<TTarget extends EventTarget>(): TTarget;
767
777
  }
768
778
 
769
- declare function define<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(this: TType, nameOrDef: string | PartialFASTElementDefinition<TType>, extensions?: FASTElementExtension[]): Promise<TType>;
770
-
771
- declare function define<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(type: TType, nameOrDef?: string | PartialFASTElementDefinition<TType>, extensions?: FASTElementExtension[]): Promise<TType>;
772
-
773
779
  /**
774
780
  * Provides a mechanism for releasing resources.
775
781
  * @public
@@ -789,7 +795,7 @@ export declare const DOM: Readonly<{
789
795
  /**
790
796
  * Gets the dom policy used by the templating system.
791
797
  */
792
- readonly policy: DOMPolicy_2;
798
+ readonly policy: DOMPolicy;
793
799
  /**
794
800
  * Sets the dom policy used by the templating system.
795
801
  * @param policy - The policy to set.
@@ -797,7 +803,7 @@ export declare const DOM: Readonly<{
797
803
  * This API can only be called once, for security reasons. It should be
798
804
  * called by the application developer at the start of their program.
799
805
  */
800
- setPolicy(value: DOMPolicy_2): void;
806
+ setPolicy(value: DOMPolicy): void;
801
807
  /**
802
808
  * Sets an attribute value on an element.
803
809
  * @param element - The element to set the attribute value on.
@@ -913,23 +919,10 @@ export declare type DOMGuards = {
913
919
  };
914
920
 
915
921
  /**
916
- * A helper for creating DOM policies.
917
- * @public
918
- */
919
- export declare const DOMPolicy: Readonly<{
920
- /**
921
- * Creates a new DOM Policy object.
922
- * @param options - The options to use in creating the policy.
923
- * @returns The newly created DOMPolicy.
924
- */
925
- create(options?: DOMPolicyOptions): Readonly<DOMPolicy_2>;
926
- }>;
927
-
928
- /**
929
- * A security policy that FAST can use to interact with the DOM.
922
+ * A policy that controls whether values can be written to DOM sinks.
930
923
  * @public
931
924
  */
932
- declare interface DOMPolicy_2 {
925
+ export declare interface DOMPolicy {
933
926
  /**
934
927
  * Creates safe HTML from the provided value.
935
928
  * @param value - The source to convert to safe HTML.
@@ -945,6 +938,19 @@ declare interface DOMPolicy_2 {
945
938
  protect(tagName: string | null, aspect: DOMAspect, aspectName: string, sink: DOMSink): DOMSink;
946
939
  }
947
940
 
941
+ /**
942
+ * A helper for creating DOM policies.
943
+ * @public
944
+ */
945
+ export declare const DOMPolicy: Readonly<{
946
+ /**
947
+ * Creates a new DOM Policy object.
948
+ * @param options - The options to use in creating the policy.
949
+ * @returns The newly created DOMPolicy.
950
+ */
951
+ create(options?: DOMPolicyOptions): Readonly<DOMPolicy>;
952
+ }>;
953
+
948
954
  /**
949
955
  * Options for creating a DOM Policy.
950
956
  * @public
@@ -1457,7 +1463,7 @@ export declare const ExecutionContext: Readonly<{
1457
1463
  /**
1458
1464
  * A default execution context.
1459
1465
  */
1460
- default: ExecutionContext<any>;
1466
+ default: ExecutionContext;
1461
1467
  /**
1462
1468
  * Gets the current event.
1463
1469
  * @returns An event object.
@@ -1621,12 +1627,49 @@ export declare interface FASTElement extends HTMLElement {
1621
1627
  * static helpers for working with FASTElements.
1622
1628
  * @public
1623
1629
  */
1624
- export declare const FASTElement: {
1630
+ export declare const FASTElement: FASTElementConstructor;
1631
+
1632
+ /**
1633
+ * The FASTElement constructor and static registration helpers.
1634
+ * @public
1635
+ */
1636
+ export declare interface FASTElementConstructor {
1637
+ /**
1638
+ * Creates a FASTElement instance.
1639
+ */
1625
1640
  new (): FASTElement;
1626
- define: typeof define;
1627
- compose: typeof compose;
1628
- from: typeof from;
1629
- };
1641
+ /**
1642
+ * Defines a platform custom element based on the provided type and definition.
1643
+ * @param nameOrDef - The name of the element to define or a definition object.
1644
+ * @param extensions - Optional callbacks to run before registration.
1645
+ */
1646
+ define<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(this: TType, nameOrDef: string | PartialFASTElementDefinition<TType>, extensions?: FASTElementExtension[]): Promise<TType>;
1647
+ /**
1648
+ * Defines a platform custom element based on the provided type and definition.
1649
+ * @param type - The custom element type to define.
1650
+ * @param nameOrDef - The name of the element to define or a definition object.
1651
+ * @param extensions - Optional callbacks to run before registration.
1652
+ */
1653
+ define<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(type: TType, nameOrDef?: string | PartialFASTElementDefinition<TType>, extensions?: FASTElementExtension[]): Promise<TType>;
1654
+ /**
1655
+ * Composes FASTElement metadata without registering the element.
1656
+ * @param nameOrDef - The name of the element to compose or a definition object.
1657
+ */
1658
+ compose<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(this: TType, nameOrDef: string | PartialFASTElementDefinition<TType>): Promise<FASTElementDefinition<TType>>;
1659
+ /**
1660
+ * Composes FASTElement metadata without registering the element.
1661
+ * @param type - The custom element type to compose.
1662
+ * @param nameOrDef - The name of the element to compose or a definition object.
1663
+ */
1664
+ compose<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(type: TType, nameOrDef?: string | PartialFASTElementDefinition<TType>): Promise<FASTElementDefinition<TType>>;
1665
+ /**
1666
+ * Creates a new FASTElement base class inherited from the provided base type.
1667
+ * @param BaseType - The base element type to inherit from.
1668
+ */
1669
+ from<TBase extends typeof HTMLElement>(BaseType: TBase): {
1670
+ new (): InstanceType<TBase> & FASTElement;
1671
+ };
1672
+ }
1630
1673
 
1631
1674
  /**
1632
1675
  * Defines metadata for a FASTElement.
@@ -1742,8 +1785,11 @@ export declare class FASTElementDefinition<TType extends Constructable<HTMLEleme
1742
1785
  export declare type FASTElementExtension = (definition: FASTElementDefinition) => void;
1743
1786
 
1744
1787
  /**
1745
- * The FAST custom element registry
1746
- * @internal
1788
+ * The FAST custom element registry.
1789
+ * @remarks
1790
+ * This registry stores FAST element definitions by constructor so consumers can
1791
+ * look up the `FASTElementDefinition` associated with an element type or instance.
1792
+ * @public
1747
1793
  */
1748
1794
  export declare const fastElementRegistry: TypeRegistry<FASTElementDefinition>;
1749
1795
 
@@ -1753,8 +1799,6 @@ export declare const fastElementRegistry: TypeRegistry<FASTElementDefinition>;
1753
1799
  */
1754
1800
  export declare type FASTElementTemplateResolver<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>> = (definition: FASTElementDefinition<TType>) => ElementViewTemplate<InstanceType<TType>> | Promise<ElementViewTemplate<InstanceType<TType>>>;
1755
1801
 
1756
- declare function from<TBase extends typeof HTMLElement>(BaseType: TBase): new () => InstanceType<TBase> & FASTElement;
1757
-
1758
1802
  /**
1759
1803
  * Represents an object that can contribute behavior to a host.
1760
1804
  * @public
@@ -1847,7 +1891,6 @@ export declare const html: HTMLTemplateTag;
1847
1891
  * @public
1848
1892
  */
1849
1893
  export declare class HTMLBindingDirective implements HTMLDirective, ViewBehaviorFactory, ViewBehavior, Aspected, BindingDirective {
1850
- dataBinding: Binding;
1851
1894
  private data;
1852
1895
  private updateTarget;
1853
1896
  /**
@@ -1865,7 +1908,7 @@ export declare class HTMLBindingDirective implements HTMLDirective, ViewBehavior
1865
1908
  /**
1866
1909
  * The policy that the created behavior must run under.
1867
1910
  */
1868
- policy: DOMPolicy_2;
1911
+ policy: DOMPolicy;
1869
1912
  /**
1870
1913
  * The original source aspect exactly as represented in markup.
1871
1914
  */
@@ -1878,6 +1921,10 @@ export declare class HTMLBindingDirective implements HTMLDirective, ViewBehavior
1878
1921
  * The type of aspect to target.
1879
1922
  */
1880
1923
  aspectType: DOMAspect;
1924
+ /**
1925
+ * The binding configuration to apply.
1926
+ */
1927
+ dataBinding: Binding;
1881
1928
  /**
1882
1929
  * Creates an instance of HTMLBindingDirective.
1883
1930
  * @param dataBinding - The binding configuration to apply.
@@ -2458,13 +2505,13 @@ export declare const Observable: Readonly<{
2458
2505
  * @param initialSubscriber - An initial subscriber to changes in the binding value.
2459
2506
  * @param isVolatileBinding - Indicates whether the binding's dependency list must be re-evaluated on every value evaluation.
2460
2507
  */
2461
- binding<TSource = any, TReturn = any>(expression: Expression<TSource, TReturn, any>, initialSubscriber?: Subscriber, isVolatileBinding?: boolean): ExpressionNotifier<TSource, TReturn, any>;
2508
+ binding<TSource = any, TReturn = any>(expression: Expression<TSource, TReturn>, initialSubscriber?: Subscriber, isVolatileBinding?: boolean): ExpressionNotifier<TSource, TReturn>;
2462
2509
  /**
2463
2510
  * Determines whether a binding expression is volatile and needs to have its dependency list re-evaluated
2464
2511
  * on every evaluation of the value.
2465
2512
  * @param expression - The binding to inspect.
2466
2513
  */
2467
- isVolatileBinding<TSource_1 = any, TReturn_1 = any>(expression: Expression<TSource_1, TReturn_1, any>): boolean;
2514
+ isVolatileBinding<TSource = any, TReturn = any>(expression: Expression<TSource, TReturn>): boolean;
2468
2515
  }>;
2469
2516
 
2470
2517
  /**
@@ -2497,7 +2544,7 @@ export declare interface ObservationRecord {
2497
2544
  * @returns A binding configuration.
2498
2545
  * @public
2499
2546
  */
2500
- export declare function oneTime<T = any>(expression: Expression<T>, policy?: DOMPolicy_2): Binding<T>;
2547
+ export declare function oneTime<T = any>(expression: Expression<T>, policy?: DOMPolicy): Binding<T>;
2501
2548
 
2502
2549
  /**
2503
2550
  * Creates an standard binding.
@@ -2507,7 +2554,7 @@ export declare function oneTime<T = any>(expression: Expression<T>, policy?: DOM
2507
2554
  * @returns A binding configuration.
2508
2555
  * @public
2509
2556
  */
2510
- export declare function oneWay<T = any>(expression: Expression<T>, policy?: DOMPolicy_2, isVolatile?: boolean): Binding<T>;
2557
+ export declare function oneWay<T = any>(expression: Expression<T>, policy?: DOMPolicy, isVolatile?: boolean): Binding<T>;
2511
2558
 
2512
2559
  /**
2513
2560
  * A read/write stateful value associated with an owner.
@@ -2689,7 +2736,7 @@ export declare type ReadonlyState<T> = {
2689
2736
  * @param propertyName - The name of the property to assign the reference to.
2690
2737
  * @public
2691
2738
  */
2692
- export declare const ref: <TSource = any>(propertyName: keyof TSource & string) => CaptureType;
2739
+ export declare const ref: <TSource = any, TParent = any>(propertyName: keyof TSource & string) => CaptureType<TSource, TParent>;
2693
2740
 
2694
2741
  /**
2695
2742
  * The runtime behavior for template references.
@@ -2733,7 +2780,7 @@ export declare interface RegisterPathConfig {
2733
2780
  * RenderInstruction to determine the view.
2734
2781
  * @public
2735
2782
  */
2736
- 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;
2783
+ 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>;
2737
2784
 
2738
2785
  /**
2739
2786
  * A Behavior that enables advanced rendering.
@@ -2813,7 +2860,7 @@ export declare class RenderDirective<TSource = any> implements HTMLDirective, Vi
2813
2860
  * @param options - Options used to turn on special repeat features.
2814
2861
  * @public
2815
2862
  */
2816
- 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;
2863
+ 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>;
2817
2864
 
2818
2865
  /**
2819
2866
  * A behavior that renders a template for each item in an array.
@@ -3065,7 +3112,7 @@ export declare const Signal: Readonly<{
3065
3112
  * @returns A binding configuration.
3066
3113
  * @public
3067
3114
  */
3068
- export declare function signal<T = any>(expression: Expression<T>, options: string | Expression<T>, policy?: DOMPolicy_2): Binding<T>;
3115
+ export declare function signal<T = any>(expression: Expression<T>, options: string | Expression<T>, policy?: DOMPolicy): Binding<T>;
3069
3116
 
3070
3117
  /**
3071
3118
  * A directive that observes the `assignedNodes()` of a slot and updates a property
@@ -3073,7 +3120,7 @@ export declare function signal<T = any>(expression: Expression<T>, options: stri
3073
3120
  * @param propertyOrOptions - The options used to configure slotted node observation.
3074
3121
  * @public
3075
3122
  */
3076
- export declare function slotted<TSource = any>(propertyOrOptions: (keyof TSource & string) | SlottedDirectiveOptions<keyof TSource & string>): CaptureType;
3123
+ export declare function slotted<TSource = any, TParent = any>(propertyOrOptions: (keyof TSource & string) | SlottedDirectiveOptions<keyof TSource & string>): CaptureType<TSource, TParent>;
3077
3124
 
3078
3125
  /**
3079
3126
  * The runtime behavior for slotted node observation.
@@ -3559,7 +3606,7 @@ export declare interface SyntheticViewTemplate<TSource = any, TParent = any> {
3559
3606
  /**
3560
3607
  * Returns a directive that can inline the template.
3561
3608
  */
3562
- inline(): CaptureType;
3609
+ inline(): CaptureType<TSource, TParent>;
3563
3610
  }
3564
3611
 
3565
3612
  /**
@@ -3597,7 +3644,7 @@ export declare interface TemplateLifecycleCallbacks {
3597
3644
  * Represents the types of values that can be interpolated into a template.
3598
3645
  * @public
3599
3646
  */
3600
- export declare type TemplateValue<TSource, TParent = any> = Expression<TSource, any, TParent> | Binding<TSource, any, TParent> | HTMLDirective | CaptureType;
3647
+ export declare type TemplateValue<TSource, TParent = any> = Expression<TSource, any, TParent> | Binding<TSource, any, TParent> | HTMLDirective | CaptureType<TSource, TParent>;
3601
3648
 
3602
3649
  /**
3603
3650
  * A policy for use with the standard trustedTypes platform API.
@@ -3620,7 +3667,7 @@ export declare type TrustedTypesPolicy = {
3620
3667
  * @returns A binding.
3621
3668
  * @public
3622
3669
  */
3623
- export declare function twoWay<T = any>(expression: Expression<T>, optionsOrChangeEvent?: TwoWayBindingOptions | string, policy?: DOMPolicy_2, isBindingVolatile?: boolean): Binding<T>;
3670
+ export declare function twoWay<T = any>(expression: Expression<T>, optionsOrChangeEvent?: TwoWayBindingOptions | string, policy?: DOMPolicy, isBindingVolatile?: boolean): Binding<T>;
3624
3671
 
3625
3672
  /**
3626
3673
  * The twoWay binding options.
@@ -3657,20 +3704,36 @@ export declare const TwoWaySettings: Readonly<{
3657
3704
  }>;
3658
3705
 
3659
3706
  /**
3660
- * Do not change. Part of shared kernel contract.
3661
- * @internal
3707
+ * A type that can be registered with a `TypeRegistry`.
3708
+ * @public
3662
3709
  */
3663
- declare interface TypeDefinition {
3710
+ export declare interface TypeDefinition {
3711
+ /**
3712
+ * The registered type constructor.
3713
+ */
3664
3714
  type: Function;
3665
3715
  }
3666
3716
 
3667
3717
  /**
3668
- * Do not change. Part of shared kernel contract.
3669
- * @internal
3718
+ * A registry that stores definitions by type.
3719
+ * @public
3670
3720
  */
3671
3721
  export declare interface TypeRegistry<TDefinition extends TypeDefinition> {
3722
+ /**
3723
+ * Registers a type definition.
3724
+ * @param definition - The type definition to register.
3725
+ * @returns `true` when the definition was registered, otherwise `false`.
3726
+ */
3672
3727
  register(definition: TDefinition): boolean;
3728
+ /**
3729
+ * Gets a definition by type.
3730
+ * @param key - The type to retrieve the definition for.
3731
+ */
3673
3732
  getByType(key: Function): TDefinition | undefined;
3733
+ /**
3734
+ * Gets a definition by instance.
3735
+ * @param object - The instance to retrieve the definition for.
3736
+ */
3674
3737
  getForInstance(object: any): TDefinition | undefined;
3675
3738
  }
3676
3739
 
@@ -3810,7 +3873,7 @@ export declare interface ViewBehaviorFactory {
3810
3873
  /**
3811
3874
  * The policy that the created behavior must run under.
3812
3875
  */
3813
- policy?: DOMPolicy_2;
3876
+ policy?: DOMPolicy;
3814
3877
  /**
3815
3878
  * Creates a behavior.
3816
3879
  */
@@ -3914,7 +3977,7 @@ export declare class ViewTemplate<TSource = any, TParent = any> implements Eleme
3914
3977
  * @param factories - The directives that will be connected to placeholders in the html.
3915
3978
  * @param policy - The security policy to use when compiling this template.
3916
3979
  */
3917
- constructor(html: string | HTMLTemplateElement, factories?: Record<string, ViewBehaviorFactory>, policy?: DOMPolicy_2 | undefined);
3980
+ constructor(html: string | HTMLTemplateElement, factories?: Record<string, ViewBehaviorFactory>, policy?: DOMPolicy | undefined);
3918
3981
  /**
3919
3982
  * @internal
3920
3983
  */
@@ -3922,7 +3985,7 @@ export declare class ViewTemplate<TSource = any, TParent = any> implements Eleme
3922
3985
  /**
3923
3986
  * Returns a directive that can inline the template.
3924
3987
  */
3925
- inline(): CaptureType;
3988
+ inline(): CaptureType<TSource, TParent>;
3926
3989
  /**
3927
3990
  * Sets the DOMPolicy for this template.
3928
3991
  * @param policy - The policy to associated with this template.
@@ -3931,7 +3994,7 @@ export declare class ViewTemplate<TSource = any, TParent = any> implements Eleme
3931
3994
  * The DOMPolicy can only be set once for a template and cannot be
3932
3995
  * set after the template is compiled.
3933
3996
  */
3934
- withPolicy(policy: DOMPolicy_2): this;
3997
+ withPolicy(policy: DOMPolicy): this;
3935
3998
  /**
3936
3999
  * Creates an HTMLView from this template, binds it to the source, and then appends it to the host.
3937
4000
  * @param source - The data source to bind the template to.
@@ -3976,7 +4039,7 @@ export declare class ViewTemplate<TSource = any, TParent = any> implements Eleme
3976
4039
  * and also be sure to manually sanitize all static strings particularly if they can
3977
4040
  * come from user input.
3978
4041
  */
3979
- static create<TSource = any, TParent = any>(strings: string[], values: TemplateValue<TSource, TParent>[], policy?: DOMPolicy_2): ViewTemplate<TSource, TParent>;
4042
+ static create<TSource = any, TParent = any>(strings: string[], values: TemplateValue<TSource, TParent>[], policy?: DOMPolicy): ViewTemplate<TSource, TParent>;
3980
4043
  }
3981
4044
 
3982
4045
  /**
@@ -4006,6 +4069,6 @@ export declare function watch(object: any, subscriber: Subscriber | ((subject: a
4006
4069
  * gets the template to render when the conditional is false.
4007
4070
  * @public
4008
4071
  */
4009
- 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;
4072
+ 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>;
4010
4073
 
4011
4074
  export { }