Index: trip-planner-front/node_modules/@angular/common/common.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/common/common.d.ts.map	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
+++ trip-planner-front/node_modules/@angular/common/common.d.ts.map	(revision 8d391a12ef6baa3aefe9611a6f7c5b569977c946)
@@ -1,1 +1,1 @@
-{"version":3,"file":"common.d.ts","sources":["common.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":["/**\n * @license Angular v12.2.9\n * (c) 2010-2021 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ChangeDetectorRef } from '@angular/core';\r\nimport { DoCheck } from '@angular/core';\r\nimport { ElementRef } from '@angular/core';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { Injector } from '@angular/core';\r\nimport { IterableDiffers } from '@angular/core';\r\nimport { KeyValueDiffers } from '@angular/core';\r\nimport { NgIterable } from '@angular/core';\r\nimport { NgModuleFactory } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { OnChanges } from '@angular/core';\r\nimport { OnDestroy } from '@angular/core';\r\nimport { PipeTransform } from '@angular/core';\r\nimport { Provider } from '@angular/core';\r\nimport { Renderer2 } from '@angular/core';\r\nimport { SimpleChanges } from '@angular/core';\r\nimport { Subscribable } from 'rxjs';\r\nimport { SubscriptionLike } from 'rxjs';\r\nimport { TemplateRef } from '@angular/core';\r\nimport { TrackByFunction } from '@angular/core';\r\nimport { Type } from '@angular/core';\r\nimport { Version } from '@angular/core';\r\nimport { ViewContainerRef } from '@angular/core';\r\n\r\n/**\r\n * A predefined [DI token](guide/glossary#di-token) for the base href\r\n * to be used with the `PathLocationStrategy`.\r\n * The base href is the URL prefix that should be preserved when generating\r\n * and recognizing URLs.\r\n *\r\n * @usageNotes\r\n *\r\n * The following example shows how to use this token to configure the root app injector\r\n * with a base href value, so that the DI framework can supply the dependency anywhere in the app.\r\n *\r\n * ```typescript\r\n * import {Component, NgModule} from '@angular/core';\r\n * import {APP_BASE_HREF} from '@angular/common';\r\n *\r\n * @NgModule({\r\n *   providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]\r\n * })\r\n * class AppModule {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare const APP_BASE_HREF: InjectionToken<string>;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Unwraps a value from an asynchronous primitive.\r\n *\r\n * The `async` pipe subscribes to an `Observable` or `Promise` and returns the latest value it has\r\n * emitted. When a new value is emitted, the `async` pipe marks the component to be checked for\r\n * changes. When the component gets destroyed, the `async` pipe unsubscribes automatically to avoid\r\n * potential memory leaks.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Examples\r\n *\r\n * This example binds a `Promise` to the view. Clicking the `Resolve` button resolves the\r\n * promise.\r\n *\r\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipePromise'}\r\n *\r\n * It's also possible to use `async` with Observables. The example below binds the `time` Observable\r\n * to the view. The Observable continuously updates the view with the current time.\r\n *\r\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipeObservable'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class AsyncPipe implements OnDestroy, PipeTransform {\r\n    private _ref;\r\n    private _latestValue;\r\n    private _subscription;\r\n    private _obj;\r\n    private _strategy;\r\n    constructor(_ref: ChangeDetectorRef);\r\n    ngOnDestroy(): void;\r\n    transform<T>(obj: Observable<T> | Subscribable<T> | Promise<T>): T | null;\r\n    transform<T>(obj: null | undefined): null;\r\n    transform<T>(obj: Observable<T> | Subscribable<T> | Promise<T> | null | undefined): T | null;\r\n    private _subscribe;\r\n    private _selectStrategy;\r\n    private _dispose;\r\n    private _updateLatestValue;\r\n}\r\n\r\n\r\n/**\r\n * Exports all the basic Angular directives and pipes,\r\n * such as `NgIf`, `NgForOf`, `DecimalPipe`, and so on.\r\n * Re-exported by `BrowserModule`, which is included automatically in the root\r\n * `AppModule` when you create a new app with the CLI `new` command.\r\n *\r\n * * The `providers` options configure the NgModule's injector to provide\r\n * localization dependencies to members.\r\n * * The `exports` options make the declared directives and pipes available for import\r\n * by other NgModules.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class CommonModule {\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Transforms a number to a currency string, formatted according to locale rules\r\n * that determine group sizing and separator, decimal-point character,\r\n * and other locale-specific configurations.\r\n *\r\n * {@a currency-code-deprecation}\r\n * <div class=\"alert is-helpful\">\r\n *\r\n * **Deprecation notice:**\r\n *\r\n * The default currency code is currently always `USD` but this is deprecated from v9.\r\n *\r\n * **In v11 the default currency code will be taken from the current locale identified by\r\n * the `LOCALE_ID` token. See the [i18n guide](guide/i18n-common-locale-id) for\r\n * more information.**\r\n *\r\n * If you need the previous behavior then set it by creating a `DEFAULT_CURRENCY_CODE` provider in\r\n * your application `NgModule`:\r\n *\r\n * ```ts\r\n * {provide: DEFAULT_CURRENCY_CODE, useValue: 'USD'}\r\n * ```\r\n *\r\n * </div>\r\n *\r\n * @see `getCurrencySymbol()`\r\n * @see `formatCurrency()`\r\n *\r\n * @usageNotes\r\n * The following code shows how the pipe transforms numbers\r\n * into text strings, according to various format specifications,\r\n * where the caller's default locale is `en-US`.\r\n *\r\n * <code-example path=\"common/pipes/ts/currency_pipe.ts\" region='CurrencyPipe'></code-example>\r\n *\r\n * @publicApi\r\n */\r\nexport declare class CurrencyPipe implements PipeTransform {\r\n    private _locale;\r\n    private _defaultCurrencyCode;\r\n    constructor(_locale: string, _defaultCurrencyCode?: string);\r\n    transform(value: number | string, currencyCode?: string, display?: 'code' | 'symbol' | 'symbol-narrow' | string | boolean, digitsInfo?: string, locale?: string): string | null;\r\n    transform(value: null | undefined, currencyCode?: string, display?: 'code' | 'symbol' | 'symbol-narrow' | string | boolean, digitsInfo?: string, locale?: string): null;\r\n    transform(value: number | string | null | undefined, currencyCode?: string, display?: 'code' | 'symbol' | 'symbol-narrow' | string | boolean, digitsInfo?: string, locale?: string): string | null;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Formats a date value according to locale rules.\r\n *\r\n * `DatePipe` is executed only when it detects a pure change to the input value.\r\n * A pure change is either a change to a primitive input value\r\n * (such as `String`, `Number`, `Boolean`, or `Symbol`),\r\n * or a changed object reference (such as `Date`, `Array`, `Function`, or `Object`).\r\n *\r\n * Note that mutating a `Date` object does not cause the pipe to be rendered again.\r\n * To ensure that the pipe is executed, you must create a new `Date` object.\r\n *\r\n * Only the `en-US` locale data comes with Angular. To localize dates\r\n * in another language, you must import the corresponding locale data.\r\n * See the [I18n guide](guide/i18n-common-format-data-locale) for more information.\r\n *\r\n * @see `formatDate()`\r\n *\r\n *\r\n * @usageNotes\r\n *\r\n * The result of this pipe is not reevaluated when the input is mutated. To avoid the need to\r\n * reformat the date on every change-detection cycle, treat the date as an immutable object\r\n * and change the reference when the pipe needs to run again.\r\n *\r\n * ### Pre-defined format options\r\n *\r\n * | Option        | Equivalent to                       | Examples (given in `en-US` locale)              |\r\n * |---------------|-------------------------------------|-------------------------------------------------|\r\n * | `'short'`     | `'M/d/yy, h:mm a'`                  | `6/15/15, 9:03 AM`                              |\r\n * | `'medium'`    | `'MMM d, y, h:mm:ss a'`             | `Jun 15, 2015, 9:03:01 AM`                      |\r\n * | `'long'`      | `'MMMM d, y, h:mm:ss a z'`          | `June 15, 2015 at 9:03:01 AM GMT+1`             |\r\n * | `'full'`      | `'EEEE, MMMM d, y, h:mm:ss a zzzz'` | `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00` |\r\n * | `'shortDate'` | `'M/d/yy'`                          | `6/15/15`                                       |\r\n * | `'mediumDate'`| `'MMM d, y'`                        | `Jun 15, 2015`                                  |\r\n * | `'longDate'`  | `'MMMM d, y'`                       | `June 15, 2015`                                 |\r\n * | `'fullDate'`  | `'EEEE, MMMM d, y'`                 | `Monday, June 15, 2015`                         |\r\n * | `'shortTime'` | `'h:mm a'`                          | `9:03 AM`                                       |\r\n * | `'mediumTime'`| `'h:mm:ss a'`                       | `9:03:01 AM`                                    |\r\n * | `'longTime'`  | `'h:mm:ss a z'`                     | `9:03:01 AM GMT+1`                              |\r\n * | `'fullTime'`  | `'h:mm:ss a zzzz'`                  | `9:03:01 AM GMT+01:00`                          |\r\n *\r\n * ### Custom format options\r\n *\r\n * You can construct a format string using symbols to specify the components\r\n * of a date-time value, as described in the following table.\r\n * Format details depend on the locale.\r\n * Fields marked with (*) are only available in the extra data set for the given locale.\r\n *\r\n *  | Field type          | Format      | Description                                                   | Example Value                                              |\r\n *  |-------------------- |-------------|---------------------------------------------------------------|------------------------------------------------------------|\r\n *  | Era                 | G, GG & GGG | Abbreviated                                                   | AD                                                         |\r\n *  |                     | GGGG        | Wide                                                          | Anno Domini                                                |\r\n *  |                     | GGGGG       | Narrow                                                        | A                                                          |\r\n *  | Year                | y           | Numeric: minimum digits                                       | 2, 20, 201, 2017, 20173                                    |\r\n *  |                     | yy          | Numeric: 2 digits + zero padded                               | 02, 20, 01, 17, 73                                         |\r\n *  |                     | yyy         | Numeric: 3 digits + zero padded                               | 002, 020, 201, 2017, 20173                                 |\r\n *  |                     | yyyy        | Numeric: 4 digits or more + zero padded                       | 0002, 0020, 0201, 2017, 20173                              |\r\n *  | Week-numbering year | Y           | Numeric: minimum digits                                       | 2, 20, 201, 2017, 20173                                    |\r\n *  |                     | YY          | Numeric: 2 digits + zero padded                               | 02, 20, 01, 17, 73                                         |\r\n *  |                     | YYY         | Numeric: 3 digits + zero padded                               | 002, 020, 201, 2017, 20173                                 |\r\n *  |                     | YYYY        | Numeric: 4 digits or more + zero padded                       | 0002, 0020, 0201, 2017, 20173                              |\r\n *  | Month               | M           | Numeric: 1 digit                                              | 9, 12                                                      |\r\n *  |                     | MM          | Numeric: 2 digits + zero padded                               | 09, 12                                                     |\r\n *  |                     | MMM         | Abbreviated                                                   | Sep                                                        |\r\n *  |                     | MMMM        | Wide                                                          | September                                                  |\r\n *  |                     | MMMMM       | Narrow                                                        | S                                                          |\r\n *  | Month standalone    | L           | Numeric: 1 digit                                              | 9, 12                                                      |\r\n *  |                     | LL          | Numeric: 2 digits + zero padded                               | 09, 12                                                     |\r\n *  |                     | LLL         | Abbreviated                                                   | Sep                                                        |\r\n *  |                     | LLLL        | Wide                                                          | September                                                  |\r\n *  |                     | LLLLL       | Narrow                                                        | S                                                          |\r\n *  | Week of year        | w           | Numeric: minimum digits                                       | 1... 53                                                    |\r\n *  |                     | ww          | Numeric: 2 digits + zero padded                               | 01... 53                                                   |\r\n *  | Week of month       | W           | Numeric: 1 digit                                              | 1... 5                                                     |\r\n *  | Day of month        | d           | Numeric: minimum digits                                       | 1                                                          |\r\n *  |                     | dd          | Numeric: 2 digits + zero padded                               | 01                                                         |\r\n *  | Week day            | E, EE & EEE | Abbreviated                                                   | Tue                                                        |\r\n *  |                     | EEEE        | Wide                                                          | Tuesday                                                    |\r\n *  |                     | EEEEE       | Narrow                                                        | T                                                          |\r\n *  |                     | EEEEEE      | Short                                                         | Tu                                                         |\r\n *  | Week day standalone | c, cc       | Numeric: 1 digit                                              | 2                                                          |\r\n *  |                     | ccc         | Abbreviated                                                   | Tue                                                        |\r\n *  |                     | cccc        | Wide                                                          | Tuesday                                                    |\r\n *  |                     | ccccc       | Narrow                                                        | T                                                          |\r\n *  |                     | cccccc      | Short                                                         | Tu                                                         |\r\n *  | Period              | a, aa & aaa | Abbreviated                                                   | am/pm or AM/PM                                             |\r\n *  |                     | aaaa        | Wide (fallback to `a` when missing)                           | ante meridiem/post meridiem                                |\r\n *  |                     | aaaaa       | Narrow                                                        | a/p                                                        |\r\n *  | Period*             | B, BB & BBB | Abbreviated                                                   | mid.                                                       |\r\n *  |                     | BBBB        | Wide                                                          | am, pm, midnight, noon, morning, afternoon, evening, night |\r\n *  |                     | BBBBB       | Narrow                                                        | md                                                         |\r\n *  | Period standalone*  | b, bb & bbb | Abbreviated                                                   | mid.                                                       |\r\n *  |                     | bbbb        | Wide                                                          | am, pm, midnight, noon, morning, afternoon, evening, night |\r\n *  |                     | bbbbb       | Narrow                                                        | md                                                         |\r\n *  | Hour 1-12           | h           | Numeric: minimum digits                                       | 1, 12                                                      |\r\n *  |                     | hh          | Numeric: 2 digits + zero padded                               | 01, 12                                                     |\r\n *  | Hour 0-23           | H           | Numeric: minimum digits                                       | 0, 23                                                      |\r\n *  |                     | HH          | Numeric: 2 digits + zero padded                               | 00, 23                                                     |\r\n *  | Minute              | m           | Numeric: minimum digits                                       | 8, 59                                                      |\r\n *  |                     | mm          | Numeric: 2 digits + zero padded                               | 08, 59                                                     |\r\n *  | Second              | s           | Numeric: minimum digits                                       | 0... 59                                                    |\r\n *  |                     | ss          | Numeric: 2 digits + zero padded                               | 00... 59                                                   |\r\n *  | Fractional seconds  | S           | Numeric: 1 digit                                              | 0... 9                                                     |\r\n *  |                     | SS          | Numeric: 2 digits + zero padded                               | 00... 99                                                   |\r\n *  |                     | SSS         | Numeric: 3 digits + zero padded (= milliseconds)              | 000... 999                                                 |\r\n *  | Zone                | z, zz & zzz | Short specific non location format (fallback to O)            | GMT-8                                                      |\r\n *  |                     | zzzz        | Long specific non location format (fallback to OOOO)          | GMT-08:00                                                  |\r\n *  |                     | Z, ZZ & ZZZ | ISO8601 basic format                                          | -0800                                                      |\r\n *  |                     | ZZZZ        | Long localized GMT format                                     | GMT-8:00                                                   |\r\n *  |                     | ZZZZZ       | ISO8601 extended format + Z indicator for offset 0 (= XXXXX)  | -08:00                                                     |\r\n *  |                     | O, OO & OOO | Short localized GMT format                                    | GMT-8                                                      |\r\n *  |                     | OOOO        | Long localized GMT format                                     | GMT-08:00                                                  |\r\n *\r\n *\r\n * ### Format examples\r\n *\r\n * These examples transform a date into various formats,\r\n * assuming that `dateObj` is a JavaScript `Date` object for\r\n * year: 2015, month: 6, day: 15, hour: 21, minute: 43, second: 11,\r\n * given in the local time for the `en-US` locale.\r\n *\r\n * ```\r\n * {{ dateObj | date }}               // output is 'Jun 15, 2015'\r\n * {{ dateObj | date:'medium' }}      // output is 'Jun 15, 2015, 9:43:11 PM'\r\n * {{ dateObj | date:'shortTime' }}   // output is '9:43 PM'\r\n * {{ dateObj | date:'mm:ss' }}       // output is '43:11'\r\n * ```\r\n *\r\n * ### Usage example\r\n *\r\n * The following component uses a date pipe to display the current date in different formats.\r\n *\r\n * ```\r\n * @Component({\r\n *  selector: 'date-pipe',\r\n *  template: `<div>\r\n *    <p>Today is {{today | date}}</p>\r\n *    <p>Or if you prefer, {{today | date:'fullDate'}}</p>\r\n *    <p>The time is {{today | date:'h:mm a z'}}</p>\r\n *  </div>`\r\n * })\r\n * // Get the current date and time as a date-time value.\r\n * export class DatePipeComponent {\r\n *   today: number = Date.now();\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class DatePipe implements PipeTransform {\r\n    private locale;\r\n    constructor(locale: string);\r\n    /**\r\n     * @param value The date expression: a `Date` object,  a number\r\n     * (milliseconds since UTC epoch), or an ISO string (https://www.w3.org/TR/NOTE-datetime).\r\n     * @param format The date/time components to include, using predefined options or a\r\n     * custom format string.\r\n     * @param timezone A timezone offset (such as `'+0430'`), or a standard\r\n     * UTC/GMT or continental US timezone abbreviation.\r\n     * When not supplied, uses the end-user's local system timezone.\r\n     * @param locale A locale code for the locale format rules to use.\r\n     * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\r\n     * See [Setting your app locale](guide/i18n-common-locale-id).\r\n     * @returns A date string in the desired format.\r\n     */\r\n    transform(value: Date | string | number, format?: string, timezone?: string, locale?: string): string | null;\r\n    transform(value: null | undefined, format?: string, timezone?: string, locale?: string): null;\r\n    transform(value: Date | string | number | null | undefined, format?: string, timezone?: string, locale?: string): string | null;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Formats a value according to digit options and locale rules.\r\n * Locale determines group sizing and separator,\r\n * decimal point character, and other locale-specific configurations.\r\n *\r\n * @see `formatNumber()`\r\n *\r\n * @usageNotes\r\n *\r\n * ### digitsInfo\r\n *\r\n * The value's decimal representation is specified by the `digitsInfo`\r\n * parameter, written in the following format:<br>\r\n *\r\n * ```\r\n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}\r\n * ```\r\n *\r\n *  - `minIntegerDigits`:\r\n * The minimum number of integer digits before the decimal point.\r\n * Default is 1.\r\n *\r\n * - `minFractionDigits`:\r\n * The minimum number of digits after the decimal point.\r\n * Default is 0.\r\n *\r\n *  - `maxFractionDigits`:\r\n * The maximum number of digits after the decimal point.\r\n * Default is 3.\r\n *\r\n * If the formatted value is truncated it will be rounded using the \"to-nearest\" method:\r\n *\r\n * ```\r\n * {{3.6 | number: '1.0-0'}}\r\n * <!--will output '4'-->\r\n *\r\n * {{-3.6 | number:'1.0-0'}}\r\n * <!--will output '-4'-->\r\n * ```\r\n *\r\n * ### locale\r\n *\r\n * `locale` will format a value according to locale rules.\r\n * Locale determines group sizing and separator,\r\n * decimal point character, and other locale-specific configurations.\r\n *\r\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\r\n *\r\n * See [Setting your app locale](guide/i18n-common-locale-id).\r\n *\r\n * ### Example\r\n *\r\n * The following code shows how the pipe transforms values\r\n * according to various format specifications,\r\n * where the caller's default locale is `en-US`.\r\n *\r\n * <code-example path=\"common/pipes/ts/number_pipe.ts\" region='NumberPipe'></code-example>\r\n *\r\n * @publicApi\r\n */\r\nexport declare class DecimalPipe implements PipeTransform {\r\n    private _locale;\r\n    constructor(_locale: string);\r\n    transform(value: number | string, digitsInfo?: string, locale?: string): string | null;\r\n    transform(value: null | undefined, digitsInfo?: string, locale?: string): null;\r\n    transform(value: number | string | null | undefined, digitsInfo?: string, locale?: string): string | null;\r\n}\r\n\r\n/**\r\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\r\n *\r\n * Note: Document might not be available in the Application Context when Application and Rendering\r\n * Contexts are not the same (e.g. when running the application in a Web Worker).\r\n *\r\n * @publicApi\r\n */\r\nexport declare const DOCUMENT: InjectionToken<Document>;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Formats a number as currency using locale rules.\r\n *\r\n * @param value The number to format.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param currency A string containing the currency symbol or its name,\r\n * such as \"$\" or \"Canadian Dollar\". Used in output string, but does not affect the operation\r\n * of the function.\r\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\r\n * currency code, such as `USD` for the US dollar and `EUR` for the euro.\r\n * Used to determine the number of digits in the decimal part.\r\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\r\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\r\n *\r\n * @returns The formatted currency value.\r\n *\r\n * @see `formatNumber()`\r\n * @see `DecimalPipe`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function formatCurrency(value: number, locale: string, currency: string, currencyCode?: string, digitsInfo?: string): string;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Formats a date according to locale rules.\r\n *\r\n * @param value The date to format, as a Date, or a number (milliseconds since UTC epoch)\r\n * or an [ISO date-time string](https://www.w3.org/TR/NOTE-datetime).\r\n * @param format The date-time components to include. See `DatePipe` for details.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param timezone The time zone. A time zone offset from GMT (such as `'+0430'`),\r\n * or a standard UTC/GMT or continental US time zone abbreviation.\r\n * If not specified, uses host system settings.\r\n *\r\n * @returns The formatted date string.\r\n *\r\n * @see `DatePipe`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function formatDate(value: string | number | Date, format: string, locale: string, timezone?: string): string;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Formats a number as text, with group sizing, separator, and other\r\n * parameters based on the locale.\r\n *\r\n * @param value The number to format.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\r\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\r\n *\r\n * @returns The formatted text string.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function formatNumber(value: number, locale: string, digitsInfo?: string): string;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Formats a number as a percentage according to locale rules.\r\n *\r\n * @param value The number to format.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\r\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\r\n *\r\n * @returns The formatted percentage value.\r\n *\r\n * @see `formatNumber()`\r\n * @see `DecimalPipe`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n * @publicApi\r\n *\r\n */\r\nexport declare function formatPercent(value: number, locale: string, digitsInfo?: string): string;\r\n\r\n/**\r\n * String widths available for date-time formats.\r\n * The specific character widths are locale-specific.\r\n * Examples are given for `en-US`.\r\n *\r\n * @see `getLocaleDateFormat()`\r\n * @see `getLocaleTimeFormat()`\r\n * @see `getLocaleDateTimeFormat()`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n * @publicApi\r\n */\r\nexport declare enum FormatWidth {\r\n    /**\r\n     * For `en-US`, 'M/d/yy, h:mm a'`\r\n     * (Example: `6/15/15, 9:03 AM`)\r\n     */\r\n    Short = 0,\r\n    /**\r\n     * For `en-US`, `'MMM d, y, h:mm:ss a'`\r\n     * (Example: `Jun 15, 2015, 9:03:01 AM`)\r\n     */\r\n    Medium = 1,\r\n    /**\r\n     * For `en-US`, `'MMMM d, y, h:mm:ss a z'`\r\n     * (Example: `June 15, 2015 at 9:03:01 AM GMT+1`)\r\n     */\r\n    Long = 2,\r\n    /**\r\n     * For `en-US`, `'EEEE, MMMM d, y, h:mm:ss a zzzz'`\r\n     * (Example: `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00`)\r\n     */\r\n    Full = 3\r\n}\r\n\r\n/**\r\n * Context-dependant translation forms for strings.\r\n * Typically the standalone version is for the nominative form of the word,\r\n * and the format version is used for the genitive case.\r\n * @see [CLDR website](http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles)\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum FormStyle {\r\n    Format = 0,\r\n    Standalone = 1\r\n}\r\n\r\n/**\r\n * Retrieves the currency symbol for a given currency code.\r\n *\r\n * For example, for the default `en-US` locale, the code `USD` can\r\n * be represented by the narrow symbol `$` or the wide symbol `US$`.\r\n *\r\n * @param code The currency code.\r\n * @param format The format, `wide` or `narrow`.\r\n * @param locale A locale code for the locale format rules to use.\r\n *\r\n * @returns The symbol, or the currency code if no symbol is available.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getCurrencySymbol(code: string, format: 'wide' | 'narrow', locale?: string): string;\r\n\r\n/**\r\n * Retrieves the default currency code for the given locale.\r\n *\r\n * The default is defined as the first currency which is still in use.\r\n *\r\n * @param locale The code of the locale whose currency code we want.\r\n * @returns The code of the default currency for the given locale.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleCurrencyCode(locale: string): string | null;\r\n\r\n/**\r\n * Retrieves the name of the currency for the main country corresponding\r\n * to a given locale. For example, 'US Dollar' for `en-US`.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @returns The currency name,\r\n * or `null` if the main country cannot be determined.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleCurrencyName(locale: string): string | null;\r\n\r\n/**\r\n * Retrieves the symbol used to represent the currency for the main country\r\n * corresponding to a given locale. For example, '$' for `en-US`.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @returns The localized symbol character,\r\n * or `null` if the main country cannot be determined.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleCurrencySymbol(locale: string): string | null;\r\n\r\n/**\r\n * Retrieves a localized date-value formating string.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param width The format type.\r\n * @returns The localized formating string.\r\n * @see `FormatWidth`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleDateFormat(locale: string, width: FormatWidth): string;\r\n\r\n/**\r\n * Retrieves a localized date-time formatting string.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param width The format type.\r\n * @returns The localized formatting string.\r\n * @see `FormatWidth`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleDateTimeFormat(locale: string, width: FormatWidth): string;\r\n\r\n/**\r\n * Retrieves days of the week for the given locale, using the Gregorian calendar.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param formStyle The required grammatical form.\r\n * @param width The required character width.\r\n * @returns An array of localized name strings.\r\n * For example,`[Sunday, Monday, ... Saturday]` for `en-US`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleDayNames(locale: string, formStyle: FormStyle, width: TranslationWidth): ReadonlyArray<string>;\r\n\r\n/**\r\n * Retrieves day period strings for the given locale.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param formStyle The required grammatical form.\r\n * @param width The required character width.\r\n * @returns An array of localized period strings. For example, `[AM, PM]` for `en-US`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleDayPeriods(locale: string, formStyle: FormStyle, width: TranslationWidth): Readonly<[string, string]>;\r\n\r\n/**\r\n * Retrieves the writing direction of a specified locale\r\n * @param locale A locale code for the locale format rules to use.\r\n * @publicApi\r\n * @returns 'rtl' or 'ltr'\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n */\r\nexport declare function getLocaleDirection(locale: string): 'ltr' | 'rtl';\r\n\r\n/**\r\n * Retrieves Gregorian-calendar eras for the given locale.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param width The required character width.\r\n\r\n * @returns An array of localized era strings.\r\n * For example, `[AD, BC]` for `en-US`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleEraNames(locale: string, width: TranslationWidth): Readonly<[string, string]>;\r\n\r\n/**\r\n * Retrieves locale-specific rules used to determine which day period to use\r\n * when more than one period is defined for a locale.\r\n *\r\n * There is a rule for each defined day period. The\r\n * first rule is applied to the first day period and so on.\r\n * Fall back to AM/PM when no rules are available.\r\n *\r\n * A rule can specify a period as time range, or as a single time value.\r\n *\r\n * This functionality is only available when you have loaded the full locale data.\r\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @returns The rules for the locale, a single time value or array of *from-time, to-time*,\r\n * or null if no periods are available.\r\n *\r\n * @see `getLocaleExtraDayPeriods()`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleExtraDayPeriodRules(locale: string): (Time | [Time, Time])[];\r\n\r\n/**\r\n * Retrieves locale-specific day periods, which indicate roughly how a day is broken up\r\n * in different languages.\r\n * For example, for `en-US`, periods are morning, noon, afternoon, evening, and midnight.\r\n *\r\n * This functionality is only available when you have loaded the full locale data.\r\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param formStyle The required grammatical form.\r\n * @param width The required character width.\r\n * @returns The translated day-period strings.\r\n * @see `getLocaleExtraDayPeriodRules()`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleExtraDayPeriods(locale: string, formStyle: FormStyle, width: TranslationWidth): string[];\r\n\r\n/**\r\n * Retrieves the first day of the week for the given locale.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @returns A day index number, using the 0-based week-day index for `en-US`\r\n * (Sunday = 0, Monday = 1, ...).\r\n * For example, for `fr-FR`, returns 1 to indicate that the first day is Monday.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleFirstDayOfWeek(locale: string): WeekDay;\r\n\r\n/**\r\n * Retrieves the locale ID from the currently loaded locale.\r\n * The loaded locale could be, for example, a global one rather than a regional one.\r\n * @param locale A locale code, such as `fr-FR`.\r\n * @returns The locale code. For example, `fr`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleId(locale: string): string;\r\n\r\n/**\r\n * Retrieves months of the year for the given locale, using the Gregorian calendar.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param formStyle The required grammatical form.\r\n * @param width The required character width.\r\n * @returns An array of localized name strings.\r\n * For example,  `[January, February, ...]` for `en-US`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleMonthNames(locale: string, formStyle: FormStyle, width: TranslationWidth): ReadonlyArray<string>;\r\n\r\n/**\r\n * Retrieves a number format for a given locale.\r\n *\r\n * Numbers are formatted using patterns, like `#,###.00`. For example, the pattern `#,###.00`\r\n * when used to format the number 12345.678 could result in \"12'345,678\". That would happen if the\r\n * grouping separator for your language is an apostrophe, and the decimal separator is a comma.\r\n *\r\n * <b>Important:</b> The characters `.` `,` `0` `#` (and others below) are special placeholders\r\n * that stand for the decimal separator, and so on, and are NOT real characters.\r\n * You must NOT \"translate\" the placeholders. For example, don't change `.` to `,` even though in\r\n * your language the decimal point is written with a comma. The symbols should be replaced by the\r\n * local equivalents, using the appropriate `NumberSymbol` for your language.\r\n *\r\n * Here are the special characters used in number patterns:\r\n *\r\n * | Symbol | Meaning |\r\n * |--------|---------|\r\n * | . | Replaced automatically by the character used for the decimal point. |\r\n * | , | Replaced by the \"grouping\" (thousands) separator. |\r\n * | 0 | Replaced by a digit (or zero if there aren't enough digits). |\r\n * | # | Replaced by a digit (or nothing if there aren't enough). |\r\n * | ¤ | Replaced by a currency symbol, such as $ or USD. |\r\n * | % | Marks a percent format. The % symbol may change position, but must be retained. |\r\n * | E | Marks a scientific format. The E symbol may change position, but must be retained. |\r\n * | ' | Special characters used as literal characters are quoted with ASCII single quotes. |\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param type The type of numeric value to be formatted (such as `Decimal` or `Currency`.)\r\n * @returns The localized format string.\r\n * @see `NumberFormatStyle`\r\n * @see [CLDR website](http://cldr.unicode.org/translation/number-patterns)\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleNumberFormat(locale: string, type: NumberFormatStyle): string;\r\n\r\n/**\r\n * Retrieves a localized number symbol that can be used to replace placeholders in number formats.\r\n * @param locale The locale code.\r\n * @param symbol The symbol to localize.\r\n * @returns The character for the localized symbol.\r\n * @see `NumberSymbol`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleNumberSymbol(locale: string, symbol: NumberSymbol): string;\r\n\r\n/**\r\n * @alias core/ɵgetLocalePluralCase\r\n * @publicApi\r\n */\r\nexport declare const getLocalePluralCase: (locale: string) => ((value: number) => Plural);\r\n\r\n/**\r\n * Retrieves a localized time-value formatting string.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param width The format type.\r\n * @returns The localized formatting string.\r\n * @see `FormatWidth`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n\r\n * @publicApi\r\n */\r\nexport declare function getLocaleTimeFormat(locale: string, width: FormatWidth): string;\r\n\r\n/**\r\n * Range of week days that are considered the week-end for the given locale.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @returns The range of day values, `[startDay, endDay]`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleWeekEndRange(locale: string): [WeekDay, WeekDay];\r\n\r\n/**\r\n * Reports the number of decimal digits for a given currency.\r\n * The value depends upon the presence of cents in that particular currency.\r\n *\r\n * @param code The currency code.\r\n * @returns The number of decimal digits, typically 0 or 2.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getNumberOfCurrencyDigits(code: string): number;\r\n\r\n/**\r\n * @description\r\n * A {@link LocationStrategy} used to configure the {@link Location} service to\r\n * represent its state in the\r\n * [hash fragment](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax)\r\n * of the browser's URL.\r\n *\r\n * For instance, if you call `location.go('/foo')`, the browser's URL will become\r\n * `example.com#/foo`.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Example\r\n *\r\n * {@example common/location/ts/hash_location_component.ts region='LocationComponent'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class HashLocationStrategy extends LocationStrategy implements OnDestroy {\r\n    private _platformLocation;\r\n    private _baseHref;\r\n    private _removeListenerFns;\r\n    constructor(_platformLocation: PlatformLocation, _baseHref?: string);\r\n    ngOnDestroy(): void;\r\n    onPopState(fn: LocationChangeListener): void;\r\n    getBaseHref(): string;\r\n    path(includeHash?: boolean): string;\r\n    prepareExternalUrl(internal: string): string;\r\n    pushState(state: any, title: string, path: string, queryParams: string): void;\r\n    replaceState(state: any, title: string, path: string, queryParams: string): void;\r\n    forward(): void;\r\n    back(): void;\r\n    historyGo(relativePosition?: number): void;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Maps a value to a string that pluralizes the value according to locale rules.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Example\r\n *\r\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nPluralPipeComponent'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class I18nPluralPipe implements PipeTransform {\r\n    private _localization;\r\n    constructor(_localization: NgLocalization);\r\n    /**\r\n     * @param value the number to be formatted\r\n     * @param pluralMap an object that mimics the ICU format, see\r\n     * http://userguide.icu-project.org/formatparse/messages.\r\n     * @param locale a `string` defining the locale to use (uses the current {@link LOCALE_ID} by\r\n     * default).\r\n     */\r\n    transform(value: number | null | undefined, pluralMap: {\r\n        [count: string]: string;\r\n    }, locale?: string): string;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Generic selector that displays the string that matches the current value.\r\n *\r\n * If none of the keys of the `mapping` match the `value`, then the content\r\n * of the `other` key is returned when present, otherwise an empty string is returned.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Example\r\n *\r\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nSelectPipeComponent'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class I18nSelectPipe implements PipeTransform {\r\n    /**\r\n     * @param value a string to be internationalized.\r\n     * @param mapping an object that indicates the text that should be displayed\r\n     * for different values of the provided `value`.\r\n     */\r\n    transform(value: string | null | undefined, mapping: {\r\n        [key: string]: string;\r\n    }): string;\r\n}\r\n\r\n/**\r\n * Returns whether a platform id represents a browser platform.\r\n * @publicApi\r\n */\r\nexport declare function isPlatformBrowser(platformId: Object): boolean;\r\n\r\n/**\r\n * Returns whether a platform id represents a server platform.\r\n * @publicApi\r\n */\r\nexport declare function isPlatformServer(platformId: Object): boolean;\r\n\r\n/**\r\n * Returns whether a platform id represents a web worker app platform.\r\n * @publicApi\r\n */\r\nexport declare function isPlatformWorkerApp(platformId: Object): boolean;\r\n\r\n/**\r\n * Returns whether a platform id represents a web worker UI platform.\r\n * @publicApi\r\n */\r\nexport declare function isPlatformWorkerUi(platformId: Object): boolean;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Converts a value into its JSON-format representation.  Useful for debugging.\r\n *\r\n * @usageNotes\r\n *\r\n * The following component uses a JSON pipe to convert an object\r\n * to JSON format, and displays the string in both formats for comparison.\r\n *\r\n * {@example common/pipes/ts/json_pipe.ts region='JsonPipe'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class JsonPipe implements PipeTransform {\r\n    /**\r\n     * @param value A value of any type to convert into a JSON-format string.\r\n     */\r\n    transform(value: any): string;\r\n}\r\n\r\n/**\r\n * A key value pair.\r\n * Usually used to represent the key value pairs from a Map or Object.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface KeyValue<K, V> {\r\n    key: K;\r\n    value: V;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Transforms Object or Map into an array of key value pairs.\r\n *\r\n * The output array will be ordered by keys.\r\n * By default the comparator will be by Unicode point value.\r\n * You can optionally pass a compareFn if your keys are complex types.\r\n *\r\n * @usageNotes\r\n * ### Examples\r\n *\r\n * This examples show how an Object or a Map can be iterated by ngFor with the use of this\r\n * keyvalue pipe.\r\n *\r\n * {@example common/pipes/ts/keyvalue_pipe.ts region='KeyValuePipe'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class KeyValuePipe implements PipeTransform {\r\n    private readonly differs;\r\n    constructor(differs: KeyValueDiffers);\r\n    private differ;\r\n    private keyValues;\r\n    private compareFn;\r\n    transform<K, V>(input: ReadonlyMap<K, V>, compareFn?: (a: KeyValue<K, V>, b: KeyValue<K, V>) => number): Array<KeyValue<K, V>>;\r\n    transform<K extends number, V>(input: Record<K, V>, compareFn?: (a: KeyValue<string, V>, b: KeyValue<string, V>) => number): Array<KeyValue<string, V>>;\r\n    transform<K extends string, V>(input: Record<K, V> | ReadonlyMap<K, V>, compareFn?: (a: KeyValue<K, V>, b: KeyValue<K, V>) => number): Array<KeyValue<K, V>>;\r\n    transform(input: null | undefined, compareFn?: (a: KeyValue<unknown, unknown>, b: KeyValue<unknown, unknown>) => number): null;\r\n    transform<K, V>(input: ReadonlyMap<K, V> | null | undefined, compareFn?: (a: KeyValue<K, V>, b: KeyValue<K, V>) => number): Array<KeyValue<K, V>> | null;\r\n    transform<K extends number, V>(input: Record<K, V> | null | undefined, compareFn?: (a: KeyValue<string, V>, b: KeyValue<string, V>) => number): Array<KeyValue<string, V>> | null;\r\n    transform<K extends string, V>(input: Record<K, V> | ReadonlyMap<K, V> | null | undefined, compareFn?: (a: KeyValue<K, V>, b: KeyValue<K, V>) => number): Array<KeyValue<K, V>> | null;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * A service that applications can use to interact with a browser's URL.\r\n *\r\n * Depending on the `LocationStrategy` used, `Location` persists\r\n * to the URL's path or the URL's hash segment.\r\n *\r\n * @usageNotes\r\n *\r\n * It's better to use the `Router.navigate()` service to trigger route changes. Use\r\n * `Location` only if you need to interact with or create normalized URLs outside of\r\n * routing.\r\n *\r\n * `Location` is responsible for normalizing the URL against the application's base href.\r\n * A normalized URL is absolute from the URL host, includes the application's base href, and has no\r\n * trailing slash:\r\n * - `/my/app/user/123` is normalized\r\n * - `my/app/user/123` **is not** normalized\r\n * - `/my/app/user/123/` **is not** normalized\r\n *\r\n * ### Example\r\n *\r\n * <code-example path='common/location/ts/path_location_component.ts'\r\n * region='LocationComponent'></code-example>\r\n *\r\n * @publicApi\r\n */\r\ndeclare class Location_2 {\r\n    constructor(platformStrategy: LocationStrategy, platformLocation: PlatformLocation);\r\n    /**\r\n     * Normalizes the URL path for this location.\r\n     *\r\n     * @param includeHash True to include an anchor fragment in the path.\r\n     *\r\n     * @returns The normalized URL path.\r\n     */\r\n    path(includeHash?: boolean): string;\r\n    /**\r\n     * Reports the current state of the location history.\r\n     * @returns The current value of the `history.state` object.\r\n     */\r\n    getState(): unknown;\r\n    /**\r\n     * Normalizes the given path and compares to the current normalized path.\r\n     *\r\n     * @param path The given URL path.\r\n     * @param query Query parameters.\r\n     *\r\n     * @returns True if the given URL path is equal to the current normalized path, false\r\n     * otherwise.\r\n     */\r\n    isCurrentPathEqualTo(path: string, query?: string): boolean;\r\n    /**\r\n     * Normalizes a URL path by stripping any trailing slashes.\r\n     *\r\n     * @param url String representing a URL.\r\n     *\r\n     * @returns The normalized URL string.\r\n     */\r\n    normalize(url: string): string;\r\n    /**\r\n     * Normalizes an external URL path.\r\n     * If the given URL doesn't begin with a leading slash (`'/'`), adds one\r\n     * before normalizing. Adds a hash if `HashLocationStrategy` is\r\n     * in use, or the `APP_BASE_HREF` if the `PathLocationStrategy` is in use.\r\n     *\r\n     * @param url String representing a URL.\r\n     *\r\n     * @returns  A normalized platform-specific URL.\r\n     */\r\n    prepareExternalUrl(url: string): string;\r\n    /**\r\n     * Changes the browser's URL to a normalized version of a given URL, and pushes a\r\n     * new item onto the platform's history.\r\n     *\r\n     * @param path  URL path to normalize.\r\n     * @param query Query parameters.\r\n     * @param state Location history state.\r\n     *\r\n     */\r\n    go(path: string, query?: string, state?: any): void;\r\n    /**\r\n     * Changes the browser's URL to a normalized version of the given URL, and replaces\r\n     * the top item on the platform's history stack.\r\n     *\r\n     * @param path  URL path to normalize.\r\n     * @param query Query parameters.\r\n     * @param state Location history state.\r\n     */\r\n    replaceState(path: string, query?: string, state?: any): void;\r\n    /**\r\n     * Navigates forward in the platform's history.\r\n     */\r\n    forward(): void;\r\n    /**\r\n     * Navigates back in the platform's history.\r\n     */\r\n    back(): void;\r\n    /**\r\n     * Navigate to a specific page from session history, identified by its relative position to the\r\n     * current page.\r\n     *\r\n     * @param relativePosition  Position of the target page in the history relative to the current\r\n     *     page.\r\n     * A negative value moves backwards, a positive value moves forwards, e.g. `location.historyGo(2)`\r\n     * moves forward two pages and `location.historyGo(-2)` moves back two pages. When we try to go\r\n     * beyond what's stored in the history session, we stay in the current page. Same behaviour occurs\r\n     * when `relativePosition` equals 0.\r\n     * @see https://developer.mozilla.org/en-US/docs/Web/API/History_API#Moving_to_a_specific_point_in_history\r\n     */\r\n    historyGo(relativePosition?: number): void;\r\n    /**\r\n     * Registers a URL change listener. Use to catch updates performed by the Angular\r\n     * framework that are not detectible through \"popstate\" or \"hashchange\" events.\r\n     *\r\n     * @param fn The change handler function, which take a URL and a location history state.\r\n     */\r\n    onUrlChange(fn: (url: string, state: unknown) => void): void;\r\n    /**\r\n     * Subscribes to the platform's `popState` events.\r\n     *\r\n     * Note: `Location.go()` does not trigger the `popState` event in the browser. Use\r\n     * `Location.onUrlChange()` to subscribe to URL changes instead.\r\n     *\r\n     * @param value Event that is triggered when the state history changes.\r\n     * @param exception The exception to throw.\r\n     *\r\n     * @see [onpopstate](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate)\r\n     *\r\n     * @returns Subscribed events.\r\n     */\r\n    subscribe(onNext: (value: PopStateEvent_2) => void, onThrow?: ((exception: any) => void) | null, onReturn?: (() => void) | null): SubscriptionLike;\r\n    /**\r\n     * Normalizes URL parameters by prepending with `?` if needed.\r\n     *\r\n     * @param  params String of URL parameters.\r\n     *\r\n     * @returns The normalized URL parameters string.\r\n     */\r\n    static normalizeQueryParams: (params: string) => string;\r\n    /**\r\n     * Joins two parts of a URL with a slash if needed.\r\n     *\r\n     * @param start  URL string\r\n     * @param end    URL string\r\n     *\r\n     *\r\n     * @returns The joined URL string.\r\n     */\r\n    static joinWithSlash: (start: string, end: string) => string;\r\n    /**\r\n     * Removes a trailing slash from a URL string if needed.\r\n     * Looks for the first occurrence of either `#`, `?`, or the end of the\r\n     * line as `/` characters and removes the trailing slash if one exists.\r\n     *\r\n     * @param url URL string.\r\n     *\r\n     * @returns The URL string, modified if needed.\r\n     */\r\n    static stripTrailingSlash: (url: string) => string;\r\n}\r\nexport { Location_2 as Location }\r\n\r\n/**\r\n * @description\r\n * Indicates when a location is initialized.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const LOCATION_INITIALIZED: InjectionToken<Promise<any>>;\r\n\r\n/**\r\n * @description\r\n * A serializable version of the event from `onPopState` or `onHashChange`\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface LocationChangeEvent {\r\n    type: string;\r\n    state: any;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare interface LocationChangeListener {\r\n    (event: LocationChangeEvent): any;\r\n}\r\n\r\n/**\r\n * Enables the `Location` service to read route state from the browser's URL.\r\n * Angular provides two strategies:\r\n * `HashLocationStrategy` and `PathLocationStrategy`.\r\n *\r\n * Applications should use the `Router` or `Location` services to\r\n * interact with application route state.\r\n *\r\n * For instance, `HashLocationStrategy` produces URLs like\r\n * <code class=\"no-auto-link\">http://example.com#/foo</code>,\r\n * and `PathLocationStrategy` produces\r\n * <code class=\"no-auto-link\">http://example.com/foo</code> as an equivalent URL.\r\n *\r\n * See these two classes for more.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class LocationStrategy {\r\n    abstract path(includeHash?: boolean): string;\r\n    abstract prepareExternalUrl(internal: string): string;\r\n    abstract pushState(state: any, title: string, url: string, queryParams: string): void;\r\n    abstract replaceState(state: any, title: string, url: string, queryParams: string): void;\r\n    abstract forward(): void;\r\n    abstract back(): void;\r\n    historyGo?(relativePosition: number): void;\r\n    abstract onPopState(fn: LocationChangeListener): void;\r\n    abstract getBaseHref(): string;\r\n}\r\n\r\n/**\r\n * Transforms text to all lower case.\r\n *\r\n * @see `UpperCasePipe`\r\n * @see `TitleCasePipe`\r\n * @usageNotes\r\n *\r\n * The following example defines a view that allows the user to enter\r\n * text, and then uses the pipe to convert the input text to all lower case.\r\n *\r\n * <code-example path=\"common/pipes/ts/lowerupper_pipe.ts\" region='LowerUpperPipe'></code-example>\r\n *\r\n * @ngModule CommonModule\r\n * @publicApi\r\n */\r\nexport declare class LowerCasePipe implements PipeTransform {\r\n    /**\r\n     * @param value The string to transform to lower case.\r\n     */\r\n    transform(value: string): string;\r\n    transform(value: null | undefined): null;\r\n    transform(value: string | null | undefined): string | null;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @usageNotes\r\n * ```\r\n *     <some-element [ngClass]=\"'first second'\">...</some-element>\r\n *\r\n *     <some-element [ngClass]=\"['first', 'second']\">...</some-element>\r\n *\r\n *     <some-element [ngClass]=\"{'first': true, 'second': true, 'third': false}\">...</some-element>\r\n *\r\n *     <some-element [ngClass]=\"stringExp|arrayExp|objExp\">...</some-element>\r\n *\r\n *     <some-element [ngClass]=\"{'class1 class2 class3' : true}\">...</some-element>\r\n * ```\r\n *\r\n * @description\r\n *\r\n * Adds and removes CSS classes on an HTML element.\r\n *\r\n * The CSS classes are updated as follows, depending on the type of the expression evaluation:\r\n * - `string` - the CSS classes listed in the string (space delimited) are added,\r\n * - `Array` - the CSS classes declared as Array elements are added,\r\n * - `Object` - keys are CSS classes that get added when the expression given in the value\r\n *              evaluates to a truthy value, otherwise they are removed.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgClass implements DoCheck {\r\n    private _iterableDiffers;\r\n    private _keyValueDiffers;\r\n    private _ngEl;\r\n    private _renderer;\r\n    private _iterableDiffer;\r\n    private _keyValueDiffer;\r\n    private _initialClasses;\r\n    private _rawClass;\r\n    constructor(_iterableDiffers: IterableDiffers, _keyValueDiffers: KeyValueDiffers, _ngEl: ElementRef, _renderer: Renderer2);\r\n    set klass(value: string);\r\n    set ngClass(value: string | string[] | Set<string> | {\r\n        [klass: string]: any;\r\n    });\r\n    ngDoCheck(): void;\r\n    private _applyKeyValueChanges;\r\n    private _applyIterableChanges;\r\n    /**\r\n     * Applies a collection of CSS classes to the DOM element.\r\n     *\r\n     * For argument of type Set and Array CSS class names contained in those collections are always\r\n     * added.\r\n     * For argument of type Map CSS class name in the map's key is toggled based on the value (added\r\n     * for truthy and removed for falsy).\r\n     */\r\n    private _applyClasses;\r\n    /**\r\n     * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup\r\n     * purposes.\r\n     */\r\n    private _removeClasses;\r\n    private _toggleClass;\r\n}\r\n\r\n/**\r\n * Instantiates a {@link Component} type and inserts its Host View into the current View.\r\n * `NgComponentOutlet` provides a declarative approach for dynamic component creation.\r\n *\r\n * `NgComponentOutlet` requires a component type, if a falsy value is set the view will clear and\r\n * any existing component will be destroyed.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Fine tune control\r\n *\r\n * You can control the component creation process by using the following optional attributes:\r\n *\r\n * * `ngComponentOutletInjector`: Optional custom {@link Injector} that will be used as parent for\r\n * the Component. Defaults to the injector of the current view container.\r\n *\r\n * * `ngComponentOutletContent`: Optional list of projectable nodes to insert into the content\r\n * section of the component, if it exists.\r\n *\r\n * * `ngComponentOutletNgModuleFactory`: Optional module factory to allow loading another\r\n * module dynamically, then loading a component from that module.\r\n *\r\n * ### Syntax\r\n *\r\n * Simple\r\n * ```\r\n * <ng-container *ngComponentOutlet=\"componentTypeExpression\"></ng-container>\r\n * ```\r\n *\r\n * Customized injector/content\r\n * ```\r\n * <ng-container *ngComponentOutlet=\"componentTypeExpression;\r\n *                                   injector: injectorExpression;\r\n *                                   content: contentNodesExpression;\">\r\n * </ng-container>\r\n * ```\r\n *\r\n * Customized ngModuleFactory\r\n * ```\r\n * <ng-container *ngComponentOutlet=\"componentTypeExpression;\r\n *                                   ngModuleFactory: moduleFactory;\">\r\n * </ng-container>\r\n * ```\r\n *\r\n * ### A simple example\r\n *\r\n * {@example common/ngComponentOutlet/ts/module.ts region='SimpleExample'}\r\n *\r\n * A more complete example with additional options:\r\n *\r\n * {@example common/ngComponentOutlet/ts/module.ts region='CompleteExample'}\r\n *\r\n * @publicApi\r\n * @ngModule CommonModule\r\n */\r\nexport declare class NgComponentOutlet implements OnChanges, OnDestroy {\r\n    private _viewContainerRef;\r\n    ngComponentOutlet: Type<any>;\r\n    ngComponentOutletInjector: Injector;\r\n    ngComponentOutletContent: any[][];\r\n    ngComponentOutletNgModuleFactory: NgModuleFactory<any>;\r\n    private _componentRef;\r\n    private _moduleRef;\r\n    constructor(_viewContainerRef: ViewContainerRef);\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n    ngOnDestroy(): void;\r\n}\r\n\r\n/**\r\n * A [structural directive](guide/structural-directives) that renders\r\n * a template for each item in a collection.\r\n * The directive is placed on an element, which becomes the parent\r\n * of the cloned templates.\r\n *\r\n * The `ngForOf` directive is generally used in the\r\n * [shorthand form](guide/structural-directives#asterisk) `*ngFor`.\r\n * In this form, the template to be rendered for each iteration is the content\r\n * of an anchor element containing the directive.\r\n *\r\n * The following example shows the shorthand syntax with some options,\r\n * contained in an `<li>` element.\r\n *\r\n * ```\r\n * <li *ngFor=\"let item of items; index as i; trackBy: trackByFn\">...</li>\r\n * ```\r\n *\r\n * The shorthand form expands into a long form that uses the `ngForOf` selector\r\n * on an `<ng-template>` element.\r\n * The content of the `<ng-template>` element is the `<li>` element that held the\r\n * short-form directive.\r\n *\r\n * Here is the expanded version of the short-form example.\r\n *\r\n * ```\r\n * <ng-template ngFor let-item [ngForOf]=\"items\" let-i=\"index\" [ngForTrackBy]=\"trackByFn\">\r\n *   <li>...</li>\r\n * </ng-template>\r\n * ```\r\n *\r\n * Angular automatically expands the shorthand syntax as it compiles the template.\r\n * The context for each embedded view is logically merged to the current component\r\n * context according to its lexical position.\r\n *\r\n * When using the shorthand syntax, Angular allows only [one structural directive\r\n * on an element](guide/built-in-directives#one-per-element).\r\n * If you want to iterate conditionally, for example,\r\n * put the `*ngIf` on a container element that wraps the `*ngFor` element.\r\n * For futher discussion, see\r\n * [Structural Directives](guide/built-in-directives#one-per-element).\r\n *\r\n * @usageNotes\r\n *\r\n * ### Local variables\r\n *\r\n * `NgForOf` provides exported values that can be aliased to local variables.\r\n * For example:\r\n *\r\n *  ```\r\n * <li *ngFor=\"let user of users; index as i; first as isFirst\">\r\n *    {{i}}/{{users.length}}. {{user}} <span *ngIf=\"isFirst\">default</span>\r\n * </li>\r\n * ```\r\n *\r\n * The following exported values can be aliased to local variables:\r\n *\r\n * - `$implicit: T`: The value of the individual items in the iterable (`ngForOf`).\r\n * - `ngForOf: NgIterable<T>`: The value of the iterable expression. Useful when the expression is\r\n * more complex then a property access, for example when using the async pipe (`userStreams |\r\n * async`).\r\n * - `index: number`: The index of the current item in the iterable.\r\n * - `count: number`: The length of the iterable.\r\n * - `first: boolean`: True when the item is the first item in the iterable.\r\n * - `last: boolean`: True when the item is the last item in the iterable.\r\n * - `even: boolean`: True when the item has an even index in the iterable.\r\n * - `odd: boolean`: True when the item has an odd index in the iterable.\r\n *\r\n * ### Change propagation\r\n *\r\n * When the contents of the iterator changes, `NgForOf` makes the corresponding changes to the DOM:\r\n *\r\n * * When an item is added, a new instance of the template is added to the DOM.\r\n * * When an item is removed, its template instance is removed from the DOM.\r\n * * When items are reordered, their respective templates are reordered in the DOM.\r\n *\r\n * Angular uses object identity to track insertions and deletions within the iterator and reproduce\r\n * those changes in the DOM. This has important implications for animations and any stateful\r\n * controls that are present, such as `<input>` elements that accept user input. Inserted rows can\r\n * be animated in, deleted rows can be animated out, and unchanged rows retain any unsaved state\r\n * such as user input.\r\n * For more on animations, see [Transitions and Triggers](guide/transition-and-triggers).\r\n *\r\n * The identities of elements in the iterator can change while the data does not.\r\n * This can happen, for example, if the iterator is produced from an RPC to the server, and that\r\n * RPC is re-run. Even if the data hasn't changed, the second response produces objects with\r\n * different identities, and Angular must tear down the entire DOM and rebuild it (as if all old\r\n * elements were deleted and all new elements inserted).\r\n *\r\n * To avoid this expensive operation, you can customize the default tracking algorithm.\r\n * by supplying the `trackBy` option to `NgForOf`.\r\n * `trackBy` takes a function that has two arguments: `index` and `item`.\r\n * If `trackBy` is given, Angular tracks changes by the return value of the function.\r\n *\r\n * @see [Structural Directives](guide/structural-directives)\r\n * @ngModule CommonModule\r\n * @publicApi\r\n */\r\nexport declare class NgForOf<T, U extends NgIterable<T> = NgIterable<T>> implements DoCheck {\r\n    private _viewContainer;\r\n    private _template;\r\n    private _differs;\r\n    /**\r\n     * The value of the iterable expression, which can be used as a\r\n     * [template input variable](guide/structural-directives#shorthand).\r\n     */\r\n    set ngForOf(ngForOf: U & NgIterable<T> | undefined | null);\r\n    /**\r\n     * Specifies a custom `TrackByFunction` to compute the identity of items in an iterable.\r\n     *\r\n     * If a custom `TrackByFunction` is not provided, `NgForOf` will use the item's [object\r\n     * identity](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is)\r\n     * as the key.\r\n     *\r\n     * `NgForOf` uses the computed key to associate items in an iterable with DOM elements\r\n     * it produces for these items.\r\n     *\r\n     * A custom `TrackByFunction` is useful to provide good user experience in cases when items in an\r\n     * iterable rendered using `NgForOf` have a natural identifier (for example, custom ID or a\r\n     * primary key), and this iterable could be updated with new object instances that still\r\n     * represent the same underlying entity (for example, when data is re-fetched from the server,\r\n     * and the iterable is recreated and re-rendered, but most of the data is still the same).\r\n     *\r\n     * @see `TrackByFunction`\r\n     */\r\n    set ngForTrackBy(fn: TrackByFunction<T>);\r\n    get ngForTrackBy(): TrackByFunction<T>;\r\n    private _ngForOf;\r\n    private _ngForOfDirty;\r\n    private _differ;\r\n    private _trackByFn;\r\n    constructor(_viewContainer: ViewContainerRef, _template: TemplateRef<NgForOfContext<T, U>>, _differs: IterableDiffers);\r\n    /**\r\n     * A reference to the template that is stamped out for each item in the iterable.\r\n     * @see [template reference variable](guide/template-reference-variables)\r\n     */\r\n    set ngForTemplate(value: TemplateRef<NgForOfContext<T, U>>);\r\n    /**\r\n     * Applies the changes when needed.\r\n     */\r\n    ngDoCheck(): void;\r\n    private _applyChanges;\r\n    private _perViewChange;\r\n    /**\r\n     * Asserts the correct type of the context for the template that `NgForOf` will render.\r\n     *\r\n     * The presence of this method is a signal to the Ivy template type-check compiler that the\r\n     * `NgForOf` structural directive renders its template with a specific context type.\r\n     */\r\n    static ngTemplateContextGuard<T, U extends NgIterable<T>>(dir: NgForOf<T, U>, ctx: any): ctx is NgForOfContext<T, U>;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare class NgForOfContext<T, U extends NgIterable<T> = NgIterable<T>> {\r\n    $implicit: T;\r\n    ngForOf: U;\r\n    index: number;\r\n    count: number;\r\n    constructor($implicit: T, ngForOf: U, index: number, count: number);\r\n    get first(): boolean;\r\n    get last(): boolean;\r\n    get even(): boolean;\r\n    get odd(): boolean;\r\n}\r\n\r\n/**\r\n * A structural directive that conditionally includes a template based on the value of\r\n * an expression coerced to Boolean.\r\n * When the expression evaluates to true, Angular renders the template\r\n * provided in a `then` clause, and when  false or null,\r\n * Angular renders the template provided in an optional `else` clause. The default\r\n * template for the `else` clause is blank.\r\n *\r\n * A [shorthand form](guide/structural-directives#asterisk) of the directive,\r\n * `*ngIf=\"condition\"`, is generally used, provided\r\n * as an attribute of the anchor element for the inserted template.\r\n * Angular expands this into a more explicit version, in which the anchor element\r\n * is contained in an `<ng-template>` element.\r\n *\r\n * Simple form with shorthand syntax:\r\n *\r\n * ```\r\n * <div *ngIf=\"condition\">Content to render when condition is true.</div>\r\n * ```\r\n *\r\n * Simple form with expanded syntax:\r\n *\r\n * ```\r\n * <ng-template [ngIf]=\"condition\"><div>Content to render when condition is\r\n * true.</div></ng-template>\r\n * ```\r\n *\r\n * Form with an \"else\" block:\r\n *\r\n * ```\r\n * <div *ngIf=\"condition; else elseBlock\">Content to render when condition is true.</div>\r\n * <ng-template #elseBlock>Content to render when condition is false.</ng-template>\r\n * ```\r\n *\r\n * Shorthand form with \"then\" and \"else\" blocks:\r\n *\r\n * ```\r\n * <div *ngIf=\"condition; then thenBlock else elseBlock\"></div>\r\n * <ng-template #thenBlock>Content to render when condition is true.</ng-template>\r\n * <ng-template #elseBlock>Content to render when condition is false.</ng-template>\r\n * ```\r\n *\r\n * Form with storing the value locally:\r\n *\r\n * ```\r\n * <div *ngIf=\"condition as value; else elseBlock\">{{value}}</div>\r\n * <ng-template #elseBlock>Content to render when value is null.</ng-template>\r\n * ```\r\n *\r\n * @usageNotes\r\n *\r\n * The `*ngIf` directive is most commonly used to conditionally show an inline template,\r\n * as seen in the following  example.\r\n * The default `else` template is blank.\r\n *\r\n * {@example common/ngIf/ts/module.ts region='NgIfSimple'}\r\n *\r\n * ### Showing an alternative template using `else`\r\n *\r\n * To display a template when `expression` evaluates to false, use an `else` template\r\n * binding as shown in the following example.\r\n * The `else` binding points to an `<ng-template>`  element labeled `#elseBlock`.\r\n * The template can be defined anywhere in the component view, but is typically placed right after\r\n * `ngIf` for readability.\r\n *\r\n * {@example common/ngIf/ts/module.ts region='NgIfElse'}\r\n *\r\n * ### Using an external `then` template\r\n *\r\n * In the previous example, the then-clause template is specified inline, as the content of the\r\n * tag that contains the `ngIf` directive. You can also specify a template that is defined\r\n * externally, by referencing a labeled `<ng-template>` element. When you do this, you can\r\n * change which template to use at runtime, as shown in the following example.\r\n *\r\n * {@example common/ngIf/ts/module.ts region='NgIfThenElse'}\r\n *\r\n * ### Storing a conditional result in a variable\r\n *\r\n * You might want to show a set of properties from the same object. If you are waiting\r\n * for asynchronous data, the object can be undefined.\r\n * In this case, you can use `ngIf` and store the result of the condition in a local\r\n * variable as shown in the following example.\r\n *\r\n * {@example common/ngIf/ts/module.ts region='NgIfAs'}\r\n *\r\n * This code uses only one `AsyncPipe`, so only one subscription is created.\r\n * The conditional statement stores the result of `userStream|async` in the local variable `user`.\r\n * You can then bind the local `user` repeatedly.\r\n *\r\n * The conditional displays the data only if `userStream` returns a value,\r\n * so you don't need to use the\r\n * safe-navigation-operator (`?.`)\r\n * to guard against null values when accessing properties.\r\n * You can display an alternative template while waiting for the data.\r\n *\r\n * ### Shorthand syntax\r\n *\r\n * The shorthand syntax `*ngIf` expands into two separate template specifications\r\n * for the \"then\" and \"else\" clauses. For example, consider the following shorthand statement,\r\n * that is meant to show a loading page while waiting for data to be loaded.\r\n *\r\n * ```\r\n * <div class=\"hero-list\" *ngIf=\"heroes else loading\">\r\n *  ...\r\n * </div>\r\n *\r\n * <ng-template #loading>\r\n *  <div>Loading...</div>\r\n * </ng-template>\r\n * ```\r\n *\r\n * You can see that the \"else\" clause references the `<ng-template>`\r\n * with the `#loading` label, and the template for the \"then\" clause\r\n * is provided as the content of the anchor element.\r\n *\r\n * However, when Angular expands the shorthand syntax, it creates\r\n * another `<ng-template>` tag, with `ngIf` and `ngIfElse` directives.\r\n * The anchor element containing the template for the \"then\" clause becomes\r\n * the content of this unlabeled `<ng-template>` tag.\r\n *\r\n * ```\r\n * <ng-template [ngIf]=\"heroes\" [ngIfElse]=\"loading\">\r\n *  <div class=\"hero-list\">\r\n *   ...\r\n *  </div>\r\n * </ng-template>\r\n *\r\n * <ng-template #loading>\r\n *  <div>Loading...</div>\r\n * </ng-template>\r\n * ```\r\n *\r\n * The presence of the implicit template object has implications for the nesting of\r\n * structural directives. For more on this subject, see\r\n * [Structural Directives](https://angular.io/guide/built-in-directives#one-per-element).\r\n *\r\n * @ngModule CommonModule\r\n * @publicApi\r\n */\r\nexport declare class NgIf<T = unknown> {\r\n    private _viewContainer;\r\n    private _context;\r\n    private _thenTemplateRef;\r\n    private _elseTemplateRef;\r\n    private _thenViewRef;\r\n    private _elseViewRef;\r\n    constructor(_viewContainer: ViewContainerRef, templateRef: TemplateRef<NgIfContext<T>>);\r\n    /**\r\n     * The Boolean expression to evaluate as the condition for showing a template.\r\n     */\r\n    set ngIf(condition: T);\r\n    /**\r\n     * A template to show if the condition expression evaluates to true.\r\n     */\r\n    set ngIfThen(templateRef: TemplateRef<NgIfContext<T>> | null);\r\n    /**\r\n     * A template to show if the condition expression evaluates to false.\r\n     */\r\n    set ngIfElse(templateRef: TemplateRef<NgIfContext<T>> | null);\r\n    private _updateView;\r\n    /**\r\n     * Assert the correct type of the expression bound to the `ngIf` input within the template.\r\n     *\r\n     * The presence of this static field is a signal to the Ivy template type check compiler that\r\n     * when the `NgIf` structural directive renders its template, the type of the expression bound\r\n     * to `ngIf` should be narrowed in some way. For `NgIf`, the binding expression itself is used to\r\n     * narrow its type, which allows the strictNullChecks feature of TypeScript to work with `NgIf`.\r\n     */\r\n    static ngTemplateGuard_ngIf: 'binding';\r\n    /**\r\n     * Asserts the correct type of the context for the template that `NgIf` will render.\r\n     *\r\n     * The presence of this method is a signal to the Ivy template type-check compiler that the\r\n     * `NgIf` structural directive renders its template with a specific context type.\r\n     */\r\n    static ngTemplateContextGuard<T>(dir: NgIf<T>, ctx: any): ctx is NgIfContext<Exclude<T, false | 0 | '' | null | undefined>>;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare class NgIfContext<T = unknown> {\r\n    $implicit: T;\r\n    ngIf: T;\r\n}\r\n\r\n/**\r\n * Returns the plural case based on the locale\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgLocaleLocalization extends NgLocalization {\r\n    protected locale: string;\r\n    constructor(locale: string);\r\n    getPluralCategory(value: any, locale?: string): string;\r\n}\r\n\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare abstract class NgLocalization {\r\n    abstract getPluralCategory(value: any, locale?: string): string;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @usageNotes\r\n * ```\r\n * <some-element [ngPlural]=\"value\">\r\n *   <ng-template ngPluralCase=\"=0\">there is nothing</ng-template>\r\n *   <ng-template ngPluralCase=\"=1\">there is one</ng-template>\r\n *   <ng-template ngPluralCase=\"few\">there are a few</ng-template>\r\n * </some-element>\r\n * ```\r\n *\r\n * @description\r\n *\r\n * Adds / removes DOM sub-trees based on a numeric value. Tailored for pluralization.\r\n *\r\n * Displays DOM sub-trees that match the switch expression value, or failing that, DOM sub-trees\r\n * that match the switch expression's pluralization category.\r\n *\r\n * To use this directive you must provide a container element that sets the `[ngPlural]` attribute\r\n * to a switch expression. Inner elements with a `[ngPluralCase]` will display based on their\r\n * expression:\r\n * - if `[ngPluralCase]` is set to a value starting with `=`, it will only display if the value\r\n *   matches the switch expression exactly,\r\n * - otherwise, the view will be treated as a \"category match\", and will only display if exact\r\n *   value matches aren't found and the value maps to its category for the defined locale.\r\n *\r\n * See http://cldr.unicode.org/index/cldr-spec/plural-rules\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgPlural {\r\n    private _localization;\r\n    private _switchValue;\r\n    private _activeView;\r\n    private _caseViews;\r\n    constructor(_localization: NgLocalization);\r\n    set ngPlural(value: number);\r\n    addCase(value: string, switchView: SwitchView): void;\r\n    private _updateView;\r\n    private _clearViews;\r\n    private _activateView;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @description\r\n *\r\n * Creates a view that will be added/removed from the parent {@link NgPlural} when the\r\n * given expression matches the plural expression according to CLDR rules.\r\n *\r\n * @usageNotes\r\n * ```\r\n * <some-element [ngPlural]=\"value\">\r\n *   <ng-template ngPluralCase=\"=0\">...</ng-template>\r\n *   <ng-template ngPluralCase=\"other\">...</ng-template>\r\n * </some-element>\r\n *```\r\n *\r\n * See {@link NgPlural} for more details and example.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgPluralCase {\r\n    value: string;\r\n    constructor(value: string, template: TemplateRef<Object>, viewContainer: ViewContainerRef, ngPlural: NgPlural);\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @usageNotes\r\n *\r\n * Set the font of the containing element to the result of an expression.\r\n *\r\n * ```\r\n * <some-element [ngStyle]=\"{'font-style': styleExp}\">...</some-element>\r\n * ```\r\n *\r\n * Set the width of the containing element to a pixel value returned by an expression.\r\n *\r\n * ```\r\n * <some-element [ngStyle]=\"{'max-width.px': widthExp}\">...</some-element>\r\n * ```\r\n *\r\n * Set a collection of style values using an expression that returns key-value pairs.\r\n *\r\n * ```\r\n * <some-element [ngStyle]=\"objExp\">...</some-element>\r\n * ```\r\n *\r\n * @description\r\n *\r\n * An attribute directive that updates styles for the containing HTML element.\r\n * Sets one or more style properties, specified as colon-separated key-value pairs.\r\n * The key is a style name, with an optional `.<unit>` suffix\r\n * (such as 'top.px', 'font-style.em').\r\n * The value is an expression to be evaluated.\r\n * The resulting non-null value, expressed in the given unit,\r\n * is assigned to the given style property.\r\n * If the result of evaluation is null, the corresponding style is removed.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgStyle implements DoCheck {\r\n    private _ngEl;\r\n    private _differs;\r\n    private _renderer;\r\n    private _ngStyle;\r\n    private _differ;\r\n    constructor(_ngEl: ElementRef, _differs: KeyValueDiffers, _renderer: Renderer2);\r\n    set ngStyle(values: {\r\n        [klass: string]: any;\r\n    } | null);\r\n    ngDoCheck(): void;\r\n    private _setStyle;\r\n    private _applyChanges;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @description\r\n * The `[ngSwitch]` directive on a container specifies an expression to match against.\r\n * The expressions to match are provided by `ngSwitchCase` directives on views within the container.\r\n * - Every view that matches is rendered.\r\n * - If there are no matches, a view with the `ngSwitchDefault` directive is rendered.\r\n * - Elements within the `[NgSwitch]` statement but outside of any `NgSwitchCase`\r\n * or `ngSwitchDefault` directive are preserved at the location.\r\n *\r\n * @usageNotes\r\n * Define a container element for the directive, and specify the switch expression\r\n * to match against as an attribute:\r\n *\r\n * ```\r\n * <container-element [ngSwitch]=\"switch_expression\">\r\n * ```\r\n *\r\n * Within the container, `*ngSwitchCase` statements specify the match expressions\r\n * as attributes. Include `*ngSwitchDefault` as the final case.\r\n *\r\n * ```\r\n * <container-element [ngSwitch]=\"switch_expression\">\r\n *    <some-element *ngSwitchCase=\"match_expression_1\">...</some-element>\r\n * ...\r\n *    <some-element *ngSwitchDefault>...</some-element>\r\n * </container-element>\r\n * ```\r\n *\r\n * ### Usage Examples\r\n *\r\n * The following example shows how to use more than one case to display the same view:\r\n *\r\n * ```\r\n * <container-element [ngSwitch]=\"switch_expression\">\r\n *   <!-- the same view can be shown in more than one case -->\r\n *   <some-element *ngSwitchCase=\"match_expression_1\">...</some-element>\r\n *   <some-element *ngSwitchCase=\"match_expression_2\">...</some-element>\r\n *   <some-other-element *ngSwitchCase=\"match_expression_3\">...</some-other-element>\r\n *   <!--default case when there are no matches -->\r\n *   <some-element *ngSwitchDefault>...</some-element>\r\n * </container-element>\r\n * ```\r\n *\r\n * The following example shows how cases can be nested:\r\n * ```\r\n * <container-element [ngSwitch]=\"switch_expression\">\r\n *       <some-element *ngSwitchCase=\"match_expression_1\">...</some-element>\r\n *       <some-element *ngSwitchCase=\"match_expression_2\">...</some-element>\r\n *       <some-other-element *ngSwitchCase=\"match_expression_3\">...</some-other-element>\r\n *       <ng-container *ngSwitchCase=\"match_expression_3\">\r\n *         <!-- use a ng-container to group multiple root nodes -->\r\n *         <inner-element></inner-element>\r\n *         <inner-other-element></inner-other-element>\r\n *       </ng-container>\r\n *       <some-element *ngSwitchDefault>...</some-element>\r\n *     </container-element>\r\n * ```\r\n *\r\n * @publicApi\r\n * @see `NgSwitchCase`\r\n * @see `NgSwitchDefault`\r\n * @see [Structural Directives](guide/structural-directives)\r\n *\r\n */\r\nexport declare class NgSwitch {\r\n    private _defaultViews;\r\n    private _defaultUsed;\r\n    private _caseCount;\r\n    private _lastCaseCheckIndex;\r\n    private _lastCasesMatched;\r\n    private _ngSwitch;\r\n    set ngSwitch(newValue: any);\r\n    private _updateDefaultCases;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @description\r\n * Provides a switch case expression to match against an enclosing `ngSwitch` expression.\r\n * When the expressions match, the given `NgSwitchCase` template is rendered.\r\n * If multiple match expressions match the switch expression value, all of them are displayed.\r\n *\r\n * @usageNotes\r\n *\r\n * Within a switch container, `*ngSwitchCase` statements specify the match expressions\r\n * as attributes. Include `*ngSwitchDefault` as the final case.\r\n *\r\n * ```\r\n * <container-element [ngSwitch]=\"switch_expression\">\r\n *   <some-element *ngSwitchCase=\"match_expression_1\">...</some-element>\r\n *   ...\r\n *   <some-element *ngSwitchDefault>...</some-element>\r\n * </container-element>\r\n * ```\r\n *\r\n * Each switch-case statement contains an in-line HTML template or template reference\r\n * that defines the subtree to be selected if the value of the match expression\r\n * matches the value of the switch expression.\r\n *\r\n * Unlike JavaScript, which uses strict equality, Angular uses loose equality.\r\n * This means that the empty string, `\"\"` matches 0.\r\n *\r\n * @publicApi\r\n * @see `NgSwitch`\r\n * @see `NgSwitchDefault`\r\n *\r\n */\r\nexport declare class NgSwitchCase implements DoCheck {\r\n    private ngSwitch;\r\n    private _view;\r\n    /**\r\n     * Stores the HTML template to be selected on match.\r\n     */\r\n    ngSwitchCase: any;\r\n    constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<Object>, ngSwitch: NgSwitch);\r\n    /**\r\n     * Performs case matching. For internal use only.\r\n     */\r\n    ngDoCheck(): void;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @description\r\n *\r\n * Creates a view that is rendered when no `NgSwitchCase` expressions\r\n * match the `NgSwitch` expression.\r\n * This statement should be the final case in an `NgSwitch`.\r\n *\r\n * @publicApi\r\n * @see `NgSwitch`\r\n * @see `NgSwitchCase`\r\n *\r\n */\r\nexport declare class NgSwitchDefault {\r\n    constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<Object>, ngSwitch: NgSwitch);\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @description\r\n *\r\n * Inserts an embedded view from a prepared `TemplateRef`.\r\n *\r\n * You can attach a context object to the `EmbeddedViewRef` by setting `[ngTemplateOutletContext]`.\r\n * `[ngTemplateOutletContext]` should be an object, the object's keys will be available for binding\r\n * by the local template `let` declarations.\r\n *\r\n * @usageNotes\r\n * ```\r\n * <ng-container *ngTemplateOutlet=\"templateRefExp; context: contextExp\"></ng-container>\r\n * ```\r\n *\r\n * Using the key `$implicit` in the context object will set its value as default.\r\n *\r\n * ### Example\r\n *\r\n * {@example common/ngTemplateOutlet/ts/module.ts region='NgTemplateOutlet'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgTemplateOutlet implements OnChanges {\r\n    private _viewContainerRef;\r\n    private _viewRef;\r\n    /**\r\n     * A context object to attach to the {@link EmbeddedViewRef}. This should be an\r\n     * object, the object's keys will be available for binding by the local template `let`\r\n     * declarations.\r\n     * Using the key `$implicit` in the context object will set its value as default.\r\n     */\r\n    ngTemplateOutletContext: Object | null;\r\n    /**\r\n     * A string defining the template reference and optionally the context object for the template.\r\n     */\r\n    ngTemplateOutlet: TemplateRef<any> | null;\r\n    constructor(_viewContainerRef: ViewContainerRef);\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n}\r\n\r\n\r\n/**\r\n * Format styles that can be used to represent numbers.\r\n * @see `getLocaleNumberFormat()`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum NumberFormatStyle {\r\n    Decimal = 0,\r\n    Percent = 1,\r\n    Currency = 2,\r\n    Scientific = 3\r\n}\r\n\r\n/**\r\n * Symbols that can be used to replace placeholders in number patterns.\r\n * Examples are based on `en-US` values.\r\n *\r\n * @see `getLocaleNumberSymbol()`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum NumberSymbol {\r\n    /**\r\n     * Decimal separator.\r\n     * For `en-US`, the dot character.\r\n     * Example: 2,345`.`67\r\n     */\r\n    Decimal = 0,\r\n    /**\r\n     * Grouping separator, typically for thousands.\r\n     * For `en-US`, the comma character.\r\n     * Example: 2`,`345.67\r\n     */\r\n    Group = 1,\r\n    /**\r\n     * List-item separator.\r\n     * Example: \"one, two, and three\"\r\n     */\r\n    List = 2,\r\n    /**\r\n     * Sign for percentage (out of 100).\r\n     * Example: 23.4%\r\n     */\r\n    PercentSign = 3,\r\n    /**\r\n     * Sign for positive numbers.\r\n     * Example: +23\r\n     */\r\n    PlusSign = 4,\r\n    /**\r\n     * Sign for negative numbers.\r\n     * Example: -23\r\n     */\r\n    MinusSign = 5,\r\n    /**\r\n     * Computer notation for exponential value (n times a power of 10).\r\n     * Example: 1.2E3\r\n     */\r\n    Exponential = 6,\r\n    /**\r\n     * Human-readable format of exponential.\r\n     * Example: 1.2x103\r\n     */\r\n    SuperscriptingExponent = 7,\r\n    /**\r\n     * Sign for permille (out of 1000).\r\n     * Example: 23.4‰\r\n     */\r\n    PerMille = 8,\r\n    /**\r\n     * Infinity, can be used with plus and minus.\r\n     * Example: ∞, +∞, -∞\r\n     */\r\n    Infinity = 9,\r\n    /**\r\n     * Not a number.\r\n     * Example: NaN\r\n     */\r\n    NaN = 10,\r\n    /**\r\n     * Symbol used between time units.\r\n     * Example: 10:52\r\n     */\r\n    TimeSeparator = 11,\r\n    /**\r\n     * Decimal separator for currency values (fallback to `Decimal`).\r\n     * Example: $2,345.67\r\n     */\r\n    CurrencyDecimal = 12,\r\n    /**\r\n     * Group separator for currency values (fallback to `Group`).\r\n     * Example: $2,345.67\r\n     */\r\n    CurrencyGroup = 13\r\n}\r\n\r\n/**\r\n * @description\r\n * A {@link LocationStrategy} used to configure the {@link Location} service to\r\n * represent its state in the\r\n * [path](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax) of the\r\n * browser's URL.\r\n *\r\n * If you're using `PathLocationStrategy`, you must provide a {@link APP_BASE_HREF}\r\n * or add a `<base href>` element to the document.\r\n *\r\n * For instance, if you provide an `APP_BASE_HREF` of `'/my/app/'` and call\r\n * `location.go('/foo')`, the browser's URL will become\r\n * `example.com/my/app/foo`. To ensure all relative URIs resolve correctly,\r\n * the `<base href>` and/or `APP_BASE_HREF` should end with a `/`.\r\n *\r\n * Similarly, if you add `<base href='/my/app/'/>` to the document and call\r\n * `location.go('/foo')`, the browser's URL will become\r\n * `example.com/my/app/foo`.\r\n *\r\n * Note that when using `PathLocationStrategy`, neither the query nor\r\n * the fragment in the `<base href>` will be preserved, as outlined\r\n * by the [RFC](https://tools.ietf.org/html/rfc3986#section-5.2.2).\r\n *\r\n * @usageNotes\r\n *\r\n * ### Example\r\n *\r\n * {@example common/location/ts/path_location_component.ts region='LocationComponent'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class PathLocationStrategy extends LocationStrategy implements OnDestroy {\r\n    private _platformLocation;\r\n    private _baseHref;\r\n    private _removeListenerFns;\r\n    constructor(_platformLocation: PlatformLocation, href?: string);\r\n    ngOnDestroy(): void;\r\n    onPopState(fn: LocationChangeListener): void;\r\n    getBaseHref(): string;\r\n    prepareExternalUrl(internal: string): string;\r\n    path(includeHash?: boolean): string;\r\n    pushState(state: any, title: string, url: string, queryParams: string): void;\r\n    replaceState(state: any, title: string, url: string, queryParams: string): void;\r\n    forward(): void;\r\n    back(): void;\r\n    historyGo(relativePosition?: number): void;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Transforms a number to a percentage\r\n * string, formatted according to locale rules that determine group sizing and\r\n * separator, decimal-point character, and other locale-specific\r\n * configurations.\r\n *\r\n * @see `formatPercent()`\r\n *\r\n * @usageNotes\r\n * The following code shows how the pipe transforms numbers\r\n * into text strings, according to various format specifications,\r\n * where the caller's default locale is `en-US`.\r\n *\r\n * <code-example path=\"common/pipes/ts/percent_pipe.ts\" region='PercentPipe'></code-example>\r\n *\r\n * @publicApi\r\n */\r\nexport declare class PercentPipe implements PipeTransform {\r\n    private _locale;\r\n    constructor(_locale: string);\r\n    transform(value: number | string, digitsInfo?: string, locale?: string): string | null;\r\n    transform(value: null | undefined, digitsInfo?: string, locale?: string): null;\r\n    transform(value: number | string | null | undefined, digitsInfo?: string, locale?: string): string | null;\r\n}\r\n\r\n/**\r\n * This class should not be used directly by an application developer. Instead, use\r\n * {@link Location}.\r\n *\r\n * `PlatformLocation` encapsulates all calls to DOM APIs, which allows the Router to be\r\n * platform-agnostic.\r\n * This means that we can have different implementation of `PlatformLocation` for the different\r\n * platforms that Angular supports. For example, `@angular/platform-browser` provides an\r\n * implementation specific to the browser environment, while `@angular/platform-server` provides\r\n * one suitable for use with server-side rendering.\r\n *\r\n * The `PlatformLocation` class is used directly by all implementations of {@link LocationStrategy}\r\n * when they need to interact with the DOM APIs like pushState, popState, etc.\r\n *\r\n * {@link LocationStrategy} in turn is used by the {@link Location} service which is used directly\r\n * by the {@link Router} in order to navigate between routes. Since all interactions between {@link\r\n * Router} /\r\n * {@link Location} / {@link LocationStrategy} and DOM APIs flow through the `PlatformLocation`\r\n * class, they are all platform-agnostic.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class PlatformLocation {\r\n    abstract getBaseHrefFromDOM(): string;\r\n    abstract getState(): unknown;\r\n    /**\r\n     * Returns a function that, when executed, removes the `popstate` event handler.\r\n     */\r\n    abstract onPopState(fn: LocationChangeListener): VoidFunction;\r\n    /**\r\n     * Returns a function that, when executed, removes the `hashchange` event handler.\r\n     */\r\n    abstract onHashChange(fn: LocationChangeListener): VoidFunction;\r\n    abstract get href(): string;\r\n    abstract get protocol(): string;\r\n    abstract get hostname(): string;\r\n    abstract get port(): string;\r\n    abstract get pathname(): string;\r\n    abstract get search(): string;\r\n    abstract get hash(): string;\r\n    abstract replaceState(state: any, title: string, url: string): void;\r\n    abstract pushState(state: any, title: string, url: string): void;\r\n    abstract forward(): void;\r\n    abstract back(): void;\r\n    historyGo?(relativePosition: number): void;\r\n}\r\n\r\n/**\r\n * Plurality cases used for translating plurals to different languages.\r\n *\r\n * @see `NgPlural`\r\n * @see `NgPluralCase`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum Plural {\r\n    Zero = 0,\r\n    One = 1,\r\n    Two = 2,\r\n    Few = 3,\r\n    Many = 4,\r\n    Other = 5\r\n}\r\n\r\n/** @publicApi */\r\ndeclare interface PopStateEvent_2 {\r\n    pop?: boolean;\r\n    state?: any;\r\n    type?: string;\r\n    url?: string;\r\n}\r\nexport { PopStateEvent_2 as PopStateEvent }\r\n\r\n\r\n/**\r\n * Register global data to be used internally by Angular. See the\r\n * [\"I18n guide\"](guide/i18n-common-format-data-locale) to know how to import additional locale\r\n * data.\r\n *\r\n * The signature registerLocaleData(data: any, extraData?: any) is deprecated since v5.1\r\n *\r\n * @publicApi\r\n */\r\nexport declare function registerLocaleData(data: any, localeId?: string | any, extraData?: any): void;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Creates a new `Array` or `String` containing a subset (slice) of the elements.\r\n *\r\n * @usageNotes\r\n *\r\n * All behavior is based on the expected behavior of the JavaScript API `Array.prototype.slice()`\r\n * and `String.prototype.slice()`.\r\n *\r\n * When operating on an `Array`, the returned `Array` is always a copy even when all\r\n * the elements are being returned.\r\n *\r\n * When operating on a blank value, the pipe returns the blank value.\r\n *\r\n * ### List Example\r\n *\r\n * This `ngFor` example:\r\n *\r\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_list'}\r\n *\r\n * produces the following:\r\n *\r\n * ```html\r\n * <li>b</li>\r\n * <li>c</li>\r\n * ```\r\n *\r\n * ### String Examples\r\n *\r\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_string'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class SlicePipe implements PipeTransform {\r\n    /**\r\n     * @param value a list or a string to be sliced.\r\n     * @param start the starting index of the subset to return:\r\n     *   - **a positive integer**: return the item at `start` index and all items after\r\n     *     in the list or string expression.\r\n     *   - **a negative integer**: return the item at `start` index from the end and all items after\r\n     *     in the list or string expression.\r\n     *   - **if positive and greater than the size of the expression**: return an empty list or\r\n     * string.\r\n     *   - **if negative and greater than the size of the expression**: return entire list or string.\r\n     * @param end the ending index of the subset to return:\r\n     *   - **omitted**: return all items until the end.\r\n     *   - **if positive**: return all items before `end` index of the list or string.\r\n     *   - **if negative**: return all items before `end` index from the end of the list or string.\r\n     */\r\n    transform<T>(value: ReadonlyArray<T>, start: number, end?: number): Array<T>;\r\n    transform(value: null | undefined, start: number, end?: number): null;\r\n    transform<T>(value: ReadonlyArray<T> | null | undefined, start: number, end?: number): Array<T> | null;\r\n    transform(value: string, start: number, end?: number): string;\r\n    transform(value: string | null | undefined, start: number, end?: number): string | null;\r\n    private supports;\r\n}\r\n\r\ndeclare class SwitchView {\r\n    private _viewContainerRef;\r\n    private _templateRef;\r\n    private _created;\r\n    constructor(_viewContainerRef: ViewContainerRef, _templateRef: TemplateRef<Object>);\r\n    create(): void;\r\n    destroy(): void;\r\n    enforceState(created: boolean): void;\r\n}\r\n\r\n/**\r\n * Represents a time value with hours and minutes.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type Time = {\r\n    hours: number;\r\n    minutes: number;\r\n};\r\n\r\n/**\r\n * Transforms text to title case.\r\n * Capitalizes the first letter of each word and transforms the\r\n * rest of the word to lower case.\r\n * Words are delimited by any whitespace character, such as a space, tab, or line-feed character.\r\n *\r\n * @see `LowerCasePipe`\r\n * @see `UpperCasePipe`\r\n *\r\n * @usageNotes\r\n * The following example shows the result of transforming various strings into title case.\r\n *\r\n * <code-example path=\"common/pipes/ts/titlecase_pipe.ts\" region='TitleCasePipe'></code-example>\r\n *\r\n * @ngModule CommonModule\r\n * @publicApi\r\n */\r\nexport declare class TitleCasePipe implements PipeTransform {\r\n    /**\r\n     * @param value The string to transform to title case.\r\n     */\r\n    transform(value: string): string;\r\n    transform(value: null | undefined): null;\r\n    transform(value: string | null | undefined): string | null;\r\n}\r\n\r\n/**\r\n * String widths available for translations.\r\n * The specific character widths are locale-specific.\r\n * Examples are given for the word \"Sunday\" in English.\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum TranslationWidth {\r\n    /** 1 character for `en-US`. For example: 'S' */\r\n    Narrow = 0,\r\n    /** 3 characters for `en-US`. For example: 'Sun' */\r\n    Abbreviated = 1,\r\n    /** Full length for `en-US`. For example: \"Sunday\" */\r\n    Wide = 2,\r\n    /** 2 characters for `en-US`, For example: \"Su\" */\r\n    Short = 3\r\n}\r\n\r\n/**\r\n * Transforms text to all upper case.\r\n * @see `LowerCasePipe`\r\n * @see `TitleCasePipe`\r\n *\r\n * @ngModule CommonModule\r\n * @publicApi\r\n */\r\nexport declare class UpperCasePipe implements PipeTransform {\r\n    /**\r\n     * @param value The string to transform to upper case.\r\n     */\r\n    transform(value: string): string;\r\n    transform(value: null | undefined): null;\r\n    transform(value: string | null | undefined): string | null;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const VERSION: Version;\r\n\r\n\r\n/**\r\n * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class ViewportScroller {\r\n    /** @nocollapse */\r\n    static ɵprov: unknown;\r\n    /**\r\n     * Configures the top offset used when scrolling to an anchor.\r\n     * @param offset A position in screen coordinates (a tuple with x and y values)\r\n     * or a function that returns the top offset position.\r\n     *\r\n     */\r\n    abstract setOffset(offset: [number, number] | (() => [number, number])): void;\r\n    /**\r\n     * Retrieves the current scroll position.\r\n     * @returns A position in screen coordinates (a tuple with x and y values).\r\n     */\r\n    abstract getScrollPosition(): [number, number];\r\n    /**\r\n     * Scrolls to a specified position.\r\n     * @param position A position in screen coordinates (a tuple with x and y values).\r\n     */\r\n    abstract scrollToPosition(position: [number, number]): void;\r\n    /**\r\n     * Scrolls to an anchor element.\r\n     * @param anchor The ID of the anchor element.\r\n     */\r\n    abstract scrollToAnchor(anchor: string): void;\r\n    /**\r\n     * Disables automatic scroll restoration provided by the browser.\r\n     * See also [window.history.scrollRestoration\r\n     * info](https://developers.google.com/web/updates/2015/09/history-api-scroll-restoration).\r\n     */\r\n    abstract setHistoryScrollRestoration(scrollRestoration: 'auto' | 'manual'): void;\r\n}\r\n\r\n/**\r\n * The value for each day of the week, based on the `en-US` locale\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum WeekDay {\r\n    Sunday = 0,\r\n    Monday = 1,\r\n    Tuesday = 2,\r\n    Wednesday = 3,\r\n    Thursday = 4,\r\n    Friday = 5,\r\n    Saturday = 6\r\n}\r\n\r\n\r\n/**\r\n * A wrapper around the `XMLHttpRequest` constructor.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class XhrFactory {\r\n    abstract build(): XMLHttpRequest;\r\n}\r\n\r\nexport declare function ɵangular_packages_common_common_a(): ɵBrowserPlatformLocation;\r\n\r\nexport declare function ɵangular_packages_common_common_b(): ɵBrowserPlatformLocation;\r\n\r\nexport declare function ɵangular_packages_common_common_c(): Location_2;\r\n\r\nexport declare function ɵangular_packages_common_common_d(platformLocation: PlatformLocation): PathLocationStrategy;\r\n\r\n/**\r\n * A collection of Angular directives that are likely to be used in each and every Angular\r\n * application.\r\n */\r\nexport declare const ɵangular_packages_common_common_e: Provider[];\r\n\r\n/**\r\n * A collection of Angular pipes that are likely to be used in each and every application.\r\n */\r\nexport declare const ɵangular_packages_common_common_f: (typeof AsyncPipe | typeof SlicePipe | typeof DecimalPipe | typeof PercentPipe | typeof CurrencyPipe | typeof DatePipe | typeof I18nPluralPipe | typeof I18nSelectPipe | typeof KeyValuePipe)[];\r\n\r\n/**\r\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\r\n * This class should not be used directly by an application developer. Instead, use\r\n * {@link Location}.\r\n */\r\nexport declare class ɵBrowserPlatformLocation extends PlatformLocation {\r\n    private _doc;\r\n    readonly location: Location;\r\n    private _history;\r\n    constructor(_doc: any);\r\n    getBaseHrefFromDOM(): string;\r\n    onPopState(fn: LocationChangeListener): VoidFunction;\r\n    onHashChange(fn: LocationChangeListener): VoidFunction;\r\n    get href(): string;\r\n    get protocol(): string;\r\n    get hostname(): string;\r\n    get port(): string;\r\n    get pathname(): string;\r\n    get search(): string;\r\n    get hash(): string;\r\n    set pathname(newPath: string);\r\n    pushState(state: any, title: string, url: string): void;\r\n    replaceState(state: any, title: string, url: string): void;\r\n    forward(): void;\r\n    back(): void;\r\n    historyGo(relativePosition?: number): void;\r\n    getState(): unknown;\r\n}\r\n\r\n/**\r\n * Provides DOM operations in an environment-agnostic way.\r\n *\r\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\r\n * can introduce XSS risks.\r\n */\r\nexport declare abstract class ɵDomAdapter {\r\n    abstract dispatchEvent(el: any, evt: any): any;\r\n    abstract readonly supportsDOMEvents: boolean;\r\n    abstract remove(el: any): void;\r\n    abstract createElement(tagName: any, doc?: any): HTMLElement;\r\n    abstract createHtmlDocument(): HTMLDocument;\r\n    abstract getDefaultDocument(): Document;\r\n    abstract isElementNode(node: any): boolean;\r\n    abstract isShadowRoot(node: any): boolean;\r\n    abstract onAndCancel(el: any, evt: any, listener: any): Function;\r\n    abstract getGlobalEventTarget(doc: Document, target: string): any;\r\n    abstract getBaseHref(doc: Document): string | null;\r\n    abstract resetBaseElement(): void;\r\n    abstract getUserAgent(): string;\r\n    abstract getCookie(name: string): string | null;\r\n}\r\n\r\n\r\nexport declare function ɵgetDOM(): ɵDomAdapter;\r\n\r\n/**\r\n * Provides an empty implementation of the viewport scroller.\r\n */\r\nexport declare class ɵNullViewportScroller implements ViewportScroller {\r\n    /**\r\n     * Empty implementation\r\n     */\r\n    setOffset(offset: [number, number] | (() => [number, number])): void;\r\n    /**\r\n     * Empty implementation\r\n     */\r\n    getScrollPosition(): [number, number];\r\n    /**\r\n     * Empty implementation\r\n     */\r\n    scrollToPosition(position: [number, number]): void;\r\n    /**\r\n     * Empty implementation\r\n     */\r\n    scrollToAnchor(anchor: string): void;\r\n    /**\r\n     * Empty implementation\r\n     */\r\n    setHistoryScrollRestoration(scrollRestoration: 'auto' | 'manual'): void;\r\n}\r\n\r\n\r\nexport declare function ɵparseCookieValue(cookieStr: string, name: string): string | null;\r\n\r\n\r\nexport declare const ɵPLATFORM_BROWSER_ID = \"browser\";\r\n\r\nexport declare const ɵPLATFORM_SERVER_ID = \"server\";\r\n\r\nexport declare const ɵPLATFORM_WORKER_APP_ID = \"browserWorkerApp\";\r\n\r\nexport declare const ɵPLATFORM_WORKER_UI_ID = \"browserWorkerUi\";\r\n\r\nexport declare function ɵsetRootDomAdapter(adapter: ɵDomAdapter): void;\r\n\r\nexport { }\r\n"]}
+{"version":3,"file":"common.d.ts","sources":["common.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":["/**\n * @license Angular v12.2.13\n * (c) 2010-2021 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ChangeDetectorRef } from '@angular/core';\r\nimport { DoCheck } from '@angular/core';\r\nimport { ElementRef } from '@angular/core';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { Injector } from '@angular/core';\r\nimport { IterableDiffers } from '@angular/core';\r\nimport { KeyValueDiffers } from '@angular/core';\r\nimport { NgIterable } from '@angular/core';\r\nimport { NgModuleFactory } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { OnChanges } from '@angular/core';\r\nimport { OnDestroy } from '@angular/core';\r\nimport { PipeTransform } from '@angular/core';\r\nimport { Provider } from '@angular/core';\r\nimport { Renderer2 } from '@angular/core';\r\nimport { SimpleChanges } from '@angular/core';\r\nimport { Subscribable } from 'rxjs';\r\nimport { SubscriptionLike } from 'rxjs';\r\nimport { TemplateRef } from '@angular/core';\r\nimport { TrackByFunction } from '@angular/core';\r\nimport { Type } from '@angular/core';\r\nimport { Version } from '@angular/core';\r\nimport { ViewContainerRef } from '@angular/core';\r\n\r\n/**\r\n * A predefined [DI token](guide/glossary#di-token) for the base href\r\n * to be used with the `PathLocationStrategy`.\r\n * The base href is the URL prefix that should be preserved when generating\r\n * and recognizing URLs.\r\n *\r\n * @usageNotes\r\n *\r\n * The following example shows how to use this token to configure the root app injector\r\n * with a base href value, so that the DI framework can supply the dependency anywhere in the app.\r\n *\r\n * ```typescript\r\n * import {Component, NgModule} from '@angular/core';\r\n * import {APP_BASE_HREF} from '@angular/common';\r\n *\r\n * @NgModule({\r\n *   providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]\r\n * })\r\n * class AppModule {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare const APP_BASE_HREF: InjectionToken<string>;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Unwraps a value from an asynchronous primitive.\r\n *\r\n * The `async` pipe subscribes to an `Observable` or `Promise` and returns the latest value it has\r\n * emitted. When a new value is emitted, the `async` pipe marks the component to be checked for\r\n * changes. When the component gets destroyed, the `async` pipe unsubscribes automatically to avoid\r\n * potential memory leaks. When the reference of the expression changes, the `async` pipe\r\n * automatically unsubscribes from the old `Observable` or `Promise` and subscribes to the new one.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Examples\r\n *\r\n * This example binds a `Promise` to the view. Clicking the `Resolve` button resolves the\r\n * promise.\r\n *\r\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipePromise'}\r\n *\r\n * It's also possible to use `async` with Observables. The example below binds the `time` Observable\r\n * to the view. The Observable continuously updates the view with the current time.\r\n *\r\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipeObservable'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class AsyncPipe implements OnDestroy, PipeTransform {\r\n    private _ref;\r\n    private _latestValue;\r\n    private _subscription;\r\n    private _obj;\r\n    private _strategy;\r\n    constructor(_ref: ChangeDetectorRef);\r\n    ngOnDestroy(): void;\r\n    transform<T>(obj: Observable<T> | Subscribable<T> | Promise<T>): T | null;\r\n    transform<T>(obj: null | undefined): null;\r\n    transform<T>(obj: Observable<T> | Subscribable<T> | Promise<T> | null | undefined): T | null;\r\n    private _subscribe;\r\n    private _selectStrategy;\r\n    private _dispose;\r\n    private _updateLatestValue;\r\n}\r\n\r\n\r\n/**\r\n * Exports all the basic Angular directives and pipes,\r\n * such as `NgIf`, `NgForOf`, `DecimalPipe`, and so on.\r\n * Re-exported by `BrowserModule`, which is included automatically in the root\r\n * `AppModule` when you create a new app with the CLI `new` command.\r\n *\r\n * * The `providers` options configure the NgModule's injector to provide\r\n * localization dependencies to members.\r\n * * The `exports` options make the declared directives and pipes available for import\r\n * by other NgModules.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class CommonModule {\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Transforms a number to a currency string, formatted according to locale rules\r\n * that determine group sizing and separator, decimal-point character,\r\n * and other locale-specific configurations.\r\n *\r\n * {@a currency-code-deprecation}\r\n * <div class=\"alert is-helpful\">\r\n *\r\n * **Deprecation notice:**\r\n *\r\n * The default currency code is currently always `USD` but this is deprecated from v9.\r\n *\r\n * **In v11 the default currency code will be taken from the current locale identified by\r\n * the `LOCALE_ID` token. See the [i18n guide](guide/i18n-common-locale-id) for\r\n * more information.**\r\n *\r\n * If you need the previous behavior then set it by creating a `DEFAULT_CURRENCY_CODE` provider in\r\n * your application `NgModule`:\r\n *\r\n * ```ts\r\n * {provide: DEFAULT_CURRENCY_CODE, useValue: 'USD'}\r\n * ```\r\n *\r\n * </div>\r\n *\r\n * @see `getCurrencySymbol()`\r\n * @see `formatCurrency()`\r\n *\r\n * @usageNotes\r\n * The following code shows how the pipe transforms numbers\r\n * into text strings, according to various format specifications,\r\n * where the caller's default locale is `en-US`.\r\n *\r\n * <code-example path=\"common/pipes/ts/currency_pipe.ts\" region='CurrencyPipe'></code-example>\r\n *\r\n * @publicApi\r\n */\r\nexport declare class CurrencyPipe implements PipeTransform {\r\n    private _locale;\r\n    private _defaultCurrencyCode;\r\n    constructor(_locale: string, _defaultCurrencyCode?: string);\r\n    transform(value: number | string, currencyCode?: string, display?: 'code' | 'symbol' | 'symbol-narrow' | string | boolean, digitsInfo?: string, locale?: string): string | null;\r\n    transform(value: null | undefined, currencyCode?: string, display?: 'code' | 'symbol' | 'symbol-narrow' | string | boolean, digitsInfo?: string, locale?: string): null;\r\n    transform(value: number | string | null | undefined, currencyCode?: string, display?: 'code' | 'symbol' | 'symbol-narrow' | string | boolean, digitsInfo?: string, locale?: string): string | null;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Formats a date value according to locale rules.\r\n *\r\n * `DatePipe` is executed only when it detects a pure change to the input value.\r\n * A pure change is either a change to a primitive input value\r\n * (such as `String`, `Number`, `Boolean`, or `Symbol`),\r\n * or a changed object reference (such as `Date`, `Array`, `Function`, or `Object`).\r\n *\r\n * Note that mutating a `Date` object does not cause the pipe to be rendered again.\r\n * To ensure that the pipe is executed, you must create a new `Date` object.\r\n *\r\n * Only the `en-US` locale data comes with Angular. To localize dates\r\n * in another language, you must import the corresponding locale data.\r\n * See the [I18n guide](guide/i18n-common-format-data-locale) for more information.\r\n *\r\n * @see `formatDate()`\r\n *\r\n *\r\n * @usageNotes\r\n *\r\n * The result of this pipe is not reevaluated when the input is mutated. To avoid the need to\r\n * reformat the date on every change-detection cycle, treat the date as an immutable object\r\n * and change the reference when the pipe needs to run again.\r\n *\r\n * ### Pre-defined format options\r\n *\r\n * | Option        | Equivalent to                       | Examples (given in `en-US` locale)              |\r\n * |---------------|-------------------------------------|-------------------------------------------------|\r\n * | `'short'`     | `'M/d/yy, h:mm a'`                  | `6/15/15, 9:03 AM`                              |\r\n * | `'medium'`    | `'MMM d, y, h:mm:ss a'`             | `Jun 15, 2015, 9:03:01 AM`                      |\r\n * | `'long'`      | `'MMMM d, y, h:mm:ss a z'`          | `June 15, 2015 at 9:03:01 AM GMT+1`             |\r\n * | `'full'`      | `'EEEE, MMMM d, y, h:mm:ss a zzzz'` | `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00` |\r\n * | `'shortDate'` | `'M/d/yy'`                          | `6/15/15`                                       |\r\n * | `'mediumDate'`| `'MMM d, y'`                        | `Jun 15, 2015`                                  |\r\n * | `'longDate'`  | `'MMMM d, y'`                       | `June 15, 2015`                                 |\r\n * | `'fullDate'`  | `'EEEE, MMMM d, y'`                 | `Monday, June 15, 2015`                         |\r\n * | `'shortTime'` | `'h:mm a'`                          | `9:03 AM`                                       |\r\n * | `'mediumTime'`| `'h:mm:ss a'`                       | `9:03:01 AM`                                    |\r\n * | `'longTime'`  | `'h:mm:ss a z'`                     | `9:03:01 AM GMT+1`                              |\r\n * | `'fullTime'`  | `'h:mm:ss a zzzz'`                  | `9:03:01 AM GMT+01:00`                          |\r\n *\r\n * ### Custom format options\r\n *\r\n * You can construct a format string using symbols to specify the components\r\n * of a date-time value, as described in the following table.\r\n * Format details depend on the locale.\r\n * Fields marked with (*) are only available in the extra data set for the given locale.\r\n *\r\n *  | Field type          | Format      | Description                                                   | Example Value                                              |\r\n *  |-------------------- |-------------|---------------------------------------------------------------|------------------------------------------------------------|\r\n *  | Era                 | G, GG & GGG | Abbreviated                                                   | AD                                                         |\r\n *  |                     | GGGG        | Wide                                                          | Anno Domini                                                |\r\n *  |                     | GGGGG       | Narrow                                                        | A                                                          |\r\n *  | Year                | y           | Numeric: minimum digits                                       | 2, 20, 201, 2017, 20173                                    |\r\n *  |                     | yy          | Numeric: 2 digits + zero padded                               | 02, 20, 01, 17, 73                                         |\r\n *  |                     | yyy         | Numeric: 3 digits + zero padded                               | 002, 020, 201, 2017, 20173                                 |\r\n *  |                     | yyyy        | Numeric: 4 digits or more + zero padded                       | 0002, 0020, 0201, 2017, 20173                              |\r\n *  | Week-numbering year | Y           | Numeric: minimum digits                                       | 2, 20, 201, 2017, 20173                                    |\r\n *  |                     | YY          | Numeric: 2 digits + zero padded                               | 02, 20, 01, 17, 73                                         |\r\n *  |                     | YYY         | Numeric: 3 digits + zero padded                               | 002, 020, 201, 2017, 20173                                 |\r\n *  |                     | YYYY        | Numeric: 4 digits or more + zero padded                       | 0002, 0020, 0201, 2017, 20173                              |\r\n *  | Month               | M           | Numeric: 1 digit                                              | 9, 12                                                      |\r\n *  |                     | MM          | Numeric: 2 digits + zero padded                               | 09, 12                                                     |\r\n *  |                     | MMM         | Abbreviated                                                   | Sep                                                        |\r\n *  |                     | MMMM        | Wide                                                          | September                                                  |\r\n *  |                     | MMMMM       | Narrow                                                        | S                                                          |\r\n *  | Month standalone    | L           | Numeric: 1 digit                                              | 9, 12                                                      |\r\n *  |                     | LL          | Numeric: 2 digits + zero padded                               | 09, 12                                                     |\r\n *  |                     | LLL         | Abbreviated                                                   | Sep                                                        |\r\n *  |                     | LLLL        | Wide                                                          | September                                                  |\r\n *  |                     | LLLLL       | Narrow                                                        | S                                                          |\r\n *  | Week of year        | w           | Numeric: minimum digits                                       | 1... 53                                                    |\r\n *  |                     | ww          | Numeric: 2 digits + zero padded                               | 01... 53                                                   |\r\n *  | Week of month       | W           | Numeric: 1 digit                                              | 1... 5                                                     |\r\n *  | Day of month        | d           | Numeric: minimum digits                                       | 1                                                          |\r\n *  |                     | dd          | Numeric: 2 digits + zero padded                               | 01                                                         |\r\n *  | Week day            | E, EE & EEE | Abbreviated                                                   | Tue                                                        |\r\n *  |                     | EEEE        | Wide                                                          | Tuesday                                                    |\r\n *  |                     | EEEEE       | Narrow                                                        | T                                                          |\r\n *  |                     | EEEEEE      | Short                                                         | Tu                                                         |\r\n *  | Week day standalone | c, cc       | Numeric: 1 digit                                              | 2                                                          |\r\n *  |                     | ccc         | Abbreviated                                                   | Tue                                                        |\r\n *  |                     | cccc        | Wide                                                          | Tuesday                                                    |\r\n *  |                     | ccccc       | Narrow                                                        | T                                                          |\r\n *  |                     | cccccc      | Short                                                         | Tu                                                         |\r\n *  | Period              | a, aa & aaa | Abbreviated                                                   | am/pm or AM/PM                                             |\r\n *  |                     | aaaa        | Wide (fallback to `a` when missing)                           | ante meridiem/post meridiem                                |\r\n *  |                     | aaaaa       | Narrow                                                        | a/p                                                        |\r\n *  | Period*             | B, BB & BBB | Abbreviated                                                   | mid.                                                       |\r\n *  |                     | BBBB        | Wide                                                          | am, pm, midnight, noon, morning, afternoon, evening, night |\r\n *  |                     | BBBBB       | Narrow                                                        | md                                                         |\r\n *  | Period standalone*  | b, bb & bbb | Abbreviated                                                   | mid.                                                       |\r\n *  |                     | bbbb        | Wide                                                          | am, pm, midnight, noon, morning, afternoon, evening, night |\r\n *  |                     | bbbbb       | Narrow                                                        | md                                                         |\r\n *  | Hour 1-12           | h           | Numeric: minimum digits                                       | 1, 12                                                      |\r\n *  |                     | hh          | Numeric: 2 digits + zero padded                               | 01, 12                                                     |\r\n *  | Hour 0-23           | H           | Numeric: minimum digits                                       | 0, 23                                                      |\r\n *  |                     | HH          | Numeric: 2 digits + zero padded                               | 00, 23                                                     |\r\n *  | Minute              | m           | Numeric: minimum digits                                       | 8, 59                                                      |\r\n *  |                     | mm          | Numeric: 2 digits + zero padded                               | 08, 59                                                     |\r\n *  | Second              | s           | Numeric: minimum digits                                       | 0... 59                                                    |\r\n *  |                     | ss          | Numeric: 2 digits + zero padded                               | 00... 59                                                   |\r\n *  | Fractional seconds  | S           | Numeric: 1 digit                                              | 0... 9                                                     |\r\n *  |                     | SS          | Numeric: 2 digits + zero padded                               | 00... 99                                                   |\r\n *  |                     | SSS         | Numeric: 3 digits + zero padded (= milliseconds)              | 000... 999                                                 |\r\n *  | Zone                | z, zz & zzz | Short specific non location format (fallback to O)            | GMT-8                                                      |\r\n *  |                     | zzzz        | Long specific non location format (fallback to OOOO)          | GMT-08:00                                                  |\r\n *  |                     | Z, ZZ & ZZZ | ISO8601 basic format                                          | -0800                                                      |\r\n *  |                     | ZZZZ        | Long localized GMT format                                     | GMT-8:00                                                   |\r\n *  |                     | ZZZZZ       | ISO8601 extended format + Z indicator for offset 0 (= XXXXX)  | -08:00                                                     |\r\n *  |                     | O, OO & OOO | Short localized GMT format                                    | GMT-8                                                      |\r\n *  |                     | OOOO        | Long localized GMT format                                     | GMT-08:00                                                  |\r\n *\r\n *\r\n * ### Format examples\r\n *\r\n * These examples transform a date into various formats,\r\n * assuming that `dateObj` is a JavaScript `Date` object for\r\n * year: 2015, month: 6, day: 15, hour: 21, minute: 43, second: 11,\r\n * given in the local time for the `en-US` locale.\r\n *\r\n * ```\r\n * {{ dateObj | date }}               // output is 'Jun 15, 2015'\r\n * {{ dateObj | date:'medium' }}      // output is 'Jun 15, 2015, 9:43:11 PM'\r\n * {{ dateObj | date:'shortTime' }}   // output is '9:43 PM'\r\n * {{ dateObj | date:'mm:ss' }}       // output is '43:11'\r\n * ```\r\n *\r\n * ### Usage example\r\n *\r\n * The following component uses a date pipe to display the current date in different formats.\r\n *\r\n * ```\r\n * @Component({\r\n *  selector: 'date-pipe',\r\n *  template: `<div>\r\n *    <p>Today is {{today | date}}</p>\r\n *    <p>Or if you prefer, {{today | date:'fullDate'}}</p>\r\n *    <p>The time is {{today | date:'h:mm a z'}}</p>\r\n *  </div>`\r\n * })\r\n * // Get the current date and time as a date-time value.\r\n * export class DatePipeComponent {\r\n *   today: number = Date.now();\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class DatePipe implements PipeTransform {\r\n    private locale;\r\n    constructor(locale: string);\r\n    /**\r\n     * @param value The date expression: a `Date` object,  a number\r\n     * (milliseconds since UTC epoch), or an ISO string (https://www.w3.org/TR/NOTE-datetime).\r\n     * @param format The date/time components to include, using predefined options or a\r\n     * custom format string.\r\n     * @param timezone A timezone offset (such as `'+0430'`), or a standard\r\n     * UTC/GMT or continental US timezone abbreviation.\r\n     * When not supplied, uses the end-user's local system timezone.\r\n     * @param locale A locale code for the locale format rules to use.\r\n     * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\r\n     * See [Setting your app locale](guide/i18n-common-locale-id).\r\n     * @returns A date string in the desired format.\r\n     */\r\n    transform(value: Date | string | number, format?: string, timezone?: string, locale?: string): string | null;\r\n    transform(value: null | undefined, format?: string, timezone?: string, locale?: string): null;\r\n    transform(value: Date | string | number | null | undefined, format?: string, timezone?: string, locale?: string): string | null;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Formats a value according to digit options and locale rules.\r\n * Locale determines group sizing and separator,\r\n * decimal point character, and other locale-specific configurations.\r\n *\r\n * @see `formatNumber()`\r\n *\r\n * @usageNotes\r\n *\r\n * ### digitsInfo\r\n *\r\n * The value's decimal representation is specified by the `digitsInfo`\r\n * parameter, written in the following format:<br>\r\n *\r\n * ```\r\n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}\r\n * ```\r\n *\r\n *  - `minIntegerDigits`:\r\n * The minimum number of integer digits before the decimal point.\r\n * Default is 1.\r\n *\r\n * - `minFractionDigits`:\r\n * The minimum number of digits after the decimal point.\r\n * Default is 0.\r\n *\r\n *  - `maxFractionDigits`:\r\n * The maximum number of digits after the decimal point.\r\n * Default is 3.\r\n *\r\n * If the formatted value is truncated it will be rounded using the \"to-nearest\" method:\r\n *\r\n * ```\r\n * {{3.6 | number: '1.0-0'}}\r\n * <!--will output '4'-->\r\n *\r\n * {{-3.6 | number:'1.0-0'}}\r\n * <!--will output '-4'-->\r\n * ```\r\n *\r\n * ### locale\r\n *\r\n * `locale` will format a value according to locale rules.\r\n * Locale determines group sizing and separator,\r\n * decimal point character, and other locale-specific configurations.\r\n *\r\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\r\n *\r\n * See [Setting your app locale](guide/i18n-common-locale-id).\r\n *\r\n * ### Example\r\n *\r\n * The following code shows how the pipe transforms values\r\n * according to various format specifications,\r\n * where the caller's default locale is `en-US`.\r\n *\r\n * <code-example path=\"common/pipes/ts/number_pipe.ts\" region='NumberPipe'></code-example>\r\n *\r\n * @publicApi\r\n */\r\nexport declare class DecimalPipe implements PipeTransform {\r\n    private _locale;\r\n    constructor(_locale: string);\r\n    transform(value: number | string, digitsInfo?: string, locale?: string): string | null;\r\n    transform(value: null | undefined, digitsInfo?: string, locale?: string): null;\r\n    transform(value: number | string | null | undefined, digitsInfo?: string, locale?: string): string | null;\r\n}\r\n\r\n/**\r\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\r\n *\r\n * Note: Document might not be available in the Application Context when Application and Rendering\r\n * Contexts are not the same (e.g. when running the application in a Web Worker).\r\n *\r\n * @publicApi\r\n */\r\nexport declare const DOCUMENT: InjectionToken<Document>;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Formats a number as currency using locale rules.\r\n *\r\n * @param value The number to format.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param currency A string containing the currency symbol or its name,\r\n * such as \"$\" or \"Canadian Dollar\". Used in output string, but does not affect the operation\r\n * of the function.\r\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\r\n * currency code, such as `USD` for the US dollar and `EUR` for the euro.\r\n * Used to determine the number of digits in the decimal part.\r\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\r\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\r\n *\r\n * @returns The formatted currency value.\r\n *\r\n * @see `formatNumber()`\r\n * @see `DecimalPipe`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function formatCurrency(value: number, locale: string, currency: string, currencyCode?: string, digitsInfo?: string): string;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Formats a date according to locale rules.\r\n *\r\n * @param value The date to format, as a Date, or a number (milliseconds since UTC epoch)\r\n * or an [ISO date-time string](https://www.w3.org/TR/NOTE-datetime).\r\n * @param format The date-time components to include. See `DatePipe` for details.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param timezone The time zone. A time zone offset from GMT (such as `'+0430'`),\r\n * or a standard UTC/GMT or continental US time zone abbreviation.\r\n * If not specified, uses host system settings.\r\n *\r\n * @returns The formatted date string.\r\n *\r\n * @see `DatePipe`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function formatDate(value: string | number | Date, format: string, locale: string, timezone?: string): string;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Formats a number as text, with group sizing, separator, and other\r\n * parameters based on the locale.\r\n *\r\n * @param value The number to format.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\r\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\r\n *\r\n * @returns The formatted text string.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function formatNumber(value: number, locale: string, digitsInfo?: string): string;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Formats a number as a percentage according to locale rules.\r\n *\r\n * @param value The number to format.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\r\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\r\n *\r\n * @returns The formatted percentage value.\r\n *\r\n * @see `formatNumber()`\r\n * @see `DecimalPipe`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n * @publicApi\r\n *\r\n */\r\nexport declare function formatPercent(value: number, locale: string, digitsInfo?: string): string;\r\n\r\n/**\r\n * String widths available for date-time formats.\r\n * The specific character widths are locale-specific.\r\n * Examples are given for `en-US`.\r\n *\r\n * @see `getLocaleDateFormat()`\r\n * @see `getLocaleTimeFormat()`\r\n * @see `getLocaleDateTimeFormat()`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n * @publicApi\r\n */\r\nexport declare enum FormatWidth {\r\n    /**\r\n     * For `en-US`, 'M/d/yy, h:mm a'`\r\n     * (Example: `6/15/15, 9:03 AM`)\r\n     */\r\n    Short = 0,\r\n    /**\r\n     * For `en-US`, `'MMM d, y, h:mm:ss a'`\r\n     * (Example: `Jun 15, 2015, 9:03:01 AM`)\r\n     */\r\n    Medium = 1,\r\n    /**\r\n     * For `en-US`, `'MMMM d, y, h:mm:ss a z'`\r\n     * (Example: `June 15, 2015 at 9:03:01 AM GMT+1`)\r\n     */\r\n    Long = 2,\r\n    /**\r\n     * For `en-US`, `'EEEE, MMMM d, y, h:mm:ss a zzzz'`\r\n     * (Example: `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00`)\r\n     */\r\n    Full = 3\r\n}\r\n\r\n/**\r\n * Context-dependant translation forms for strings.\r\n * Typically the standalone version is for the nominative form of the word,\r\n * and the format version is used for the genitive case.\r\n * @see [CLDR website](http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles)\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum FormStyle {\r\n    Format = 0,\r\n    Standalone = 1\r\n}\r\n\r\n/**\r\n * Retrieves the currency symbol for a given currency code.\r\n *\r\n * For example, for the default `en-US` locale, the code `USD` can\r\n * be represented by the narrow symbol `$` or the wide symbol `US$`.\r\n *\r\n * @param code The currency code.\r\n * @param format The format, `wide` or `narrow`.\r\n * @param locale A locale code for the locale format rules to use.\r\n *\r\n * @returns The symbol, or the currency code if no symbol is available.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getCurrencySymbol(code: string, format: 'wide' | 'narrow', locale?: string): string;\r\n\r\n/**\r\n * Retrieves the default currency code for the given locale.\r\n *\r\n * The default is defined as the first currency which is still in use.\r\n *\r\n * @param locale The code of the locale whose currency code we want.\r\n * @returns The code of the default currency for the given locale.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleCurrencyCode(locale: string): string | null;\r\n\r\n/**\r\n * Retrieves the name of the currency for the main country corresponding\r\n * to a given locale. For example, 'US Dollar' for `en-US`.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @returns The currency name,\r\n * or `null` if the main country cannot be determined.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleCurrencyName(locale: string): string | null;\r\n\r\n/**\r\n * Retrieves the symbol used to represent the currency for the main country\r\n * corresponding to a given locale. For example, '$' for `en-US`.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @returns The localized symbol character,\r\n * or `null` if the main country cannot be determined.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleCurrencySymbol(locale: string): string | null;\r\n\r\n/**\r\n * Retrieves a localized date-value formating string.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param width The format type.\r\n * @returns The localized formating string.\r\n * @see `FormatWidth`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleDateFormat(locale: string, width: FormatWidth): string;\r\n\r\n/**\r\n * Retrieves a localized date-time formatting string.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param width The format type.\r\n * @returns The localized formatting string.\r\n * @see `FormatWidth`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleDateTimeFormat(locale: string, width: FormatWidth): string;\r\n\r\n/**\r\n * Retrieves days of the week for the given locale, using the Gregorian calendar.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param formStyle The required grammatical form.\r\n * @param width The required character width.\r\n * @returns An array of localized name strings.\r\n * For example,`[Sunday, Monday, ... Saturday]` for `en-US`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleDayNames(locale: string, formStyle: FormStyle, width: TranslationWidth): ReadonlyArray<string>;\r\n\r\n/**\r\n * Retrieves day period strings for the given locale.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param formStyle The required grammatical form.\r\n * @param width The required character width.\r\n * @returns An array of localized period strings. For example, `[AM, PM]` for `en-US`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleDayPeriods(locale: string, formStyle: FormStyle, width: TranslationWidth): Readonly<[string, string]>;\r\n\r\n/**\r\n * Retrieves the writing direction of a specified locale\r\n * @param locale A locale code for the locale format rules to use.\r\n * @publicApi\r\n * @returns 'rtl' or 'ltr'\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n */\r\nexport declare function getLocaleDirection(locale: string): 'ltr' | 'rtl';\r\n\r\n/**\r\n * Retrieves Gregorian-calendar eras for the given locale.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param width The required character width.\r\n\r\n * @returns An array of localized era strings.\r\n * For example, `[AD, BC]` for `en-US`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleEraNames(locale: string, width: TranslationWidth): Readonly<[string, string]>;\r\n\r\n/**\r\n * Retrieves locale-specific rules used to determine which day period to use\r\n * when more than one period is defined for a locale.\r\n *\r\n * There is a rule for each defined day period. The\r\n * first rule is applied to the first day period and so on.\r\n * Fall back to AM/PM when no rules are available.\r\n *\r\n * A rule can specify a period as time range, or as a single time value.\r\n *\r\n * This functionality is only available when you have loaded the full locale data.\r\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @returns The rules for the locale, a single time value or array of *from-time, to-time*,\r\n * or null if no periods are available.\r\n *\r\n * @see `getLocaleExtraDayPeriods()`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleExtraDayPeriodRules(locale: string): (Time | [Time, Time])[];\r\n\r\n/**\r\n * Retrieves locale-specific day periods, which indicate roughly how a day is broken up\r\n * in different languages.\r\n * For example, for `en-US`, periods are morning, noon, afternoon, evening, and midnight.\r\n *\r\n * This functionality is only available when you have loaded the full locale data.\r\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param formStyle The required grammatical form.\r\n * @param width The required character width.\r\n * @returns The translated day-period strings.\r\n * @see `getLocaleExtraDayPeriodRules()`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleExtraDayPeriods(locale: string, formStyle: FormStyle, width: TranslationWidth): string[];\r\n\r\n/**\r\n * Retrieves the first day of the week for the given locale.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @returns A day index number, using the 0-based week-day index for `en-US`\r\n * (Sunday = 0, Monday = 1, ...).\r\n * For example, for `fr-FR`, returns 1 to indicate that the first day is Monday.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleFirstDayOfWeek(locale: string): WeekDay;\r\n\r\n/**\r\n * Retrieves the locale ID from the currently loaded locale.\r\n * The loaded locale could be, for example, a global one rather than a regional one.\r\n * @param locale A locale code, such as `fr-FR`.\r\n * @returns The locale code. For example, `fr`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleId(locale: string): string;\r\n\r\n/**\r\n * Retrieves months of the year for the given locale, using the Gregorian calendar.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param formStyle The required grammatical form.\r\n * @param width The required character width.\r\n * @returns An array of localized name strings.\r\n * For example,  `[January, February, ...]` for `en-US`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleMonthNames(locale: string, formStyle: FormStyle, width: TranslationWidth): ReadonlyArray<string>;\r\n\r\n/**\r\n * Retrieves a number format for a given locale.\r\n *\r\n * Numbers are formatted using patterns, like `#,###.00`. For example, the pattern `#,###.00`\r\n * when used to format the number 12345.678 could result in \"12'345,678\". That would happen if the\r\n * grouping separator for your language is an apostrophe, and the decimal separator is a comma.\r\n *\r\n * <b>Important:</b> The characters `.` `,` `0` `#` (and others below) are special placeholders\r\n * that stand for the decimal separator, and so on, and are NOT real characters.\r\n * You must NOT \"translate\" the placeholders. For example, don't change `.` to `,` even though in\r\n * your language the decimal point is written with a comma. The symbols should be replaced by the\r\n * local equivalents, using the appropriate `NumberSymbol` for your language.\r\n *\r\n * Here are the special characters used in number patterns:\r\n *\r\n * | Symbol | Meaning |\r\n * |--------|---------|\r\n * | . | Replaced automatically by the character used for the decimal point. |\r\n * | , | Replaced by the \"grouping\" (thousands) separator. |\r\n * | 0 | Replaced by a digit (or zero if there aren't enough digits). |\r\n * | # | Replaced by a digit (or nothing if there aren't enough). |\r\n * | ¤ | Replaced by a currency symbol, such as $ or USD. |\r\n * | % | Marks a percent format. The % symbol may change position, but must be retained. |\r\n * | E | Marks a scientific format. The E symbol may change position, but must be retained. |\r\n * | ' | Special characters used as literal characters are quoted with ASCII single quotes. |\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param type The type of numeric value to be formatted (such as `Decimal` or `Currency`.)\r\n * @returns The localized format string.\r\n * @see `NumberFormatStyle`\r\n * @see [CLDR website](http://cldr.unicode.org/translation/number-patterns)\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleNumberFormat(locale: string, type: NumberFormatStyle): string;\r\n\r\n/**\r\n * Retrieves a localized number symbol that can be used to replace placeholders in number formats.\r\n * @param locale The locale code.\r\n * @param symbol The symbol to localize.\r\n * @returns The character for the localized symbol.\r\n * @see `NumberSymbol`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleNumberSymbol(locale: string, symbol: NumberSymbol): string;\r\n\r\n/**\r\n * @alias core/ɵgetLocalePluralCase\r\n * @publicApi\r\n */\r\nexport declare const getLocalePluralCase: (locale: string) => ((value: number) => Plural);\r\n\r\n/**\r\n * Retrieves a localized time-value formatting string.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @param width The format type.\r\n * @returns The localized formatting string.\r\n * @see `FormatWidth`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n\r\n * @publicApi\r\n */\r\nexport declare function getLocaleTimeFormat(locale: string, width: FormatWidth): string;\r\n\r\n/**\r\n * Range of week days that are considered the week-end for the given locale.\r\n *\r\n * @param locale A locale code for the locale format rules to use.\r\n * @returns The range of day values, `[startDay, endDay]`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getLocaleWeekEndRange(locale: string): [WeekDay, WeekDay];\r\n\r\n/**\r\n * Reports the number of decimal digits for a given currency.\r\n * The value depends upon the presence of cents in that particular currency.\r\n *\r\n * @param code The currency code.\r\n * @returns The number of decimal digits, typically 0 or 2.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getNumberOfCurrencyDigits(code: string): number;\r\n\r\n/**\r\n * @description\r\n * A {@link LocationStrategy} used to configure the {@link Location} service to\r\n * represent its state in the\r\n * [hash fragment](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax)\r\n * of the browser's URL.\r\n *\r\n * For instance, if you call `location.go('/foo')`, the browser's URL will become\r\n * `example.com#/foo`.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Example\r\n *\r\n * {@example common/location/ts/hash_location_component.ts region='LocationComponent'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class HashLocationStrategy extends LocationStrategy implements OnDestroy {\r\n    private _platformLocation;\r\n    private _baseHref;\r\n    private _removeListenerFns;\r\n    constructor(_platformLocation: PlatformLocation, _baseHref?: string);\r\n    ngOnDestroy(): void;\r\n    onPopState(fn: LocationChangeListener): void;\r\n    getBaseHref(): string;\r\n    path(includeHash?: boolean): string;\r\n    prepareExternalUrl(internal: string): string;\r\n    pushState(state: any, title: string, path: string, queryParams: string): void;\r\n    replaceState(state: any, title: string, path: string, queryParams: string): void;\r\n    forward(): void;\r\n    back(): void;\r\n    historyGo(relativePosition?: number): void;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Maps a value to a string that pluralizes the value according to locale rules.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Example\r\n *\r\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nPluralPipeComponent'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class I18nPluralPipe implements PipeTransform {\r\n    private _localization;\r\n    constructor(_localization: NgLocalization);\r\n    /**\r\n     * @param value the number to be formatted\r\n     * @param pluralMap an object that mimics the ICU format, see\r\n     * http://userguide.icu-project.org/formatparse/messages.\r\n     * @param locale a `string` defining the locale to use (uses the current {@link LOCALE_ID} by\r\n     * default).\r\n     */\r\n    transform(value: number | null | undefined, pluralMap: {\r\n        [count: string]: string;\r\n    }, locale?: string): string;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Generic selector that displays the string that matches the current value.\r\n *\r\n * If none of the keys of the `mapping` match the `value`, then the content\r\n * of the `other` key is returned when present, otherwise an empty string is returned.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Example\r\n *\r\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nSelectPipeComponent'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class I18nSelectPipe implements PipeTransform {\r\n    /**\r\n     * @param value a string to be internationalized.\r\n     * @param mapping an object that indicates the text that should be displayed\r\n     * for different values of the provided `value`.\r\n     */\r\n    transform(value: string | null | undefined, mapping: {\r\n        [key: string]: string;\r\n    }): string;\r\n}\r\n\r\n/**\r\n * Returns whether a platform id represents a browser platform.\r\n * @publicApi\r\n */\r\nexport declare function isPlatformBrowser(platformId: Object): boolean;\r\n\r\n/**\r\n * Returns whether a platform id represents a server platform.\r\n * @publicApi\r\n */\r\nexport declare function isPlatformServer(platformId: Object): boolean;\r\n\r\n/**\r\n * Returns whether a platform id represents a web worker app platform.\r\n * @publicApi\r\n */\r\nexport declare function isPlatformWorkerApp(platformId: Object): boolean;\r\n\r\n/**\r\n * Returns whether a platform id represents a web worker UI platform.\r\n * @publicApi\r\n */\r\nexport declare function isPlatformWorkerUi(platformId: Object): boolean;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Converts a value into its JSON-format representation.  Useful for debugging.\r\n *\r\n * @usageNotes\r\n *\r\n * The following component uses a JSON pipe to convert an object\r\n * to JSON format, and displays the string in both formats for comparison.\r\n *\r\n * {@example common/pipes/ts/json_pipe.ts region='JsonPipe'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class JsonPipe implements PipeTransform {\r\n    /**\r\n     * @param value A value of any type to convert into a JSON-format string.\r\n     */\r\n    transform(value: any): string;\r\n}\r\n\r\n/**\r\n * A key value pair.\r\n * Usually used to represent the key value pairs from a Map or Object.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface KeyValue<K, V> {\r\n    key: K;\r\n    value: V;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Transforms Object or Map into an array of key value pairs.\r\n *\r\n * The output array will be ordered by keys.\r\n * By default the comparator will be by Unicode point value.\r\n * You can optionally pass a compareFn if your keys are complex types.\r\n *\r\n * @usageNotes\r\n * ### Examples\r\n *\r\n * This examples show how an Object or a Map can be iterated by ngFor with the use of this\r\n * keyvalue pipe.\r\n *\r\n * {@example common/pipes/ts/keyvalue_pipe.ts region='KeyValuePipe'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class KeyValuePipe implements PipeTransform {\r\n    private readonly differs;\r\n    constructor(differs: KeyValueDiffers);\r\n    private differ;\r\n    private keyValues;\r\n    private compareFn;\r\n    transform<K, V>(input: ReadonlyMap<K, V>, compareFn?: (a: KeyValue<K, V>, b: KeyValue<K, V>) => number): Array<KeyValue<K, V>>;\r\n    transform<K extends number, V>(input: Record<K, V>, compareFn?: (a: KeyValue<string, V>, b: KeyValue<string, V>) => number): Array<KeyValue<string, V>>;\r\n    transform<K extends string, V>(input: Record<K, V> | ReadonlyMap<K, V>, compareFn?: (a: KeyValue<K, V>, b: KeyValue<K, V>) => number): Array<KeyValue<K, V>>;\r\n    transform(input: null | undefined, compareFn?: (a: KeyValue<unknown, unknown>, b: KeyValue<unknown, unknown>) => number): null;\r\n    transform<K, V>(input: ReadonlyMap<K, V> | null | undefined, compareFn?: (a: KeyValue<K, V>, b: KeyValue<K, V>) => number): Array<KeyValue<K, V>> | null;\r\n    transform<K extends number, V>(input: Record<K, V> | null | undefined, compareFn?: (a: KeyValue<string, V>, b: KeyValue<string, V>) => number): Array<KeyValue<string, V>> | null;\r\n    transform<K extends string, V>(input: Record<K, V> | ReadonlyMap<K, V> | null | undefined, compareFn?: (a: KeyValue<K, V>, b: KeyValue<K, V>) => number): Array<KeyValue<K, V>> | null;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * A service that applications can use to interact with a browser's URL.\r\n *\r\n * Depending on the `LocationStrategy` used, `Location` persists\r\n * to the URL's path or the URL's hash segment.\r\n *\r\n * @usageNotes\r\n *\r\n * It's better to use the `Router.navigate()` service to trigger route changes. Use\r\n * `Location` only if you need to interact with or create normalized URLs outside of\r\n * routing.\r\n *\r\n * `Location` is responsible for normalizing the URL against the application's base href.\r\n * A normalized URL is absolute from the URL host, includes the application's base href, and has no\r\n * trailing slash:\r\n * - `/my/app/user/123` is normalized\r\n * - `my/app/user/123` **is not** normalized\r\n * - `/my/app/user/123/` **is not** normalized\r\n *\r\n * ### Example\r\n *\r\n * <code-example path='common/location/ts/path_location_component.ts'\r\n * region='LocationComponent'></code-example>\r\n *\r\n * @publicApi\r\n */\r\ndeclare class Location_2 {\r\n    constructor(platformStrategy: LocationStrategy, platformLocation: PlatformLocation);\r\n    /**\r\n     * Normalizes the URL path for this location.\r\n     *\r\n     * @param includeHash True to include an anchor fragment in the path.\r\n     *\r\n     * @returns The normalized URL path.\r\n     */\r\n    path(includeHash?: boolean): string;\r\n    /**\r\n     * Reports the current state of the location history.\r\n     * @returns The current value of the `history.state` object.\r\n     */\r\n    getState(): unknown;\r\n    /**\r\n     * Normalizes the given path and compares to the current normalized path.\r\n     *\r\n     * @param path The given URL path.\r\n     * @param query Query parameters.\r\n     *\r\n     * @returns True if the given URL path is equal to the current normalized path, false\r\n     * otherwise.\r\n     */\r\n    isCurrentPathEqualTo(path: string, query?: string): boolean;\r\n    /**\r\n     * Normalizes a URL path by stripping any trailing slashes.\r\n     *\r\n     * @param url String representing a URL.\r\n     *\r\n     * @returns The normalized URL string.\r\n     */\r\n    normalize(url: string): string;\r\n    /**\r\n     * Normalizes an external URL path.\r\n     * If the given URL doesn't begin with a leading slash (`'/'`), adds one\r\n     * before normalizing. Adds a hash if `HashLocationStrategy` is\r\n     * in use, or the `APP_BASE_HREF` if the `PathLocationStrategy` is in use.\r\n     *\r\n     * @param url String representing a URL.\r\n     *\r\n     * @returns  A normalized platform-specific URL.\r\n     */\r\n    prepareExternalUrl(url: string): string;\r\n    /**\r\n     * Changes the browser's URL to a normalized version of a given URL, and pushes a\r\n     * new item onto the platform's history.\r\n     *\r\n     * @param path  URL path to normalize.\r\n     * @param query Query parameters.\r\n     * @param state Location history state.\r\n     *\r\n     */\r\n    go(path: string, query?: string, state?: any): void;\r\n    /**\r\n     * Changes the browser's URL to a normalized version of the given URL, and replaces\r\n     * the top item on the platform's history stack.\r\n     *\r\n     * @param path  URL path to normalize.\r\n     * @param query Query parameters.\r\n     * @param state Location history state.\r\n     */\r\n    replaceState(path: string, query?: string, state?: any): void;\r\n    /**\r\n     * Navigates forward in the platform's history.\r\n     */\r\n    forward(): void;\r\n    /**\r\n     * Navigates back in the platform's history.\r\n     */\r\n    back(): void;\r\n    /**\r\n     * Navigate to a specific page from session history, identified by its relative position to the\r\n     * current page.\r\n     *\r\n     * @param relativePosition  Position of the target page in the history relative to the current\r\n     *     page.\r\n     * A negative value moves backwards, a positive value moves forwards, e.g. `location.historyGo(2)`\r\n     * moves forward two pages and `location.historyGo(-2)` moves back two pages. When we try to go\r\n     * beyond what's stored in the history session, we stay in the current page. Same behaviour occurs\r\n     * when `relativePosition` equals 0.\r\n     * @see https://developer.mozilla.org/en-US/docs/Web/API/History_API#Moving_to_a_specific_point_in_history\r\n     */\r\n    historyGo(relativePosition?: number): void;\r\n    /**\r\n     * Registers a URL change listener. Use to catch updates performed by the Angular\r\n     * framework that are not detectible through \"popstate\" or \"hashchange\" events.\r\n     *\r\n     * @param fn The change handler function, which take a URL and a location history state.\r\n     */\r\n    onUrlChange(fn: (url: string, state: unknown) => void): void;\r\n    /**\r\n     * Subscribes to the platform's `popState` events.\r\n     *\r\n     * Note: `Location.go()` does not trigger the `popState` event in the browser. Use\r\n     * `Location.onUrlChange()` to subscribe to URL changes instead.\r\n     *\r\n     * @param value Event that is triggered when the state history changes.\r\n     * @param exception The exception to throw.\r\n     *\r\n     * @see [onpopstate](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate)\r\n     *\r\n     * @returns Subscribed events.\r\n     */\r\n    subscribe(onNext: (value: PopStateEvent_2) => void, onThrow?: ((exception: any) => void) | null, onReturn?: (() => void) | null): SubscriptionLike;\r\n    /**\r\n     * Normalizes URL parameters by prepending with `?` if needed.\r\n     *\r\n     * @param  params String of URL parameters.\r\n     *\r\n     * @returns The normalized URL parameters string.\r\n     */\r\n    static normalizeQueryParams: (params: string) => string;\r\n    /**\r\n     * Joins two parts of a URL with a slash if needed.\r\n     *\r\n     * @param start  URL string\r\n     * @param end    URL string\r\n     *\r\n     *\r\n     * @returns The joined URL string.\r\n     */\r\n    static joinWithSlash: (start: string, end: string) => string;\r\n    /**\r\n     * Removes a trailing slash from a URL string if needed.\r\n     * Looks for the first occurrence of either `#`, `?`, or the end of the\r\n     * line as `/` characters and removes the trailing slash if one exists.\r\n     *\r\n     * @param url URL string.\r\n     *\r\n     * @returns The URL string, modified if needed.\r\n     */\r\n    static stripTrailingSlash: (url: string) => string;\r\n}\r\nexport { Location_2 as Location }\r\n\r\n/**\r\n * @description\r\n * Indicates when a location is initialized.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const LOCATION_INITIALIZED: InjectionToken<Promise<any>>;\r\n\r\n/**\r\n * @description\r\n * A serializable version of the event from `onPopState` or `onHashChange`\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface LocationChangeEvent {\r\n    type: string;\r\n    state: any;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare interface LocationChangeListener {\r\n    (event: LocationChangeEvent): any;\r\n}\r\n\r\n/**\r\n * Enables the `Location` service to read route state from the browser's URL.\r\n * Angular provides two strategies:\r\n * `HashLocationStrategy` and `PathLocationStrategy`.\r\n *\r\n * Applications should use the `Router` or `Location` services to\r\n * interact with application route state.\r\n *\r\n * For instance, `HashLocationStrategy` produces URLs like\r\n * <code class=\"no-auto-link\">http://example.com#/foo</code>,\r\n * and `PathLocationStrategy` produces\r\n * <code class=\"no-auto-link\">http://example.com/foo</code> as an equivalent URL.\r\n *\r\n * See these two classes for more.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class LocationStrategy {\r\n    abstract path(includeHash?: boolean): string;\r\n    abstract prepareExternalUrl(internal: string): string;\r\n    abstract pushState(state: any, title: string, url: string, queryParams: string): void;\r\n    abstract replaceState(state: any, title: string, url: string, queryParams: string): void;\r\n    abstract forward(): void;\r\n    abstract back(): void;\r\n    historyGo?(relativePosition: number): void;\r\n    abstract onPopState(fn: LocationChangeListener): void;\r\n    abstract getBaseHref(): string;\r\n}\r\n\r\n/**\r\n * Transforms text to all lower case.\r\n *\r\n * @see `UpperCasePipe`\r\n * @see `TitleCasePipe`\r\n * @usageNotes\r\n *\r\n * The following example defines a view that allows the user to enter\r\n * text, and then uses the pipe to convert the input text to all lower case.\r\n *\r\n * <code-example path=\"common/pipes/ts/lowerupper_pipe.ts\" region='LowerUpperPipe'></code-example>\r\n *\r\n * @ngModule CommonModule\r\n * @publicApi\r\n */\r\nexport declare class LowerCasePipe implements PipeTransform {\r\n    /**\r\n     * @param value The string to transform to lower case.\r\n     */\r\n    transform(value: string): string;\r\n    transform(value: null | undefined): null;\r\n    transform(value: string | null | undefined): string | null;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @usageNotes\r\n * ```\r\n *     <some-element [ngClass]=\"'first second'\">...</some-element>\r\n *\r\n *     <some-element [ngClass]=\"['first', 'second']\">...</some-element>\r\n *\r\n *     <some-element [ngClass]=\"{'first': true, 'second': true, 'third': false}\">...</some-element>\r\n *\r\n *     <some-element [ngClass]=\"stringExp|arrayExp|objExp\">...</some-element>\r\n *\r\n *     <some-element [ngClass]=\"{'class1 class2 class3' : true}\">...</some-element>\r\n * ```\r\n *\r\n * @description\r\n *\r\n * Adds and removes CSS classes on an HTML element.\r\n *\r\n * The CSS classes are updated as follows, depending on the type of the expression evaluation:\r\n * - `string` - the CSS classes listed in the string (space delimited) are added,\r\n * - `Array` - the CSS classes declared as Array elements are added,\r\n * - `Object` - keys are CSS classes that get added when the expression given in the value\r\n *              evaluates to a truthy value, otherwise they are removed.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgClass implements DoCheck {\r\n    private _iterableDiffers;\r\n    private _keyValueDiffers;\r\n    private _ngEl;\r\n    private _renderer;\r\n    private _iterableDiffer;\r\n    private _keyValueDiffer;\r\n    private _initialClasses;\r\n    private _rawClass;\r\n    constructor(_iterableDiffers: IterableDiffers, _keyValueDiffers: KeyValueDiffers, _ngEl: ElementRef, _renderer: Renderer2);\r\n    set klass(value: string);\r\n    set ngClass(value: string | string[] | Set<string> | {\r\n        [klass: string]: any;\r\n    });\r\n    ngDoCheck(): void;\r\n    private _applyKeyValueChanges;\r\n    private _applyIterableChanges;\r\n    /**\r\n     * Applies a collection of CSS classes to the DOM element.\r\n     *\r\n     * For argument of type Set and Array CSS class names contained in those collections are always\r\n     * added.\r\n     * For argument of type Map CSS class name in the map's key is toggled based on the value (added\r\n     * for truthy and removed for falsy).\r\n     */\r\n    private _applyClasses;\r\n    /**\r\n     * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup\r\n     * purposes.\r\n     */\r\n    private _removeClasses;\r\n    private _toggleClass;\r\n}\r\n\r\n/**\r\n * Instantiates a {@link Component} type and inserts its Host View into the current View.\r\n * `NgComponentOutlet` provides a declarative approach for dynamic component creation.\r\n *\r\n * `NgComponentOutlet` requires a component type, if a falsy value is set the view will clear and\r\n * any existing component will be destroyed.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Fine tune control\r\n *\r\n * You can control the component creation process by using the following optional attributes:\r\n *\r\n * * `ngComponentOutletInjector`: Optional custom {@link Injector} that will be used as parent for\r\n * the Component. Defaults to the injector of the current view container.\r\n *\r\n * * `ngComponentOutletContent`: Optional list of projectable nodes to insert into the content\r\n * section of the component, if it exists.\r\n *\r\n * * `ngComponentOutletNgModuleFactory`: Optional module factory to allow loading another\r\n * module dynamically, then loading a component from that module.\r\n *\r\n * ### Syntax\r\n *\r\n * Simple\r\n * ```\r\n * <ng-container *ngComponentOutlet=\"componentTypeExpression\"></ng-container>\r\n * ```\r\n *\r\n * Customized injector/content\r\n * ```\r\n * <ng-container *ngComponentOutlet=\"componentTypeExpression;\r\n *                                   injector: injectorExpression;\r\n *                                   content: contentNodesExpression;\">\r\n * </ng-container>\r\n * ```\r\n *\r\n * Customized ngModuleFactory\r\n * ```\r\n * <ng-container *ngComponentOutlet=\"componentTypeExpression;\r\n *                                   ngModuleFactory: moduleFactory;\">\r\n * </ng-container>\r\n * ```\r\n *\r\n * ### A simple example\r\n *\r\n * {@example common/ngComponentOutlet/ts/module.ts region='SimpleExample'}\r\n *\r\n * A more complete example with additional options:\r\n *\r\n * {@example common/ngComponentOutlet/ts/module.ts region='CompleteExample'}\r\n *\r\n * @publicApi\r\n * @ngModule CommonModule\r\n */\r\nexport declare class NgComponentOutlet implements OnChanges, OnDestroy {\r\n    private _viewContainerRef;\r\n    ngComponentOutlet: Type<any>;\r\n    ngComponentOutletInjector: Injector;\r\n    ngComponentOutletContent: any[][];\r\n    ngComponentOutletNgModuleFactory: NgModuleFactory<any>;\r\n    private _componentRef;\r\n    private _moduleRef;\r\n    constructor(_viewContainerRef: ViewContainerRef);\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n    ngOnDestroy(): void;\r\n}\r\n\r\n/**\r\n * A [structural directive](guide/structural-directives) that renders\r\n * a template for each item in a collection.\r\n * The directive is placed on an element, which becomes the parent\r\n * of the cloned templates.\r\n *\r\n * The `ngForOf` directive is generally used in the\r\n * [shorthand form](guide/structural-directives#asterisk) `*ngFor`.\r\n * In this form, the template to be rendered for each iteration is the content\r\n * of an anchor element containing the directive.\r\n *\r\n * The following example shows the shorthand syntax with some options,\r\n * contained in an `<li>` element.\r\n *\r\n * ```\r\n * <li *ngFor=\"let item of items; index as i; trackBy: trackByFn\">...</li>\r\n * ```\r\n *\r\n * The shorthand form expands into a long form that uses the `ngForOf` selector\r\n * on an `<ng-template>` element.\r\n * The content of the `<ng-template>` element is the `<li>` element that held the\r\n * short-form directive.\r\n *\r\n * Here is the expanded version of the short-form example.\r\n *\r\n * ```\r\n * <ng-template ngFor let-item [ngForOf]=\"items\" let-i=\"index\" [ngForTrackBy]=\"trackByFn\">\r\n *   <li>...</li>\r\n * </ng-template>\r\n * ```\r\n *\r\n * Angular automatically expands the shorthand syntax as it compiles the template.\r\n * The context for each embedded view is logically merged to the current component\r\n * context according to its lexical position.\r\n *\r\n * When using the shorthand syntax, Angular allows only [one structural directive\r\n * on an element](guide/built-in-directives#one-per-element).\r\n * If you want to iterate conditionally, for example,\r\n * put the `*ngIf` on a container element that wraps the `*ngFor` element.\r\n * For futher discussion, see\r\n * [Structural Directives](guide/built-in-directives#one-per-element).\r\n *\r\n * @usageNotes\r\n *\r\n * ### Local variables\r\n *\r\n * `NgForOf` provides exported values that can be aliased to local variables.\r\n * For example:\r\n *\r\n *  ```\r\n * <li *ngFor=\"let user of users; index as i; first as isFirst\">\r\n *    {{i}}/{{users.length}}. {{user}} <span *ngIf=\"isFirst\">default</span>\r\n * </li>\r\n * ```\r\n *\r\n * The following exported values can be aliased to local variables:\r\n *\r\n * - `$implicit: T`: The value of the individual items in the iterable (`ngForOf`).\r\n * - `ngForOf: NgIterable<T>`: The value of the iterable expression. Useful when the expression is\r\n * more complex then a property access, for example when using the async pipe (`userStreams |\r\n * async`).\r\n * - `index: number`: The index of the current item in the iterable.\r\n * - `count: number`: The length of the iterable.\r\n * - `first: boolean`: True when the item is the first item in the iterable.\r\n * - `last: boolean`: True when the item is the last item in the iterable.\r\n * - `even: boolean`: True when the item has an even index in the iterable.\r\n * - `odd: boolean`: True when the item has an odd index in the iterable.\r\n *\r\n * ### Change propagation\r\n *\r\n * When the contents of the iterator changes, `NgForOf` makes the corresponding changes to the DOM:\r\n *\r\n * * When an item is added, a new instance of the template is added to the DOM.\r\n * * When an item is removed, its template instance is removed from the DOM.\r\n * * When items are reordered, their respective templates are reordered in the DOM.\r\n *\r\n * Angular uses object identity to track insertions and deletions within the iterator and reproduce\r\n * those changes in the DOM. This has important implications for animations and any stateful\r\n * controls that are present, such as `<input>` elements that accept user input. Inserted rows can\r\n * be animated in, deleted rows can be animated out, and unchanged rows retain any unsaved state\r\n * such as user input.\r\n * For more on animations, see [Transitions and Triggers](guide/transition-and-triggers).\r\n *\r\n * The identities of elements in the iterator can change while the data does not.\r\n * This can happen, for example, if the iterator is produced from an RPC to the server, and that\r\n * RPC is re-run. Even if the data hasn't changed, the second response produces objects with\r\n * different identities, and Angular must tear down the entire DOM and rebuild it (as if all old\r\n * elements were deleted and all new elements inserted).\r\n *\r\n * To avoid this expensive operation, you can customize the default tracking algorithm.\r\n * by supplying the `trackBy` option to `NgForOf`.\r\n * `trackBy` takes a function that has two arguments: `index` and `item`.\r\n * If `trackBy` is given, Angular tracks changes by the return value of the function.\r\n *\r\n * @see [Structural Directives](guide/structural-directives)\r\n * @ngModule CommonModule\r\n * @publicApi\r\n */\r\nexport declare class NgForOf<T, U extends NgIterable<T> = NgIterable<T>> implements DoCheck {\r\n    private _viewContainer;\r\n    private _template;\r\n    private _differs;\r\n    /**\r\n     * The value of the iterable expression, which can be used as a\r\n     * [template input variable](guide/structural-directives#shorthand).\r\n     */\r\n    set ngForOf(ngForOf: U & NgIterable<T> | undefined | null);\r\n    /**\r\n     * Specifies a custom `TrackByFunction` to compute the identity of items in an iterable.\r\n     *\r\n     * If a custom `TrackByFunction` is not provided, `NgForOf` will use the item's [object\r\n     * identity](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is)\r\n     * as the key.\r\n     *\r\n     * `NgForOf` uses the computed key to associate items in an iterable with DOM elements\r\n     * it produces for these items.\r\n     *\r\n     * A custom `TrackByFunction` is useful to provide good user experience in cases when items in an\r\n     * iterable rendered using `NgForOf` have a natural identifier (for example, custom ID or a\r\n     * primary key), and this iterable could be updated with new object instances that still\r\n     * represent the same underlying entity (for example, when data is re-fetched from the server,\r\n     * and the iterable is recreated and re-rendered, but most of the data is still the same).\r\n     *\r\n     * @see `TrackByFunction`\r\n     */\r\n    set ngForTrackBy(fn: TrackByFunction<T>);\r\n    get ngForTrackBy(): TrackByFunction<T>;\r\n    private _ngForOf;\r\n    private _ngForOfDirty;\r\n    private _differ;\r\n    private _trackByFn;\r\n    constructor(_viewContainer: ViewContainerRef, _template: TemplateRef<NgForOfContext<T, U>>, _differs: IterableDiffers);\r\n    /**\r\n     * A reference to the template that is stamped out for each item in the iterable.\r\n     * @see [template reference variable](guide/template-reference-variables)\r\n     */\r\n    set ngForTemplate(value: TemplateRef<NgForOfContext<T, U>>);\r\n    /**\r\n     * Applies the changes when needed.\r\n     */\r\n    ngDoCheck(): void;\r\n    private _applyChanges;\r\n    private _perViewChange;\r\n    /**\r\n     * Asserts the correct type of the context for the template that `NgForOf` will render.\r\n     *\r\n     * The presence of this method is a signal to the Ivy template type-check compiler that the\r\n     * `NgForOf` structural directive renders its template with a specific context type.\r\n     */\r\n    static ngTemplateContextGuard<T, U extends NgIterable<T>>(dir: NgForOf<T, U>, ctx: any): ctx is NgForOfContext<T, U>;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare class NgForOfContext<T, U extends NgIterable<T> = NgIterable<T>> {\r\n    $implicit: T;\r\n    ngForOf: U;\r\n    index: number;\r\n    count: number;\r\n    constructor($implicit: T, ngForOf: U, index: number, count: number);\r\n    get first(): boolean;\r\n    get last(): boolean;\r\n    get even(): boolean;\r\n    get odd(): boolean;\r\n}\r\n\r\n/**\r\n * A structural directive that conditionally includes a template based on the value of\r\n * an expression coerced to Boolean.\r\n * When the expression evaluates to true, Angular renders the template\r\n * provided in a `then` clause, and when  false or null,\r\n * Angular renders the template provided in an optional `else` clause. The default\r\n * template for the `else` clause is blank.\r\n *\r\n * A [shorthand form](guide/structural-directives#asterisk) of the directive,\r\n * `*ngIf=\"condition\"`, is generally used, provided\r\n * as an attribute of the anchor element for the inserted template.\r\n * Angular expands this into a more explicit version, in which the anchor element\r\n * is contained in an `<ng-template>` element.\r\n *\r\n * Simple form with shorthand syntax:\r\n *\r\n * ```\r\n * <div *ngIf=\"condition\">Content to render when condition is true.</div>\r\n * ```\r\n *\r\n * Simple form with expanded syntax:\r\n *\r\n * ```\r\n * <ng-template [ngIf]=\"condition\"><div>Content to render when condition is\r\n * true.</div></ng-template>\r\n * ```\r\n *\r\n * Form with an \"else\" block:\r\n *\r\n * ```\r\n * <div *ngIf=\"condition; else elseBlock\">Content to render when condition is true.</div>\r\n * <ng-template #elseBlock>Content to render when condition is false.</ng-template>\r\n * ```\r\n *\r\n * Shorthand form with \"then\" and \"else\" blocks:\r\n *\r\n * ```\r\n * <div *ngIf=\"condition; then thenBlock else elseBlock\"></div>\r\n * <ng-template #thenBlock>Content to render when condition is true.</ng-template>\r\n * <ng-template #elseBlock>Content to render when condition is false.</ng-template>\r\n * ```\r\n *\r\n * Form with storing the value locally:\r\n *\r\n * ```\r\n * <div *ngIf=\"condition as value; else elseBlock\">{{value}}</div>\r\n * <ng-template #elseBlock>Content to render when value is null.</ng-template>\r\n * ```\r\n *\r\n * @usageNotes\r\n *\r\n * The `*ngIf` directive is most commonly used to conditionally show an inline template,\r\n * as seen in the following  example.\r\n * The default `else` template is blank.\r\n *\r\n * {@example common/ngIf/ts/module.ts region='NgIfSimple'}\r\n *\r\n * ### Showing an alternative template using `else`\r\n *\r\n * To display a template when `expression` evaluates to false, use an `else` template\r\n * binding as shown in the following example.\r\n * The `else` binding points to an `<ng-template>`  element labeled `#elseBlock`.\r\n * The template can be defined anywhere in the component view, but is typically placed right after\r\n * `ngIf` for readability.\r\n *\r\n * {@example common/ngIf/ts/module.ts region='NgIfElse'}\r\n *\r\n * ### Using an external `then` template\r\n *\r\n * In the previous example, the then-clause template is specified inline, as the content of the\r\n * tag that contains the `ngIf` directive. You can also specify a template that is defined\r\n * externally, by referencing a labeled `<ng-template>` element. When you do this, you can\r\n * change which template to use at runtime, as shown in the following example.\r\n *\r\n * {@example common/ngIf/ts/module.ts region='NgIfThenElse'}\r\n *\r\n * ### Storing a conditional result in a variable\r\n *\r\n * You might want to show a set of properties from the same object. If you are waiting\r\n * for asynchronous data, the object can be undefined.\r\n * In this case, you can use `ngIf` and store the result of the condition in a local\r\n * variable as shown in the following example.\r\n *\r\n * {@example common/ngIf/ts/module.ts region='NgIfAs'}\r\n *\r\n * This code uses only one `AsyncPipe`, so only one subscription is created.\r\n * The conditional statement stores the result of `userStream|async` in the local variable `user`.\r\n * You can then bind the local `user` repeatedly.\r\n *\r\n * The conditional displays the data only if `userStream` returns a value,\r\n * so you don't need to use the\r\n * safe-navigation-operator (`?.`)\r\n * to guard against null values when accessing properties.\r\n * You can display an alternative template while waiting for the data.\r\n *\r\n * ### Shorthand syntax\r\n *\r\n * The shorthand syntax `*ngIf` expands into two separate template specifications\r\n * for the \"then\" and \"else\" clauses. For example, consider the following shorthand statement,\r\n * that is meant to show a loading page while waiting for data to be loaded.\r\n *\r\n * ```\r\n * <div class=\"hero-list\" *ngIf=\"heroes else loading\">\r\n *  ...\r\n * </div>\r\n *\r\n * <ng-template #loading>\r\n *  <div>Loading...</div>\r\n * </ng-template>\r\n * ```\r\n *\r\n * You can see that the \"else\" clause references the `<ng-template>`\r\n * with the `#loading` label, and the template for the \"then\" clause\r\n * is provided as the content of the anchor element.\r\n *\r\n * However, when Angular expands the shorthand syntax, it creates\r\n * another `<ng-template>` tag, with `ngIf` and `ngIfElse` directives.\r\n * The anchor element containing the template for the \"then\" clause becomes\r\n * the content of this unlabeled `<ng-template>` tag.\r\n *\r\n * ```\r\n * <ng-template [ngIf]=\"heroes\" [ngIfElse]=\"loading\">\r\n *  <div class=\"hero-list\">\r\n *   ...\r\n *  </div>\r\n * </ng-template>\r\n *\r\n * <ng-template #loading>\r\n *  <div>Loading...</div>\r\n * </ng-template>\r\n * ```\r\n *\r\n * The presence of the implicit template object has implications for the nesting of\r\n * structural directives. For more on this subject, see\r\n * [Structural Directives](https://angular.io/guide/built-in-directives#one-per-element).\r\n *\r\n * @ngModule CommonModule\r\n * @publicApi\r\n */\r\nexport declare class NgIf<T = unknown> {\r\n    private _viewContainer;\r\n    private _context;\r\n    private _thenTemplateRef;\r\n    private _elseTemplateRef;\r\n    private _thenViewRef;\r\n    private _elseViewRef;\r\n    constructor(_viewContainer: ViewContainerRef, templateRef: TemplateRef<NgIfContext<T>>);\r\n    /**\r\n     * The Boolean expression to evaluate as the condition for showing a template.\r\n     */\r\n    set ngIf(condition: T);\r\n    /**\r\n     * A template to show if the condition expression evaluates to true.\r\n     */\r\n    set ngIfThen(templateRef: TemplateRef<NgIfContext<T>> | null);\r\n    /**\r\n     * A template to show if the condition expression evaluates to false.\r\n     */\r\n    set ngIfElse(templateRef: TemplateRef<NgIfContext<T>> | null);\r\n    private _updateView;\r\n    /**\r\n     * Assert the correct type of the expression bound to the `ngIf` input within the template.\r\n     *\r\n     * The presence of this static field is a signal to the Ivy template type check compiler that\r\n     * when the `NgIf` structural directive renders its template, the type of the expression bound\r\n     * to `ngIf` should be narrowed in some way. For `NgIf`, the binding expression itself is used to\r\n     * narrow its type, which allows the strictNullChecks feature of TypeScript to work with `NgIf`.\r\n     */\r\n    static ngTemplateGuard_ngIf: 'binding';\r\n    /**\r\n     * Asserts the correct type of the context for the template that `NgIf` will render.\r\n     *\r\n     * The presence of this method is a signal to the Ivy template type-check compiler that the\r\n     * `NgIf` structural directive renders its template with a specific context type.\r\n     */\r\n    static ngTemplateContextGuard<T>(dir: NgIf<T>, ctx: any): ctx is NgIfContext<Exclude<T, false | 0 | '' | null | undefined>>;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare class NgIfContext<T = unknown> {\r\n    $implicit: T;\r\n    ngIf: T;\r\n}\r\n\r\n/**\r\n * Returns the plural case based on the locale\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgLocaleLocalization extends NgLocalization {\r\n    protected locale: string;\r\n    constructor(locale: string);\r\n    getPluralCategory(value: any, locale?: string): string;\r\n}\r\n\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare abstract class NgLocalization {\r\n    abstract getPluralCategory(value: any, locale?: string): string;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @usageNotes\r\n * ```\r\n * <some-element [ngPlural]=\"value\">\r\n *   <ng-template ngPluralCase=\"=0\">there is nothing</ng-template>\r\n *   <ng-template ngPluralCase=\"=1\">there is one</ng-template>\r\n *   <ng-template ngPluralCase=\"few\">there are a few</ng-template>\r\n * </some-element>\r\n * ```\r\n *\r\n * @description\r\n *\r\n * Adds / removes DOM sub-trees based on a numeric value. Tailored for pluralization.\r\n *\r\n * Displays DOM sub-trees that match the switch expression value, or failing that, DOM sub-trees\r\n * that match the switch expression's pluralization category.\r\n *\r\n * To use this directive you must provide a container element that sets the `[ngPlural]` attribute\r\n * to a switch expression. Inner elements with a `[ngPluralCase]` will display based on their\r\n * expression:\r\n * - if `[ngPluralCase]` is set to a value starting with `=`, it will only display if the value\r\n *   matches the switch expression exactly,\r\n * - otherwise, the view will be treated as a \"category match\", and will only display if exact\r\n *   value matches aren't found and the value maps to its category for the defined locale.\r\n *\r\n * See http://cldr.unicode.org/index/cldr-spec/plural-rules\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgPlural {\r\n    private _localization;\r\n    private _switchValue;\r\n    private _activeView;\r\n    private _caseViews;\r\n    constructor(_localization: NgLocalization);\r\n    set ngPlural(value: number);\r\n    addCase(value: string, switchView: SwitchView): void;\r\n    private _updateView;\r\n    private _clearViews;\r\n    private _activateView;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @description\r\n *\r\n * Creates a view that will be added/removed from the parent {@link NgPlural} when the\r\n * given expression matches the plural expression according to CLDR rules.\r\n *\r\n * @usageNotes\r\n * ```\r\n * <some-element [ngPlural]=\"value\">\r\n *   <ng-template ngPluralCase=\"=0\">...</ng-template>\r\n *   <ng-template ngPluralCase=\"other\">...</ng-template>\r\n * </some-element>\r\n *```\r\n *\r\n * See {@link NgPlural} for more details and example.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgPluralCase {\r\n    value: string;\r\n    constructor(value: string, template: TemplateRef<Object>, viewContainer: ViewContainerRef, ngPlural: NgPlural);\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @usageNotes\r\n *\r\n * Set the font of the containing element to the result of an expression.\r\n *\r\n * ```\r\n * <some-element [ngStyle]=\"{'font-style': styleExp}\">...</some-element>\r\n * ```\r\n *\r\n * Set the width of the containing element to a pixel value returned by an expression.\r\n *\r\n * ```\r\n * <some-element [ngStyle]=\"{'max-width.px': widthExp}\">...</some-element>\r\n * ```\r\n *\r\n * Set a collection of style values using an expression that returns key-value pairs.\r\n *\r\n * ```\r\n * <some-element [ngStyle]=\"objExp\">...</some-element>\r\n * ```\r\n *\r\n * @description\r\n *\r\n * An attribute directive that updates styles for the containing HTML element.\r\n * Sets one or more style properties, specified as colon-separated key-value pairs.\r\n * The key is a style name, with an optional `.<unit>` suffix\r\n * (such as 'top.px', 'font-style.em').\r\n * The value is an expression to be evaluated.\r\n * The resulting non-null value, expressed in the given unit,\r\n * is assigned to the given style property.\r\n * If the result of evaluation is null, the corresponding style is removed.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgStyle implements DoCheck {\r\n    private _ngEl;\r\n    private _differs;\r\n    private _renderer;\r\n    private _ngStyle;\r\n    private _differ;\r\n    constructor(_ngEl: ElementRef, _differs: KeyValueDiffers, _renderer: Renderer2);\r\n    set ngStyle(values: {\r\n        [klass: string]: any;\r\n    } | null);\r\n    ngDoCheck(): void;\r\n    private _setStyle;\r\n    private _applyChanges;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @description\r\n * The `[ngSwitch]` directive on a container specifies an expression to match against.\r\n * The expressions to match are provided by `ngSwitchCase` directives on views within the container.\r\n * - Every view that matches is rendered.\r\n * - If there are no matches, a view with the `ngSwitchDefault` directive is rendered.\r\n * - Elements within the `[NgSwitch]` statement but outside of any `NgSwitchCase`\r\n * or `ngSwitchDefault` directive are preserved at the location.\r\n *\r\n * @usageNotes\r\n * Define a container element for the directive, and specify the switch expression\r\n * to match against as an attribute:\r\n *\r\n * ```\r\n * <container-element [ngSwitch]=\"switch_expression\">\r\n * ```\r\n *\r\n * Within the container, `*ngSwitchCase` statements specify the match expressions\r\n * as attributes. Include `*ngSwitchDefault` as the final case.\r\n *\r\n * ```\r\n * <container-element [ngSwitch]=\"switch_expression\">\r\n *    <some-element *ngSwitchCase=\"match_expression_1\">...</some-element>\r\n * ...\r\n *    <some-element *ngSwitchDefault>...</some-element>\r\n * </container-element>\r\n * ```\r\n *\r\n * ### Usage Examples\r\n *\r\n * The following example shows how to use more than one case to display the same view:\r\n *\r\n * ```\r\n * <container-element [ngSwitch]=\"switch_expression\">\r\n *   <!-- the same view can be shown in more than one case -->\r\n *   <some-element *ngSwitchCase=\"match_expression_1\">...</some-element>\r\n *   <some-element *ngSwitchCase=\"match_expression_2\">...</some-element>\r\n *   <some-other-element *ngSwitchCase=\"match_expression_3\">...</some-other-element>\r\n *   <!--default case when there are no matches -->\r\n *   <some-element *ngSwitchDefault>...</some-element>\r\n * </container-element>\r\n * ```\r\n *\r\n * The following example shows how cases can be nested:\r\n * ```\r\n * <container-element [ngSwitch]=\"switch_expression\">\r\n *       <some-element *ngSwitchCase=\"match_expression_1\">...</some-element>\r\n *       <some-element *ngSwitchCase=\"match_expression_2\">...</some-element>\r\n *       <some-other-element *ngSwitchCase=\"match_expression_3\">...</some-other-element>\r\n *       <ng-container *ngSwitchCase=\"match_expression_3\">\r\n *         <!-- use a ng-container to group multiple root nodes -->\r\n *         <inner-element></inner-element>\r\n *         <inner-other-element></inner-other-element>\r\n *       </ng-container>\r\n *       <some-element *ngSwitchDefault>...</some-element>\r\n *     </container-element>\r\n * ```\r\n *\r\n * @publicApi\r\n * @see `NgSwitchCase`\r\n * @see `NgSwitchDefault`\r\n * @see [Structural Directives](guide/structural-directives)\r\n *\r\n */\r\nexport declare class NgSwitch {\r\n    private _defaultViews;\r\n    private _defaultUsed;\r\n    private _caseCount;\r\n    private _lastCaseCheckIndex;\r\n    private _lastCasesMatched;\r\n    private _ngSwitch;\r\n    set ngSwitch(newValue: any);\r\n    private _updateDefaultCases;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @description\r\n * Provides a switch case expression to match against an enclosing `ngSwitch` expression.\r\n * When the expressions match, the given `NgSwitchCase` template is rendered.\r\n * If multiple match expressions match the switch expression value, all of them are displayed.\r\n *\r\n * @usageNotes\r\n *\r\n * Within a switch container, `*ngSwitchCase` statements specify the match expressions\r\n * as attributes. Include `*ngSwitchDefault` as the final case.\r\n *\r\n * ```\r\n * <container-element [ngSwitch]=\"switch_expression\">\r\n *   <some-element *ngSwitchCase=\"match_expression_1\">...</some-element>\r\n *   ...\r\n *   <some-element *ngSwitchDefault>...</some-element>\r\n * </container-element>\r\n * ```\r\n *\r\n * Each switch-case statement contains an in-line HTML template or template reference\r\n * that defines the subtree to be selected if the value of the match expression\r\n * matches the value of the switch expression.\r\n *\r\n * Unlike JavaScript, which uses strict equality, Angular uses loose equality.\r\n * This means that the empty string, `\"\"` matches 0.\r\n *\r\n * @publicApi\r\n * @see `NgSwitch`\r\n * @see `NgSwitchDefault`\r\n *\r\n */\r\nexport declare class NgSwitchCase implements DoCheck {\r\n    private ngSwitch;\r\n    private _view;\r\n    /**\r\n     * Stores the HTML template to be selected on match.\r\n     */\r\n    ngSwitchCase: any;\r\n    constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<Object>, ngSwitch: NgSwitch);\r\n    /**\r\n     * Performs case matching. For internal use only.\r\n     */\r\n    ngDoCheck(): void;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @description\r\n *\r\n * Creates a view that is rendered when no `NgSwitchCase` expressions\r\n * match the `NgSwitch` expression.\r\n * This statement should be the final case in an `NgSwitch`.\r\n *\r\n * @publicApi\r\n * @see `NgSwitch`\r\n * @see `NgSwitchCase`\r\n *\r\n */\r\nexport declare class NgSwitchDefault {\r\n    constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<Object>, ngSwitch: NgSwitch);\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n *\r\n * @description\r\n *\r\n * Inserts an embedded view from a prepared `TemplateRef`.\r\n *\r\n * You can attach a context object to the `EmbeddedViewRef` by setting `[ngTemplateOutletContext]`.\r\n * `[ngTemplateOutletContext]` should be an object, the object's keys will be available for binding\r\n * by the local template `let` declarations.\r\n *\r\n * @usageNotes\r\n * ```\r\n * <ng-container *ngTemplateOutlet=\"templateRefExp; context: contextExp\"></ng-container>\r\n * ```\r\n *\r\n * Using the key `$implicit` in the context object will set its value as default.\r\n *\r\n * ### Example\r\n *\r\n * {@example common/ngTemplateOutlet/ts/module.ts region='NgTemplateOutlet'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgTemplateOutlet implements OnChanges {\r\n    private _viewContainerRef;\r\n    private _viewRef;\r\n    /**\r\n     * A context object to attach to the {@link EmbeddedViewRef}. This should be an\r\n     * object, the object's keys will be available for binding by the local template `let`\r\n     * declarations.\r\n     * Using the key `$implicit` in the context object will set its value as default.\r\n     */\r\n    ngTemplateOutletContext: Object | null;\r\n    /**\r\n     * A string defining the template reference and optionally the context object for the template.\r\n     */\r\n    ngTemplateOutlet: TemplateRef<any> | null;\r\n    constructor(_viewContainerRef: ViewContainerRef);\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n}\r\n\r\n\r\n/**\r\n * Format styles that can be used to represent numbers.\r\n * @see `getLocaleNumberFormat()`.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum NumberFormatStyle {\r\n    Decimal = 0,\r\n    Percent = 1,\r\n    Currency = 2,\r\n    Scientific = 3\r\n}\r\n\r\n/**\r\n * Symbols that can be used to replace placeholders in number patterns.\r\n * Examples are based on `en-US` values.\r\n *\r\n * @see `getLocaleNumberSymbol()`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum NumberSymbol {\r\n    /**\r\n     * Decimal separator.\r\n     * For `en-US`, the dot character.\r\n     * Example: 2,345`.`67\r\n     */\r\n    Decimal = 0,\r\n    /**\r\n     * Grouping separator, typically for thousands.\r\n     * For `en-US`, the comma character.\r\n     * Example: 2`,`345.67\r\n     */\r\n    Group = 1,\r\n    /**\r\n     * List-item separator.\r\n     * Example: \"one, two, and three\"\r\n     */\r\n    List = 2,\r\n    /**\r\n     * Sign for percentage (out of 100).\r\n     * Example: 23.4%\r\n     */\r\n    PercentSign = 3,\r\n    /**\r\n     * Sign for positive numbers.\r\n     * Example: +23\r\n     */\r\n    PlusSign = 4,\r\n    /**\r\n     * Sign for negative numbers.\r\n     * Example: -23\r\n     */\r\n    MinusSign = 5,\r\n    /**\r\n     * Computer notation for exponential value (n times a power of 10).\r\n     * Example: 1.2E3\r\n     */\r\n    Exponential = 6,\r\n    /**\r\n     * Human-readable format of exponential.\r\n     * Example: 1.2x103\r\n     */\r\n    SuperscriptingExponent = 7,\r\n    /**\r\n     * Sign for permille (out of 1000).\r\n     * Example: 23.4‰\r\n     */\r\n    PerMille = 8,\r\n    /**\r\n     * Infinity, can be used with plus and minus.\r\n     * Example: ∞, +∞, -∞\r\n     */\r\n    Infinity = 9,\r\n    /**\r\n     * Not a number.\r\n     * Example: NaN\r\n     */\r\n    NaN = 10,\r\n    /**\r\n     * Symbol used between time units.\r\n     * Example: 10:52\r\n     */\r\n    TimeSeparator = 11,\r\n    /**\r\n     * Decimal separator for currency values (fallback to `Decimal`).\r\n     * Example: $2,345.67\r\n     */\r\n    CurrencyDecimal = 12,\r\n    /**\r\n     * Group separator for currency values (fallback to `Group`).\r\n     * Example: $2,345.67\r\n     */\r\n    CurrencyGroup = 13\r\n}\r\n\r\n/**\r\n * @description\r\n * A {@link LocationStrategy} used to configure the {@link Location} service to\r\n * represent its state in the\r\n * [path](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax) of the\r\n * browser's URL.\r\n *\r\n * If you're using `PathLocationStrategy`, you must provide a {@link APP_BASE_HREF}\r\n * or add a `<base href>` element to the document.\r\n *\r\n * For instance, if you provide an `APP_BASE_HREF` of `'/my/app/'` and call\r\n * `location.go('/foo')`, the browser's URL will become\r\n * `example.com/my/app/foo`. To ensure all relative URIs resolve correctly,\r\n * the `<base href>` and/or `APP_BASE_HREF` should end with a `/`.\r\n *\r\n * Similarly, if you add `<base href='/my/app/'/>` to the document and call\r\n * `location.go('/foo')`, the browser's URL will become\r\n * `example.com/my/app/foo`.\r\n *\r\n * Note that when using `PathLocationStrategy`, neither the query nor\r\n * the fragment in the `<base href>` will be preserved, as outlined\r\n * by the [RFC](https://tools.ietf.org/html/rfc3986#section-5.2.2).\r\n *\r\n * @usageNotes\r\n *\r\n * ### Example\r\n *\r\n * {@example common/location/ts/path_location_component.ts region='LocationComponent'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class PathLocationStrategy extends LocationStrategy implements OnDestroy {\r\n    private _platformLocation;\r\n    private _baseHref;\r\n    private _removeListenerFns;\r\n    constructor(_platformLocation: PlatformLocation, href?: string);\r\n    ngOnDestroy(): void;\r\n    onPopState(fn: LocationChangeListener): void;\r\n    getBaseHref(): string;\r\n    prepareExternalUrl(internal: string): string;\r\n    path(includeHash?: boolean): string;\r\n    pushState(state: any, title: string, url: string, queryParams: string): void;\r\n    replaceState(state: any, title: string, url: string, queryParams: string): void;\r\n    forward(): void;\r\n    back(): void;\r\n    historyGo(relativePosition?: number): void;\r\n}\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Transforms a number to a percentage\r\n * string, formatted according to locale rules that determine group sizing and\r\n * separator, decimal-point character, and other locale-specific\r\n * configurations.\r\n *\r\n * @see `formatPercent()`\r\n *\r\n * @usageNotes\r\n * The following code shows how the pipe transforms numbers\r\n * into text strings, according to various format specifications,\r\n * where the caller's default locale is `en-US`.\r\n *\r\n * <code-example path=\"common/pipes/ts/percent_pipe.ts\" region='PercentPipe'></code-example>\r\n *\r\n * @publicApi\r\n */\r\nexport declare class PercentPipe implements PipeTransform {\r\n    private _locale;\r\n    constructor(_locale: string);\r\n    transform(value: number | string, digitsInfo?: string, locale?: string): string | null;\r\n    transform(value: null | undefined, digitsInfo?: string, locale?: string): null;\r\n    transform(value: number | string | null | undefined, digitsInfo?: string, locale?: string): string | null;\r\n}\r\n\r\n/**\r\n * This class should not be used directly by an application developer. Instead, use\r\n * {@link Location}.\r\n *\r\n * `PlatformLocation` encapsulates all calls to DOM APIs, which allows the Router to be\r\n * platform-agnostic.\r\n * This means that we can have different implementation of `PlatformLocation` for the different\r\n * platforms that Angular supports. For example, `@angular/platform-browser` provides an\r\n * implementation specific to the browser environment, while `@angular/platform-server` provides\r\n * one suitable for use with server-side rendering.\r\n *\r\n * The `PlatformLocation` class is used directly by all implementations of {@link LocationStrategy}\r\n * when they need to interact with the DOM APIs like pushState, popState, etc.\r\n *\r\n * {@link LocationStrategy} in turn is used by the {@link Location} service which is used directly\r\n * by the {@link Router} in order to navigate between routes. Since all interactions between {@link\r\n * Router} /\r\n * {@link Location} / {@link LocationStrategy} and DOM APIs flow through the `PlatformLocation`\r\n * class, they are all platform-agnostic.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class PlatformLocation {\r\n    abstract getBaseHrefFromDOM(): string;\r\n    abstract getState(): unknown;\r\n    /**\r\n     * Returns a function that, when executed, removes the `popstate` event handler.\r\n     */\r\n    abstract onPopState(fn: LocationChangeListener): VoidFunction;\r\n    /**\r\n     * Returns a function that, when executed, removes the `hashchange` event handler.\r\n     */\r\n    abstract onHashChange(fn: LocationChangeListener): VoidFunction;\r\n    abstract get href(): string;\r\n    abstract get protocol(): string;\r\n    abstract get hostname(): string;\r\n    abstract get port(): string;\r\n    abstract get pathname(): string;\r\n    abstract get search(): string;\r\n    abstract get hash(): string;\r\n    abstract replaceState(state: any, title: string, url: string): void;\r\n    abstract pushState(state: any, title: string, url: string): void;\r\n    abstract forward(): void;\r\n    abstract back(): void;\r\n    historyGo?(relativePosition: number): void;\r\n}\r\n\r\n/**\r\n * Plurality cases used for translating plurals to different languages.\r\n *\r\n * @see `NgPlural`\r\n * @see `NgPluralCase`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum Plural {\r\n    Zero = 0,\r\n    One = 1,\r\n    Two = 2,\r\n    Few = 3,\r\n    Many = 4,\r\n    Other = 5\r\n}\r\n\r\n/** @publicApi */\r\ndeclare interface PopStateEvent_2 {\r\n    pop?: boolean;\r\n    state?: any;\r\n    type?: string;\r\n    url?: string;\r\n}\r\nexport { PopStateEvent_2 as PopStateEvent }\r\n\r\n\r\n/**\r\n * Register global data to be used internally by Angular. See the\r\n * [\"I18n guide\"](guide/i18n-common-format-data-locale) to know how to import additional locale\r\n * data.\r\n *\r\n * The signature registerLocaleData(data: any, extraData?: any) is deprecated since v5.1\r\n *\r\n * @publicApi\r\n */\r\nexport declare function registerLocaleData(data: any, localeId?: string | any, extraData?: any): void;\r\n\r\n/**\r\n * @ngModule CommonModule\r\n * @description\r\n *\r\n * Creates a new `Array` or `String` containing a subset (slice) of the elements.\r\n *\r\n * @usageNotes\r\n *\r\n * All behavior is based on the expected behavior of the JavaScript API `Array.prototype.slice()`\r\n * and `String.prototype.slice()`.\r\n *\r\n * When operating on an `Array`, the returned `Array` is always a copy even when all\r\n * the elements are being returned.\r\n *\r\n * When operating on a blank value, the pipe returns the blank value.\r\n *\r\n * ### List Example\r\n *\r\n * This `ngFor` example:\r\n *\r\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_list'}\r\n *\r\n * produces the following:\r\n *\r\n * ```html\r\n * <li>b</li>\r\n * <li>c</li>\r\n * ```\r\n *\r\n * ### String Examples\r\n *\r\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_string'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare class SlicePipe implements PipeTransform {\r\n    /**\r\n     * @param value a list or a string to be sliced.\r\n     * @param start the starting index of the subset to return:\r\n     *   - **a positive integer**: return the item at `start` index and all items after\r\n     *     in the list or string expression.\r\n     *   - **a negative integer**: return the item at `start` index from the end and all items after\r\n     *     in the list or string expression.\r\n     *   - **if positive and greater than the size of the expression**: return an empty list or\r\n     * string.\r\n     *   - **if negative and greater than the size of the expression**: return entire list or string.\r\n     * @param end the ending index of the subset to return:\r\n     *   - **omitted**: return all items until the end.\r\n     *   - **if positive**: return all items before `end` index of the list or string.\r\n     *   - **if negative**: return all items before `end` index from the end of the list or string.\r\n     */\r\n    transform<T>(value: ReadonlyArray<T>, start: number, end?: number): Array<T>;\r\n    transform(value: null | undefined, start: number, end?: number): null;\r\n    transform<T>(value: ReadonlyArray<T> | null | undefined, start: number, end?: number): Array<T> | null;\r\n    transform(value: string, start: number, end?: number): string;\r\n    transform(value: string | null | undefined, start: number, end?: number): string | null;\r\n    private supports;\r\n}\r\n\r\ndeclare class SwitchView {\r\n    private _viewContainerRef;\r\n    private _templateRef;\r\n    private _created;\r\n    constructor(_viewContainerRef: ViewContainerRef, _templateRef: TemplateRef<Object>);\r\n    create(): void;\r\n    destroy(): void;\r\n    enforceState(created: boolean): void;\r\n}\r\n\r\n/**\r\n * Represents a time value with hours and minutes.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type Time = {\r\n    hours: number;\r\n    minutes: number;\r\n};\r\n\r\n/**\r\n * Transforms text to title case.\r\n * Capitalizes the first letter of each word and transforms the\r\n * rest of the word to lower case.\r\n * Words are delimited by any whitespace character, such as a space, tab, or line-feed character.\r\n *\r\n * @see `LowerCasePipe`\r\n * @see `UpperCasePipe`\r\n *\r\n * @usageNotes\r\n * The following example shows the result of transforming various strings into title case.\r\n *\r\n * <code-example path=\"common/pipes/ts/titlecase_pipe.ts\" region='TitleCasePipe'></code-example>\r\n *\r\n * @ngModule CommonModule\r\n * @publicApi\r\n */\r\nexport declare class TitleCasePipe implements PipeTransform {\r\n    /**\r\n     * @param value The string to transform to title case.\r\n     */\r\n    transform(value: string): string;\r\n    transform(value: null | undefined): null;\r\n    transform(value: string | null | undefined): string | null;\r\n}\r\n\r\n/**\r\n * String widths available for translations.\r\n * The specific character widths are locale-specific.\r\n * Examples are given for the word \"Sunday\" in English.\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum TranslationWidth {\r\n    /** 1 character for `en-US`. For example: 'S' */\r\n    Narrow = 0,\r\n    /** 3 characters for `en-US`. For example: 'Sun' */\r\n    Abbreviated = 1,\r\n    /** Full length for `en-US`. For example: \"Sunday\" */\r\n    Wide = 2,\r\n    /** 2 characters for `en-US`, For example: \"Su\" */\r\n    Short = 3\r\n}\r\n\r\n/**\r\n * Transforms text to all upper case.\r\n * @see `LowerCasePipe`\r\n * @see `TitleCasePipe`\r\n *\r\n * @ngModule CommonModule\r\n * @publicApi\r\n */\r\nexport declare class UpperCasePipe implements PipeTransform {\r\n    /**\r\n     * @param value The string to transform to upper case.\r\n     */\r\n    transform(value: string): string;\r\n    transform(value: null | undefined): null;\r\n    transform(value: string | null | undefined): string | null;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const VERSION: Version;\r\n\r\n\r\n/**\r\n * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class ViewportScroller {\r\n    /** @nocollapse */\r\n    static ɵprov: unknown;\r\n    /**\r\n     * Configures the top offset used when scrolling to an anchor.\r\n     * @param offset A position in screen coordinates (a tuple with x and y values)\r\n     * or a function that returns the top offset position.\r\n     *\r\n     */\r\n    abstract setOffset(offset: [number, number] | (() => [number, number])): void;\r\n    /**\r\n     * Retrieves the current scroll position.\r\n     * @returns A position in screen coordinates (a tuple with x and y values).\r\n     */\r\n    abstract getScrollPosition(): [number, number];\r\n    /**\r\n     * Scrolls to a specified position.\r\n     * @param position A position in screen coordinates (a tuple with x and y values).\r\n     */\r\n    abstract scrollToPosition(position: [number, number]): void;\r\n    /**\r\n     * Scrolls to an anchor element.\r\n     * @param anchor The ID of the anchor element.\r\n     */\r\n    abstract scrollToAnchor(anchor: string): void;\r\n    /**\r\n     * Disables automatic scroll restoration provided by the browser.\r\n     * See also [window.history.scrollRestoration\r\n     * info](https://developers.google.com/web/updates/2015/09/history-api-scroll-restoration).\r\n     */\r\n    abstract setHistoryScrollRestoration(scrollRestoration: 'auto' | 'manual'): void;\r\n}\r\n\r\n/**\r\n * The value for each day of the week, based on the `en-US` locale\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum WeekDay {\r\n    Sunday = 0,\r\n    Monday = 1,\r\n    Tuesday = 2,\r\n    Wednesday = 3,\r\n    Thursday = 4,\r\n    Friday = 5,\r\n    Saturday = 6\r\n}\r\n\r\n\r\n/**\r\n * A wrapper around the `XMLHttpRequest` constructor.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class XhrFactory {\r\n    abstract build(): XMLHttpRequest;\r\n}\r\n\r\nexport declare function ɵangular_packages_common_common_a(): ɵBrowserPlatformLocation;\r\n\r\nexport declare function ɵangular_packages_common_common_b(): ɵBrowserPlatformLocation;\r\n\r\nexport declare function ɵangular_packages_common_common_c(): Location_2;\r\n\r\nexport declare function ɵangular_packages_common_common_d(platformLocation: PlatformLocation): PathLocationStrategy;\r\n\r\n/**\r\n * A collection of Angular directives that are likely to be used in each and every Angular\r\n * application.\r\n */\r\nexport declare const ɵangular_packages_common_common_e: Provider[];\r\n\r\n/**\r\n * A collection of Angular pipes that are likely to be used in each and every application.\r\n */\r\nexport declare const ɵangular_packages_common_common_f: (typeof AsyncPipe | typeof SlicePipe | typeof DecimalPipe | typeof PercentPipe | typeof CurrencyPipe | typeof DatePipe | typeof I18nPluralPipe | typeof I18nSelectPipe | typeof KeyValuePipe)[];\r\n\r\n/**\r\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\r\n * This class should not be used directly by an application developer. Instead, use\r\n * {@link Location}.\r\n */\r\nexport declare class ɵBrowserPlatformLocation extends PlatformLocation {\r\n    private _doc;\r\n    readonly location: Location;\r\n    private _history;\r\n    constructor(_doc: any);\r\n    getBaseHrefFromDOM(): string;\r\n    onPopState(fn: LocationChangeListener): VoidFunction;\r\n    onHashChange(fn: LocationChangeListener): VoidFunction;\r\n    get href(): string;\r\n    get protocol(): string;\r\n    get hostname(): string;\r\n    get port(): string;\r\n    get pathname(): string;\r\n    get search(): string;\r\n    get hash(): string;\r\n    set pathname(newPath: string);\r\n    pushState(state: any, title: string, url: string): void;\r\n    replaceState(state: any, title: string, url: string): void;\r\n    forward(): void;\r\n    back(): void;\r\n    historyGo(relativePosition?: number): void;\r\n    getState(): unknown;\r\n}\r\n\r\n/**\r\n * Provides DOM operations in an environment-agnostic way.\r\n *\r\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\r\n * can introduce XSS risks.\r\n */\r\nexport declare abstract class ɵDomAdapter {\r\n    abstract dispatchEvent(el: any, evt: any): any;\r\n    abstract readonly supportsDOMEvents: boolean;\r\n    abstract remove(el: any): void;\r\n    abstract createElement(tagName: any, doc?: any): HTMLElement;\r\n    abstract createHtmlDocument(): HTMLDocument;\r\n    abstract getDefaultDocument(): Document;\r\n    abstract isElementNode(node: any): boolean;\r\n    abstract isShadowRoot(node: any): boolean;\r\n    abstract onAndCancel(el: any, evt: any, listener: any): Function;\r\n    abstract getGlobalEventTarget(doc: Document, target: string): any;\r\n    abstract getBaseHref(doc: Document): string | null;\r\n    abstract resetBaseElement(): void;\r\n    abstract getUserAgent(): string;\r\n    abstract getCookie(name: string): string | null;\r\n}\r\n\r\n\r\nexport declare function ɵgetDOM(): ɵDomAdapter;\r\n\r\n/**\r\n * Provides an empty implementation of the viewport scroller.\r\n */\r\nexport declare class ɵNullViewportScroller implements ViewportScroller {\r\n    /**\r\n     * Empty implementation\r\n     */\r\n    setOffset(offset: [number, number] | (() => [number, number])): void;\r\n    /**\r\n     * Empty implementation\r\n     */\r\n    getScrollPosition(): [number, number];\r\n    /**\r\n     * Empty implementation\r\n     */\r\n    scrollToPosition(position: [number, number]): void;\r\n    /**\r\n     * Empty implementation\r\n     */\r\n    scrollToAnchor(anchor: string): void;\r\n    /**\r\n     * Empty implementation\r\n     */\r\n    setHistoryScrollRestoration(scrollRestoration: 'auto' | 'manual'): void;\r\n}\r\n\r\n\r\nexport declare function ɵparseCookieValue(cookieStr: string, name: string): string | null;\r\n\r\n\r\nexport declare const ɵPLATFORM_BROWSER_ID = \"browser\";\r\n\r\nexport declare const ɵPLATFORM_SERVER_ID = \"server\";\r\n\r\nexport declare const ɵPLATFORM_WORKER_APP_ID = \"browserWorkerApp\";\r\n\r\nexport declare const ɵPLATFORM_WORKER_UI_ID = \"browserWorkerUi\";\r\n\r\nexport declare function ɵsetRootDomAdapter(adapter: ɵDomAdapter): void;\r\n\r\nexport { }\r\n"]}
