Ignore:
Timestamp:
11/25/21 22:08:24 (3 years ago)
Author:
Ema <ema_spirova@…>
Branches:
master
Children:
8d391a1
Parents:
59329aa
Message:

primeNG components

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trip-planner-front/node_modules/@angular/core/core.d.ts.map

    r59329aa re29cc2e  
    1 {"version":3,"file":"core.d.ts","sources":["core.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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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 { Observable } from 'rxjs';\r\nimport { Subject } from 'rxjs';\r\nimport { Subscribable } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\n\r\n/**\r\n * @description\r\n *\r\n * Represents an abstract class `T`, if applied to a concrete class it would stop being\r\n * instantiable.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AbstractType<T> extends Function {\r\n    prototype: T;\r\n}\r\n\r\n/**\r\n * @description\r\n * A lifecycle hook that is called after the default change detector has\r\n * completed checking all content of a directive.\r\n *\r\n * @see `AfterViewChecked`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface to\r\n * define its own after-check functionality.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterContentChecked'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AfterContentChecked {\r\n    /**\r\n     * A callback method that is invoked immediately after the\r\n     * default change detector has completed checking all of the directive's\r\n     * content.\r\n     */\r\n    ngAfterContentChecked(): void;\r\n}\r\n\r\n/**\r\n * @description\r\n * A lifecycle hook that is called after Angular has fully initialized\r\n * all content of a directive.\r\n * Define an `ngAfterContentInit()` method to handle any additional initialization tasks.\r\n *\r\n * @see `OnInit`\r\n * @see `AfterViewInit`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface to\r\n * define its own content initialization method.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterContentInit'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AfterContentInit {\r\n    /**\r\n     * A callback method that is invoked immediately after\r\n     * Angular has completed initialization of all of the directive's\r\n     * content.\r\n     * It is invoked only once when the directive is instantiated.\r\n     */\r\n    ngAfterContentInit(): void;\r\n}\r\n\r\n/**\r\n * @description\r\n * A lifecycle hook that is called after the default change detector has\r\n * completed checking a component's view for changes.\r\n *\r\n * @see `AfterContentChecked`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface to\r\n * define its own after-check functionality.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterViewChecked'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AfterViewChecked {\r\n    /**\r\n     * A callback method that is invoked immediately after the\r\n     * default change detector has completed one change-check cycle\r\n     * for a component's view.\r\n     */\r\n    ngAfterViewChecked(): void;\r\n}\r\n\r\n/**\r\n * @description\r\n * A lifecycle hook that is called after Angular has fully initialized\r\n * a component's view.\r\n * Define an `ngAfterViewInit()` method to handle any additional initialization tasks.\r\n *\r\n * @see `OnInit`\r\n * @see `AfterContentInit`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface to\r\n * define its own view initialization method.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterViewInit'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AfterViewInit {\r\n    /**\r\n     * A callback method that is invoked immediately after\r\n     * Angular has completed initialization of a component's view.\r\n     * It is invoked only once when the view is instantiated.\r\n     *\r\n     */\r\n    ngAfterViewInit(): void;\r\n}\r\n\r\n/**\r\n * A DI token that you can use to create a virtual [provider](guide/glossary#provider)\r\n * that will populate the `entryComponents` field of components and NgModules\r\n * based on its `useValue` property value.\r\n * All components that are referenced in the `useValue` value (either directly\r\n * or in a nested array or map) are added to the `entryComponents` property.\r\n *\r\n * @usageNotes\r\n *\r\n * The following example shows how the router can populate the `entryComponents`\r\n * field of an NgModule based on a router configuration that refers\r\n * to components.\r\n *\r\n * ```typescript\r\n * // helper function inside the router\r\n * function provideRoutes(routes) {\r\n *   return [\r\n *     {provide: ROUTES, useValue: routes},\r\n *     {provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: routes, multi: true}\r\n *   ];\r\n * }\r\n *\r\n * // user code\r\n * let routes = [\r\n *   {path: '/root', component: RootComp},\r\n *   {path: '/teams', component: TeamsComp}\r\n * ];\r\n *\r\n * @NgModule({\r\n *   providers: [provideRoutes(routes)]\r\n * })\r\n * class ModuleWithRoutes {}\r\n * ```\r\n *\r\n * @publicApi\r\n * @deprecated Since 9.0.0. With Ivy, this property is no longer necessary.\r\n */\r\nexport declare const ANALYZE_FOR_ENTRY_COMPONENTS: InjectionToken<any>;\r\n\r\n/**\r\n * A [DI token](guide/glossary#di-token \"DI token definition\") that provides a set of callbacks to\r\n * be called for every component that is bootstrapped.\r\n *\r\n * Each callback must take a `ComponentRef` instance and return nothing.\r\n *\r\n * `(componentRef: ComponentRef) => void`\r\n *\r\n * @publicApi\r\n */\r\nexport declare const APP_BOOTSTRAP_LISTENER: InjectionToken<((compRef: ComponentRef<any>) => void)[]>;\r\n\r\n/**\r\n * A [DI token](guide/glossary#di-token \"DI token definition\") representing a unique string ID, used\r\n * primarily for prefixing application attributes and CSS styles when\r\n * {@link ViewEncapsulation#Emulated ViewEncapsulation.Emulated} is being used.\r\n *\r\n * BY default, the value is randomly generated and assigned to the application by Angular.\r\n * To provide a custom ID value, use a DI provider <!-- TODO: provider --> to configure\r\n * the root {@link Injector} that uses this token.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const APP_ID: InjectionToken<string>;\r\n\r\n/**\r\n * A [DI token](guide/glossary#di-token \"DI token definition\") that you can use to provide\r\n * one or more initialization functions.\r\n *\r\n * The provided functions are injected at application startup and executed during\r\n * app initialization. If any of these functions returns a Promise or an Observable, initialization\r\n * does not complete until the Promise is resolved or the Observable is completed.\r\n *\r\n * You can, for example, create a factory function that loads language data\r\n * or an external configuration, and provide that function to the `APP_INITIALIZER` token.\r\n * The function is executed during the application bootstrap process,\r\n * and the needed data is available on startup.\r\n *\r\n * @see `ApplicationInitStatus`\r\n *\r\n * @usageNotes\r\n *\r\n * The following example illustrates how to configure a multi-provider using `APP_INITIALIZER` token\r\n * and a function returning a promise.\r\n *\r\n * ```\r\n *  function initializeApp(): Promise<any> {\r\n *    return new Promise((resolve, reject) => {\r\n *      // Do some asynchronous stuff\r\n *      resolve();\r\n *    });\r\n *  }\r\n *\r\n *  @NgModule({\r\n *   imports: [BrowserModule],\r\n *   declarations: [AppComponent],\r\n *   bootstrap: [AppComponent],\r\n *   providers: [{\r\n *     provide: APP_INITIALIZER,\r\n *     useFactory: () => initializeApp,\r\n *     multi: true\r\n *    }]\r\n *   })\r\n *  export class AppModule {}\r\n * ```\r\n *\r\n * It's also possible to configure a multi-provider using `APP_INITIALIZER` token and a function\r\n * returning an observable, see an example below. Note: the `HttpClient` in this example is used for\r\n * demo purposes to illustrate how the factory function can work with other providers available\r\n * through DI.\r\n *\r\n * ```\r\n *  function initializeAppFactory(httpClient: HttpClient): () => Observable<any> {\r\n *   return () => httpClient.get(\"https://someUrl.com/api/user\")\r\n *     .pipe(\r\n *        tap(user => { ... })\r\n *     );\r\n *  }\r\n *\r\n *  @NgModule({\r\n *    imports: [BrowserModule, HttpClientModule],\r\n *    declarations: [AppComponent],\r\n *    bootstrap: [AppComponent],\r\n *    providers: [{\r\n *      provide: APP_INITIALIZER,\r\n *      useFactory: initializeAppFactory,\r\n *      deps: [HttpClient],\r\n *      multi: true\r\n *    }]\r\n *  })\r\n *  export class AppModule {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare const APP_INITIALIZER: InjectionToken<readonly (() => Observable<unknown> | Promise<unknown> | void)[]>;\r\n\r\n/**\r\n * A class that reflects the state of running {@link APP_INITIALIZER} functions.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ApplicationInitStatus {\r\n    private readonly appInits;\r\n    private resolve;\r\n    private reject;\r\n    private initialized;\r\n    readonly donePromise: Promise<any>;\r\n    readonly done = false;\r\n    constructor(appInits: ReadonlyArray<() => Observable<unknown> | Promise<unknown> | void>);\r\n}\r\n\r\n/**\r\n * Configures the root injector for an app with\r\n * providers of `@angular/core` dependencies that `ApplicationRef` needs\r\n * to bootstrap components.\r\n *\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 * @publicApi\r\n */\r\nexport declare class ApplicationModule {\r\n    constructor(appRef: ApplicationRef);\r\n}\r\n\r\n/**\r\n * A reference to an Angular application running on a page.\r\n *\r\n * @usageNotes\r\n *\r\n * {@a is-stable-examples}\r\n * ### isStable examples and caveats\r\n *\r\n * Note two important points about `isStable`, demonstrated in the examples below:\r\n * - the application will never be stable if you start any kind\r\n * of recurrent asynchronous task when the application starts\r\n * (for example for a polling process, started with a `setInterval`, a `setTimeout`\r\n * or using RxJS operators like `interval`);\r\n * - the `isStable` Observable runs outside of the Angular zone.\r\n *\r\n * Let's imagine that you start a recurrent task\r\n * (here incrementing a counter, using RxJS `interval`),\r\n * and at the same time subscribe to `isStable`.\r\n *\r\n * ```\r\n * constructor(appRef: ApplicationRef) {\r\n *   appRef.isStable.pipe(\r\n *      filter(stable => stable)\r\n *   ).subscribe(() => console.log('App is stable now');\r\n *   interval(1000).subscribe(counter => console.log(counter));\r\n * }\r\n * ```\r\n * In this example, `isStable` will never emit `true`,\r\n * and the trace \"App is stable now\" will never get logged.\r\n *\r\n * If you want to execute something when the app is stable,\r\n * you have to wait for the application to be stable\r\n * before starting your polling process.\r\n *\r\n * ```\r\n * constructor(appRef: ApplicationRef) {\r\n *   appRef.isStable.pipe(\r\n *     first(stable => stable),\r\n *     tap(stable => console.log('App is stable now')),\r\n *     switchMap(() => interval(1000))\r\n *   ).subscribe(counter => console.log(counter));\r\n * }\r\n * ```\r\n * In this example, the trace \"App is stable now\" will be logged\r\n * and then the counter starts incrementing every second.\r\n *\r\n * Note also that this Observable runs outside of the Angular zone,\r\n * which means that the code in the subscription\r\n * to this Observable will not trigger the change detection.\r\n *\r\n * Let's imagine that instead of logging the counter value,\r\n * you update a field of your component\r\n * and display it in its template.\r\n *\r\n * ```\r\n * constructor(appRef: ApplicationRef) {\r\n *   appRef.isStable.pipe(\r\n *     first(stable => stable),\r\n *     switchMap(() => interval(1000))\r\n *   ).subscribe(counter => this.value = counter);\r\n * }\r\n * ```\r\n * As the `isStable` Observable runs outside the zone,\r\n * the `value` field will be updated properly,\r\n * but the template will not be refreshed!\r\n *\r\n * You'll have to manually trigger the change detection to update the template.\r\n *\r\n * ```\r\n * constructor(appRef: ApplicationRef, cd: ChangeDetectorRef) {\r\n *   appRef.isStable.pipe(\r\n *     first(stable => stable),\r\n *     switchMap(() => interval(1000))\r\n *   ).subscribe(counter => {\r\n *     this.value = counter;\r\n *     cd.detectChanges();\r\n *   });\r\n * }\r\n * ```\r\n *\r\n * Or make the subscription callback run inside the zone.\r\n *\r\n * ```\r\n * constructor(appRef: ApplicationRef, zone: NgZone) {\r\n *   appRef.isStable.pipe(\r\n *     first(stable => stable),\r\n *     switchMap(() => interval(1000))\r\n *   ).subscribe(counter => zone.run(() => this.value = counter));\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ApplicationRef {\r\n    private _zone;\r\n    private _injector;\r\n    private _exceptionHandler;\r\n    private _componentFactoryResolver;\r\n    private _initStatus;\r\n    private _views;\r\n    private _runningTick;\r\n    private _stable;\r\n    private _onMicrotaskEmptySubscription;\r\n    /**\r\n     * Get a list of component types registered to this application.\r\n     * This list is populated even before the component is created.\r\n     */\r\n    readonly componentTypes: Type<any>[];\r\n    /**\r\n     * Get a list of components registered to this application.\r\n     */\r\n    readonly components: ComponentRef<any>[];\r\n    /**\r\n     * Returns an Observable that indicates when the application is stable or unstable.\r\n     *\r\n     * @see  [Usage notes](#is-stable-examples) for examples and caveats when using this API.\r\n     */\r\n    readonly isStable: Observable<boolean>;\r\n    /**\r\n     * Bootstrap a component onto the element identified by its selector or, optionally, to a\r\n     * specified element.\r\n     *\r\n     * @usageNotes\r\n     * ### Bootstrap process\r\n     *\r\n     * When bootstrapping a component, Angular mounts it onto a target DOM element\r\n     * and kicks off automatic change detection. The target DOM element can be\r\n     * provided using the `rootSelectorOrNode` argument.\r\n     *\r\n     * If the target DOM element is not provided, Angular tries to find one on a page\r\n     * using the `selector` of the component that is being bootstrapped\r\n     * (first matched element is used).\r\n     *\r\n     * ### Example\r\n     *\r\n     * Generally, we define the component to bootstrap in the `bootstrap` array of `NgModule`,\r\n     * but it requires us to know the component while writing the application code.\r\n     *\r\n     * Imagine a situation where we have to wait for an API call to decide about the component to\r\n     * bootstrap. We can use the `ngDoBootstrap` hook of the `NgModule` and call this method to\r\n     * dynamically bootstrap a component.\r\n     *\r\n     * {@example core/ts/platform/platform.ts region='componentSelector'}\r\n     *\r\n     * Optionally, a component can be mounted onto a DOM element that does not match the\r\n     * selector of the bootstrapped component.\r\n     *\r\n     * In the following example, we are providing a CSS selector to match the target element.\r\n     *\r\n     * {@example core/ts/platform/platform.ts region='cssSelector'}\r\n     *\r\n     * While in this example, we are providing reference to a DOM node.\r\n     *\r\n     * {@example core/ts/platform/platform.ts region='domNode'}\r\n     */\r\n    bootstrap<C>(componentOrFactory: ComponentFactory<C> | Type<C>, rootSelectorOrNode?: string | any): ComponentRef<C>;\r\n    /**\r\n     * Invoke this method to explicitly process change detection and its side-effects.\r\n     *\r\n     * In development mode, `tick()` also performs a second change detection cycle to ensure that no\r\n     * further changes are detected. If additional changes are picked up during this second cycle,\r\n     * bindings in the app have side-effects that cannot be resolved in a single change detection\r\n     * pass.\r\n     * In this case, Angular throws an error, since an Angular application can only have one change\r\n     * detection pass during which all change detection must complete.\r\n     */\r\n    tick(): void;\r\n    /**\r\n     * Attaches a view so that it will be dirty checked.\r\n     * The view will be automatically detached when it is destroyed.\r\n     * This will throw if the view is already attached to a ViewContainer.\r\n     */\r\n    attachView(viewRef: ViewRef): void;\r\n    /**\r\n     * Detaches a view from dirty checking again.\r\n     */\r\n    detachView(viewRef: ViewRef): void;\r\n    private _loadComponent;\r\n    /**\r\n     * Returns the number of attached views.\r\n     */\r\n    get viewCount(): number;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare function asNativeElements(debugEls: DebugElement[]): any;\r\n\r\n/**\r\n * Checks that there is currently a platform that contains the given token as a provider.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function assertPlatform(requiredToken: any): PlatformRef;\r\n\r\n/**\r\n * Type of the Attribute metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Attribute {\r\n    /**\r\n     * The name of the attribute whose value can be injected.\r\n     */\r\n    attributeName: string;\r\n}\r\n\r\n/**\r\n * Attribute decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Attribute: AttributeDecorator;\r\n\r\n\r\n/**\r\n * Type of the Attribute decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AttributeDecorator {\r\n    /**\r\n     * Parameter decorator for a directive constructor that designates\r\n     * a host-element attribute whose value is injected as a constant string literal.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * Suppose we have an `<input>` element and want to know its `type`.\r\n     *\r\n     * ```html\r\n     * <input type=\"text\">\r\n     * ```\r\n     *\r\n     * The following example uses the decorator to inject the string literal `text` in a directive.\r\n     *\r\n     * {@example core/ts/metadata/metadata.ts region='attributeMetadata'}\r\n     *\r\n     * The following example uses the decorator in a component constructor.\r\n     *\r\n     * {@example core/ts/metadata/metadata.ts region='attributeFactory'}\r\n     *\r\n     */\r\n    (name: string): any;\r\n    new (name: string): Attribute;\r\n}\r\n\r\ndeclare interface BindingDef {\r\n    flags: ɵBindingFlags;\r\n    ns: string | null;\r\n    name: string | null;\r\n    nonMinifiedName: string | null;\r\n    securityContext: SecurityContext | null;\r\n    suffix: string | null;\r\n}\r\n\r\n/**\r\n * Provides additional options to the bootstraping process.\r\n *\r\n *\r\n */\r\ndeclare interface BootstrapOptions {\r\n    /**\r\n     * Optionally specify which `NgZone` should be used.\r\n     *\r\n     * - Provide your own `NgZone` instance.\r\n     * - `zone.js` - Use default `NgZone` which requires `Zone.js`.\r\n     * - `noop` - Use `NoopNgZone` which does nothing.\r\n     */\r\n    ngZone?: NgZone | 'zone.js' | 'noop';\r\n    /**\r\n     * Optionally specify coalescing event change detections or not.\r\n     * Consider the following case.\r\n     *\r\n     * <div (click)=\"doSomething()\">\r\n     *   <button (click)=\"doSomethingElse()\"></button>\r\n     * </div>\r\n     *\r\n     * When button is clicked, because of the event bubbling, both\r\n     * event handlers will be called and 2 change detections will be\r\n     * triggered. We can colesce such kind of events to only trigger\r\n     * change detection only once.\r\n     *\r\n     * By default, this option will be false. So the events will not be\r\n     * coalesced and the change detection will be triggered multiple times.\r\n     * And if this option be set to true, the change detection will be\r\n     * triggered async by scheduling a animation frame. So in the case above,\r\n     * the change detection will only be triggered once.\r\n     */\r\n    ngZoneEventCoalescing?: boolean;\r\n    /**\r\n     * Optionally specify if `NgZone#run()` method invocations should be coalesced\r\n     * into a single change detection.\r\n     *\r\n     * Consider the following case.\r\n     *\r\n     * for (let i = 0; i < 10; i ++) {\r\n     *   ngZone.run(() => {\r\n     *     // do something\r\n     *   });\r\n     * }\r\n     *\r\n     * This case triggers the change detection multiple times.\r\n     * With ngZoneRunCoalescing options, all change detections in an event loop trigger only once.\r\n     * In addition, the change detection executes in requestAnimation.\r\n     *\r\n     */\r\n    ngZoneRunCoalescing?: boolean;\r\n}\r\n\r\n\r\n/**\r\n * The strategy that the default change detector uses to detect changes.\r\n * When set, takes effect the next time change detection is triggered.\r\n *\r\n * @see {@link ChangeDetectorRef#usage-notes Change detection usage}\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum ChangeDetectionStrategy {\r\n    /**\r\n     * Use the `CheckOnce` strategy, meaning that automatic change detection is deactivated\r\n     * until reactivated by setting the strategy to `Default` (`CheckAlways`).\r\n     * Change detection can still be explicitly invoked.\r\n     * This strategy applies to all child directives and cannot be overridden.\r\n     */\r\n    OnPush = 0,\r\n    /**\r\n     * Use the default `CheckAlways` strategy, in which change detection is automatic until\r\n     * explicitly deactivated.\r\n     */\r\n    Default = 1\r\n}\r\n\r\ndeclare type ChangeDetectionStrategy_2 = number;\r\n\r\n/**\r\n * Base class that provides change detection functionality.\r\n * A change-detection tree collects all views that are to be checked for changes.\r\n * Use the methods to add and remove views from the tree, initiate change-detection,\r\n * and explicitly mark views as _dirty_, meaning that they have changed and need to be re-rendered.\r\n *\r\n * @see [Using change detection hooks](guide/lifecycle-hooks#using-change-detection-hooks)\r\n * @see [Defining custom change detection](guide/lifecycle-hooks#defining-custom-change-detection)\r\n *\r\n * @usageNotes\r\n *\r\n * The following examples demonstrate how to modify default change-detection behavior\r\n * to perform explicit detection when needed.\r\n *\r\n * ### Use `markForCheck()` with `CheckOnce` strategy\r\n *\r\n * The following example sets the `OnPush` change-detection strategy for a component\r\n * (`CheckOnce`, rather than the default `CheckAlways`), then forces a second check\r\n * after an interval. See [live demo](https://plnkr.co/edit/GC512b?p=preview).\r\n *\r\n * <code-example path=\"core/ts/change_detect/change-detection.ts\"\r\n * region=\"mark-for-check\"></code-example>\r\n *\r\n * ### Detach change detector to limit how often check occurs\r\n *\r\n * The following example defines a component with a large list of read-only data\r\n * that is expected to change constantly, many times per second.\r\n * To improve performance, we want to check and update the list\r\n * less often than the changes actually occur. To do that, we detach\r\n * the component's change detector and perform an explicit local check every five seconds.\r\n *\r\n * <code-example path=\"core/ts/change_detect/change-detection.ts\" region=\"detach\"></code-example>\r\n *\r\n *\r\n * ### Reattaching a detached component\r\n *\r\n * The following example creates a component displaying live data.\r\n * The component detaches its change detector from the main change detector tree\r\n * when the `live` property is set to false, and reattaches it when the property\r\n * becomes true.\r\n *\r\n * <code-example path=\"core/ts/change_detect/change-detection.ts\" region=\"reattach\"></code-example>\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class ChangeDetectorRef {\r\n    /**\r\n     * When a view uses the {@link ChangeDetectionStrategy#OnPush OnPush} (checkOnce)\r\n     * change detection strategy, explicitly marks the view as changed so that\r\n     * it can be checked again.\r\n     *\r\n     * Components are normally marked as dirty (in need of rerendering) when inputs\r\n     * have changed or events have fired in the view. Call this method to ensure that\r\n     * a component is checked even if these triggers have not occured.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on OnPush components -->\r\n     *\r\n     */\r\n    abstract markForCheck(): void;\r\n    /**\r\n     * Detaches this view from the change-detection tree.\r\n     * A detached view is  not checked until it is reattached.\r\n     * Use in combination with `detectChanges()` to implement local change detection checks.\r\n     *\r\n     * Detached views are not checked during change detection runs until they are\r\n     * re-attached, even if they are marked as dirty.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\r\n     * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->\r\n     *\r\n     */\r\n    abstract detach(): void;\r\n    /**\r\n     * Checks this view and its children. Use in combination with {@link ChangeDetectorRef#detach\r\n     * detach}\r\n     * to implement local change detection checks.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\r\n     * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->\r\n     *\r\n     */\r\n    abstract detectChanges(): void;\r\n    /**\r\n     * Checks the change detector and its children, and throws if any changes are detected.\r\n     *\r\n     * Use in development mode to verify that running change detection doesn't introduce\r\n     * other changes.\r\n     */\r\n    abstract checkNoChanges(): void;\r\n    /**\r\n     * Re-attaches the previously detached view to the change detection tree.\r\n     * Views are attached to the tree by default.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\r\n     *\r\n     */\r\n    abstract reattach(): void;\r\n}\r\n\r\ndeclare const CHILD_HEAD = 13;\r\n\r\ndeclare const CHILD_TAIL = 14;\r\n\r\n/**\r\n * Configures the `Injector` to return an instance of `useClass` for a token.\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='ClassProvider'}\r\n *\r\n * Note that following two providers are not equal:\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='ClassProviderDifference'}\r\n *\r\n * ### Multi-value example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ClassProvider extends ClassSansProvider {\r\n    /**\r\n     * An injection token. (Typically an instance of `Type` or `InjectionToken`, but can be `any`).\r\n     */\r\n    provide: any;\r\n    /**\r\n     * When true, injector returns an array of instances. This is useful to allow multiple\r\n     * providers spread across many files to provide configuration information to a common token.\r\n     */\r\n    multi?: boolean;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return a value by invoking a `useClass` function.\r\n * Base for `ClassProvider` decorator.\r\n *\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ClassSansProvider {\r\n    /**\r\n     * Class to instantiate for the `token`.\r\n     */\r\n    useClass: Type<any>;\r\n}\r\n\r\ndeclare const CLEANUP = 7;\r\n\r\n/**\r\n * Compile an Angular injectable according to its `Injectable` metadata, and patch the resulting\r\n * injectable def (`ɵprov`) onto the injectable type.\r\n */\r\ndeclare function compileInjectable(type: Type<any>, meta?: Injectable): void;\r\n\r\n/**\r\n * Low-level service for running the angular compiler during runtime\r\n * to create {@link ComponentFactory}s, which\r\n * can later be used to create and render a Component instance.\r\n *\r\n * Each `@NgModule` provides an own `Compiler` to its injector,\r\n * that will use the directives/pipes of the ng module for compilation\r\n * of components.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class Compiler {\r\n    /**\r\n     * Compiles the given NgModule and all of its components. All templates of the components listed\r\n     * in `entryComponents` have to be inlined.\r\n     */\r\n    compileModuleSync: <T>(moduleType: Type<T>) => NgModuleFactory<T>;\r\n    /**\r\n     * Compiles the given NgModule and all of its components\r\n     */\r\n    compileModuleAsync: <T>(moduleType: Type<T>) => Promise<NgModuleFactory<T>>;\r\n    /**\r\n     * Same as {@link #compileModuleSync} but also creates ComponentFactories for all components.\r\n     */\r\n    compileModuleAndAllComponentsSync: <T>(moduleType: Type<T>) => ModuleWithComponentFactories<T>;\r\n    /**\r\n     * Same as {@link #compileModuleAsync} but also creates ComponentFactories for all components.\r\n     */\r\n    compileModuleAndAllComponentsAsync: <T>(moduleType: Type<T>) => Promise<ModuleWithComponentFactories<T>>;\r\n    /**\r\n     * Clears all caches.\r\n     */\r\n    clearCache(): void;\r\n    /**\r\n     * Clears the cache for the given component/ngModule.\r\n     */\r\n    clearCacheFor(type: Type<any>): void;\r\n    /**\r\n     * Returns the id for a given NgModule, if one is defined and known to the compiler.\r\n     */\r\n    getModuleId(moduleType: Type<any>): string | undefined;\r\n}\r\n\r\n/**\r\n * Token to provide CompilerOptions in the platform injector.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const COMPILER_OPTIONS: InjectionToken<CompilerOptions[]>;\r\n\r\n/**\r\n * A factory for creating a Compiler\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class CompilerFactory {\r\n    abstract createCompiler(options?: CompilerOptions[]): Compiler;\r\n}\r\n\r\n/**\r\n * Options for creating a compiler\r\n *\r\n * @publicApi\r\n */\r\nexport declare type CompilerOptions = {\r\n    useJit?: boolean;\r\n    defaultEncapsulation?: ViewEncapsulation;\r\n    providers?: StaticProvider[];\r\n    missingTranslation?: MissingTranslationStrategy;\r\n    preserveWhitespaces?: boolean;\r\n};\r\n\r\n/**\r\n * Supplies configuration metadata for an Angular component.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Component extends Directive {\r\n    /**\r\n     * The change-detection strategy to use for this component.\r\n     *\r\n     * When a component is instantiated, Angular creates a change detector,\r\n     * which is responsible for propagating the component's bindings.\r\n     * The strategy is one of:\r\n     * - `ChangeDetectionStrategy#OnPush` sets the strategy to `CheckOnce` (on demand).\r\n     * - `ChangeDetectionStrategy#Default` sets the strategy to `CheckAlways`.\r\n     */\r\n    changeDetection?: ChangeDetectionStrategy;\r\n    /**\r\n     * Defines the set of injectable objects that are visible to its view DOM children.\r\n     * See [example](#injecting-a-class-with-a-view-provider).\r\n     *\r\n     */\r\n    viewProviders?: Provider[];\r\n    /**\r\n     * The module ID of the module that contains the component.\r\n     * The component must be able to resolve relative URLs for templates and styles.\r\n     * SystemJS exposes the `__moduleName` variable within each module.\r\n     * In CommonJS, this can  be set to `module.id`.\r\n     *\r\n     */\r\n    moduleId?: string;\r\n    /**\r\n     * The relative path or absolute URL of a template file for an Angular component.\r\n     * If provided, do not supply an inline template using `template`.\r\n     *\r\n     */\r\n    templateUrl?: string;\r\n    /**\r\n     * An inline template for an Angular component. If provided,\r\n     * do not supply a template file using `templateUrl`.\r\n     *\r\n     */\r\n    template?: string;\r\n    /**\r\n     * One or more relative paths or absolute URLs for files containing CSS stylesheets to use\r\n     * in this component.\r\n     */\r\n    styleUrls?: string[];\r\n    /**\r\n     * One or more inline CSS stylesheets to use\r\n     * in this component.\r\n     */\r\n    styles?: string[];\r\n    /**\r\n     * One or more animation `trigger()` calls, containing\r\n     * `state()` and `transition()` definitions.\r\n     * See the [Animations guide](/guide/animations) and animations API documentation.\r\n     *\r\n     */\r\n    animations?: any[];\r\n    /**\r\n     * An encapsulation policy for the template and CSS styles. One of:\r\n     * - `ViewEncapsulation.Emulated`: Use shimmed CSS that\r\n     * emulates the native behavior.\r\n     * - `ViewEncapsulation.None`: Use global CSS without any\r\n     * encapsulation.\r\n     * - `ViewEncapsulation.ShadowDom`: Use Shadow DOM v1 to encapsulate styles.\r\n     *\r\n     * If not supplied, the value is taken from `CompilerOptions`. The default compiler option is\r\n     * `ViewEncapsulation.Emulated`.\r\n     *\r\n     * If the policy is set to `ViewEncapsulation.Emulated` and the component has no `styles`\r\n     * or `styleUrls` specified, the policy is automatically switched to `ViewEncapsulation.None`.\r\n     */\r\n    encapsulation?: ViewEncapsulation;\r\n    /**\r\n     * Overrides the default interpolation start and end delimiters (`{{` and `}}`).\r\n     */\r\n    interpolation?: [string, string];\r\n    /**\r\n     * A set of components that should be compiled along with\r\n     * this component. For each component listed here,\r\n     * Angular creates a {@link ComponentFactory} and stores it in the\r\n     * {@link ComponentFactoryResolver}.\r\n     * @deprecated Since 9.0.0. With Ivy, this property is no longer necessary.\r\n     */\r\n    entryComponents?: Array<Type<any> | any[]>;\r\n    /**\r\n     * True to preserve or false to remove potentially superfluous whitespace characters\r\n     * from the compiled template. Whitespace characters are those matching the `\\s`\r\n     * character class in JavaScript regular expressions. Default is false, unless\r\n     * overridden in compiler options.\r\n     */\r\n    preserveWhitespaces?: boolean;\r\n}\r\n\r\n/**\r\n * Component decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Component: ComponentDecorator;\r\n\r\n/**\r\n * Component decorator interface\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ComponentDecorator {\r\n    /**\r\n     * Decorator that marks a class as an Angular component and provides configuration\r\n     * metadata that determines how the component should be processed,\r\n     * instantiated, and used at runtime.\r\n     *\r\n     * Components are the most basic UI building block of an Angular app.\r\n     * An Angular app contains a tree of Angular components.\r\n     *\r\n     * Angular components are a subset of directives, always associated with a template.\r\n     * Unlike other directives, only one component can be instantiated for a given element in a\r\n     * template.\r\n     *\r\n     * A component must belong to an NgModule in order for it to be available\r\n     * to another component or application. To make it a member of an NgModule,\r\n     * list it in the `declarations` field of the `NgModule` metadata.\r\n     *\r\n     * Note that, in addition to these options for configuring a directive,\r\n     * you can control a component's runtime behavior by implementing\r\n     * life-cycle hooks. For more information, see the\r\n     * [Lifecycle Hooks](guide/lifecycle-hooks) guide.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ### Setting component inputs\r\n     *\r\n     * The following example creates a component with two data-bound properties,\r\n     * specified by the `inputs` value.\r\n     *\r\n     * <code-example path=\"core/ts/metadata/directives.ts\" region=\"component-input\"></code-example>\r\n     *\r\n     *\r\n     * ### Setting component outputs\r\n     *\r\n     * The following example shows two event emitters that emit on an interval. One\r\n     * emits an output every second, while the other emits every five seconds.\r\n     *\r\n     * {@example core/ts/metadata/directives.ts region='component-output-interval'}\r\n     *\r\n     * ### Injecting a class with a view provider\r\n     *\r\n     * The following simple example injects a class into a component\r\n     * using the view provider specified in component metadata:\r\n     *\r\n     * ```ts\r\n     * class Greeter {\r\n     *    greet(name:string) {\r\n     *      return 'Hello ' + name + '!';\r\n     *    }\r\n     * }\r\n     *\r\n     * @Directive({\r\n     *   selector: 'needs-greeter'\r\n     * })\r\n     * class NeedsGreeter {\r\n     *   greeter:Greeter;\r\n     *\r\n     *   constructor(greeter:Greeter) {\r\n     *     this.greeter = greeter;\r\n     *   }\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'greet',\r\n     *   viewProviders: [\r\n     *     Greeter\r\n     *   ],\r\n     *   template: `<needs-greeter></needs-greeter>`\r\n     * })\r\n     * class HelloWorld {\r\n     * }\r\n     *\r\n     * ```\r\n     *\r\n     * ### Preserving whitespace\r\n     *\r\n     * Removing whitespace can greatly reduce AOT-generated code size and speed up view creation.\r\n     * As of Angular 6, the default for `preserveWhitespaces` is false (whitespace is removed).\r\n     * To change the default setting for all components in your application, set\r\n     * the `preserveWhitespaces` option of the AOT compiler.\r\n     *\r\n     * By default, the AOT compiler removes whitespace characters as follows:\r\n     * * Trims all whitespaces at the beginning and the end of a template.\r\n     * * Removes whitespace-only text nodes. For example,\r\n     *\r\n     * ```html\r\n     * <button>Action 1</button>  <button>Action 2</button>\r\n     * ```\r\n     *\r\n     * becomes:\r\n     *\r\n     * ```html\r\n     * <button>Action 1</button><button>Action 2</button>\r\n     * ```\r\n     *\r\n     * * Replaces a series of whitespace characters in text nodes with a single space.\r\n     * For example, `<span>\\n some text\\n</span>` becomes `<span> some text </span>`.\r\n     * * Does NOT alter text nodes inside HTML tags such as `<pre>` or `<textarea>`,\r\n     * where whitespace characters are significant.\r\n     *\r\n     * Note that these transformations can influence DOM nodes layout, although impact\r\n     * should be minimal.\r\n     *\r\n     * You can override the default behavior to preserve whitespace characters\r\n     * in certain fragments of a template. For example, you can exclude an entire\r\n     * DOM sub-tree by using the `ngPreserveWhitespaces` attribute:\r\n     *\r\n     * ```html\r\n     * <div ngPreserveWhitespaces>\r\n     *     whitespaces are preserved here\r\n     *     <span>    and here </span>\r\n     * </div>\r\n     * ```\r\n     *\r\n     * You can force a single space to be preserved in a text node by using `&ngsp;`,\r\n     * which is replaced with a space character by Angular's template\r\n     * compiler:\r\n     *\r\n     * ```html\r\n     * <a>Spaces</a>&ngsp;<a>between</a>&ngsp;<a>links.</a>\r\n     * <!-- compiled to be equivalent to:\r\n     *  <a>Spaces</a> <a>between</a> <a>links.</a>  -->\r\n     * ```\r\n     *\r\n     * Note that sequences of `&ngsp;` are still collapsed to just one space character when\r\n     * the `preserveWhitespaces` option is set to `false`.\r\n     *\r\n     * ```html\r\n     * <a>before</a>&ngsp;&ngsp;&ngsp;<a>after</a>\r\n     * <!-- compiled to be equivalent to:\r\n     *  <a>before</a> <a>after</a> -->\r\n     * ```\r\n     *\r\n     * To preserve sequences of whitespace characters, use the\r\n     * `ngPreserveWhitespaces` attribute.\r\n     *\r\n     * @Annotation\r\n     */\r\n    (obj: Component): TypeDecorator;\r\n    /**\r\n     * See the `Component` decorator.\r\n     */\r\n    new (obj: Component): Component;\r\n}\r\n\r\ndeclare interface ComponentDefFeature {\r\n    <T>(componentDef: ɵComponentDef<T>): void;\r\n    /**\r\n     * Marks a feature as something that {@link InheritDefinitionFeature} will execute\r\n     * during inheritance.\r\n     *\r\n     * NOTE: DO NOT SET IN ROOT OF MODULE! Doing so will result in tree-shakers/bundlers\r\n     * identifying the change as a side effect, and the feature will be included in\r\n     * every bundle.\r\n     */\r\n    ngInherit?: true;\r\n}\r\n\r\n/**\r\n * Base class for a factory that can create a component dynamically.\r\n * Instantiate a factory for a given type of component with `resolveComponentFactory()`.\r\n * Use the resulting `ComponentFactory.create()` method to create a component of that type.\r\n *\r\n * @see [Dynamic Components](guide/dynamic-component-loader)\r\n *\r\n * @publicApi\r\n */\r\ndeclare abstract class ComponentFactory<C> {\r\n    /**\r\n     * The component's HTML selector.\r\n     */\r\n    abstract get selector(): string;\r\n    /**\r\n     * The type of component the factory will create.\r\n     */\r\n    abstract get componentType(): Type<any>;\r\n    /**\r\n     * Selector for all <ng-content> elements in the component.\r\n     */\r\n    abstract get ngContentSelectors(): string[];\r\n    /**\r\n     * The inputs of the component.\r\n     */\r\n    abstract get inputs(): {\r\n        propName: string;\r\n        templateName: string;\r\n    }[];\r\n    /**\r\n     * The outputs of the component.\r\n     */\r\n    abstract get outputs(): {\r\n        propName: string;\r\n        templateName: string;\r\n    }[];\r\n    /**\r\n     * Creates a new component.\r\n     */\r\n    abstract create(injector: Injector, projectableNodes?: any[][], rootSelectorOrNode?: string | any, ngModule?: NgModuleRef<any>): ComponentRef<C>;\r\n}\r\nexport { ComponentFactory }\r\nexport { ComponentFactory as ɵComponentFactory }\r\n\r\n/**\r\n * A simple registry that maps `Components` to generated `ComponentFactory` classes\r\n * that can be used to create instances of components.\r\n * Use to obtain the factory for a given component type,\r\n * then use the factory's `create()` method to create a component of that type.\r\n *\r\n * @see [Dynamic Components](guide/dynamic-component-loader)\r\n * @see [Usage Example](guide/dynamic-component-loader#resolving-components)\r\n * @see <live-example name=\"dynamic-component-loader\" noDownload></live-example>\r\n of the code in this cookbook\r\n * @publicApi\r\n */\r\nexport declare abstract class ComponentFactoryResolver {\r\n    static NULL: ComponentFactoryResolver;\r\n    /**\r\n     * Retrieves the factory object that creates a component of the given type.\r\n     * @param component The component type.\r\n     */\r\n    abstract resolveComponentFactory<T>(component: Type<T>): ComponentFactory<T>;\r\n}\r\n\r\ndeclare class ComponentFactoryResolver_2 extends ComponentFactoryResolver {\r\n    private ngModule?;\r\n    /**\r\n     * @param ngModule The NgModuleRef to which all resolved factories are bound.\r\n     */\r\n    constructor(ngModule?: NgModuleRef<any> | undefined);\r\n    resolveComponentFactory<T>(component: Type<T>): ComponentFactory<T>;\r\n}\r\n\r\ndeclare type ComponentInstance = {};\r\n\r\n/**\r\n * Represents a component created by a `ComponentFactory`.\r\n * Provides access to the component instance and related objects,\r\n * and provides the means of destroying the instance.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class ComponentRef<C> {\r\n    /**\r\n     * The host or anchor [element](guide/glossary#element) for this component instance.\r\n     */\r\n    abstract get location(): ElementRef;\r\n    /**\r\n     * The [dependency injector](guide/glossary#injector) for this component instance.\r\n     */\r\n    abstract get injector(): Injector;\r\n    /**\r\n     * This component instance.\r\n     */\r\n    abstract get instance(): C;\r\n    /**\r\n     * The [host view](guide/glossary#view-tree) defined by the template\r\n     * for this component instance.\r\n     */\r\n    abstract get hostView(): ViewRef;\r\n    /**\r\n     * The change detector for this component instance.\r\n     */\r\n    abstract get changeDetectorRef(): ChangeDetectorRef;\r\n    /**\r\n     * The type of this component (as created by a `ComponentFactory` class).\r\n     */\r\n    abstract get componentType(): Type<any>;\r\n    /**\r\n     * Destroys the component instance and all of the data structures associated with it.\r\n     */\r\n    abstract destroy(): void;\r\n    /**\r\n     * A lifecycle hook that provides additional developer-defined cleanup\r\n     * functionality for the component.\r\n     * @param callback A handler function that cleans up developer-defined data\r\n     * associated with this component. Called when the `destroy()` method is invoked.\r\n     */\r\n    abstract onDestroy(callback: Function): void;\r\n}\r\n\r\n/**\r\n * Definition of what a template rendering function should look like for a component.\r\n */\r\ndeclare type ComponentTemplate<T> = {\r\n    <U extends T>(rf: ɵRenderFlags, ctx: T | U): void;\r\n};\r\n\r\n/**\r\n * Configures the `Injector` to return an instance of a token.\r\n *\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='ConstructorProvider'}\r\n *\r\n * ### Multi-value example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ConstructorProvider extends ConstructorSansProvider {\r\n    /**\r\n     * An injection token. Typically an instance of `Type` or `InjectionToken`, but can be `any`.\r\n     */\r\n    provide: Type<any>;\r\n    /**\r\n     * When true, injector returns an array of instances. This is useful to allow multiple\r\n     * providers spread across many files to provide configuration information to a common token.\r\n     */\r\n    multi?: boolean;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return an instance of a token.\r\n *\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * ```ts\r\n * @Injectable(SomeModule, {deps: []})\r\n * class MyService {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ConstructorSansProvider {\r\n    /**\r\n     * A list of `token`s to be resolved by the injector.\r\n     */\r\n    deps?: any[];\r\n}\r\n\r\n/**\r\n * Type of the ContentChild metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type ContentChild = Query;\r\n\r\n/**\r\n * ContentChild decorator and metadata.\r\n *\r\n *\r\n * @Annotation\r\n *\r\n * @publicApi\r\n */\r\nexport declare const ContentChild: ContentChildDecorator;\r\n\r\n/**\r\n * Type of the ContentChild decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ContentChildDecorator {\r\n    /**\r\n     * @description\r\n     * Property decorator that configures a content query.\r\n     *\r\n     * Use to get the first element or the directive matching the selector from the content DOM.\r\n     * If the content DOM changes, and a new child matches the selector,\r\n     * the property will be updated.\r\n     *\r\n     * Content queries are set before the `ngAfterContentInit` callback is called.\r\n     *\r\n     * Does not retrieve elements or directives that are in other components' templates,\r\n     * since a component's template is always a black box to its ancestors.\r\n     *\r\n     * **Metadata Properties**:\r\n     *\r\n     * * **selector** - The directive type or the name used for querying.\r\n     * * **read** - Used to read a different token from the queried element.\r\n     * * **static** - True to resolve query results before change detection runs,\r\n     * false to resolve after change detection. Defaults to false.\r\n     *\r\n     * The following selectors are supported.\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * A template reference variable as a string (e.g. query `<my-component #cmp></my-component>`\r\n     * with `@ContentChild('cmp')`)\r\n     *   * Any provider defined in the child component tree of the current component (e.g.\r\n     * `@ContentChild(SomeService) someService: SomeService`)\r\n     *   * Any provider defined through a string token (e.g. `@ContentChild('someToken') someTokenVal:\r\n     * any`)\r\n     *   * A `TemplateRef` (e.g. query `<ng-template></ng-template>` with `@ContentChild(TemplateRef)\r\n     * template;`)\r\n     *\r\n     * The following values are supported by `read`:\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * Any provider defined on the injector of the component that is matched by the `selector` of\r\n     * this query\r\n     *   * Any provider defined through a string token (e.g. `{provide: 'token', useValue: 'val'}`)\r\n     *   * `TemplateRef`, `ElementRef`, and `ViewContainerRef`\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * {@example core/di/ts/contentChild/content_child_howto.ts region='HowTo'}\r\n     *\r\n     * ### Example\r\n     *\r\n     * {@example core/di/ts/contentChild/content_child_example.ts region='Component'}\r\n     *\r\n     * @Annotation\r\n     */\r\n    (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        read?: any;\r\n        static?: boolean;\r\n    }): any;\r\n    new (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        read?: any;\r\n        static?: boolean;\r\n    }): ContentChild;\r\n}\r\n\r\n/**\r\n * Type of the ContentChildren metadata.\r\n *\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare type ContentChildren = Query;\r\n\r\n/**\r\n * ContentChildren decorator and metadata.\r\n *\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const ContentChildren: ContentChildrenDecorator;\r\n\r\n/**\r\n * Type of the ContentChildren decorator / constructor function.\r\n *\r\n * @see `ContentChildren`.\r\n * @publicApi\r\n */\r\nexport declare interface ContentChildrenDecorator {\r\n    /**\r\n     * @description\r\n     * Property decorator that configures a content query.\r\n     *\r\n     * Use to get the `QueryList` of elements or directives from the content DOM.\r\n     * Any time a child element is added, removed, or moved, the query list will be\r\n     * updated, and the changes observable of the query list will emit a new value.\r\n     *\r\n     * Content queries are set before the `ngAfterContentInit` callback is called.\r\n     *\r\n     * Does not retrieve elements or directives that are in other components' templates,\r\n     * since a component's template is always a black box to its ancestors.\r\n     *\r\n     * **Metadata Properties**:\r\n     *\r\n     * * **selector** - The directive type or the name used for querying.\r\n     * * **descendants** - If `true` include all descendants of the element. If `false` then only\r\n     * query direct children of the element.\r\n     * * **emitDistinctChangesOnly** - The ` QueryList#changes` observable will emit new values only\r\n     *   if the QueryList result has changed. When `false` the `changes` observable might emit even\r\n     *   if the QueryList has not changed.\r\n     *   ** Note: *** This config option is **deprecated**, it will be permanently set to `true` and\r\n     *   removed in future versions of Angular.\r\n     * * **read** - Used to read a different token from the queried elements.\r\n     *\r\n     * The following selectors are supported.\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * A template reference variable as a string (e.g. query `<my-component #cmp></my-component>`\r\n     * with `@ContentChildren('cmp')`)\r\n     *   * Any provider defined in the child component tree of the current component (e.g.\r\n     * `@ContentChildren(SomeService) someService: SomeService`)\r\n     *   * Any provider defined through a string token (e.g. `@ContentChildren('someToken')\r\n     * someTokenVal: any`)\r\n     *   * A `TemplateRef` (e.g. query `<ng-template></ng-template>` with\r\n     * `@ContentChildren(TemplateRef) template;`)\r\n     *\r\n     * In addition, multiple string selectors can be separated with a comma (e.g.\r\n     * `@ContentChildren('cmp1,cmp2')`)\r\n     *\r\n     * The following values are supported by `read`:\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * Any provider defined on the injector of the component that is matched by the `selector` of\r\n     * this query\r\n     *   * Any provider defined through a string token (e.g. `{provide: 'token', useValue: 'val'}`)\r\n     *   * `TemplateRef`, `ElementRef`, and `ViewContainerRef`\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * Here is a simple demonstration of how the `ContentChildren` decorator can be used.\r\n     *\r\n     * {@example core/di/ts/contentChildren/content_children_howto.ts region='HowTo'}\r\n     *\r\n     * ### Tab-pane example\r\n     *\r\n     * Here is a slightly more realistic example that shows how `ContentChildren` decorators\r\n     * can be used to implement a tab pane component.\r\n     *\r\n     * {@example core/di/ts/contentChildren/content_children_example.ts region='Component'}\r\n     *\r\n     * @Annotation\r\n     */\r\n    (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        descendants?: boolean;\r\n        emitDistinctChangesOnly?: boolean;\r\n        read?: any;\r\n    }): any;\r\n    new (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        descendants?: boolean;\r\n        emitDistinctChangesOnly?: boolean;\r\n        read?: any;\r\n    }): Query;\r\n}\r\n\r\n/**\r\n * Definition of what a content queries function should look like.\r\n */\r\ndeclare type ContentQueriesFunction<T> = <U extends T>(rf: ɵRenderFlags, ctx: U, directiveIndex: number) => void;\r\n\r\ndeclare const CONTEXT = 8;\r\n\r\n/** Options that control how the component should be bootstrapped. */\r\ndeclare interface CreateComponentOptions {\r\n    /** Which renderer factory to use. */\r\n    rendererFactory?: RendererFactory3;\r\n    /** A custom sanitizer instance */\r\n    sanitizer?: Sanitizer;\r\n    /** A custom animation player handler */\r\n    playerHandler?: ɵPlayerHandler;\r\n    /**\r\n     * Host element on which the component will be bootstrapped. If not specified,\r\n     * the component definition's `tag` is used to query the existing DOM for the\r\n     * element to bootstrap.\r\n     */\r\n    host?: RElement | string;\r\n    /** Module injector for the component. If unspecified, the injector will be NULL_INJECTOR. */\r\n    injector?: Injector;\r\n    /**\r\n     * List of features to be applied to the created component. Features are simply\r\n     * functions that decorate a component with a certain behavior.\r\n     *\r\n     * Typically, the features in this list are features that cannot be added to the\r\n     * other features list in the component definition because they rely on other factors.\r\n     *\r\n     * Example: `LifecycleHooksFeature` is a function that adds lifecycle hook capabilities\r\n     * to root components in a tree-shakable way. It cannot be added to the component\r\n     * features list because there's no way of knowing when the component will be used as\r\n     * a root component.\r\n     */\r\n    hostFeatures?: HostFeature[];\r\n    /**\r\n     * A function which is used to schedule change detection work in the future.\r\n     *\r\n     * When marking components as dirty, it is necessary to schedule the work of\r\n     * change detection in the future. This is done to coalesce multiple\r\n     * {@link markDirty} calls into a single changed detection processing.\r\n     *\r\n     * The default value of the scheduler is the `requestAnimationFrame` function.\r\n     *\r\n     * It is also useful to override this function for testing purposes.\r\n     */\r\n    scheduler?: (work: () => void) => void;\r\n}\r\n\r\n/**\r\n * Creates a platform.\r\n * Platforms must be created on launch using this function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function createPlatform(injector: Injector): PlatformRef;\r\n\r\n/**\r\n * Creates a factory for a platform. Can be used to provide or override `Providers` specific to\r\n * your application's runtime needs, such as `PLATFORM_INITIALIZER` and `PLATFORM_ID`.\r\n * @param parentPlatformFactory Another platform factory to modify. Allows you to compose factories\r\n * to build up configurations that might be required by different libraries or parts of the\r\n * application.\r\n * @param name Identifies the new platform factory.\r\n * @param providers A set of dependency providers for platforms created with the new factory.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function createPlatformFactory(parentPlatformFactory: ((extraProviders?: StaticProvider[]) => PlatformRef) | null, name: string, providers?: StaticProvider[]): (extraProviders?: StaticProvider[]) => PlatformRef;\r\n\r\n\r\n/**\r\n * Expresses a single CSS Selector.\r\n *\r\n * Beginning of array\r\n * - First index: element name\r\n * - Subsequent odd indices: attr keys\r\n * - Subsequent even indices: attr values\r\n *\r\n * After SelectorFlags.CLASS flag\r\n * - Class name values\r\n *\r\n * SelectorFlags.NOT flag\r\n * - Changes the mode to NOT\r\n * - Can be combined with other flags to set the element / attr / class mode\r\n *\r\n * e.g. SelectorFlags.NOT | SelectorFlags.ELEMENT\r\n *\r\n * Example:\r\n * Original: `div.foo.bar[attr1=val1][attr2]`\r\n * Parsed: ['div', 'attr1', 'val1', 'attr2', '', SelectorFlags.CLASS, 'foo', 'bar']\r\n *\r\n * Original: 'div[attr1]:not(.foo[attr2])\r\n * Parsed: [\r\n *  'div', 'attr1', '',\r\n *  SelectorFlags.NOT | SelectorFlags.ATTRIBUTE 'attr2', '', SelectorFlags.CLASS, 'foo'\r\n * ]\r\n *\r\n * See more examples in node_selector_matcher_spec.ts\r\n */\r\ndeclare type CssSelector = (string | SelectorFlags)[];\r\n\r\n/**\r\n * An object literal of this type is used to represent the metadata of a constructor dependency.\r\n * The type itself is never referred to from generated code.\r\n *\r\n * @publicApi\r\n */\r\ndeclare type CtorDependency = {\r\n    /**\r\n     * If an `@Attribute` decorator is used, this represents the injected attribute's name. If the\r\n     * attribute name is a dynamic expression instead of a string literal, this will be the unknown\r\n     * type.\r\n     */\r\n    attribute?: string | unknown;\r\n    /**\r\n     * If `@Optional()` is used, this key is set to true.\r\n     */\r\n    optional?: true;\r\n    /**\r\n     * If `@Host` is used, this key is set to true.\r\n     */\r\n    host?: true;\r\n    /**\r\n     * If `@Self` is used, this key is set to true.\r\n     */\r\n    self?: true;\r\n    /**\r\n     * If `@SkipSelf` is used, this key is set to true.\r\n     */\r\n    skipSelf?: true;\r\n} | null;\r\n\r\n/**\r\n * Defines a schema that allows an NgModule to contain the following:\r\n * - Non-Angular elements named with dash case (`-`).\r\n * - Element properties named with dash case (`-`).\r\n * Dash case is the naming convention for custom elements.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const CUSTOM_ELEMENTS_SCHEMA: SchemaMetadata;\r\n\r\n/**\r\n * @publicApi\r\n *\r\n * @see [Component testing scenarios](guide/testing-components-scenarios)\r\n * @see [Basics of testing components](guide/testing-components-basics)\r\n * @see [Testing utility APIs](guide/testing-utility-apis)\r\n */\r\nexport declare interface DebugElement extends DebugNode {\r\n    /**\r\n     * The element tag name, if it is an element.\r\n     */\r\n    readonly name: string;\r\n    /**\r\n     *  A map of property names to property values for an element.\r\n     *\r\n     *  This map includes:\r\n     *  - Regular property bindings (e.g. `[id]=\"id\"`)\r\n     *  - Host property bindings (e.g. `host: { '[id]': \"id\" }`)\r\n     *  - Interpolated property bindings (e.g. `id=\"{{ value }}\")\r\n     *\r\n     *  It does not include:\r\n     *  - input property bindings (e.g. `[myCustomInput]=\"value\"`)\r\n     *  - attribute bindings (e.g. `[attr.role]=\"menu\"`)\r\n     */\r\n    readonly properties: {\r\n        [key: string]: any;\r\n    };\r\n    /**\r\n     *  A map of attribute names to attribute values for an element.\r\n     */\r\n    readonly attributes: {\r\n        [key: string]: string | null;\r\n    };\r\n    /**\r\n     * A map containing the class names on the element as keys.\r\n     *\r\n     * This map is derived from the `className` property of the DOM element.\r\n     *\r\n     * Note: The values of this object will always be `true`. The class key will not appear in the KV\r\n     * object if it does not exist on the element.\r\n     *\r\n     * @see [Element.className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className)\r\n     */\r\n    readonly classes: {\r\n        [key: string]: boolean;\r\n    };\r\n    /**\r\n     * The inline styles of the DOM element.\r\n     *\r\n     * Will be `null` if there is no `style` property on the underlying DOM element.\r\n     *\r\n     * @see [ElementCSSInlineStyle](https://developer.mozilla.org/en-US/docs/Web/API/ElementCSSInlineStyle/style)\r\n     */\r\n    readonly styles: {\r\n        [key: string]: string | null;\r\n    };\r\n    /**\r\n     * The `childNodes` of the DOM element as a `DebugNode` array.\r\n     *\r\n     * @see [Node.childNodes](https://developer.mozilla.org/en-US/docs/Web/API/Node/childNodes)\r\n     */\r\n    readonly childNodes: DebugNode[];\r\n    /**\r\n     * The underlying DOM element at the root of the component.\r\n     */\r\n    readonly nativeElement: any;\r\n    /**\r\n     * The immediate `DebugElement` children. Walk the tree by descending through `children`.\r\n     */\r\n    readonly children: DebugElement[];\r\n    /**\r\n     * @returns the first `DebugElement` that matches the predicate at any depth in the subtree.\r\n     */\r\n    query(predicate: Predicate<DebugElement>): DebugElement;\r\n    /**\r\n     * @returns All `DebugElement` matches for the predicate at any depth in the subtree.\r\n     */\r\n    queryAll(predicate: Predicate<DebugElement>): DebugElement[];\r\n    /**\r\n     * @returns All `DebugNode` matches for the predicate at any depth in the subtree.\r\n     */\r\n    queryAllNodes(predicate: Predicate<DebugNode>): DebugNode[];\r\n    /**\r\n     * Triggers the event by its name if there is a corresponding listener in the element's\r\n     * `listeners` collection.\r\n     *\r\n     * If the event lacks a listener or there's some other problem, consider\r\n     * calling `nativeElement.dispatchEvent(eventObject)`.\r\n     *\r\n     * @param eventName The name of the event to trigger\r\n     * @param eventObj The _event object_ expected by the handler\r\n     *\r\n     * @see [Testing components scenarios](guide/testing-components-scenarios#trigger-event-handler)\r\n     */\r\n    triggerEventHandler(eventName: string, eventObj: any): void;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const DebugElement: {\r\n    new (...args: any[]): DebugElement;\r\n};\r\n\r\ndeclare class DebugElement__POST_R3__ extends DebugNode__POST_R3__ implements DebugElement {\r\n    constructor(nativeNode: Element);\r\n    get nativeElement(): Element | null;\r\n    get name(): string;\r\n    /**\r\n     *  Gets a map of property names to property values for an element.\r\n     *\r\n     *  This map includes:\r\n     *  - Regular property bindings (e.g. `[id]=\"id\"`)\r\n     *  - Host property bindings (e.g. `host: { '[id]': \"id\" }`)\r\n     *  - Interpolated property bindings (e.g. `id=\"{{ value }}\")\r\n     *\r\n     *  It does not include:\r\n     *  - input property bindings (e.g. `[myCustomInput]=\"value\"`)\r\n     *  - attribute bindings (e.g. `[attr.role]=\"menu\"`)\r\n     */\r\n    get properties(): {\r\n        [key: string]: any;\r\n    };\r\n    get attributes(): {\r\n        [key: string]: string | null;\r\n    };\r\n    get styles(): {\r\n        [key: string]: string | null;\r\n    };\r\n    get classes(): {\r\n        [key: string]: boolean;\r\n    };\r\n    get childNodes(): DebugNode[];\r\n    get children(): DebugElement[];\r\n    query(predicate: Predicate<DebugElement>): DebugElement;\r\n    queryAll(predicate: Predicate<DebugElement>): DebugElement[];\r\n    queryAllNodes(predicate: Predicate<DebugNode>): DebugNode[];\r\n    triggerEventHandler(eventName: string, eventObj: any): void;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare class DebugEventListener {\r\n    name: string;\r\n    callback: Function;\r\n    constructor(name: string, callback: Function);\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare interface DebugNode {\r\n    /**\r\n     * The callbacks attached to the component's @Output properties and/or the element's event\r\n     * properties.\r\n     */\r\n    readonly listeners: DebugEventListener[];\r\n    /**\r\n     * The `DebugElement` parent. Will be `null` if this is the root element.\r\n     */\r\n    readonly parent: DebugElement | null;\r\n    /**\r\n     * The underlying DOM node.\r\n     */\r\n    readonly nativeNode: any;\r\n    /**\r\n     * The host dependency injector. For example, the root element's component instance injector.\r\n     */\r\n    readonly injector: Injector;\r\n    /**\r\n     * The element's own component instance, if it has one.\r\n     */\r\n    readonly componentInstance: any;\r\n    /**\r\n     * An object that provides parent context for this element. Often an ancestor component instance\r\n     * that governs this element.\r\n     *\r\n     * When an element is repeated within *ngFor, the context is an `NgForOf` whose `$implicit`\r\n     * property is the value of the row instance value. For example, the `hero` in `*ngFor=\"let hero\r\n     * of heroes\"`.\r\n     */\r\n    readonly context: any;\r\n    /**\r\n     * Dictionary of objects associated with template local variables (e.g. #foo), keyed by the local\r\n     * variable name.\r\n     */\r\n    readonly references: {\r\n        [key: string]: any;\r\n    };\r\n    /**\r\n     * This component's injector lookup tokens. Includes the component itself plus the tokens that the\r\n     * component lists in its providers metadata.\r\n     */\r\n    readonly providerTokens: any[];\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const DebugNode: {\r\n    new (...args: any[]): DebugNode;\r\n};\r\n\r\n/**\r\n * A logical node which comprise into `LView`s.\r\n *\r\n */\r\ndeclare interface DebugNode_2 {\r\n    /**\r\n     * HTML representation of the node.\r\n     */\r\n    html: string | null;\r\n    /**\r\n     * Associated `TNode`\r\n     */\r\n    tNode: TNode;\r\n    /**\r\n     * Human readable node type.\r\n     */\r\n    type: string;\r\n    /**\r\n     * DOM native node.\r\n     */\r\n    native: Node;\r\n    /**\r\n     * Child nodes\r\n     */\r\n    children: DebugNode_2[];\r\n    /**\r\n     * A list of Component/Directive types which need to be instantiated an this location.\r\n     */\r\n    factories: Type<unknown>[];\r\n    /**\r\n     * A list of Component/Directive instances which were instantiated an this location.\r\n     */\r\n    instances: unknown[];\r\n    /**\r\n     * NodeInjector information.\r\n     */\r\n    injector: NodeInjectorDebug;\r\n    /**\r\n     * Injector resolution path.\r\n     */\r\n    injectorResolutionPath: any;\r\n}\r\n\r\ndeclare class DebugNode__POST_R3__ implements DebugNode {\r\n    readonly nativeNode: Node;\r\n    constructor(nativeNode: Node);\r\n    get parent(): DebugElement | null;\r\n    get injector(): Injector;\r\n    get componentInstance(): any;\r\n    get context(): any;\r\n    get listeners(): DebugEventListener[];\r\n    get references(): {\r\n        [key: string]: any;\r\n    };\r\n    get providerTokens(): any[];\r\n}\r\n\r\ndeclare const DECLARATION_COMPONENT_VIEW = 16;\r\n\r\ndeclare const DECLARATION_LCONTAINER = 17;\r\n\r\ndeclare const DECLARATION_VIEW = 15;\r\n\r\n/**\r\n * Provide this token to set the default currency code your application uses for\r\n * CurrencyPipe when there is no currency code passed into it. This is only used by\r\n * CurrencyPipe and has no relation to locale currency. Defaults to USD if not configured.\r\n *\r\n * See the [i18n guide](guide/i18n-common-locale-id) for more information.\r\n *\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 v10 the default currency code will be taken from the current locale.**\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 * @usageNotes\r\n * ### Example\r\n *\r\n * ```typescript\r\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n * import { AppModule } from './app/app.module';\r\n *\r\n * platformBrowserDynamic().bootstrapModule(AppModule, {\r\n *   providers: [{provide: DEFAULT_CURRENCY_CODE, useValue: 'EUR' }]\r\n * });\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare const DEFAULT_CURRENCY_CODE: InjectionToken<string>;\r\n\r\n/**\r\n * @deprecated v4.0.0 - Should not be part of public API.\r\n * @publicApi\r\n */\r\nexport declare class DefaultIterableDiffer<V> implements IterableDiffer<V>, IterableChanges<V> {\r\n    readonly length: number;\r\n    readonly collection: V[] | Iterable<V> | null;\r\n    private _linkedRecords;\r\n    private _unlinkedRecords;\r\n    private _previousItHead;\r\n    private _itHead;\r\n    private _itTail;\r\n    private _additionsHead;\r\n    private _additionsTail;\r\n    private _movesHead;\r\n    private _movesTail;\r\n    private _removalsHead;\r\n    private _removalsTail;\r\n    private _identityChangesHead;\r\n    private _identityChangesTail;\r\n    private _trackByFn;\r\n    constructor(trackByFn?: TrackByFunction<V>);\r\n    forEachItem(fn: (record: IterableChangeRecord_<V>) => void): void;\r\n    forEachOperation(fn: (item: IterableChangeRecord<V>, previousIndex: number | null, currentIndex: number | null) => void): void;\r\n    forEachPreviousItem(fn: (record: IterableChangeRecord_<V>) => void): void;\r\n    forEachAddedItem(fn: (record: IterableChangeRecord_<V>) => void): void;\r\n    forEachMovedItem(fn: (record: IterableChangeRecord_<V>) => void): void;\r\n    forEachRemovedItem(fn: (record: IterableChangeRecord_<V>) => void): void;\r\n    forEachIdentityChange(fn: (record: IterableChangeRecord_<V>) => void): void;\r\n    diff(collection: NgIterable<V> | null | undefined): DefaultIterableDiffer<V> | null;\r\n    onDestroy(): void;\r\n    check(collection: NgIterable<V>): boolean;\r\n    get isDirty(): boolean;\r\n    private _addToRemovals;\r\n}\r\n\r\n/**\r\n * @deprecated in v8, delete after v10. This API should be used only by generated code, and that\r\n * code should now use ɵɵdefineInjectable instead.\r\n * @publicApi\r\n */\r\nexport declare const defineInjectable: typeof ɵɵdefineInjectable;\r\n\r\ndeclare interface Definition<DF extends DefinitionFactory<any>> {\r\n    factory: DF | null;\r\n}\r\n\r\n/**\r\n * Factory for ViewDefinitions/NgModuleDefinitions.\r\n * We use a function so we can reexeute it in case an error happens and use the given logger\r\n * function to log the error from the definition of the node, which is shown in all browser\r\n * logs.\r\n */\r\ndeclare interface DefinitionFactory<D extends Definition<any>> {\r\n    (logger: NodeLogger): D;\r\n}\r\n\r\ndeclare interface DepDef {\r\n    flags: ɵDepFlags;\r\n    token: any;\r\n    tokenKey: string;\r\n}\r\n\r\n/**\r\n * Array of destroy hooks that should be executed for a view and their directive indices.\r\n *\r\n * The array is set up as a series of number/function or number/(number|function)[]:\r\n * - Even indices represent the context with which hooks should be called.\r\n * - Odd indices are the hook functions themselves. If a value at an odd index is an array,\r\n *   it represents the destroy hooks of a `multi` provider where:\r\n *     - Even indices represent the index of the provider for which we've registered a destroy hook,\r\n *       inside of the `multi` provider array.\r\n *     - Odd indices are the destroy hook functions.\r\n * For example:\r\n * LView: `[0, 1, 2, AService, 4, [BService, CService, DService]]`\r\n * destroyHooks: `[3, AService.ngOnDestroy, 5, [0, BService.ngOnDestroy, 2, DService.ngOnDestroy]]`\r\n *\r\n * In the example above `AService` is a type provider with an `ngOnDestroy`, whereas `BService`,\r\n * `CService` and `DService` are part of a `multi` provider where only `BService` and `DService`\r\n * have an `ngOnDestroy` hook.\r\n */\r\ndeclare type DestroyHookData = (HookEntry | HookData)[];\r\n\r\n/**\r\n * Destroys the current Angular platform and all Angular applications on the page.\r\n * Destroys all modules and listeners registered with the platform.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function destroyPlatform(): void;\r\n\r\n/**\r\n * Directive decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare interface Directive {\r\n    /**\r\n     * The CSS selector that identifies this directive in a template\r\n     * and triggers instantiation of the directive.\r\n     *\r\n     * Declare as one of the following:\r\n     *\r\n     * - `element-name`: Select by element name.\r\n     * - `.class`: Select by class name.\r\n     * - `[attribute]`: Select by attribute name.\r\n     * - `[attribute=value]`: Select by attribute name and value.\r\n     * - `:not(sub_selector)`: Select only if the element does not match the `sub_selector`.\r\n     * - `selector1, selector2`: Select if either `selector1` or `selector2` matches.\r\n     *\r\n     * Angular only allows directives to apply on CSS selectors that do not cross\r\n     * element boundaries.\r\n     *\r\n     * For the following template HTML, a directive with an `input[type=text]` selector,\r\n     * would be instantiated only on the `<input type=\"text\">` element.\r\n     *\r\n     * ```html\r\n     * <form>\r\n     *   <input type=\"text\">\r\n     *   <input type=\"radio\">\r\n     * <form>\r\n     * ```\r\n     *\r\n     */\r\n    selector?: string;\r\n    /**\r\n     * Enumerates the set of data-bound input properties for a directive\r\n     *\r\n     * Angular automatically updates input properties during change detection.\r\n     * The `inputs` property defines a set of `directiveProperty` to `bindingProperty`\r\n     * configuration:\r\n     *\r\n     * - `directiveProperty` specifies the component property where the value is written.\r\n     * - `bindingProperty` specifies the DOM property where the value is read from.\r\n     *\r\n     * When `bindingProperty` is not provided, it is assumed to be equal to `directiveProperty`.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The following example creates a component with two data-bound properties.\r\n     *\r\n     * ```typescript\r\n     * @Component({\r\n     *   selector: 'bank-account',\r\n     *   inputs: ['bankName', 'id: account-id'],\r\n     *   template: `\r\n     *     Bank Name: {{bankName}}\r\n     *     Account Id: {{id}}\r\n     *   `\r\n     * })\r\n     * class BankAccount {\r\n     *   bankName: string;\r\n     *   id: string;\r\n     * }\r\n     * ```\r\n     *\r\n     */\r\n    inputs?: string[];\r\n    /**\r\n     * Enumerates the set of event-bound output properties.\r\n     *\r\n     * When an output property emits an event, an event handler attached to that event\r\n     * in the template is invoked.\r\n     *\r\n     * The `outputs` property defines a set of `directiveProperty` to `bindingProperty`\r\n     * configuration:\r\n     *\r\n     * - `directiveProperty` specifies the component property that emits events.\r\n     * - `bindingProperty` specifies the DOM property the event handler is attached to.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ```typescript\r\n     * @Component({\r\n     *   selector: 'child-dir',\r\n     *   outputs: [ 'bankNameChange' ]\r\n     *   template: `<input (input)=\"bankNameChange.emit($event.target.value)\" />`\r\n     * })\r\n     * class ChildDir {\r\n     *  bankNameChange: EventEmitter<string> = new EventEmitter<string>();\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'main',\r\n     *   template: `\r\n     *     {{ bankName }} <child-dir (bankNameChange)=\"onBankNameChange($event)\"></child-dir>\r\n     *   `\r\n     * })\r\n     * class MainComponent {\r\n     *  bankName: string;\r\n     *\r\n     *   onBankNameChange(bankName: string) {\r\n     *     this.bankName = bankName;\r\n     *   }\r\n     * }\r\n     * ```\r\n     *\r\n     */\r\n    outputs?: string[];\r\n    /**\r\n     * Configures the [injector](guide/glossary#injector) of this\r\n     * directive or component with a [token](guide/glossary#di-token)\r\n     * that maps to a [provider](guide/glossary#provider) of a dependency.\r\n     */\r\n    providers?: Provider[];\r\n    /**\r\n     * Defines the name that can be used in the template to assign this directive to a variable.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ```ts\r\n     * @Directive({\r\n     *   selector: 'child-dir',\r\n     *   exportAs: 'child'\r\n     * })\r\n     * class ChildDir {\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'main',\r\n     *   template: `<child-dir #c=\"child\"></child-dir>`\r\n     * })\r\n     * class MainComponent {\r\n     * }\r\n     * ```\r\n     *\r\n     */\r\n    exportAs?: string;\r\n    /**\r\n     * Configures the queries that will be injected into the directive.\r\n     *\r\n     * Content queries are set before the `ngAfterContentInit` callback is called.\r\n     * View queries are set before the `ngAfterViewInit` callback is called.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The following example shows how queries are defined\r\n     * and when their results are available in lifecycle hooks:\r\n     *\r\n     * ```ts\r\n     * @Component({\r\n     *   selector: 'someDir',\r\n     *   queries: {\r\n     *     contentChildren: new ContentChildren(ChildDirective),\r\n     *     viewChildren: new ViewChildren(ChildDirective)\r\n     *   },\r\n     *   template: '<child-directive></child-directive>'\r\n     * })\r\n     * class SomeDir {\r\n     *   contentChildren: QueryList<ChildDirective>,\r\n     *   viewChildren: QueryList<ChildDirective>\r\n     *\r\n     *   ngAfterContentInit() {\r\n     *     // contentChildren is set\r\n     *   }\r\n     *\r\n     *   ngAfterViewInit() {\r\n     *     // viewChildren is set\r\n     *   }\r\n     * }\r\n     * ```\r\n     *\r\n     * @Annotation\r\n     */\r\n    queries?: {\r\n        [key: string]: any;\r\n    };\r\n    /**\r\n     * Maps class properties to host element bindings for properties,\r\n     * attributes, and events, using a set of key-value pairs.\r\n     *\r\n     * Angular automatically checks host property bindings during change detection.\r\n     * If a binding changes, Angular updates the directive's host element.\r\n     *\r\n     * When the key is a property of the host element, the property value is\r\n     * the propagated to the specified DOM property.\r\n     *\r\n     * When the key is a static attribute in the DOM, the attribute value\r\n     * is propagated to the specified property in the host element.\r\n     *\r\n     * For event handling:\r\n     * - The key is the DOM event that the directive listens to.\r\n     * To listen to global events, add the target to the event name.\r\n     * The target can be `window`, `document` or `body`.\r\n     * - The value is the statement to execute when the event occurs. If the\r\n     * statement evaluates to `false`, then `preventDefault` is applied on the DOM\r\n     * event. A handler method can refer to the `$event` local variable.\r\n     *\r\n     */\r\n    host?: {\r\n        [key: string]: string;\r\n    };\r\n    /**\r\n     * When present, this directive/component is ignored by the AOT compiler.\r\n     * It remains in distributed code, and the JIT compiler attempts to compile it\r\n     * at run time, in the browser.\r\n     * To ensure the correct behavior, the app must import `@angular/compiler`.\r\n     */\r\n    jit?: true;\r\n}\r\n\r\n/**\r\n * Type of the Directive metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const Directive: DirectiveDecorator;\r\n\r\n/**\r\n * Type of the Directive decorator / constructor function.\r\n * @publicApi\r\n */\r\nexport declare interface DirectiveDecorator {\r\n    /**\r\n     * Decorator that marks a class as an Angular directive.\r\n     * You can define your own directives to attach custom behavior to elements in the DOM.\r\n     *\r\n     * The options provide configuration metadata that determines\r\n     * how the directive should be processed, instantiated and used at\r\n     * runtime.\r\n     *\r\n     * Directive classes, like component classes, can implement\r\n     * [life-cycle hooks](guide/lifecycle-hooks) to influence their configuration and behavior.\r\n     *\r\n     *\r\n     * @usageNotes\r\n     * To define a directive, mark the class with the decorator and provide metadata.\r\n     *\r\n     * ```ts\r\n     * import {Directive} from '@angular/core';\r\n     *\r\n     * @Directive({\r\n     *   selector: 'my-directive',\r\n     * })\r\n     * export class MyDirective {\r\n     * ...\r\n     * }\r\n     * ```\r\n     *\r\n     * ### Declaring directives\r\n     *\r\n     * Directives are [declarables](guide/glossary#declarable).\r\n     * They must be declared by an NgModule\r\n     * in order to be usable in an app.\r\n     *\r\n     * A directive must belong to exactly one NgModule. Do not re-declare\r\n     * a directive imported from another module.\r\n     * List the directive class in the `declarations` field of an NgModule.\r\n     *\r\n     * ```ts\r\n     * declarations: [\r\n     *  AppComponent,\r\n     *  MyDirective\r\n     * ],\r\n     * ```\r\n     *\r\n     * @Annotation\r\n     */\r\n    (obj?: Directive): TypeDecorator;\r\n    /**\r\n     * See the `Directive` decorator.\r\n     */\r\n    new (obj?: Directive): Directive;\r\n}\r\n\r\ndeclare interface DirectiveDefFeature {\r\n    <T>(directiveDef: ɵDirectiveDef<T>): void;\r\n    /**\r\n     * Marks a feature as something that {@link InheritDefinitionFeature} will execute\r\n     * during inheritance.\r\n     *\r\n     * NOTE: DO NOT SET IN ROOT OF MODULE! Doing so will result in tree-shakers/bundlers\r\n     * identifying the change as a side effect, and the feature will be included in\r\n     * every bundle.\r\n     */\r\n    ngInherit?: true;\r\n}\r\n\r\ndeclare type DirectiveDefList = (ɵDirectiveDef<any> | ɵComponentDef<any>)[];\r\n\r\n/**\r\n * Type used for directiveDefs on component definition.\r\n *\r\n * The function is necessary to be able to support forward declarations.\r\n */\r\ndeclare type DirectiveDefListOrFactory = (() => DirectiveDefList) | DirectiveDefList;\r\n\r\ndeclare type DirectiveInstance = {};\r\n\r\ndeclare type DirectiveTypeList = (ɵDirectiveType<any> | ɵComponentType<any> | Type<any>)[];\r\n\r\ndeclare type DirectiveTypesOrFactory = (() => DirectiveTypeList) | DirectiveTypeList;\r\n\r\ndeclare interface DisposableFn {\r\n    (): void;\r\n}\r\n\r\n/**\r\n * @description\r\n * Hook for manual bootstrapping of the application instead of using `bootstrap` array in @NgModule\r\n * annotation. This hook is invoked only when the `bootstrap` array is empty or not provided.\r\n *\r\n * Reference to the current application is provided as a parameter.\r\n *\r\n * See [\"Bootstrapping\"](guide/bootstrapping) and [\"Entry components\"](guide/entry-components).\r\n *\r\n * @usageNotes\r\n * The example below uses `ApplicationRef.bootstrap()` to render the\r\n * `AppComponent` on the page.\r\n *\r\n * ```typescript\r\n * class AppModule implements DoBootstrap {\r\n *   ngDoBootstrap(appRef: ApplicationRef) {\r\n *     appRef.bootstrap(AppComponent); // Or some other component\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface DoBootstrap {\r\n    ngDoBootstrap(appRef: ApplicationRef): void;\r\n}\r\n\r\n/**\r\n * A lifecycle hook that invokes a custom change-detection function for a directive,\r\n * in addition to the check performed by the default change-detector.\r\n *\r\n * The default change-detection algorithm looks for differences by comparing\r\n * bound-property values by reference across change detection runs. You can use this\r\n * hook to check for and respond to changes by some other means.\r\n *\r\n * When the default change detector detects changes, it invokes `ngOnChanges()` if supplied,\r\n * regardless of whether you perform additional change detection.\r\n * Typically, you should not use both `DoCheck` and `OnChanges` to respond to\r\n * changes on the same input.\r\n *\r\n * @see `OnChanges`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface\r\n * to invoke it own change-detection cycle.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='DoCheck'}\r\n *\r\n * For a more complete example and discussion, see\r\n * [Defining custom change detection](guide/lifecycle-hooks#defining-custom-change-detection).\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface DoCheck {\r\n    /**\r\n     * A callback method that performs change-detection, invoked\r\n     * after the default change-detector runs.\r\n     * See `KeyValueDiffers` and `IterableDiffers` for implementing\r\n     * custom change checking for collections.\r\n     *\r\n     */\r\n    ngDoCheck(): void;\r\n}\r\n\r\n/**\r\n * Marks that the next string is an element name.\r\n *\r\n * See `I18nMutateOpCodes` documentation.\r\n */\r\ndeclare const ELEMENT_MARKER: ELEMENT_MARKER;\r\n\r\ndeclare interface ELEMENT_MARKER {\r\n    marker: 'element';\r\n}\r\n\r\ndeclare interface ElementDef {\r\n    name: string | null;\r\n    ns: string | null;\r\n    /** ns, name, value */\r\n    attrs: [string, string, string][] | null;\r\n    template: ɵViewDefinition | null;\r\n    componentProvider: NodeDef | null;\r\n    componentRendererType: RendererType2 | null;\r\n    componentView: ViewDefinitionFactory | null;\r\n    /**\r\n     * visible public providers for DI in the view,\r\n     * as see from this element. This does not include private providers.\r\n     */\r\n    publicProviders: {\r\n        [tokenKey: string]: NodeDef;\r\n    } | null;\r\n    /**\r\n     * same as visiblePublicProviders, but also includes private providers\r\n     * that are located on this element.\r\n     */\r\n    allProviders: {\r\n        [tokenKey: string]: NodeDef;\r\n    } | null;\r\n    handleEvent: ElementHandleEventFn | null;\r\n}\r\n\r\ndeclare interface ElementHandleEventFn {\r\n    (view: ViewData, eventName: string, event: any): boolean;\r\n}\r\n\r\n/**\r\n * A wrapper around a native element inside of a View.\r\n *\r\n * An `ElementRef` is backed by a render-specific element. In the browser, this is usually a DOM\r\n * element.\r\n *\r\n * @security Permitting direct access to the DOM can make your application more vulnerable to\r\n * XSS attacks. Carefully review any use of `ElementRef` in your code. For more detail, see the\r\n * [Security Guide](https://g.co/ng/security).\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ElementRef<T = any> {\r\n    /**\r\n     * The underlying native element or `null` if direct access to native elements is not supported\r\n     * (e.g. when the application runs in a web worker).\r\n     *\r\n     * <div class=\"callout is-critical\">\r\n     *   <header>Use with caution</header>\r\n     *   <p>\r\n     *    Use this API as the last resort when direct access to DOM is needed. Use templating and\r\n     *    data-binding provided by Angular instead. Alternatively you can take a look at {@link\r\n     * Renderer2}\r\n     *    which provides API that can safely be used even when direct access to native elements is not\r\n     *    supported.\r\n     *   </p>\r\n     *   <p>\r\n     *    Relying on direct DOM access creates tight coupling between your application and rendering\r\n     *    layers which will make it impossible to separate the two and deploy your application into a\r\n     *    web worker.\r\n     *   </p>\r\n     * </div>\r\n     *\r\n     */\r\n    nativeElement: T;\r\n    constructor(nativeElement: T);\r\n}\r\n\r\n/**\r\n * Represents an Angular [view](guide/glossary#view) in a view container.\r\n * An [embedded view](guide/glossary#view-tree) can be referenced from a component\r\n * other than the hosting component whose template defines it, or it can be defined\r\n * independently by a `TemplateRef`.\r\n *\r\n * Properties of elements in a view can change, but the structure (number and order) of elements in\r\n * a view cannot. Change the structure of elements by inserting, moving, or\r\n * removing nested views in a view container.\r\n *\r\n * @see `ViewContainerRef`\r\n *\r\n * @usageNotes\r\n *\r\n * The following template breaks down into two separate `TemplateRef` instances,\r\n * an outer one and an inner one.\r\n *\r\n * ```\r\n * Count: {{items.length}}\r\n * <ul>\r\n *   <li *ngFor=\"let  item of items\">{{item}}</li>\r\n * </ul>\r\n * ```\r\n *\r\n * This is the outer `TemplateRef`:\r\n *\r\n * ```\r\n * Count: {{items.length}}\r\n * <ul>\r\n *   <ng-template ngFor let-item [ngForOf]=\"items\"></ng-template>\r\n * </ul>\r\n * ```\r\n *\r\n * This is the inner `TemplateRef`:\r\n *\r\n * ```\r\n *   <li>{{item}}</li>\r\n * ```\r\n *\r\n * The outer and inner `TemplateRef` instances are assembled into views as follows:\r\n *\r\n * ```\r\n * <!-- ViewRef: outer-0 -->\r\n * Count: 2\r\n * <ul>\r\n *   <ng-template view-container-ref></ng-template>\r\n *   <!-- ViewRef: inner-1 --><li>first</li><!-- /ViewRef: inner-1 -->\r\n *   <!-- ViewRef: inner-2 --><li>second</li><!-- /ViewRef: inner-2 -->\r\n * </ul>\r\n * <!-- /ViewRef: outer-0 -->\r\n * ```\r\n * @publicApi\r\n */\r\nexport declare abstract class EmbeddedViewRef<C> extends ViewRef {\r\n    /**\r\n     * The context for this view, inherited from the anchor element.\r\n     */\r\n    abstract context: C;\r\n    /**\r\n     * The root nodes for this embedded view.\r\n     */\r\n    abstract get rootNodes(): any[];\r\n}\r\n\r\n/**\r\n * Disable Angular's development mode, which turns off assertions and other\r\n * checks within the framework.\r\n *\r\n * One important assertion this disables verifies that a change detection pass\r\n * does not result in additional changes to any bindings (also known as\r\n * unidirectional data flow).\r\n *\r\n * @publicApi\r\n */\r\nexport declare function enableProdMode(): void;\r\n\r\n\r\n/**\r\n * Provides a hook for centralized exception handling.\r\n *\r\n * The default implementation of `ErrorHandler` prints error messages to the `console`. To\r\n * intercept error handling, write a custom exception handler that replaces this default as\r\n * appropriate for your app.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```\r\n * class MyErrorHandler implements ErrorHandler {\r\n *   handleError(error) {\r\n *     // do something with the exception\r\n *   }\r\n * }\r\n *\r\n * @NgModule({\r\n *   providers: [{provide: ErrorHandler, useClass: MyErrorHandler}]\r\n * })\r\n * class MyModule {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ErrorHandler {\r\n    handleError(error: any): void;\r\n}\r\n\r\n/**\r\n * Use in components with the `@Output` directive to emit custom events\r\n * synchronously or asynchronously, and register handlers for those events\r\n * by subscribing to an instance.\r\n *\r\n * @usageNotes\r\n *\r\n * Extends\r\n * [RxJS `Subject`](https://rxjs.dev/api/index/class/Subject)\r\n * for Angular by adding the `emit()` method.\r\n *\r\n * In the following example, a component defines two output properties\r\n * that create event emitters. When the title is clicked, the emitter\r\n * emits an open or close event to toggle the current visibility state.\r\n *\r\n * ```html\r\n * @Component({\r\n *   selector: 'zippy',\r\n *   template: `\r\n *   <div class=\"zippy\">\r\n *     <div (click)=\"toggle()\">Toggle</div>\r\n *     <div [hidden]=\"!visible\">\r\n *       <ng-content></ng-content>\r\n *     </div>\r\n *  </div>`})\r\n * export class Zippy {\r\n *   visible: boolean = true;\r\n *   @Output() open: EventEmitter<any> = new EventEmitter();\r\n *   @Output() close: EventEmitter<any> = new EventEmitter();\r\n *\r\n *   toggle() {\r\n *     this.visible = !this.visible;\r\n *     if (this.visible) {\r\n *       this.open.emit(null);\r\n *     } else {\r\n *       this.close.emit(null);\r\n *     }\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * Access the event object with the `$event` argument passed to the output event\r\n * handler:\r\n *\r\n * ```html\r\n * <zippy (open)=\"onOpen($event)\" (close)=\"onClose($event)\"></zippy>\r\n * ```\r\n *\r\n * @see [Observables in Angular](guide/observables-in-angular)\r\n * @publicApi\r\n */\r\nexport declare interface EventEmitter<T> extends Subject<T> {\r\n    /**\r\n     * Creates an instance of this class that can\r\n     * deliver events synchronously or asynchronously.\r\n     *\r\n     * @param [isAsync=false] When true, deliver events asynchronously.\r\n     *\r\n     */\r\n    new (isAsync?: boolean): EventEmitter<T>;\r\n    /**\r\n     * Emits an event containing a given value.\r\n     * @param value The value to emit.\r\n     */\r\n    emit(value?: T): void;\r\n    /**\r\n     * Registers handlers for events emitted by this instance.\r\n     * @param next When supplied, a custom handler for emitted events.\r\n     * @param error When supplied, a custom handler for an error notification from this emitter.\r\n     * @param complete When supplied, a custom handler for a completion notification from this\r\n     *     emitter.\r\n     */\r\n    subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\r\n    /**\r\n     * Registers handlers for events emitted by this instance.\r\n     * @param observerOrNext When supplied, a custom handler for emitted events, or an observer\r\n     *     object.\r\n     * @param error When supplied, a custom handler for an error notification from this emitter.\r\n     * @param complete When supplied, a custom handler for a completion notification from this\r\n     *     emitter.\r\n     */\r\n    subscribe(observerOrNext?: any, error?: any, complete?: any): Subscription;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const EventEmitter: {\r\n    new (isAsync?: boolean): EventEmitter<any>;\r\n    new <T>(isAsync?: boolean): EventEmitter<T>;\r\n    readonly prototype: EventEmitter<any>;\r\n};\r\n\r\n/**\r\n * Configures the `Injector` to return a value of another `useExisting` token.\r\n *\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='ExistingProvider'}\r\n *\r\n * ### Multi-value example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ExistingProvider extends ExistingSansProvider {\r\n    /**\r\n     * An injection token. Typically an instance of `Type` or `InjectionToken`, but can be `any`.\r\n     */\r\n    provide: any;\r\n    /**\r\n     * When true, injector returns an array of instances. This is useful to allow multiple\r\n     * providers spread across many files to provide configuration information to a common token.\r\n     */\r\n    multi?: boolean;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return a value of another `useExisting` token.\r\n *\r\n * @see `ExistingProvider`\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ExistingSansProvider {\r\n    /**\r\n     * Existing `token` to return. (Equivalent to `injector.get(useExisting)`)\r\n     */\r\n    useExisting: any;\r\n}\r\n\r\n/**\r\n * Definition of what a factory function should look like.\r\n */\r\ndeclare type FactoryFn<T> = {\r\n    /**\r\n     * Subclasses without an explicit constructor call through to the factory of their base\r\n     * definition, providing it with their own constructor to instantiate.\r\n     */\r\n    <U extends T>(t?: Type<U>): U;\r\n    /**\r\n     * If no constructor to instantiate is provided, an instance of type T itself is created.\r\n     */\r\n    (t?: undefined): T;\r\n};\r\n\r\n/**\r\n * Configures the `Injector` to return a value by invoking a `useFactory` function.\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='FactoryProvider'}\r\n *\r\n * Dependencies can also be marked as optional:\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='FactoryProviderOptionalDeps'}\r\n *\r\n * ### Multi-value example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface FactoryProvider extends FactorySansProvider {\r\n    /**\r\n     * An injection token. (Typically an instance of `Type` or `InjectionToken`, but can be `any`).\r\n     */\r\n    provide: any;\r\n    /**\r\n     * When true, injector returns an array of instances. This is useful to allow multiple\r\n     * providers spread across many files to provide configuration information to a common token.\r\n     */\r\n    multi?: boolean;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return a value by invoking a `useFactory` function.\r\n *\r\n * @see `FactoryProvider`\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface FactorySansProvider {\r\n    /**\r\n     * A function to invoke to create a value for this `token`. The function is invoked with\r\n     * resolved values of `token`s in the `deps` field.\r\n     */\r\n    useFactory: Function;\r\n    /**\r\n     * A list of `token`s to be resolved by the injector. The list of values is then\r\n     * used as arguments to the `useFactory` function.\r\n     */\r\n    deps?: any[];\r\n}\r\n\r\ndeclare const FLAGS = 2;\r\n\r\n/**\r\n * Allows to refer to references which are not yet defined.\r\n *\r\n * For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of\r\n * DI is declared, but not yet defined. It is also used when the `token` which we use when creating\r\n * a query is not yet defined.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}\r\n * @publicApi\r\n */\r\nexport declare function forwardRef(forwardRefFn: ForwardRefFn): Type<any>;\r\n\r\n/**\r\n * An interface that a function passed into {@link forwardRef} has to implement.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref_fn'}\r\n * @publicApi\r\n */\r\nexport declare interface ForwardRefFn {\r\n    (): any;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const getDebugNode: (nativeNode: any) => DebugNode | null;\r\n\r\n/**\r\n * Returns the NgModuleFactory with the given id, if it exists and has been loaded.\r\n * Factories for modules that do not specify an `id` cannot be retrieved. Throws if the module\r\n * cannot be found.\r\n * @publicApi\r\n */\r\nexport declare const getModuleFactory: (id: string) => NgModuleFactory<any>;\r\n\r\n/**\r\n * Returns the current platform.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getPlatform(): PlatformRef | null;\r\n\r\n/**\r\n * Adapter interface for retrieving the `Testability` service associated for a\r\n * particular context.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface GetTestability {\r\n    addToWindow(registry: TestabilityRegistry): void;\r\n    findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean): Testability | null;\r\n}\r\n\r\ndeclare type GlobalTargetName = 'document' | 'window' | 'body';\r\n\r\ndeclare type GlobalTargetResolver = (element: any) => EventTarget;\r\n\r\n/**\r\n * Flag to signify that this `LContainer` may have transplanted views which need to be change\r\n * detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.\r\n *\r\n * This flag, once set, is never unset for the `LContainer`. This means that when unset we can skip\r\n * a lot of work in `refreshEmbeddedViews`. But when set we still need to verify\r\n * that the `MOVED_VIEWS` are transplanted and on-push.\r\n */\r\ndeclare const HAS_TRANSPLANTED_VIEWS = 2;\r\n\r\n/**\r\n * Array of hooks that should be executed for a view and their directive indices.\r\n *\r\n * For each node of the view, the following data is stored:\r\n * 1) Node index (optional)\r\n * 2) A series of number/function pairs where:\r\n *  - even indices are directive indices\r\n *  - odd indices are hook functions\r\n *\r\n * Special cases:\r\n *  - a negative directive index flags an init hook (ngOnInit, ngAfterContentInit, ngAfterViewInit)\r\n */\r\ndeclare type HookData = HookEntry[];\r\n\r\n/**\r\n * Information necessary to call a hook. E.g. the callback that\r\n * needs to invoked and the index at which to find its context.\r\n */\r\ndeclare type HookEntry = number | HookFn;\r\n\r\n/** Single hook callback function. */\r\ndeclare type HookFn = () => void;\r\n\r\ndeclare const HOST = 0;\r\n\r\n/**\r\n * Type of the Host metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Host {\r\n}\r\n\r\n/**\r\n * Host decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Host: HostDecorator;\r\n\r\n/**\r\n * Type of the HostBinding metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface HostBinding {\r\n    /**\r\n     * The DOM property that is bound to a data property.\r\n     */\r\n    hostPropertyName?: string;\r\n}\r\n\r\n/**\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const HostBinding: HostBindingDecorator;\r\n\r\n/**\r\n * Type of the HostBinding decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface HostBindingDecorator {\r\n    /**\r\n     * Decorator that marks a DOM property as a host-binding property and supplies configuration\r\n     * metadata.\r\n     * Angular automatically checks host property bindings during change detection, and\r\n     * if a binding changes it updates the host element of the directive.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The following example creates a directive that sets the `valid` and `invalid`\r\n     * properties on the DOM element that has an `ngModel` directive on it.\r\n     *\r\n     * ```typescript\r\n     * @Directive({selector: '[ngModel]'})\r\n     * class NgModelStatus {\r\n     *   constructor(public control: NgModel) {}\r\n     *   @HostBinding('class.valid') get valid() { return this.control.valid; }\r\n     *   @HostBinding('class.invalid') get invalid() { return this.control.invalid; }\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'app',\r\n     *   template: `<input [(ngModel)]=\"prop\">`,\r\n     * })\r\n     * class App {\r\n     *   prop;\r\n     * }\r\n     * ```\r\n     *\r\n     */\r\n    (hostPropertyName?: string): any;\r\n    new (hostPropertyName?: string): any;\r\n}\r\n\r\n/**\r\n * Stores a set of OpCodes to process `HostBindingsFunction` associated with a current view.\r\n *\r\n * In order to invoke `HostBindingsFunction` we need:\r\n * 1. 'elementIdx`: Index to the element associated with the `HostBindingsFunction`.\r\n * 2. 'directiveIdx`: Index to the directive associated with the `HostBindingsFunction`. (This will\r\n *    become the context for the `HostBindingsFunction` invocation.)\r\n * 3. `bindingRootIdx`: Location where the bindings for the `HostBindingsFunction` start. Internally\r\n *    `HostBindingsFunction` binding indexes start from `0` so we need to add `bindingRootIdx` to\r\n *    it.\r\n * 4. `HostBindingsFunction`: A host binding function to execute.\r\n *\r\n * The above information needs to be encoded into the `HostBindingOpCodes` in an efficient manner.\r\n *\r\n * 1. `elementIdx` is encoded into the `HostBindingOpCodes` as `~elementIdx` (so a negative number);\r\n * 2. `directiveIdx`\r\n * 3. `bindingRootIdx`\r\n * 4. `HostBindingsFunction` is passed in as is.\r\n *\r\n * The `HostBindingOpCodes` array contains:\r\n * - negative number to select the element index.\r\n * - followed by 1 or more of:\r\n *    - a number to select the directive index\r\n *    - a number to select the bindingRoot index\r\n *    - and a function to invoke.\r\n *\r\n * ## Example\r\n *\r\n * ```\r\n * const hostBindingOpCodes = [\r\n *   ~30,                               // Select element 30\r\n *   40, 45, MyDir.ɵdir.hostBindings    // Invoke host bindings on MyDir on element 30;\r\n *                                      // directiveIdx = 40; bindingRootIdx = 45;\r\n *   50, 55, OtherDir.ɵdir.hostBindings // Invoke host bindings on OtherDire on element 30\r\n *                                      // directiveIdx = 50; bindingRootIdx = 55;\r\n * ]\r\n * ```\r\n *\r\n * ## Pseudocode\r\n * ```\r\n * const hostBindingOpCodes = tView.hostBindingOpCodes;\r\n * if (hostBindingOpCodes === null) return;\r\n * for (let i = 0; i < hostBindingOpCodes.length; i++) {\r\n *   const opCode = hostBindingOpCodes[i] as number;\r\n *   if (opCode < 0) {\r\n *     // Negative numbers are element indexes.\r\n *     setSelectedIndex(~opCode);\r\n *   } else {\r\n *     // Positive numbers are NumberTuple which store bindingRootIndex and directiveIndex.\r\n *     const directiveIdx = opCode;\r\n *     const bindingRootIndx = hostBindingOpCodes[++i] as number;\r\n *     const hostBindingFn = hostBindingOpCodes[++i] as HostBindingsFunction<any>;\r\n *     setBindingRootForHostBindings(bindingRootIndx, directiveIdx);\r\n *     const context = lView[directiveIdx];\r\n *     hostBindingFn(RenderFlags.Update, context);\r\n *   }\r\n * }\r\n * ```\r\n *\r\n */\r\ndeclare interface HostBindingOpCodes extends Array<number | HostBindingsFunction<any>> {\r\n    __brand__: 'HostBindingOpCodes';\r\n    debug?: string[];\r\n}\r\n\r\ndeclare type HostBindingsFunction<T> = <U extends T>(rf: ɵRenderFlags, ctx: U) => void;\r\n\r\n/**\r\n * Type of the `Host` decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface HostDecorator {\r\n    /**\r\n     * Parameter decorator on a view-provider parameter of a class constructor\r\n     * that tells the DI framework to resolve the view by checking injectors of child\r\n     * elements, and stop when reaching the host element of the current component.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The following shows use with the `@Optional` decorator, and allows for a `null` result.\r\n     *\r\n     * <code-example path=\"core/di/ts/metadata_spec.ts\" region=\"Host\">\r\n     * </code-example>\r\n     *\r\n     * For an extended example, see [\"Dependency Injection\r\n     * Guide\"](guide/dependency-injection-in-action#optional).\r\n     */\r\n    (): any;\r\n    new (): Host;\r\n}\r\n\r\n/** See CreateComponentOptions.hostFeatures */\r\ndeclare type HostFeature = (<T>(component: T, componentDef: ɵComponentDef<T>) => void);\r\n\r\n/**\r\n * Type of the HostListener metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface HostListener {\r\n    /**\r\n     * The DOM event to listen for.\r\n     */\r\n    eventName?: string;\r\n    /**\r\n     * A set of arguments to pass to the handler method when the event occurs.\r\n     */\r\n    args?: string[];\r\n}\r\n\r\n/**\r\n * Decorator that binds a DOM event to a host listener and supplies configuration metadata.\r\n * Angular invokes the supplied handler method when the host element emits the specified event,\r\n * and updates the bound element with the result.\r\n *\r\n * If the handler method returns false, applies `preventDefault` on the bound element.\r\n *\r\n * @usageNotes\r\n *\r\n * The following example declares a directive\r\n * that attaches a click listener to a button and counts clicks.\r\n *\r\n * ```ts\r\n * @Directive({selector: 'button[counting]'})\r\n * class CountClicks {\r\n *   numberOfClicks = 0;\r\n *\r\n *   @HostListener('click', ['$event.target'])\r\n *   onClick(btn) {\r\n *     console.log('button', btn, 'number of clicks:', this.numberOfClicks++);\r\n *  }\r\n * }\r\n *\r\n * @Component({\r\n *   selector: 'app',\r\n *   template: '<button counting>Increment</button>',\r\n * })\r\n * class App {}\r\n *\r\n * ```\r\n *\r\n * The following example registers another DOM event handler that listens for key-press events.\r\n * ``` ts\r\n * import { HostListener, Component } from \"@angular/core\";\r\n *\r\n * @Component({\r\n *   selector: 'app',\r\n *   template: `<h1>Hello, you have pressed keys {{counter}} number of times!</h1> Press any key to\r\n * increment the counter.\r\n *   <button (click)=\"resetCounter()\">Reset Counter</button>`\r\n * })\r\n * class AppComponent {\r\n *   counter = 0;\r\n *   @HostListener('window:keydown', ['$event'])\r\n *   handleKeyDown(event: KeyboardEvent) {\r\n *     this.counter++;\r\n *   }\r\n *   resetCounter() {\r\n *     this.counter = 0;\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const HostListener: HostListenerDecorator;\r\n\r\n/**\r\n * Type of the HostListener decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface HostListenerDecorator {\r\n    /**\r\n     * Decorator that declares a DOM event to listen for,\r\n     * and provides a handler method to run when that event occurs.\r\n     *\r\n     * Angular invokes the supplied handler method when the host element emits the specified event,\r\n     * and updates the bound element with the result.\r\n     *\r\n     * If the handler method returns false, applies `preventDefault` on the bound element.\r\n     */\r\n    (eventName: string, args?: string[]): any;\r\n    new (eventName: string, args?: string[]): any;\r\n}\r\n\r\n/**\r\n * Array storing OpCode for dynamically creating `i18n` translation DOM elements.\r\n *\r\n * This array creates a sequence of `Text` and `Comment` (as ICU anchor) DOM elements. It consists\r\n * of a pair of `number` and `string` pairs which encode the operations for the creation of the\r\n * translated block.\r\n *\r\n * The number is shifted and encoded according to `I18nCreateOpCode`\r\n *\r\n * Pseudocode:\r\n * ```\r\n * const i18nCreateOpCodes = [\r\n *   10 << I18nCreateOpCode.SHIFT, \"Text Node add to DOM\",\r\n *   11 << I18nCreateOpCode.SHIFT | I18nCreateOpCode.COMMENT, \"Comment Node add to DOM\",\r\n *   12 << I18nCreateOpCode.SHIFT | I18nCreateOpCode.APPEND_LATER, \"Text Node added later\"\r\n * ];\r\n *\r\n * for(var i=0; i<i18nCreateOpCodes.length; i++) {\r\n *   const opcode = i18NCreateOpCodes[i++];\r\n *   const index = opcode >> I18nCreateOpCode.SHIFT;\r\n *   const text = i18NCreateOpCodes[i];\r\n *   let node: Text|Comment;\r\n *   if (opcode & I18nCreateOpCode.COMMENT === I18nCreateOpCode.COMMENT) {\r\n *     node = lView[~index] = document.createComment(text);\r\n *   } else {\r\n *     node = lView[index] = document.createText(text);\r\n *   }\r\n *   if (opcode & I18nCreateOpCode.APPEND_EAGERLY !== I18nCreateOpCode.APPEND_EAGERLY) {\r\n *     parentNode.appendChild(node);\r\n *   }\r\n * }\r\n * ```\r\n */\r\ndeclare interface I18nCreateOpCodes extends Array<number | string>, I18nDebug {\r\n    __brand__: 'I18nCreateOpCodes';\r\n}\r\n\r\ndeclare interface I18nDebug {\r\n    /**\r\n     * Human readable representation of the OpCode arrays.\r\n     *\r\n     * NOTE: This property only exists if `ngDevMode` is set to `true` and it is not present in\r\n     * production. Its presence is purely to help debug issue in development, and should not be relied\r\n     * on in production application.\r\n     */\r\n    debug?: string[];\r\n}\r\n\r\n/**\r\n * Stores a list of nodes which need to be removed.\r\n *\r\n * Numbers are indexes into the `LView`\r\n * - index > 0: `removeRNode(lView[0])`\r\n * - index < 0: `removeICU(~lView[0])`\r\n */\r\ndeclare interface I18nRemoveOpCodes extends Array<number> {\r\n    __brand__: 'I18nRemoveOpCodes';\r\n}\r\n\r\n/**\r\n * Stores DOM operations which need to be applied to update DOM render tree due to changes in\r\n * expressions.\r\n *\r\n * The basic idea is that `i18nExp` OpCodes capture expression changes and update a change\r\n * mask bit. (Bit 1 for expression 1, bit 2 for expression 2 etc..., bit 32 for expression 32 and\r\n * higher.) The OpCodes then compare its own change mask against the expression change mask to\r\n * determine if the OpCodes should execute.\r\n *\r\n * NOTE: 32nd bit is special as it says 32nd or higher. This way if we have more than 32 bindings\r\n * the code still works, but with lower efficiency. (it is unlikely that a translation would have\r\n * more than 32 bindings.)\r\n *\r\n * These OpCodes can be used by both the i18n block as well as ICU sub-block.\r\n *\r\n * ## Example\r\n *\r\n * Assume\r\n * ```ts\r\n *   if (rf & RenderFlags.Update) {\r\n *    i18nExp(ctx.exp1); // If changed set mask bit 1\r\n *    i18nExp(ctx.exp2); // If changed set mask bit 2\r\n *    i18nExp(ctx.exp3); // If changed set mask bit 3\r\n *    i18nExp(ctx.exp4); // If changed set mask bit 4\r\n *    i18nApply(0);            // Apply all changes by executing the OpCodes.\r\n *  }\r\n * ```\r\n * We can assume that each call to `i18nExp` sets an internal `changeMask` bit depending on the\r\n * index of `i18nExp`.\r\n *\r\n * ### OpCodes\r\n * ```ts\r\n * <I18nUpdateOpCodes>[\r\n *   // The following OpCodes represent: `<div i18n-title=\"pre{{exp1}}in{{exp2}}post\">`\r\n *   // If `changeMask & 0b11`\r\n *   //        has changed then execute update OpCodes.\r\n *   //        has NOT changed then skip `8` values and start processing next OpCodes.\r\n *   0b11, 8,\r\n *   // Concatenate `newValue = 'pre'+lView[bindIndex-4]+'in'+lView[bindIndex-3]+'post';`.\r\n *   'pre', -4, 'in', -3, 'post',\r\n *   // Update attribute: `elementAttribute(1, 'title', sanitizerFn(newValue));`\r\n *   1 << SHIFT_REF | Attr, 'title', sanitizerFn,\r\n *\r\n *   // The following OpCodes represent: `<div i18n>Hello {{exp3}}!\">`\r\n *   // If `changeMask & 0b100`\r\n *   //        has changed then execute update OpCodes.\r\n *   //        has NOT changed then skip `4` values and start processing next OpCodes.\r\n *   0b100, 4,\r\n *   // Concatenate `newValue = 'Hello ' + lView[bindIndex -2] + '!';`.\r\n *   'Hello ', -2, '!',\r\n *   // Update text: `lView[1].textContent = newValue;`\r\n *   1 << SHIFT_REF | Text,\r\n *\r\n *   // The following OpCodes represent: `<div i18n>{exp4, plural, ... }\">`\r\n *   // If `changeMask & 0b1000`\r\n *   //        has changed then execute update OpCodes.\r\n *   //        has NOT changed then skip `2` values and start processing next OpCodes.\r\n *   0b1000, 2,\r\n *   // Concatenate `newValue = lView[bindIndex -1];`.\r\n *   -1,\r\n *   // Switch ICU: `icuSwitchCase(lView[1], 0, newValue);`\r\n *   0 << SHIFT_ICU | 1 << SHIFT_REF | IcuSwitch,\r\n *\r\n *   // Note `changeMask & -1` is always true, so the IcuUpdate will always execute.\r\n *   -1, 1,\r\n *   // Update ICU: `icuUpdateCase(lView[1], 0);`\r\n *   0 << SHIFT_ICU | 1 << SHIFT_REF | IcuUpdate,\r\n *\r\n * ];\r\n * ```\r\n *\r\n */\r\ndeclare interface I18nUpdateOpCodes extends Array<string | number | SanitizerFn | null>, I18nDebug {\r\n    __brand__: 'I18nUpdateOpCodes';\r\n}\r\n\r\n/**\r\n * Marks that the next string is comment text need for ICU.\r\n *\r\n * See `I18nMutateOpCodes` documentation.\r\n */\r\ndeclare const ICU_MARKER: ICU_MARKER;\r\n\r\ndeclare interface ICU_MARKER {\r\n    marker: 'ICU';\r\n}\r\n\r\n/**\r\n * Array storing OpCode for dynamically creating `i18n` blocks.\r\n *\r\n * Example:\r\n * ```ts\r\n * <I18nCreateOpCode>[\r\n *   // For adding text nodes\r\n *   // ---------------------\r\n *   // Equivalent to:\r\n *   //   lView[1].appendChild(lView[0] = document.createTextNode('xyz'));\r\n *   'xyz', 0, 1 << SHIFT_PARENT | 0 << SHIFT_REF | AppendChild,\r\n *\r\n *   // For adding element nodes\r\n *   // ---------------------\r\n *   // Equivalent to:\r\n *   //   lView[1].appendChild(lView[0] = document.createElement('div'));\r\n *   ELEMENT_MARKER, 'div', 0, 1 << SHIFT_PARENT | 0 << SHIFT_REF | AppendChild,\r\n *\r\n *   // For adding comment nodes\r\n *   // ---------------------\r\n *   // Equivalent to:\r\n *   //   lView[1].appendChild(lView[0] = document.createComment(''));\r\n *   ICU_MARKER, '', 0, 1 << SHIFT_PARENT | 0 << SHIFT_REF | AppendChild,\r\n *\r\n *   // For moving existing nodes to a different location\r\n *   // --------------------------------------------------\r\n *   // Equivalent to:\r\n *   //   const node = lView[1];\r\n *   //   lView[2].appendChild(node);\r\n *   1 << SHIFT_REF | Select, 2 << SHIFT_PARENT | 0 << SHIFT_REF | AppendChild,\r\n *\r\n *   // For removing existing nodes\r\n *   // --------------------------------------------------\r\n *   //   const node = lView[1];\r\n *   //   removeChild(tView.data(1), node, lView);\r\n *   1 << SHIFT_REF | Remove,\r\n *\r\n *   // For writing attributes\r\n *   // --------------------------------------------------\r\n *   //   const node = lView[1];\r\n *   //   node.setAttribute('attr', 'value');\r\n *   1 << SHIFT_REF | Attr, 'attr', 'value'\r\n * ];\r\n * ```\r\n */\r\ndeclare interface IcuCreateOpCodes extends Array<number | string | ELEMENT_MARKER | ICU_MARKER | null>, I18nDebug {\r\n    __brand__: 'I18nCreateOpCodes';\r\n}\r\n\r\n/**\r\n * Defines the ICU type of `select` or `plural`\r\n */\r\ndeclare const enum IcuType {\r\n    select = 0,\r\n    plural = 1\r\n}\r\n\r\n/**\r\n * This array contains information about input properties that\r\n * need to be set once from attribute data. It's ordered by\r\n * directive index (relative to element) so it's simple to\r\n * look up a specific directive's initial input data.\r\n *\r\n * Within each sub-array:\r\n *\r\n * i+0: attribute name\r\n * i+1: minified/internal input name\r\n * i+2: initial value\r\n *\r\n * If a directive on a node does not have any input properties\r\n * that should be set from attributes, its index is set to null\r\n * to avoid a sparse array.\r\n *\r\n * e.g. [null, ['role-min', 'minified-input', 'button']]\r\n */\r\ndeclare type InitialInputData = (InitialInputs | null)[];\r\n\r\n/**\r\n * Used by InitialInputData to store input properties\r\n * that should be set once from attributes.\r\n *\r\n * i+0: attribute name\r\n * i+1: minified/internal input name\r\n * i+2: initial value\r\n *\r\n * e.g. ['role-min', 'minified-input', 'button']\r\n */\r\ndeclare type InitialInputs = string[];\r\n\r\n/**\r\n * Type of the Inject metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Inject {\r\n    /**\r\n     * A [DI token](guide/glossary#di-token) that maps to the dependency to be injected.\r\n     */\r\n    token: any;\r\n}\r\n\r\n/**\r\n * Inject decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Inject: InjectDecorator;\r\n\r\n/**\r\n * Injects a token from the currently active injector.\r\n *\r\n * Must be used in the context of a factory function such as one defined for an\r\n * `InjectionToken`. Throws an error if not called from such a context.\r\n *\r\n * Within such a factory function, using this function to request injection of a dependency\r\n * is faster and more type-safe than providing an additional array of dependencies\r\n * (as has been common with `useFactory` providers).\r\n *\r\n * @param token The injection token for the dependency to be injected.\r\n * @param flags Optional flags that control how injection is executed.\r\n * The flags correspond to injection strategies that can be specified with\r\n * parameter decorators `@Host`, `@Self`, `@SkipSef`, and `@Optional`.\r\n * @returns the injected value if injection is successful, `null` otherwise.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Example\r\n *\r\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare const inject: typeof ɵɵinject;\r\n\r\n/**\r\n * Type of the Injectable metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Injectable {\r\n    /**\r\n     * Determines which injectors will provide the injectable.\r\n     *\r\n     * - `Type<any>` - associates the injectable with an `@NgModule` or other `InjectorType`,\r\n     * - 'null' : Equivalent to `undefined`. The injectable is not provided in any scope automatically\r\n     * and must be added to a `providers` array of an [@NgModule](api/core/NgModule#providers),\r\n     * [@Component](api/core/Directive#providers) or [@Directive](api/core/Directive#providers).\r\n     *\r\n     * The following options specify that this injectable should be provided in one of the following\r\n     * injectors:\r\n     * - 'root' : The application-level injector in most apps.\r\n     * - 'platform' : A special singleton platform injector shared by all\r\n     * applications on the page.\r\n     * - 'any' : Provides a unique instance in each lazy loaded module while all eagerly loaded\r\n     * modules share one instance.\r\n     *\r\n     */\r\n    providedIn?: Type<any> | 'root' | 'platform' | 'any' | null;\r\n}\r\n\r\n/**\r\n * Injectable decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Injectable: InjectableDecorator;\r\n\r\n/**\r\n * Type of the Injectable decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface InjectableDecorator {\r\n    /**\r\n     * Decorator that marks a class as available to be\r\n     * provided and injected as a dependency.\r\n     *\r\n     * @see [Introduction to Services and DI](guide/architecture-services)\r\n     * @see [Dependency Injection Guide](guide/dependency-injection)\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * Marking a class with `@Injectable` ensures that the compiler\r\n     * will generate the necessary metadata to create the class's\r\n     * dependencies when the class is injected.\r\n     *\r\n     * The following example shows how a service class is properly\r\n     *  marked so that a supporting service can be injected upon creation.\r\n     *\r\n     * <code-example path=\"core/di/ts/metadata_spec.ts\" region=\"Injectable\"></code-example>\r\n     *\r\n     */\r\n    (): TypeDecorator;\r\n    (options?: {\r\n        providedIn: Type<any> | 'root' | 'platform' | 'any' | null;\r\n    } & InjectableProvider): TypeDecorator;\r\n    new (): Injectable;\r\n    new (options?: {\r\n        providedIn: Type<any> | 'root' | 'platform' | 'any' | null;\r\n    } & InjectableProvider): Injectable;\r\n}\r\n\r\n/**\r\n * Injectable providers used in `@Injectable` decorator.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type InjectableProvider = ValueSansProvider | ExistingSansProvider | StaticClassSansProvider | ConstructorSansProvider | FactorySansProvider | ClassSansProvider;\r\n\r\n/**\r\n * A `Type` which has a `ɵprov: ɵɵInjectableDeclaration` static field.\r\n *\r\n * `InjectableType`s contain their own Dependency Injection metadata and are usable in an\r\n * `InjectorDef`-based `StaticInjector.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface InjectableType<T> extends Type<T> {\r\n    /**\r\n     * Opaque type whose structure is highly version dependent. Do not rely on any properties.\r\n     */\r\n    ɵprov: unknown;\r\n}\r\n\r\n\r\n/**\r\n * Type of the Inject decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface InjectDecorator {\r\n    /**\r\n     * Parameter decorator on a dependency parameter of a class constructor\r\n     * that specifies a custom provider of the dependency.\r\n     *\r\n     * @usageNotes\r\n     * The following example shows a class constructor that specifies a\r\n     * custom provider of a dependency using the parameter decorator.\r\n     *\r\n     * When `@Inject()` is not present, the injector uses the type annotation of the\r\n     * parameter as the provider.\r\n     *\r\n     * <code-example path=\"core/di/ts/metadata_spec.ts\" region=\"InjectWithoutDecorator\">\r\n     * </code-example>\r\n     *\r\n     * @see [\"Dependency Injection Guide\"](guide/dependency-injection)\r\n     *\r\n     */\r\n    (token: any): any;\r\n    new (token: any): Inject;\r\n}\r\n\r\n/**\r\n * Injection flags for DI.\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum InjectFlags {\r\n    /** Check self and check parent injector if needed */\r\n    Default = 0,\r\n    /**\r\n     * Specifies that an injector should retrieve a dependency from any injector until reaching the\r\n     * host element of the current component. (Only used with Element Injector)\r\n     */\r\n    Host = 1,\r\n    /** Don't ascend to ancestors of the node requesting injection. */\r\n    Self = 2,\r\n    /** Skip the node that is requesting injection. */\r\n    SkipSelf = 4,\r\n    /** Inject `defaultValue` instead if token not found. */\r\n    Optional = 8\r\n}\r\n\r\n/**\r\n * Creates a token that can be used in a DI Provider.\r\n *\r\n * Use an `InjectionToken` whenever the type you are injecting is not reified (does not have a\r\n * runtime representation) such as when injecting an interface, callable type, array or\r\n * parameterized type.\r\n *\r\n * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by\r\n * the `Injector`. This provides additional level of type safety.\r\n *\r\n * ```\r\n * interface MyInterface {...}\r\n * var myInterface = injector.get(new InjectionToken<MyInterface>('SomeToken'));\r\n * // myInterface is inferred to be MyInterface.\r\n * ```\r\n *\r\n * When creating an `InjectionToken`, you can optionally specify a factory function which returns\r\n * (possibly by creating) a default value of the parameterized type `T`. This sets up the\r\n * `InjectionToken` using this factory as a provider as if it was defined explicitly in the\r\n * application's root injector. If the factory function, which takes zero arguments, needs to inject\r\n * dependencies, it can do so using the `inject` function. See below for an example.\r\n *\r\n * Additionally, if a `factory` is specified you can also specify the `providedIn` option, which\r\n * overrides the above behavior and marks the token as belonging to a particular `@NgModule`. As\r\n * mentioned above, `'root'` is the default value for `providedIn`.\r\n *\r\n * @usageNotes\r\n * ### Basic Example\r\n *\r\n * ### Plain InjectionToken\r\n *\r\n * {@example core/di/ts/injector_spec.ts region='InjectionToken'}\r\n *\r\n * ### Tree-shakable InjectionToken\r\n *\r\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\r\n *\r\n *\r\n * @publicApi\r\n */\r\nexport declare class InjectionToken<T> {\r\n    protected _desc: string;\r\n    readonly ɵprov: unknown;\r\n    constructor(_desc: string, options?: {\r\n        providedIn?: Type<any> | 'root' | 'platform' | 'any' | null;\r\n        factory: () => T;\r\n    });\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * An InjectionToken that gets the current `Injector` for `createInjector()`-style injectors.\r\n *\r\n * Requesting this token instead of `Injector` allows `StaticInjector` to be tree-shaken from a\r\n * project.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const INJECTOR: InjectionToken<Injector>;\r\n\r\n/**\r\n * Concrete injectors implement this interface. Injectors are configured\r\n * with [providers](guide/glossary#provider) that associate\r\n * dependencies of various types with [injection tokens](guide/glossary#di-token).\r\n *\r\n * @see [\"DI Providers\"](guide/dependency-injection-providers).\r\n * @see `StaticProvider`\r\n *\r\n * @usageNotes\r\n *\r\n *  The following example creates a service injector instance.\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='ConstructorProvider'}\r\n *\r\n * ### Usage example\r\n *\r\n * {@example core/di/ts/injector_spec.ts region='Injector'}\r\n *\r\n * `Injector` returns itself when given `Injector` as a token:\r\n *\r\n * {@example core/di/ts/injector_spec.ts region='injectInjector'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class Injector {\r\n    static THROW_IF_NOT_FOUND: {};\r\n    static NULL: Injector;\r\n    /**\r\n     * Retrieves an instance from the injector based on the provided token.\r\n     * @returns The instance from the injector if defined, otherwise the `notFoundValue`.\r\n     * @throws When the `notFoundValue` is `undefined` or `Injector.THROW_IF_NOT_FOUND`.\r\n     */\r\n    abstract get<T>(token: ProviderToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n    /**\r\n     * @deprecated from v4.0.0 use ProviderToken<T>\r\n     * @suppress {duplicate}\r\n     */\r\n    abstract get(token: any, notFoundValue?: any): any;\r\n    /**\r\n     * @deprecated from v5 use the new signature Injector.create(options)\r\n     */\r\n    static create(providers: StaticProvider[], parent?: Injector): Injector;\r\n    /**\r\n     * Creates a new injector instance that provides one or more dependencies,\r\n     * according to a given type or types of `StaticProvider`.\r\n     *\r\n     * @param options An object with the following properties:\r\n     * * `providers`: An array of providers of the [StaticProvider type](api/core/StaticProvider).\r\n     * * `parent`: (optional) A parent injector.\r\n     * * `name`: (optional) A developer-defined identifying name for the new injector.\r\n     *\r\n     * @returns The new injector instance.\r\n     *\r\n     */\r\n    static create(options: {\r\n        providers: StaticProvider[];\r\n        parent?: Injector;\r\n        name?: string;\r\n    }): Injector;\r\n    /** @nocollapse */\r\n    static ɵprov: unknown;\r\n}\r\n\r\ndeclare const INJECTOR_2 = 9;\r\n\r\n/**\r\n * A type which has an `InjectorDef` static field.\r\n *\r\n * `InjectorTypes` can be used to configure a `StaticInjector`.\r\n *\r\n * This is an opaque type whose structure is highly version dependent. Do not rely on any\r\n * properties.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface InjectorType<T> extends Type<T> {\r\n    ɵfac?: unknown;\r\n    ɵinj: unknown;\r\n}\r\n\r\n/**\r\n * Describes the `InjectorDef` equivalent of a `ModuleWithProviders`, an `InjectorType` with an\r\n * associated array of providers.\r\n *\r\n * Objects of this type can be listed in the imports section of an `InjectorDef`.\r\n *\r\n * NOTE: This is a private type and should not be exported\r\n */\r\ndeclare interface InjectorTypeWithProviders<T> {\r\n    ngModule: InjectorType<T>;\r\n    providers?: (Type<any> | ValueProvider | ExistingProvider | FactoryProvider | ConstructorProvider | StaticClassProvider | ClassProvider | any[])[];\r\n}\r\n\r\n/**\r\n * Type of metadata for an `Input` property.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Input {\r\n    /**\r\n     * The name of the DOM property to which the input property is bound.\r\n     */\r\n    bindingPropertyName?: string;\r\n}\r\n\r\n/**\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Input: InputDecorator;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare interface InputDecorator {\r\n    /**\r\n     * Decorator that marks a class field as an input property and supplies configuration metadata.\r\n     * The input property is bound to a DOM property in the template. During change detection,\r\n     * Angular automatically updates the data property with the DOM property's value.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * You can supply an optional name to use in templates when the\r\n     * component is instantiated, that maps to the\r\n     * name of the bound property. By default, the original\r\n     * name of the bound property is used for input binding.\r\n     *\r\n     * The following example creates a component with two input properties,\r\n     * one of which is given a special binding name.\r\n     *\r\n     * ```typescript\r\n     * @Component({\r\n     *   selector: 'bank-account',\r\n     *   template: `\r\n     *     Bank Name: {{bankName}}\r\n     *     Account Id: {{id}}\r\n     *   `\r\n     * })\r\n     * class BankAccount {\r\n     *   // This property is bound using its original name.\r\n     *   @Input() bankName: string;\r\n     *   // this property value is bound to a different property name\r\n     *   // when this component is instantiated in a template.\r\n     *   @Input('account-id') id: string;\r\n     *\r\n     *   // this property is not bound, and is not automatically updated by Angular\r\n     *   normalizedBankName: string;\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'app',\r\n     *   template: `\r\n     *     <bank-account bankName=\"RBC\" account-id=\"4747\"></bank-account>\r\n     *   `\r\n     * })\r\n     * class App {}\r\n     * ```\r\n     *\r\n     * @see [Input and Output properties](guide/inputs-outputs)\r\n     */\r\n    (bindingPropertyName?: string): any;\r\n    new (bindingPropertyName?: string): any;\r\n}\r\n\r\n/**\r\n * See `TNode.insertBeforeIndex`\r\n */\r\ndeclare type InsertBeforeIndex = null | number | number[];\r\n\r\ndeclare interface InternalNgModuleRef<T> extends NgModuleRef<T> {\r\n    _bootstrapComponents: Type<any>[];\r\n}\r\n\r\ndeclare interface InternalViewRef extends ViewRef {\r\n    detachFromAppRef(): void;\r\n    attachToAppRef(appRef: ViewRefTracker): void;\r\n}\r\n\r\n\r\n/**\r\n * Returns whether Angular is in development mode. After called once,\r\n * the value is locked and won't change any more.\r\n *\r\n * By default, this is true, unless a user calls `enableProdMode` before calling this.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function isDevMode(): boolean;\r\n\r\n/**\r\n * Record representing the item change information.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface IterableChangeRecord<V> {\r\n    /** Current index of the item in `Iterable` or null if removed. */\r\n    readonly currentIndex: number | null;\r\n    /** Previous index of the item in `Iterable` or null if added. */\r\n    readonly previousIndex: number | null;\r\n    /** The item. */\r\n    readonly item: V;\r\n    /** Track by identity as computed by the `TrackByFunction`. */\r\n    readonly trackById: any;\r\n}\r\n\r\ndeclare class IterableChangeRecord_<V> implements IterableChangeRecord<V> {\r\n    item: V;\r\n    trackById: any;\r\n    currentIndex: number | null;\r\n    previousIndex: number | null;\r\n    constructor(item: V, trackById: any);\r\n}\r\n\r\n/**\r\n * An object describing the changes in the `Iterable` collection since last time\r\n * `IterableDiffer#diff()` was invoked.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface IterableChanges<V> {\r\n    /**\r\n     * Iterate over all changes. `IterableChangeRecord` will contain information about changes\r\n     * to each item.\r\n     */\r\n    forEachItem(fn: (record: IterableChangeRecord<V>) => void): void;\r\n    /**\r\n     * Iterate over a set of operations which when applied to the original `Iterable` will produce the\r\n     * new `Iterable`.\r\n     *\r\n     * NOTE: These are not necessarily the actual operations which were applied to the original\r\n     * `Iterable`, rather these are a set of computed operations which may not be the same as the\r\n     * ones applied.\r\n     *\r\n     * @param record A change which needs to be applied\r\n     * @param previousIndex The `IterableChangeRecord#previousIndex` of the `record` refers to the\r\n     *        original `Iterable` location, where as `previousIndex` refers to the transient location\r\n     *        of the item, after applying the operations up to this point.\r\n     * @param currentIndex The `IterableChangeRecord#currentIndex` of the `record` refers to the\r\n     *        original `Iterable` location, where as `currentIndex` refers to the transient location\r\n     *        of the item, after applying the operations up to this point.\r\n     */\r\n    forEachOperation(fn: (record: IterableChangeRecord<V>, previousIndex: number | null, currentIndex: number | null) => void): void;\r\n    /**\r\n     * Iterate over changes in the order of original `Iterable` showing where the original items\r\n     * have moved.\r\n     */\r\n    forEachPreviousItem(fn: (record: IterableChangeRecord<V>) => void): void;\r\n    /** Iterate over all added items. */\r\n    forEachAddedItem(fn: (record: IterableChangeRecord<V>) => void): void;\r\n    /** Iterate over all moved items. */\r\n    forEachMovedItem(fn: (record: IterableChangeRecord<V>) => void): void;\r\n    /** Iterate over all removed items. */\r\n    forEachRemovedItem(fn: (record: IterableChangeRecord<V>) => void): void;\r\n    /**\r\n     * Iterate over all items which had their identity (as computed by the `TrackByFunction`)\r\n     * changed.\r\n     */\r\n    forEachIdentityChange(fn: (record: IterableChangeRecord<V>) => void): void;\r\n}\r\n\r\n/**\r\n * A strategy for tracking changes over time to an iterable. Used by {@link NgForOf} to\r\n * respond to changes in an iterable by effecting equivalent changes in the DOM.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface IterableDiffer<V> {\r\n    /**\r\n     * Compute a difference between the previous state and the new `object` state.\r\n     *\r\n     * @param object containing the new value.\r\n     * @returns an object describing the difference. The return value is only valid until the next\r\n     * `diff()` invocation.\r\n     */\r\n    diff(object: NgIterable<V> | undefined | null): IterableChanges<V> | null;\r\n}\r\n\r\n/**\r\n * Provides a factory for {@link IterableDiffer}.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface IterableDifferFactory {\r\n    supports(objects: any): boolean;\r\n    create<V>(trackByFn?: TrackByFunction<V>): IterableDiffer<V>;\r\n}\r\n\r\n/**\r\n * A repository of different iterable diffing strategies used by NgFor, NgClass, and others.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class IterableDiffers {\r\n    /** @nocollapse */\r\n    static ɵprov: unknown;\r\n    /**\r\n     * @deprecated v4.0.0 - Should be private\r\n     */\r\n    factories: IterableDifferFactory[];\r\n    constructor(factories: IterableDifferFactory[]);\r\n    static create(factories: IterableDifferFactory[], parent?: IterableDiffers): IterableDiffers;\r\n    /**\r\n     * Takes an array of {@link IterableDifferFactory} and returns a provider used to extend the\r\n     * inherited {@link IterableDiffers} instance with the provided factories and return a new\r\n     * {@link IterableDiffers} instance.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * The following example shows how to extend an existing list of factories,\r\n     * which will only be applied to the injector for this component and its children.\r\n     * This step is all that's required to make a new {@link IterableDiffer} available.\r\n     *\r\n     * ```\r\n     * @Component({\r\n     *   viewProviders: [\r\n     *     IterableDiffers.extend([new ImmutableListDiffer()])\r\n     *   ]\r\n     * })\r\n     * ```\r\n     */\r\n    static extend(factories: IterableDifferFactory[]): StaticProvider;\r\n    find(iterable: any): IterableDifferFactory;\r\n}\r\n\r\n/**\r\n * `KeyValueArray` is an array where even positions contain keys and odd positions contain values.\r\n *\r\n * `KeyValueArray` provides a very efficient way of iterating over its contents. For small\r\n * sets (~10) the cost of binary searching an `KeyValueArray` has about the same performance\r\n * characteristics that of a `Map` with significantly better memory footprint.\r\n *\r\n * If used as a `Map` the keys are stored in alphabetical order so that they can be binary searched\r\n * for retrieval.\r\n *\r\n * See: `keyValueArraySet`, `keyValueArrayGet`, `keyValueArrayIndexOf`, `keyValueArrayDelete`.\r\n */\r\ndeclare interface KeyValueArray<VALUE> extends Array<VALUE | string> {\r\n    __brand__: 'array-map';\r\n}\r\n\r\n/**\r\n * Record representing the item change information.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface KeyValueChangeRecord<K, V> {\r\n    /**\r\n     * Current key in the Map.\r\n     */\r\n    readonly key: K;\r\n    /**\r\n     * Current value for the key or `null` if removed.\r\n     */\r\n    readonly currentValue: V | null;\r\n    /**\r\n     * Previous value for the key or `null` if added.\r\n     */\r\n    readonly previousValue: V | null;\r\n}\r\n\r\n/**\r\n * An object describing the changes in the `Map` or `{[k:string]: string}` since last time\r\n * `KeyValueDiffer#diff()` was invoked.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface KeyValueChanges<K, V> {\r\n    /**\r\n     * Iterate over all changes. `KeyValueChangeRecord` will contain information about changes\r\n     * to each item.\r\n     */\r\n    forEachItem(fn: (r: KeyValueChangeRecord<K, V>) => void): void;\r\n    /**\r\n     * Iterate over changes in the order of original Map showing where the original items\r\n     * have moved.\r\n     */\r\n    forEachPreviousItem(fn: (r: KeyValueChangeRecord<K, V>) => void): void;\r\n    /**\r\n     * Iterate over all keys for which values have changed.\r\n     */\r\n    forEachChangedItem(fn: (r: KeyValueChangeRecord<K, V>) => void): void;\r\n    /**\r\n     * Iterate over all added items.\r\n     */\r\n    forEachAddedItem(fn: (r: KeyValueChangeRecord<K, V>) => void): void;\r\n    /**\r\n     * Iterate over all removed items.\r\n     */\r\n    forEachRemovedItem(fn: (r: KeyValueChangeRecord<K, V>) => void): void;\r\n}\r\n\r\n/**\r\n * A differ that tracks changes made to an object over time.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface KeyValueDiffer<K, V> {\r\n    /**\r\n     * Compute a difference between the previous state and the new `object` state.\r\n     *\r\n     * @param object containing the new value.\r\n     * @returns an object describing the difference. The return value is only valid until the next\r\n     * `diff()` invocation.\r\n     */\r\n    diff(object: Map<K, V>): KeyValueChanges<K, V> | null;\r\n    /**\r\n     * Compute a difference between the previous state and the new `object` state.\r\n     *\r\n     * @param object containing the new value.\r\n     * @returns an object describing the difference. The return value is only valid until the next\r\n     * `diff()` invocation.\r\n     */\r\n    diff(object: {\r\n        [key: string]: V;\r\n    }): KeyValueChanges<string, V> | null;\r\n}\r\n\r\n/**\r\n * Provides a factory for {@link KeyValueDiffer}.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface KeyValueDifferFactory {\r\n    /**\r\n     * Test to see if the differ knows how to diff this kind of object.\r\n     */\r\n    supports(objects: any): boolean;\r\n    /**\r\n     * Create a `KeyValueDiffer`.\r\n     */\r\n    create<K, V>(): KeyValueDiffer<K, V>;\r\n}\r\n\r\n/**\r\n * A repository of different Map diffing strategies used by NgClass, NgStyle, and others.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class KeyValueDiffers {\r\n    /** @nocollapse */\r\n    static ɵprov: unknown;\r\n    /**\r\n     * @deprecated v4.0.0 - Should be private.\r\n     */\r\n    factories: KeyValueDifferFactory[];\r\n    constructor(factories: KeyValueDifferFactory[]);\r\n    static create<S>(factories: KeyValueDifferFactory[], parent?: KeyValueDiffers): KeyValueDiffers;\r\n    /**\r\n     * Takes an array of {@link KeyValueDifferFactory} and returns a provider used to extend the\r\n     * inherited {@link KeyValueDiffers} instance with the provided factories and return a new\r\n     * {@link KeyValueDiffers} instance.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * The following example shows how to extend an existing list of factories,\r\n     * which will only be applied to the injector for this component and its children.\r\n     * This step is all that's required to make a new {@link KeyValueDiffer} available.\r\n     *\r\n     * ```\r\n     * @Component({\r\n     *   viewProviders: [\r\n     *     KeyValueDiffers.extend([new ImmutableMapDiffer()])\r\n     *   ]\r\n     * })\r\n     * ```\r\n     */\r\n    static extend<S>(factories: KeyValueDifferFactory[]): StaticProvider;\r\n    find(kv: any): KeyValueDifferFactory;\r\n}\r\n\r\n/**\r\n * The state associated with a container.\r\n *\r\n * This is an array so that its structure is closer to LView. This helps\r\n * when traversing the view tree (which is a mix of containers and component\r\n * views), so we can jump to viewOrContainer[NEXT] in the same way regardless\r\n * of type.\r\n */\r\ndeclare interface LContainer extends Array<any> {\r\n    /**\r\n     * The host element of this LContainer.\r\n     *\r\n     * The host could be an LView if this container is on a component node.\r\n     * In that case, the component LView is its HOST.\r\n     */\r\n    readonly [HOST]: RElement | RComment | ɵangular_packages_core_core_ca;\r\n    /**\r\n     * This is a type field which allows us to differentiate `LContainer` from `StylingContext` in an\r\n     * efficient way. The value is always set to `true`\r\n     */\r\n    [TYPE]: true;\r\n    /**\r\n     * Flag to signify that this `LContainer` may have transplanted views which need to be change\r\n     * detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.\r\n     *\r\n     * This flag, once set, is never unset for the `LContainer`.\r\n     */\r\n    [HAS_TRANSPLANTED_VIEWS]: boolean;\r\n    /**\r\n     * Access to the parent view is necessary so we can propagate back\r\n     * up from inside a container to parent[NEXT].\r\n     */\r\n    [PARENT]: ɵangular_packages_core_core_ca;\r\n    /**\r\n     * This allows us to jump from a container to a sibling container or component\r\n     * view with the same parent, so we can remove listeners efficiently.\r\n     */\r\n    [NEXT]: ɵangular_packages_core_core_ca | LContainer | null;\r\n    /**\r\n     * The number of direct transplanted views which need a refresh or have descendants themselves\r\n     * that need a refresh but have not marked their ancestors as Dirty. This tells us that during\r\n     * change detection we should still descend to find those children to refresh, even if the parents\r\n     * are not `Dirty`/`CheckAlways`.\r\n     */\r\n    [TRANSPLANTED_VIEWS_TO_REFRESH]: number;\r\n    /**\r\n     * A collection of views created based on the underlying `<ng-template>` element but inserted into\r\n     * a different `LContainer`. We need to track views created from a given declaration point since\r\n     * queries collect matches from the embedded view declaration point and _not_ the insertion point.\r\n     */\r\n    [MOVED_VIEWS]: ɵangular_packages_core_core_ca[] | null;\r\n    /**\r\n     * Pointer to the `TNode` which represents the host of the container.\r\n     */\r\n    [T_HOST]: TNode;\r\n    /** The comment element that serves as an anchor for this LContainer. */\r\n    readonly [NATIVE]: RComment;\r\n    /**\r\n     * Array of `ViewRef`s used by any `ViewContainerRef`s that point to this container.\r\n     *\r\n     * This is lazily initialized by `ViewContainerRef` when the first view is inserted.\r\n     *\r\n     * NOTE: This is stored as `any[]` because render3 should really not be aware of `ViewRef` and\r\n     * doing so creates circular dependency.\r\n     */\r\n    [VIEW_REFS]: unknown[] | null;\r\n}\r\n\r\n/**\r\n * Human readable version of the `LContainer`\r\n *\r\n * `LContainer` is a data structure used internally to keep track of child views. The `LContainer`\r\n * is designed for efficiency and so at times it is difficult to read or write tests which assert on\r\n * its values. For this reason when `ngDevMode` is true we patch a `LContainer.debug` property which\r\n * points to `LContainerDebug` for easier debugging and test writing. It is the intent of\r\n * `LContainerDebug` to be used in tests.\r\n */\r\ndeclare interface LContainerDebug {\r\n    readonly native: RComment;\r\n    /**\r\n     * Child `LView`s.\r\n     */\r\n    readonly views: LViewDebug[];\r\n    readonly parent: LViewDebug | null;\r\n    readonly movedViews: ɵangular_packages_core_core_ca[] | null;\r\n    readonly host: RElement | RComment | ɵangular_packages_core_core_ca;\r\n    readonly next: LViewDebug | LContainerDebug | null;\r\n    readonly hasTransplantedViews: boolean;\r\n}\r\n\r\n/**\r\n * Provide this token to set the locale of your application.\r\n * It is used for i18n extraction, by i18n pipes (DatePipe, I18nPluralPipe, CurrencyPipe,\r\n * DecimalPipe and PercentPipe) and by ICU expressions.\r\n *\r\n * See the [i18n guide](guide/i18n-common-locale-id) for more information.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```typescript\r\n * import { LOCALE_ID } from '@angular/core';\r\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n * import { AppModule } from './app/app.module';\r\n *\r\n * platformBrowserDynamic().bootstrapModule(AppModule, {\r\n *   providers: [{provide: LOCALE_ID, useValue: 'en-US' }]\r\n * });\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare const LOCALE_ID: InjectionToken<string>;\r\n\r\n/**\r\n * Type for a function that extracts a value for a local refs.\r\n * Example:\r\n * - `<div #nativeDivEl>` - `nativeDivEl` should point to the native `<div>` element;\r\n * - `<ng-template #tplRef>` - `tplRef` should point to the `TemplateRef` instance;\r\n */\r\ndeclare type LocalRefExtractor = (tNode: TNodeWithLocalRefs, currentView: ɵangular_packages_core_core_ca) => any;\r\n\r\n/**\r\n * lQueries represent a collection of individual LQuery objects tracked in a given view.\r\n */\r\ndeclare interface LQueries {\r\n    /**\r\n     * A collection of queries tracked in a given view.\r\n     */\r\n    queries: LQuery<any>[];\r\n    /**\r\n     * A method called when a new embedded view is created. As a result a set of LQueries applicable\r\n     * for a new embedded view is instantiated (cloned) from the declaration view.\r\n     * @param tView\r\n     */\r\n    createEmbeddedView(tView: TView): LQueries | null;\r\n    /**\r\n     * A method called when an embedded view is inserted into a container. As a result all impacted\r\n     * `LQuery` objects (and associated `QueryList`) are marked as dirty.\r\n     * @param tView\r\n     */\r\n    insertView(tView: TView): void;\r\n    /**\r\n     * A method called when an embedded view is detached from a container. As a result all impacted\r\n     * `LQuery` objects (and associated `QueryList`) are marked as dirty.\r\n     * @param tView\r\n     */\r\n    detachView(tView: TView): void;\r\n}\r\n\r\n/**\r\n * An interface that represents query-related information specific to a view instance. Most notably\r\n * it contains:\r\n * - materialized query matches;\r\n * - a pointer to a QueryList where materialized query results should be reported.\r\n */\r\ndeclare interface LQuery<T> {\r\n    /**\r\n     * Materialized query matches for a given view only (!). Results are initialized lazily so the\r\n     * array of matches is set to `null` initially.\r\n     */\r\n    matches: (T | null)[] | null;\r\n    /**\r\n     * A QueryList where materialized query results should be reported.\r\n     */\r\n    queryList: QueryList<T>;\r\n    /**\r\n     * Clones an LQuery for an embedded view. A cloned query shares the same `QueryList` but has a\r\n     * separate collection of materialized matches.\r\n     */\r\n    clone(): LQuery<T>;\r\n    /**\r\n     * Called when an embedded view, impacting results of this query, is inserted or removed.\r\n     */\r\n    setDirty(): void;\r\n}\r\n\r\n/**\r\n * Human readable version of the `LView`.\r\n *\r\n * `LView` is a data structure used internally to keep track of views. The `LView` is designed for\r\n * efficiency and so at times it is difficult to read or write tests which assert on its values. For\r\n * this reason when `ngDevMode` is true we patch a `LView.debug` property which points to\r\n * `LViewDebug` for easier debugging and test writing. It is the intent of `LViewDebug` to be used\r\n * in tests.\r\n */\r\ndeclare interface LViewDebug {\r\n    /**\r\n     * Flags associated with the `LView` unpacked into a more readable state.\r\n     *\r\n     * See `LViewFlags` for the flag meanings.\r\n     */\r\n    readonly flags: {\r\n        initPhaseState: number;\r\n        creationMode: boolean;\r\n        firstViewPass: boolean;\r\n        checkAlways: boolean;\r\n        dirty: boolean;\r\n        attached: boolean;\r\n        destroyed: boolean;\r\n        isRoot: boolean;\r\n        indexWithinInitPhase: number;\r\n    };\r\n    /**\r\n     * Associated TView\r\n     */\r\n    readonly tView: TView;\r\n    /**\r\n     * Parent view (or container)\r\n     */\r\n    readonly parent: LViewDebug | LContainerDebug | null;\r\n    /**\r\n     * Next sibling to the `LView`.\r\n     */\r\n    readonly next: LViewDebug | LContainerDebug | null;\r\n    /**\r\n     * The context used for evaluation of the `LView`\r\n     *\r\n     * (Usually the component)\r\n     */\r\n    readonly context: {} | null;\r\n    /**\r\n     * Hierarchical tree of nodes.\r\n     */\r\n    readonly nodes: DebugNode_2[];\r\n    /**\r\n     * Template structure (no instance data).\r\n     * (Shows how TNodes are connected)\r\n     */\r\n    readonly template: string;\r\n    /**\r\n     * HTML representation of the `LView`.\r\n     *\r\n     * This is only approximate to actual HTML as child `LView`s are removed.\r\n     */\r\n    readonly html: string;\r\n    /**\r\n     * The host element to which this `LView` is attached.\r\n     */\r\n    readonly hostHTML: string | null;\r\n    /**\r\n     * Child `LView`s\r\n     */\r\n    readonly childViews: Array<LViewDebug | LContainerDebug>;\r\n    /**\r\n     * Sub range of `LView` containing decls (DOM elements).\r\n     */\r\n    readonly decls: LViewDebugRange;\r\n    /**\r\n     * Sub range of `LView` containing vars (bindings).\r\n     */\r\n    readonly vars: LViewDebugRange;\r\n    /**\r\n     * Sub range of `LView` containing expando (used by DI).\r\n     */\r\n    readonly expando: LViewDebugRange;\r\n}\r\n\r\n/**\r\n * `LView` is subdivided to ranges where the actual data is stored. Some of these ranges such as\r\n * `decls` and `vars` are known at compile time. Other such as `i18n` and `expando` are runtime only\r\n * concepts.\r\n */\r\ndeclare interface LViewDebugRange {\r\n    /**\r\n     * The starting index in `LView` where the range begins. (Inclusive)\r\n     */\r\n    start: number;\r\n    /**\r\n     * The ending index in `LView` where the range ends. (Exclusive)\r\n     */\r\n    end: number;\r\n    /**\r\n     * The length of the range\r\n     */\r\n    length: number;\r\n    /**\r\n     * The merged content of the range. `t` contains data from `TView.data` and `l` contains `LView`\r\n     * data at an index.\r\n     */\r\n    content: LViewDebugRangeContent[];\r\n}\r\n\r\n/**\r\n * For convenience the static and instance portions of `TView` and `LView` are merged into a single\r\n * object in `LViewRange`.\r\n */\r\ndeclare interface LViewDebugRangeContent {\r\n    /**\r\n     * Index into original `LView` or `TView.data`.\r\n     */\r\n    index: number;\r\n    /**\r\n     * Value from the `TView.data[index]` location.\r\n     */\r\n    t: any;\r\n    /**\r\n     * Value from the `LView[index]` location.\r\n     */\r\n    l: any;\r\n}\r\n\r\n/** Flags associated with an LView (saved in LView[FLAGS]) */\r\ndeclare const enum LViewFlags {\r\n    /** The state of the init phase on the first 2 bits */\r\n    InitPhaseStateIncrementer = 1,\r\n    InitPhaseStateMask = 3,\r\n    /**\r\n     * Whether or not the view is in creationMode.\r\n     *\r\n     * This must be stored in the view rather than using `data` as a marker so that\r\n     * we can properly support embedded views. Otherwise, when exiting a child view\r\n     * back into the parent view, `data` will be defined and `creationMode` will be\r\n     * improperly reported as false.\r\n     */\r\n    CreationMode = 4,\r\n    /**\r\n     * Whether or not this LView instance is on its first processing pass.\r\n     *\r\n     * An LView instance is considered to be on its \"first pass\" until it\r\n     * has completed one creation mode run and one update mode run. At this\r\n     * time, the flag is turned off.\r\n     */\r\n    FirstLViewPass = 8,\r\n    /** Whether this view has default change detection strategy (checks always) or onPush */\r\n    CheckAlways = 16,\r\n    /**\r\n     * Whether or not manual change detection is turned on for onPush components.\r\n     *\r\n     * This is a special mode that only marks components dirty in two cases:\r\n     * 1) There has been a change to an @Input property\r\n     * 2) `markDirty()` has been called manually by the user\r\n     *\r\n     * Note that in this mode, the firing of events does NOT mark components\r\n     * dirty automatically.\r\n     *\r\n     * Manual mode is turned off by default for backwards compatibility, as events\r\n     * automatically mark OnPush components dirty in View Engine.\r\n     *\r\n     * TODO: Add a public API to ChangeDetectionStrategy to turn this mode on\r\n     */\r\n    ManualOnPush = 32,\r\n    /** Whether or not this view is currently dirty (needing check) */\r\n    Dirty = 64,\r\n    /** Whether or not this view is currently attached to change detection tree. */\r\n    Attached = 128,\r\n    /** Whether or not this view is destroyed. */\r\n    Destroyed = 256,\r\n    /** Whether or not this view is the root view */\r\n    IsRoot = 512,\r\n    /**\r\n     * Whether this moved LView was needs to be refreshed at the insertion location because the\r\n     * declaration was dirty.\r\n     */\r\n    RefreshTransplantedView = 1024,\r\n    /**\r\n     * Index of the current init phase on last 21 bits\r\n     */\r\n    IndexWithinInitPhaseIncrementer = 2048,\r\n    IndexWithinInitPhaseShift = 11,\r\n    IndexWithinInitPhaseReset = 2047\r\n}\r\n\r\n/**\r\n * Use this enum at bootstrap as an option of `bootstrapModule` to define the strategy\r\n * that the compiler should use in case of missing translations:\r\n * - Error: throw if you have missing translations.\r\n * - Warning (default): show a warning in the console and/or shell.\r\n * - Ignore: do nothing.\r\n *\r\n * See the [i18n guide](guide/i18n-common-merge#report-missing-translations) for more information.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n * ```typescript\r\n * import { MissingTranslationStrategy } from '@angular/core';\r\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n * import { AppModule } from './app/app.module';\r\n *\r\n * platformBrowserDynamic().bootstrapModule(AppModule, {\r\n *   missingTranslation: MissingTranslationStrategy.Error\r\n * });\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum MissingTranslationStrategy {\r\n    Error = 0,\r\n    Warning = 1,\r\n    Ignore = 2\r\n}\r\n\r\n/**\r\n * Combination of NgModuleFactory and ComponentFactories.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ModuleWithComponentFactories<T> {\r\n    ngModuleFactory: NgModuleFactory<T>;\r\n    componentFactories: ComponentFactory<any>[];\r\n    constructor(ngModuleFactory: NgModuleFactory<T>, componentFactories: ComponentFactory<any>[]);\r\n}\r\n\r\n/**\r\n * A wrapper around an NgModule that associates it with [providers](guide/glossary#provider\r\n * \"Definition\"). Usage without a generic type is deprecated.\r\n *\r\n * @see [Deprecations](guide/deprecations#modulewithproviders-type-without-a-generic)\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ModuleWithProviders<T> {\r\n    ngModule: Type<T>;\r\n    providers?: Provider[];\r\n}\r\n\r\ndeclare const MOVED_VIEWS = 9;\r\n\r\ndeclare const NATIVE = 7;\r\n\r\ndeclare const NEXT = 4;\r\n\r\ndeclare interface NgContentDef {\r\n    /**\r\n     * this index is checked against NodeDef.ngContentIndex to find the nodes\r\n     * that are matched by this ng-content.\r\n     * Note that a NodeDef with an ng-content can be reprojected, i.e.\r\n     * have a ngContentIndex on its own.\r\n     */\r\n    index: number;\r\n}\r\n\r\n/**\r\n * A type describing supported iterable types.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type NgIterable<T> = Array<T> | Iterable<T>;\r\n\r\n/**\r\n * Type of the NgModule metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface NgModule {\r\n    /**\r\n     * The set of injectable objects that are available in the injector\r\n     * of this module.\r\n     *\r\n     * @see [Dependency Injection guide](guide/dependency-injection)\r\n     * @see [NgModule guide](guide/providers)\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * Dependencies whose providers are listed here become available for injection\r\n     * into any component, directive, pipe or service that is a child of this injector.\r\n     * The NgModule used for bootstrapping uses the root injector, and can provide dependencies\r\n     * to any part of the app.\r\n     *\r\n     * A lazy-loaded module has its own injector, typically a child of the app root injector.\r\n     * Lazy-loaded services are scoped to the lazy-loaded module's injector.\r\n     * If a lazy-loaded module also provides the `UserService`, any component created\r\n     * within that module's context (such as by router navigation) gets the local instance\r\n     * of the service, not the instance in the root injector.\r\n     * Components in external modules continue to receive the instance provided by their injectors.\r\n     *\r\n     * ### Example\r\n     *\r\n     * The following example defines a class that is injected in\r\n     * the HelloWorld NgModule:\r\n     *\r\n     * ```\r\n     * class Greeter {\r\n     *    greet(name:string) {\r\n     *      return 'Hello ' + name + '!';\r\n     *    }\r\n     * }\r\n     *\r\n     * @NgModule({\r\n     *   providers: [\r\n     *     Greeter\r\n     *   ]\r\n     * })\r\n     * class HelloWorld {\r\n     *   greeter:Greeter;\r\n     *\r\n     *   constructor(greeter:Greeter) {\r\n     *     this.greeter = greeter;\r\n     *   }\r\n     * }\r\n     * ```\r\n     */\r\n    providers?: Provider[];\r\n    /**\r\n     * The set of components, directives, and pipes ([declarables](guide/glossary#declarable))\r\n     * that belong to this module.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The set of selectors that are available to a template include those declared here, and\r\n     * those that are exported from imported NgModules.\r\n     *\r\n     * Declarables must belong to exactly one module.\r\n     * The compiler emits an error if you try to declare the same class in more than one module.\r\n     * Be careful not to declare a class that is imported from another module.\r\n     *\r\n     * ### Example\r\n     *\r\n     * The following example allows the CommonModule to use the `NgFor`\r\n     * directive.\r\n     *\r\n     * ```javascript\r\n     * @NgModule({\r\n     *   declarations: [NgFor]\r\n     * })\r\n     * class CommonModule {\r\n     * }\r\n     * ```\r\n     */\r\n    declarations?: Array<Type<any> | any[]>;\r\n    /**\r\n     * The set of NgModules whose exported [declarables](guide/glossary#declarable)\r\n     * are available to templates in this module.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * A template can use exported declarables from any\r\n     * imported module, including those from modules that are imported indirectly\r\n     * and re-exported.\r\n     * For example, `ModuleA` imports `ModuleB`, and also exports\r\n     * it, which makes the declarables from `ModuleB` available\r\n     * wherever `ModuleA` is imported.\r\n     *\r\n     * ### Example\r\n     *\r\n     * The following example allows MainModule to use anything exported by\r\n     * `CommonModule`:\r\n     *\r\n     * ```javascript\r\n     * @NgModule({\r\n     *   imports: [CommonModule]\r\n     * })\r\n     * class MainModule {\r\n     * }\r\n     * ```\r\n     *\r\n     */\r\n    imports?: Array<Type<any> | ModuleWithProviders<{}> | any[]>;\r\n    /**\r\n     * The set of components, directives, and pipes declared in this\r\n     * NgModule that can be used in the template of any component that is part of an\r\n     * NgModule that imports this NgModule. Exported declarations are the module's public API.\r\n     *\r\n     * A declarable belongs to one and only one NgModule.\r\n     * A module can list another module among its exports, in which case all of that module's\r\n     * public declaration are exported.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * Declarations are private by default.\r\n     * If this ModuleA does not export UserComponent, then only the components within this\r\n     * ModuleA can use UserComponent.\r\n     *\r\n     * ModuleA can import ModuleB and also export it, making exports from ModuleB\r\n     * available to an NgModule that imports ModuleA.\r\n     *\r\n     * ### Example\r\n     *\r\n     * The following example exports the `NgFor` directive from CommonModule.\r\n     *\r\n     * ```javascript\r\n     * @NgModule({\r\n     *   exports: [NgFor]\r\n     * })\r\n     * class CommonModule {\r\n     * }\r\n     * ```\r\n     */\r\n    exports?: Array<Type<any> | any[]>;\r\n    /**\r\n     * The set of components to compile when this NgModule is defined,\r\n     * so that they can be dynamically loaded into the view.\r\n     *\r\n     * For each component listed here, Angular creates a `ComponentFactory`\r\n     * and stores it in the `ComponentFactoryResolver`.\r\n     *\r\n     * Angular automatically adds components in the module's bootstrap\r\n     * and route definitions into the `entryComponents` list. Use this\r\n     * option to add components that are bootstrapped\r\n     * using one of the imperative techniques, such as `ViewContainerRef.createComponent()`.\r\n     *\r\n     * @see [Entry Components](guide/entry-components)\r\n     * @deprecated\r\n     * Since 9.0.0. With Ivy, this property is no longer necessary.\r\n     * (You may need to keep these if building a library that will be consumed by a View Engine\r\n     * application.)\r\n     */\r\n    entryComponents?: Array<Type<any> | any[]>;\r\n    /**\r\n     * The set of components that are bootstrapped when\r\n     * this module is bootstrapped. The components listed here\r\n     * are automatically added to `entryComponents`.\r\n     */\r\n    bootstrap?: Array<Type<any> | any[]>;\r\n    /**\r\n     * The set of schemas that declare elements to be allowed in the NgModule.\r\n     * Elements and properties that are neither Angular components nor directives\r\n     * must be declared in a schema.\r\n     *\r\n     * Allowed value are `NO_ERRORS_SCHEMA` and `CUSTOM_ELEMENTS_SCHEMA`.\r\n     *\r\n     * @security When using one of `NO_ERRORS_SCHEMA` or `CUSTOM_ELEMENTS_SCHEMA`\r\n     * you must ensure that allowed elements and properties securely escape inputs.\r\n     */\r\n    schemas?: Array<SchemaMetadata | any[]>;\r\n    /**\r\n     * A name or path that uniquely identifies this NgModule in `getModuleFactory`.\r\n     * If left `undefined`, the NgModule is not registered with\r\n     * `getModuleFactory`.\r\n     */\r\n    id?: string;\r\n    /**\r\n     * When present, this module is ignored by the AOT compiler.\r\n     * It remains in distributed code, and the JIT compiler attempts to compile it\r\n     * at run time, in the browser.\r\n     * To ensure the correct behavior, the app must import `@angular/compiler`.\r\n     */\r\n    jit?: true;\r\n}\r\n\r\n/**\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const NgModule: NgModuleDecorator;\r\n\r\n/**\r\n * Type of the NgModule decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface NgModuleDecorator {\r\n    /**\r\n     * Decorator that marks a class as an NgModule and supplies configuration metadata.\r\n     */\r\n    (obj?: NgModule): TypeDecorator;\r\n    new (obj?: NgModule): NgModule;\r\n}\r\n\r\ndeclare interface NgModuleDefinition extends Definition<NgModuleDefinitionFactory> {\r\n    providers: NgModuleProviderDef[];\r\n    providersByKey: {\r\n        [tokenKey: string]: NgModuleProviderDef;\r\n    };\r\n    modules: any[];\r\n    scope: 'root' | 'platform' | null;\r\n}\r\n\r\ndeclare interface NgModuleDefinitionFactory extends DefinitionFactory<NgModuleDefinition> {\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare abstract class NgModuleFactory<T> {\r\n    abstract get moduleType(): Type<T>;\r\n    abstract create(parentInjector: Injector | null): NgModuleRef<T>;\r\n}\r\n\r\n/**\r\n * Used to load ng module factories.\r\n *\r\n * @publicApi\r\n * @deprecated the `string` form of `loadChildren` is deprecated, and `NgModuleFactoryLoader` is\r\n * part of its implementation. See `LoadChildren` for more details.\r\n */\r\nexport declare abstract class NgModuleFactoryLoader {\r\n    abstract load(path: string): Promise<NgModuleFactory<any>>;\r\n}\r\n\r\ndeclare interface NgModuleProviderDef {\r\n    flags: ɵNodeFlags;\r\n    index: number;\r\n    token: any;\r\n    value: any;\r\n    deps: DepDef[];\r\n}\r\n\r\n/**\r\n * Represents an instance of an `NgModule` created by an `NgModuleFactory`.\r\n * Provides access to the `NgModule` instance and related objects.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class NgModuleRef<T> {\r\n    /**\r\n     * The injector that contains all of the providers of the `NgModule`.\r\n     */\r\n    abstract get injector(): Injector;\r\n    /**\r\n     * The resolver that can retrieve the component factories\r\n     * declared in the `entryComponents` property of the module.\r\n     */\r\n    abstract get componentFactoryResolver(): ComponentFactoryResolver;\r\n    /**\r\n     * The `NgModule` instance.\r\n     */\r\n    abstract get instance(): T;\r\n    /**\r\n     * Destroys the module instance and all of the data structures associated with it.\r\n     */\r\n    abstract destroy(): void;\r\n    /**\r\n     * Registers a callback to be executed when the module is destroyed.\r\n     */\r\n    abstract onDestroy(callback: () => void): void;\r\n}\r\n\r\n/**\r\n * A token for third-party components that can register themselves with NgProbe.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgProbeToken {\r\n    name: string;\r\n    token: any;\r\n    constructor(name: string, token: any);\r\n}\r\n\r\n/**\r\n * An injectable service for executing work inside or outside of the Angular zone.\r\n *\r\n * The most common use of this service is to optimize performance when starting a work consisting of\r\n * one or more asynchronous tasks that don't require UI updates or error handling to be handled by\r\n * Angular. Such tasks can be kicked off via {@link #runOutsideAngular} and if needed, these tasks\r\n * can reenter the Angular zone via {@link #run}.\r\n *\r\n * <!-- TODO: add/fix links to:\r\n *   - docs explaining zones and the use of zones in Angular and change-detection\r\n *   - link to runOutsideAngular/run (throughout this file!)\r\n *   -->\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```\r\n * import {Component, NgZone} from '@angular/core';\r\n * import {NgIf} from '@angular/common';\r\n *\r\n * @Component({\r\n *   selector: 'ng-zone-demo',\r\n *   template: `\r\n *     <h2>Demo: NgZone</h2>\r\n *\r\n *     <p>Progress: {{progress}}%</p>\r\n *     <p *ngIf=\"progress >= 100\">Done processing {{label}} of Angular zone!</p>\r\n *\r\n *     <button (click)=\"processWithinAngularZone()\">Process within Angular zone</button>\r\n *     <button (click)=\"processOutsideOfAngularZone()\">Process outside of Angular zone</button>\r\n *   `,\r\n * })\r\n * export class NgZoneDemo {\r\n *   progress: number = 0;\r\n *   label: string;\r\n *\r\n *   constructor(private _ngZone: NgZone) {}\r\n *\r\n *   // Loop inside the Angular zone\r\n *   // so the UI DOES refresh after each setTimeout cycle\r\n *   processWithinAngularZone() {\r\n *     this.label = 'inside';\r\n *     this.progress = 0;\r\n *     this._increaseProgress(() => console.log('Inside Done!'));\r\n *   }\r\n *\r\n *   // Loop outside of the Angular zone\r\n *   // so the UI DOES NOT refresh after each setTimeout cycle\r\n *   processOutsideOfAngularZone() {\r\n *     this.label = 'outside';\r\n *     this.progress = 0;\r\n *     this._ngZone.runOutsideAngular(() => {\r\n *       this._increaseProgress(() => {\r\n *         // reenter the Angular zone and display done\r\n *         this._ngZone.run(() => { console.log('Outside Done!'); });\r\n *       });\r\n *     });\r\n *   }\r\n *\r\n *   _increaseProgress(doneCallback: () => void) {\r\n *     this.progress += 1;\r\n *     console.log(`Current progress: ${this.progress}%`);\r\n *\r\n *     if (this.progress < 100) {\r\n *       window.setTimeout(() => this._increaseProgress(doneCallback), 10);\r\n *     } else {\r\n *       doneCallback();\r\n *     }\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgZone {\r\n    readonly hasPendingMacrotasks: boolean;\r\n    readonly hasPendingMicrotasks: boolean;\r\n    /**\r\n     * Whether there are no outstanding microtasks or macrotasks.\r\n     */\r\n    readonly isStable: boolean;\r\n    /**\r\n     * Notifies when code enters Angular Zone. This gets fired first on VM Turn.\r\n     */\r\n    readonly onUnstable: EventEmitter<any>;\r\n    /**\r\n     * Notifies when there is no more microtasks enqueued in the current VM Turn.\r\n     * This is a hint for Angular to do change detection, which may enqueue more microtasks.\r\n     * For this reason this event can fire multiple times per VM Turn.\r\n     */\r\n    readonly onMicrotaskEmpty: EventEmitter<any>;\r\n    /**\r\n     * Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which\r\n     * implies we are about to relinquish VM turn.\r\n     * This event gets called just once.\r\n     */\r\n    readonly onStable: EventEmitter<any>;\r\n    /**\r\n     * Notifies that an error has been delivered.\r\n     */\r\n    readonly onError: EventEmitter<any>;\r\n    constructor({ enableLongStackTrace, shouldCoalesceEventChangeDetection, shouldCoalesceRunChangeDetection }: {\r\n        enableLongStackTrace?: boolean | undefined;\r\n        shouldCoalesceEventChangeDetection?: boolean | undefined;\r\n        shouldCoalesceRunChangeDetection?: boolean | undefined;\r\n    });\r\n    static isInAngularZone(): boolean;\r\n    static assertInAngularZone(): void;\r\n    static assertNotInAngularZone(): void;\r\n    /**\r\n     * Executes the `fn` function synchronously within the Angular zone and returns value returned by\r\n     * the function.\r\n     *\r\n     * Running functions via `run` allows you to reenter Angular zone from a task that was executed\r\n     * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\r\n     *\r\n     * Any future tasks or microtasks scheduled from within this function will continue executing from\r\n     * within the Angular zone.\r\n     *\r\n     * If a synchronous error happens it will be rethrown and not reported via `onError`.\r\n     */\r\n    run<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T;\r\n    /**\r\n     * Executes the `fn` function synchronously within the Angular zone as a task and returns value\r\n     * returned by the function.\r\n     *\r\n     * Running functions via `run` allows you to reenter Angular zone from a task that was executed\r\n     * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\r\n     *\r\n     * Any future tasks or microtasks scheduled from within this function will continue executing from\r\n     * within the Angular zone.\r\n     *\r\n     * If a synchronous error happens it will be rethrown and not reported via `onError`.\r\n     */\r\n    runTask<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any[], name?: string): T;\r\n    /**\r\n     * Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not\r\n     * rethrown.\r\n     */\r\n    runGuarded<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T;\r\n    /**\r\n     * Executes the `fn` function synchronously in Angular's parent zone and returns value returned by\r\n     * the function.\r\n     *\r\n     * Running functions via {@link #runOutsideAngular} allows you to escape Angular's zone and do\r\n     * work that\r\n     * doesn't trigger Angular change-detection or is subject to Angular's error handling.\r\n     *\r\n     * Any future tasks or microtasks scheduled from within this function will continue executing from\r\n     * outside of the Angular zone.\r\n     *\r\n     * Use {@link #run} to reenter the Angular zone and do work that updates the application model.\r\n     */\r\n    runOutsideAngular<T>(fn: (...args: any[]) => T): T;\r\n}\r\n\r\n/**\r\n * Defines a schema that allows any property on any element.\r\n *\r\n * This schema allows you to ignore the errors related to any unknown elements or properties in a\r\n * template. The usage of this schema is generally discouraged because it prevents useful validation\r\n * and may hide real errors in your template. Consider using the `CUSTOM_ELEMENTS_SCHEMA` instead.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const NO_ERRORS_SCHEMA: SchemaMetadata;\r\n\r\ndeclare interface NodeCheckFn {\r\n    (view: ViewData, nodeIndex: number, argStyle: ɵArgumentType.Dynamic, values: any[]): any;\r\n    (view: ViewData, nodeIndex: number, argStyle: ɵArgumentType.Inline, v0?: any, v1?: any, v2?: any, v3?: any, v4?: any, v5?: any, v6?: any, v7?: any, v8?: any, v9?: any): any;\r\n}\r\n\r\n/**\r\n * Node instance data.\r\n *\r\n * We have a separate type per NodeType to save memory\r\n * (TextData | ElementData | ProviderData | PureExpressionData | QueryList<any>)\r\n *\r\n * To keep our code monomorphic,\r\n * we prohibit using `NodeData` directly but enforce the use of accessors (`asElementData`, ...).\r\n * This way, no usage site can get a `NodeData` from view.nodes and then use it for different\r\n * purposes.\r\n */\r\ndeclare class NodeData {\r\n    private __brand;\r\n}\r\n\r\n/**\r\n * A node definition in the view.\r\n *\r\n * Note: We use one type for all nodes so that loops that loop over all nodes\r\n * of a ViewDefinition stay monomorphic!\r\n */\r\ndeclare interface NodeDef {\r\n    flags: ɵNodeFlags;\r\n    nodeIndex: number;\r\n    checkIndex: number;\r\n    parent: NodeDef | null;\r\n    renderParent: NodeDef | null;\r\n    /** this is checked against NgContentDef.index to find matched nodes */\r\n    ngContentIndex: number | null;\r\n    /** number of transitive children */\r\n    childCount: number;\r\n    /** aggregated NodeFlags for all transitive children (does not include self) **/\r\n    childFlags: ɵNodeFlags;\r\n    /** aggregated NodeFlags for all direct children (does not include self) **/\r\n    directChildFlags: ɵNodeFlags;\r\n    bindingIndex: number;\r\n    bindings: BindingDef[];\r\n    bindingFlags: ɵBindingFlags;\r\n    outputIndex: number;\r\n    outputs: OutputDef[];\r\n    /**\r\n     * references that the user placed on the element\r\n     */\r\n    references: {\r\n        [refId: string]: ɵQueryValueType;\r\n    };\r\n    /**\r\n     * ids and value types of all queries that are matched by this node.\r\n     */\r\n    matchedQueries: {\r\n        [queryId: number]: ɵQueryValueType;\r\n    };\r\n    /** Binary or of all matched query ids of this node. */\r\n    matchedQueryIds: number;\r\n    /**\r\n     * Binary or of all query ids that are matched by one of the children.\r\n     * This includes query ids from templates as well.\r\n     * Used as a bloom filter.\r\n     */\r\n    childMatchedQueries: number;\r\n    element: ElementDef | null;\r\n    provider: ProviderDef | null;\r\n    text: TextDef | null;\r\n    query: QueryDef | null;\r\n    ngContent: NgContentDef | null;\r\n}\r\n\r\ndeclare interface NodeInjectorDebug {\r\n    /**\r\n     * Instance bloom. Does the current injector have a provider with a given bloom mask.\r\n     */\r\n    bloom: string;\r\n    /**\r\n     * Cumulative bloom. Do any of the above injectors have a provider with a given bloom mask.\r\n     */\r\n    cumulativeBloom: string;\r\n    /**\r\n     * A list of providers associated with this injector.\r\n     */\r\n    providers: (Type<unknown> | ɵDirectiveDef<unknown> | ɵComponentDef<unknown>)[];\r\n    /**\r\n     * A list of providers associated with this injector visible to the view of the component only.\r\n     */\r\n    viewProviders: Type<unknown>[];\r\n    /**\r\n     * Location of the parent `TNode`.\r\n     */\r\n    parentInjectorIndex: number;\r\n}\r\n\r\n/**\r\n * Function to call console.error at the right source location. This is an indirection\r\n * via another function as browser will log the location that actually called\r\n * `console.error`.\r\n */\r\ndeclare interface NodeLogger {\r\n    (): () => void;\r\n}\r\n\r\n/**\r\n * Object Oriented style of API needed to create elements and text nodes.\r\n *\r\n * This is the native browser API style, e.g. operations are methods on individual objects\r\n * like HTMLElement. With this style, no additional code is needed as a facade\r\n * (reducing payload size).\r\n * */\r\ndeclare interface ObjectOrientedRenderer3 {\r\n    createComment(data: string): RComment;\r\n    createElement(tagName: string): RElement;\r\n    createElementNS(namespace: string, tagName: string): RElement;\r\n    createTextNode(data: string): RText;\r\n    querySelector(selectors: string): RElement | null;\r\n}\r\n\r\n/**\r\n * @description\r\n * A lifecycle hook that is called when any data-bound property of a directive changes.\r\n * Define an `ngOnChanges()` method to handle the changes.\r\n *\r\n * @see `DoCheck`\r\n * @see `OnInit`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface to\r\n * define an on-changes handler for an input property.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='OnChanges'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface OnChanges {\r\n    /**\r\n     * A callback method that is invoked immediately after the\r\n     * default change detector has checked data-bound properties\r\n     * if at least one has changed, and before the view and content\r\n     * children are checked.\r\n     * @param changes The changed properties.\r\n     */\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n}\r\n\r\n/**\r\n * A lifecycle hook that is called when a directive, pipe, or service is destroyed.\r\n * Use for any custom cleanup that needs to occur when the\r\n * instance is destroyed.\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface\r\n * to define its own custom clean-up method.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='OnDestroy'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface OnDestroy {\r\n    /**\r\n     * A callback method that performs custom clean-up, invoked immediately\r\n     * before a directive, pipe, or service instance is destroyed.\r\n     */\r\n    ngOnDestroy(): void;\r\n}\r\n\r\n/**\r\n * @description\r\n * A lifecycle hook that is called after Angular has initialized\r\n * all data-bound properties of a directive.\r\n * Define an `ngOnInit()` method to handle any additional initialization tasks.\r\n *\r\n * @see `AfterContentInit`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface to\r\n * define its own initialization method.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='OnInit'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface OnInit {\r\n    /**\r\n     * A callback method that is invoked immediately after the\r\n     * default change detector has checked the directive's\r\n     * data-bound properties for the first time,\r\n     * and before any of the view or content children have been checked.\r\n     * It is invoked only once when the directive is instantiated.\r\n     */\r\n    ngOnInit(): void;\r\n}\r\n\r\ndeclare type OpaqueValue = unknown;\r\n\r\ndeclare interface OpaqueViewState {\r\n    '__brand__': 'Brand for OpaqueViewState that nothing will match';\r\n}\r\n\r\n/**\r\n * Type of the Optional metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Optional {\r\n}\r\n\r\n/**\r\n * Optional decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Optional: OptionalDecorator;\r\n\r\n/**\r\n * Type of the Optional decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface OptionalDecorator {\r\n    /**\r\n     * Parameter decorator to be used on constructor parameters,\r\n     * which marks the parameter as being an optional dependency.\r\n     * The DI framework provides `null` if the dependency is not found.\r\n     *\r\n     * Can be used together with other parameter decorators\r\n     * that modify how dependency injection operates.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The following code allows the possibility of a `null` result:\r\n     *\r\n     * <code-example path=\"core/di/ts/metadata_spec.ts\" region=\"Optional\">\r\n     * </code-example>\r\n     *\r\n     * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n     */\r\n    (): any;\r\n    new (): Optional;\r\n}\r\n\r\n/**\r\n * Type of the Output metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Output {\r\n    /**\r\n     * The name of the DOM property to which the output property is bound.\r\n     */\r\n    bindingPropertyName?: string;\r\n}\r\n\r\n/**\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Output: OutputDecorator;\r\n\r\n/**\r\n * Type of the Output decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface OutputDecorator {\r\n    /**\r\n     * Decorator that marks a class field as an output property and supplies configuration metadata.\r\n     * The DOM property bound to the output property is automatically updated during change detection.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * You can supply an optional name to use in templates when the\r\n     * component is instantiated, that maps to the\r\n     * name of the bound property. By default, the original\r\n     * name of the bound property is used for output binding.\r\n     *\r\n     * See `Input` decorator for an example of providing a binding name.\r\n     *\r\n     * @see [Input and Output properties](guide/inputs-outputs)\r\n     *\r\n     */\r\n    (bindingPropertyName?: string): any;\r\n    new (bindingPropertyName?: string): any;\r\n}\r\n\r\ndeclare interface OutputDef {\r\n    type: OutputType;\r\n    target: 'window' | 'document' | 'body' | 'component' | null;\r\n    eventName: string;\r\n    propName: string | null;\r\n}\r\n\r\ndeclare const enum OutputType {\r\n    ElementOutput = 0,\r\n    DirectiveOutput = 1\r\n}\r\n\r\n/**\r\n * A [DI token](guide/glossary#di-token \"DI token definition\") that indicates the root directory of\r\n * the application\r\n * @publicApi\r\n */\r\nexport declare const PACKAGE_ROOT_URL: InjectionToken<string>;\r\n\r\ndeclare const PARENT = 3;\r\n\r\n/**\r\n * Type of the Pipe metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Pipe {\r\n    /**\r\n     * The pipe name to use in template bindings.\r\n     * Typically uses [lowerCamelCase](guide/glossary#case-types)\r\n     * because the name cannot contain hyphens.\r\n     */\r\n    name: string;\r\n    /**\r\n     * When true, the pipe is pure, meaning that the\r\n     * `transform()` method is invoked only when its input arguments\r\n     * change. Pipes are pure by default.\r\n     *\r\n     * If the pipe has internal state (that is, the result\r\n     * depends on state other than its arguments), set `pure` to false.\r\n     * In this case, the pipe is invoked on each change-detection cycle,\r\n     * even if the arguments have not changed.\r\n     */\r\n    pure?: boolean;\r\n}\r\n\r\n/**\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Pipe: PipeDecorator;\r\n\r\n/**\r\n * Type of the Pipe decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface PipeDecorator {\r\n    /**\r\n     *\r\n     * Decorator that marks a class as pipe and supplies configuration metadata.\r\n     *\r\n     * A pipe class must implement the `PipeTransform` interface.\r\n     * For example, if the name is \"myPipe\", use a template binding expression\r\n     * such as the following:\r\n     *\r\n     * ```\r\n     * {{ exp | myPipe }}\r\n     * ```\r\n     *\r\n     * The result of the expression is passed to the pipe's `transform()` method.\r\n     *\r\n     * A pipe must belong to an NgModule in order for it to be available\r\n     * to a template. To make it a member of an NgModule,\r\n     * list it in the `declarations` field of the `NgModule` metadata.\r\n     *\r\n     * @see [Style Guide: Pipe Names](guide/styleguide#02-09)\r\n     *\r\n     */\r\n    (obj: Pipe): TypeDecorator;\r\n    /**\r\n     * See the `Pipe` decorator.\r\n     */\r\n    new (obj: Pipe): Pipe;\r\n}\r\n\r\ndeclare type PipeDefList = ɵPipeDef<any>[];\r\n\r\n/**\r\n * Type used for PipeDefs on component definition.\r\n *\r\n * The function is necessary to be able to support forward declarations.\r\n */\r\ndeclare type PipeDefListOrFactory = (() => PipeDefList) | PipeDefList;\r\n\r\n\r\n/**\r\n * An interface that is implemented by pipes in order to perform a transformation.\r\n * Angular invokes the `transform` method with the value of a binding\r\n * as the first argument, and any parameters as the second argument in list form.\r\n *\r\n * @usageNotes\r\n *\r\n * In the following example, `TruncatePipe` returns the shortened value with an added ellipses.\r\n *\r\n * <code-example path=\"core/ts/pipes/simple_truncate.ts\" header=\"simple_truncate.ts\"></code-example>\r\n *\r\n * Invoking `{{ 'It was the best of times' | truncate }}` in a template will produce `It was...`.\r\n *\r\n * In the following example, `TruncatePipe` takes parameters that sets the truncated length and the\r\n * string to append with.\r\n *\r\n * <code-example path=\"core/ts/pipes/truncate.ts\" header=\"truncate.ts\"></code-example>\r\n *\r\n * Invoking `{{ 'It was the best of times' | truncate:4:'....' }}` in a template will produce `It\r\n * was the best....`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface PipeTransform {\r\n    transform(value: any, ...args: any[]): any;\r\n}\r\n\r\n/**\r\n * A subclass of `Type` which has a static `ɵpipe`:`PipeDef` field making it\r\n * consumable for rendering.\r\n */\r\ndeclare interface PipeType<T> extends Type<T> {\r\n    ɵpipe: unknown;\r\n}\r\n\r\ndeclare type PipeTypeList = (PipeType<any> | Type<any>)[];\r\n\r\ndeclare type PipeTypesOrFactory = (() => PipeTypeList) | PipeTypeList;\r\n\r\n/**\r\n * A token that indicates an opaque platform ID.\r\n * @publicApi\r\n */\r\nexport declare const PLATFORM_ID: InjectionToken<Object>;\r\n\r\n/**\r\n * A function that is executed when a platform is initialized.\r\n * @publicApi\r\n */\r\nexport declare const PLATFORM_INITIALIZER: InjectionToken<(() => void)[]>;\r\n\r\n/**\r\n * This platform has to be included in any other platform\r\n *\r\n * @publicApi\r\n */\r\nexport declare const platformCore: (extraProviders?: StaticProvider[] | undefined) => PlatformRef;\r\n\r\n/**\r\n * The Angular platform is the entry point for Angular on a web page.\r\n * Each page has exactly one platform. Services (such as reflection) which are common\r\n * to every Angular application running on the page are bound in its scope.\r\n * A page's platform is initialized implicitly when a platform is created using a platform\r\n * factory such as `PlatformBrowser`, or explicitly by calling the `createPlatform()` function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class PlatformRef {\r\n    private _injector;\r\n    private _modules;\r\n    private _destroyListeners;\r\n    private _destroyed;\r\n    /**\r\n     * Creates an instance of an `@NgModule` for the given platform for offline compilation.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The following example creates the NgModule for a browser platform.\r\n     *\r\n     * ```typescript\r\n     * my_module.ts:\r\n     *\r\n     * @NgModule({\r\n     *   imports: [BrowserModule]\r\n     * })\r\n     * class MyModule {}\r\n     *\r\n     * main.ts:\r\n     * import {MyModuleNgFactory} from './my_module.ngfactory';\r\n     * import {platformBrowser} from '@angular/platform-browser';\r\n     *\r\n     * let moduleRef = platformBrowser().bootstrapModuleFactory(MyModuleNgFactory);\r\n     * ```\r\n     */\r\n    bootstrapModuleFactory<M>(moduleFactory: NgModuleFactory<M>, options?: BootstrapOptions): Promise<NgModuleRef<M>>;\r\n    /**\r\n     * Creates an instance of an `@NgModule` for a given platform using the given runtime compiler.\r\n     *\r\n     * @usageNotes\r\n     * ### Simple Example\r\n     *\r\n     * ```typescript\r\n     * @NgModule({\r\n     *   imports: [BrowserModule]\r\n     * })\r\n     * class MyModule {}\r\n     *\r\n     * let moduleRef = platformBrowser().bootstrapModule(MyModule);\r\n     * ```\r\n     *\r\n     */\r\n    bootstrapModule<M>(moduleType: Type<M>, compilerOptions?: (CompilerOptions & BootstrapOptions) | Array<CompilerOptions & BootstrapOptions>): Promise<NgModuleRef<M>>;\r\n    private _moduleDoBootstrap;\r\n    /**\r\n     * Registers a listener to be called when the platform is destroyed.\r\n     */\r\n    onDestroy(callback: () => void): void;\r\n    /**\r\n     * Retrieves the platform {@link Injector}, which is the parent injector for\r\n     * every Angular application on the page and provides singleton providers.\r\n     */\r\n    get injector(): Injector;\r\n    /**\r\n     * Destroys the current Angular platform and all Angular applications on the page.\r\n     * Destroys all modules and listeners registered with the platform.\r\n     */\r\n    destroy(): void;\r\n    get destroyed(): boolean;\r\n}\r\n\r\ndeclare interface PlatformReflectionCapabilities {\r\n    isReflectionEnabled(): boolean;\r\n    factory(type: Type<any>): Function;\r\n    hasLifecycleHook(type: any, lcProperty: string): boolean;\r\n    guards(type: any): {\r\n        [key: string]: any;\r\n    };\r\n    /**\r\n     * Return a list of annotations/types for constructor parameters\r\n     */\r\n    parameters(type: Type<any>): any[][];\r\n    /**\r\n     * Return a list of annotations declared on the class\r\n     */\r\n    annotations(type: Type<any>): any[];\r\n    /**\r\n     * Return a object literal which describes the annotations on Class fields/properties.\r\n     */\r\n    propMetadata(typeOrFunc: Type<any>): {\r\n        [key: string]: any[];\r\n    };\r\n    getter(name: string): ɵGetterFn;\r\n    setter(name: string): ɵSetterFn;\r\n    method(name: string): ɵMethodFn;\r\n    importUri(type: Type<any>): string;\r\n    resourceUri(type: Type<any>): string;\r\n    resolveIdentifier(name: string, moduleUrl: string, members: string[], runtime: any): any;\r\n    resolveEnum(enumIdentifier: any, name: string): any;\r\n}\r\n\r\n/**\r\n * A boolean-valued function over a value, possibly including context information\r\n * regarding that value's position in an array.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Predicate<T> {\r\n    (value: T): boolean;\r\n}\r\n\r\ndeclare const PREORDER_HOOK_FLAGS = 18;\r\n\r\n/** More flags associated with an LView (saved in LView[PREORDER_HOOK_FLAGS]) */\r\ndeclare const enum PreOrderHookFlags {\r\n    /**\r\n     The index of the next pre-order hook to be called in the hooks array, on the first 16\r\n     bits\r\n     */\r\n    IndexOfTheNextPreOrderHookMaskMask = 65535,\r\n    /**\r\n     * The number of init hooks that have already been called, on the last 16 bits\r\n     */\r\n    NumberOfInitHooksCalledIncrementer = 65536,\r\n    NumberOfInitHooksCalledShift = 16,\r\n    NumberOfInitHooksCalledMask = 4294901760\r\n}\r\n\r\n/**\r\n * Procedural style of API needed to create elements and text nodes.\r\n *\r\n * In non-native browser environments (e.g. platforms such as web-workers), this is the\r\n * facade that enables element manipulation. This also facilitates backwards compatibility\r\n * with Renderer2.\r\n */\r\ndeclare interface ProceduralRenderer3 {\r\n    destroy(): void;\r\n    createComment(value: string): RComment;\r\n    createElement(name: string, namespace?: string | null): RElement;\r\n    createText(value: string): RText;\r\n    /**\r\n     * This property is allowed to be null / undefined,\r\n     * in which case the view engine won't call it.\r\n     * This is used as a performance optimization for production mode.\r\n     */\r\n    destroyNode?: ((node: RNode) => void) | null;\r\n    appendChild(parent: RElement, newChild: RNode): void;\r\n    insertBefore(parent: RNode, newChild: RNode, refChild: RNode | null, isMove?: boolean): void;\r\n    removeChild(parent: RElement, oldChild: RNode, isHostElement?: boolean): void;\r\n    selectRootElement(selectorOrNode: string | any, preserveContent?: boolean): RElement;\r\n    parentNode(node: RNode): RElement | null;\r\n    nextSibling(node: RNode): RNode | null;\r\n    setAttribute(el: RElement, name: string, value: string | TrustedHTML | TrustedScript | TrustedScriptURL, namespace?: string | null): void;\r\n    removeAttribute(el: RElement, name: string, namespace?: string | null): void;\r\n    addClass(el: RElement, name: string): void;\r\n    removeClass(el: RElement, name: string): void;\r\n    setStyle(el: RElement, style: string, value: any, flags?: RendererStyleFlags2 | RendererStyleFlags3): void;\r\n    removeStyle(el: RElement, style: string, flags?: RendererStyleFlags2 | RendererStyleFlags3): void;\r\n    setProperty(el: RElement, name: string, value: any): void;\r\n    setValue(node: RText | RComment, value: string): void;\r\n    listen(target: GlobalTargetName | RNode, eventName: string, callback: (event: any) => boolean | void): () => void;\r\n}\r\n\r\n/**\r\n * Describes a function that is used to process provider lists (such as provider\r\n * overrides).\r\n */\r\ndeclare type ProcessProvidersFunction = (providers: Provider[]) => Provider[];\r\n\r\n/**\r\n * List of slots for a projection. A slot can be either based on a parsed CSS selector\r\n * which will be used to determine nodes which are projected into that slot.\r\n *\r\n * When set to \"*\", the slot is reserved and can be used for multi-slot projection\r\n * using {@link ViewContainerRef#createComponent}. The last slot that specifies the\r\n * wildcard selector will retrieve all projectable nodes which do not match any selector.\r\n */\r\ndeclare type ProjectionSlots = (ɵCssSelectorList | '*')[];\r\n\r\n/**\r\n * This mapping is necessary so we can set input properties and output listeners\r\n * properly at runtime when property names are minified or aliased.\r\n *\r\n * Key: unminified / public input or output name\r\n * Value: array containing minified / internal name and related directive index\r\n *\r\n * The value must be an array to support inputs and outputs with the same name\r\n * on the same node.\r\n */\r\ndeclare type PropertyAliases = {\r\n    [key: string]: PropertyAliasValue;\r\n};\r\n\r\n/**\r\n * Store the runtime input or output names for all the directives.\r\n *\r\n * i+0: directive instance index\r\n * i+1: privateName\r\n *\r\n * e.g. [0, 'change-minified']\r\n */\r\ndeclare type PropertyAliasValue = (number | string)[];\r\n\r\n/**\r\n * Describes how the `Injector` should be configured.\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @see `StaticProvider`\r\n *\r\n * @publicApi\r\n */\r\nexport declare type Provider = TypeProvider | ValueProvider | ClassProvider | ConstructorProvider | ExistingProvider | FactoryProvider | any[];\r\n\r\ndeclare interface ProviderDef {\r\n    token: any;\r\n    value: any;\r\n    deps: DepDef[];\r\n}\r\n\r\ndeclare interface ProviderOverride {\r\n    token: any;\r\n    flags: ɵNodeFlags;\r\n    value: any;\r\n    deps: ([ɵDepFlags, any] | any)[];\r\n    deprecatedBehavior: boolean;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Token that can be used to retrieve an instance from an injector or through a query.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type ProviderToken<T> = Type<T> | AbstractType<T> | InjectionToken<T>;\r\n\r\n/**\r\n * Testability API.\r\n * `declare` keyword causes tsickle to generate externs, so these methods are\r\n * not renamed by Closure Compiler.\r\n * @publicApi\r\n */\r\ndeclare interface PublicTestability {\r\n    isStable(): boolean;\r\n    whenStable(callback: Function, timeout?: number, updateCallback?: Function): void;\r\n    findProviders(using: any, provider: string, exactMatch: boolean): any[];\r\n}\r\n\r\ndeclare const QUERIES = 19;\r\n\r\n/**\r\n * Type of the Query metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Query {\r\n    descendants: boolean;\r\n    emitDistinctChangesOnly: boolean;\r\n    first: boolean;\r\n    read: any;\r\n    isViewQuery: boolean;\r\n    selector: any;\r\n    static?: boolean;\r\n}\r\n\r\n/**\r\n * Base class for query metadata.\r\n *\r\n * @see `ContentChildren`.\r\n * @see `ContentChild`.\r\n * @see `ViewChildren`.\r\n * @see `ViewChild`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class Query {\r\n}\r\n\r\ndeclare interface QueryBindingDef {\r\n    propName: string;\r\n    bindingType: ɵQueryBindingType;\r\n}\r\n\r\ndeclare interface QueryDef {\r\n    id: number;\r\n    filterId: number;\r\n    bindings: QueryBindingDef[];\r\n}\r\n\r\n/**\r\n * A set of flags to be used with Queries.\r\n *\r\n * NOTE: Ensure changes here are reflected in `packages/compiler/src/render3/view/compiler.ts`\r\n */\r\ndeclare const enum QueryFlags {\r\n    /**\r\n     * No flags\r\n     */\r\n    none = 0,\r\n    /**\r\n     * Whether or not the query should descend into children.\r\n     */\r\n    descendants = 1,\r\n    /**\r\n     * The query can be computed statically and hence can be assigned eagerly.\r\n     *\r\n     * NOTE: Backwards compatibility with ViewEngine.\r\n     */\r\n    isStatic = 2,\r\n    /**\r\n     * If the `QueryList` should fire change event only if actual change to query was computed (vs old\r\n     * behavior where the change was fired whenever the query was recomputed, even if the recomputed\r\n     * query resulted in the same list.)\r\n     */\r\n    emitDistinctChangesOnly = 4\r\n}\r\n\r\n/**\r\n * An unmodifiable list of items that Angular keeps up to date when the state\r\n * of the application changes.\r\n *\r\n * The type of object that {@link ViewChildren}, {@link ContentChildren}, and {@link QueryList}\r\n * provide.\r\n *\r\n * Implements an iterable interface, therefore it can be used in both ES6\r\n * javascript `for (var i of items)` loops as well as in Angular templates with\r\n * `*ngFor=\"let i of myList\"`.\r\n *\r\n * Changes can be observed by subscribing to the changes `Observable`.\r\n *\r\n * NOTE: In the future this class will implement an `Observable` interface.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n * ```typescript\r\n * @Component({...})\r\n * class Container {\r\n *   @ViewChildren(Item) items:QueryList<Item>;\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class QueryList<T> implements Iterable<T> {\r\n    private _emitDistinctChangesOnly;\r\n    readonly dirty = true;\r\n    private _results;\r\n    private _changesDetected;\r\n    private _changes;\r\n    readonly length: number;\r\n    readonly first: T;\r\n    readonly last: T;\r\n    /**\r\n     * Returns `Observable` of `QueryList` notifying the subscriber of changes.\r\n     */\r\n    get changes(): Observable<any>;\r\n    /**\r\n     * @param emitDistinctChangesOnly Whether `QueryList.changes` should fire only when actual change\r\n     *     has occurred. Or if it should fire when query is recomputed. (recomputing could resolve in\r\n     *     the same result)\r\n     */\r\n    constructor(_emitDistinctChangesOnly?: boolean);\r\n    /**\r\n     * Returns the QueryList entry at `index`.\r\n     */\r\n    get(index: number): T | undefined;\r\n    /**\r\n     * See\r\n     * [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\r\n     */\r\n    map<U>(fn: (item: T, index: number, array: T[]) => U): U[];\r\n    /**\r\n     * See\r\n     * [Array.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)\r\n     */\r\n    filter(fn: (item: T, index: number, array: T[]) => boolean): T[];\r\n    /**\r\n     * See\r\n     * [Array.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)\r\n     */\r\n    find(fn: (item: T, index: number, array: T[]) => boolean): T | undefined;\r\n    /**\r\n     * See\r\n     * [Array.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\r\n     */\r\n    reduce<U>(fn: (prevValue: U, curValue: T, curIndex: number, array: T[]) => U, init: U): U;\r\n    /**\r\n     * See\r\n     * [Array.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)\r\n     */\r\n    forEach(fn: (item: T, index: number, array: T[]) => void): void;\r\n    /**\r\n     * See\r\n     * [Array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)\r\n     */\r\n    some(fn: (value: T, index: number, array: T[]) => boolean): boolean;\r\n    /**\r\n     * Returns a copy of the internal results list as an Array.\r\n     */\r\n    toArray(): T[];\r\n    toString(): string;\r\n    /**\r\n     * Updates the stored data of the query list, and resets the `dirty` flag to `false`, so that\r\n     * on change detection, it will not notify of changes to the queries, unless a new change\r\n     * occurs.\r\n     *\r\n     * @param resultsTree The query results to store\r\n     * @param identityAccessor Optional function for extracting stable object identity from a value\r\n     *    in the array. This function is executed for each element of the query result list while\r\n     *    comparing current query list with the new one (provided as a first argument of the `reset`\r\n     *    function) to detect if the lists are different. If the function is not provided, elements\r\n     *    are compared as is (without any pre-processing).\r\n     */\r\n    reset(resultsTree: Array<T | any[]>, identityAccessor?: (value: T) => unknown): void;\r\n    /**\r\n     * Triggers a change event by emitting on the `changes` {@link EventEmitter}.\r\n     */\r\n    notifyOnChanges(): void;\r\n    /** internal */\r\n    setDirty(): void;\r\n    /** internal */\r\n    destroy(): void;\r\n    [Symbol.iterator]: () => Iterator<T>;\r\n}\r\n\r\ndeclare interface R3DeclareComponentFacade extends R3DeclareDirectiveFacade {\r\n    template: string;\r\n    isInline?: boolean;\r\n    styles?: string[];\r\n    components?: R3DeclareUsedDirectiveFacade[];\r\n    directives?: R3DeclareUsedDirectiveFacade[];\r\n    pipes?: {\r\n        [pipeName: string]: OpaqueValue | (() => OpaqueValue);\r\n    };\r\n    viewProviders?: OpaqueValue;\r\n    animations?: OpaqueValue;\r\n    changeDetection?: ChangeDetectionStrategy_2;\r\n    encapsulation?: ViewEncapsulation_2;\r\n    interpolation?: [string, string];\r\n    preserveWhitespaces?: boolean;\r\n}\r\n\r\ndeclare interface R3DeclareDependencyMetadataFacade {\r\n    token: OpaqueValue;\r\n    attribute?: boolean;\r\n    host?: boolean;\r\n    optional?: boolean;\r\n    self?: boolean;\r\n    skipSelf?: boolean;\r\n}\r\n\r\ndeclare interface R3DeclareDirectiveFacade {\r\n    selector?: string;\r\n    type: Type_2;\r\n    inputs?: {\r\n        [classPropertyName: string]: string | [string, string];\r\n    };\r\n    outputs?: {\r\n        [classPropertyName: string]: string;\r\n    };\r\n    host?: {\r\n        attributes?: {\r\n            [key: string]: OpaqueValue;\r\n        };\r\n        listeners?: {\r\n            [key: string]: string;\r\n        };\r\n        properties?: {\r\n            [key: string]: string;\r\n        };\r\n        classAttribute?: string;\r\n        styleAttribute?: string;\r\n    };\r\n    queries?: R3DeclareQueryMetadataFacade[];\r\n    viewQueries?: R3DeclareQueryMetadataFacade[];\r\n    providers?: OpaqueValue;\r\n    exportAs?: string[];\r\n    usesInheritance?: boolean;\r\n    usesOnChanges?: boolean;\r\n}\r\n\r\ndeclare interface R3DeclareFactoryFacade {\r\n    type: Type_2;\r\n    deps: R3DeclareDependencyMetadataFacade[] | 'invalid' | null;\r\n    target: ɵɵFactoryTarget;\r\n}\r\n\r\ndeclare interface R3DeclareInjectableFacade {\r\n    type: Type_2;\r\n    providedIn?: Type_2 | 'root' | 'platform' | 'any' | null;\r\n    useClass?: OpaqueValue;\r\n    useFactory?: OpaqueValue;\r\n    useExisting?: OpaqueValue;\r\n    useValue?: OpaqueValue;\r\n    deps?: R3DeclareDependencyMetadataFacade[];\r\n}\r\n\r\ndeclare interface R3DeclareInjectorFacade {\r\n    type: Type_2;\r\n    imports?: OpaqueValue[];\r\n    providers?: OpaqueValue[];\r\n}\r\n\r\ndeclare interface R3DeclareNgModuleFacade {\r\n    type: Type_2;\r\n    bootstrap?: OpaqueValue[] | (() => OpaqueValue[]);\r\n    declarations?: OpaqueValue[] | (() => OpaqueValue[]);\r\n    imports?: OpaqueValue[] | (() => OpaqueValue[]);\r\n    exports?: OpaqueValue[] | (() => OpaqueValue[]);\r\n    schemas?: OpaqueValue[];\r\n    id?: OpaqueValue;\r\n}\r\n\r\ndeclare interface R3DeclarePipeFacade {\r\n    type: Type_2;\r\n    name: string;\r\n    pure?: boolean;\r\n}\r\n\r\ndeclare interface R3DeclareQueryMetadataFacade {\r\n    propertyName: string;\r\n    first?: boolean;\r\n    predicate: OpaqueValue | string[];\r\n    descendants?: boolean;\r\n    read?: OpaqueValue;\r\n    static?: boolean;\r\n    emitDistinctChangesOnly?: boolean;\r\n}\r\n\r\ndeclare interface R3DeclareUsedDirectiveFacade {\r\n    selector: string;\r\n    type: OpaqueValue | (() => OpaqueValue);\r\n    inputs?: string[];\r\n    outputs?: string[];\r\n    exportAs?: string[];\r\n}\r\n\r\ndeclare class R3Injector {\r\n    readonly parent: Injector;\r\n    /**\r\n     * Map of tokens to records which contain the instances of those tokens.\r\n     * - `null` value implies that we don't have the record. Used by tree-shakable injectors\r\n     * to prevent further searches.\r\n     */\r\n    private records;\r\n    /**\r\n     * The transitive set of `InjectorType`s which define this injector.\r\n     */\r\n    private injectorDefTypes;\r\n    /**\r\n     * Set of values instantiated by this injector which contain `ngOnDestroy` lifecycle hooks.\r\n     */\r\n    private onDestroy;\r\n    /**\r\n     * Flag indicating this injector provides the APP_ROOT_SCOPE token, and thus counts as the\r\n     * root scope.\r\n     */\r\n    private readonly scope;\r\n    readonly source: string | null;\r\n    /**\r\n     * Flag indicating that this injector was previously destroyed.\r\n     */\r\n    get destroyed(): boolean;\r\n    private _destroyed;\r\n    constructor(def: InjectorType<any>, additionalProviders: StaticProvider[] | null, parent: Injector, source?: string | null);\r\n    /**\r\n     * Destroy the injector and release references to every instance or provider associated with it.\r\n     *\r\n     * Also calls the `OnDestroy` lifecycle hooks of every instance that was created for which a\r\n     * hook was found.\r\n     */\r\n    destroy(): void;\r\n    get<T>(token: ProviderToken<T>, notFoundValue?: any, flags?: InjectFlags): T;\r\n    toString(): string;\r\n    private assertNotDestroyed;\r\n    /**\r\n     * Add an `InjectorType` or `InjectorTypeWithProviders` and all of its transitive providers\r\n     * to this injector.\r\n     *\r\n     * If an `InjectorTypeWithProviders` that declares providers besides the type is specified,\r\n     * the function will return \"true\" to indicate that the providers of the type definition need\r\n     * to be processed. This allows us to process providers of injector types after all imports of\r\n     * an injector definition are processed. (following View Engine semantics: see FW-1349)\r\n     */\r\n    private processInjectorType;\r\n    /**\r\n     * Process a `SingleProvider` and add it.\r\n     */\r\n    private processProvider;\r\n    private hydrate;\r\n    private injectableDefInScope;\r\n}\r\n\r\ndeclare interface RComment extends RNode {\r\n    textContent: string | null;\r\n}\r\n\r\ndeclare interface RCssStyleDeclaration {\r\n    removeProperty(propertyName: string): string;\r\n    setProperty(propertyName: string, value: string | null, priority?: string): void;\r\n}\r\n\r\ndeclare interface RDomTokenList {\r\n    add(token: string): void;\r\n    remove(token: string): void;\r\n}\r\n\r\n/**\r\n * A ReflectiveDependency injection container used for instantiating objects and resolving\r\n * dependencies.\r\n *\r\n * An `Injector` is a replacement for a `new` operator, which can automatically resolve the\r\n * constructor dependencies.\r\n *\r\n * In typical use, application code asks for the dependencies in the constructor and they are\r\n * resolved by the `Injector`.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * The following example creates an `Injector` configured to create `Engine` and `Car`.\r\n *\r\n * ```typescript\r\n * @Injectable()\r\n * class Engine {\r\n * }\r\n *\r\n * @Injectable()\r\n * class Car {\r\n *   constructor(public engine:Engine) {}\r\n * }\r\n *\r\n * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);\r\n * var car = injector.get(Car);\r\n * expect(car instanceof Car).toBe(true);\r\n * expect(car.engine instanceof Engine).toBe(true);\r\n * ```\r\n *\r\n * Notice, we don't use the `new` operator because we explicitly want to have the `Injector`\r\n * resolve all of the object's dependencies automatically.\r\n *\r\n * @deprecated from v5 - slow and brings in a lot of code, Use `Injector.create` instead.\r\n * @publicApi\r\n */\r\nexport declare abstract class ReflectiveInjector implements Injector {\r\n    /**\r\n     * Turns an array of provider definitions into an array of resolved providers.\r\n     *\r\n     * A resolution is a process of flattening multiple nested arrays and converting individual\r\n     * providers into an array of `ResolvedReflectiveProvider`s.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * @Injectable()\r\n     * class Engine {\r\n     * }\r\n     *\r\n     * @Injectable()\r\n     * class Car {\r\n     *   constructor(public engine:Engine) {}\r\n     * }\r\n     *\r\n     * var providers = ReflectiveInjector.resolve([Car, [[Engine]]]);\r\n     *\r\n     * expect(providers.length).toEqual(2);\r\n     *\r\n     * expect(providers[0] instanceof ResolvedReflectiveProvider).toBe(true);\r\n     * expect(providers[0].key.displayName).toBe(\"Car\");\r\n     * expect(providers[0].dependencies.length).toEqual(1);\r\n     * expect(providers[0].factory).toBeDefined();\r\n     *\r\n     * expect(providers[1].key.displayName).toBe(\"Engine\");\r\n     * });\r\n     * ```\r\n     *\r\n     */\r\n    static resolve(providers: Provider[]): ResolvedReflectiveProvider[];\r\n    /**\r\n     * Resolves an array of providers and creates an injector from those providers.\r\n     *\r\n     * The passed-in providers can be an array of `Type`, `Provider`,\r\n     * or a recursive array of more providers.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * @Injectable()\r\n     * class Engine {\r\n     * }\r\n     *\r\n     * @Injectable()\r\n     * class Car {\r\n     *   constructor(public engine:Engine) {}\r\n     * }\r\n     *\r\n     * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);\r\n     * expect(injector.get(Car) instanceof Car).toBe(true);\r\n     * ```\r\n     */\r\n    static resolveAndCreate(providers: Provider[], parent?: Injector): ReflectiveInjector;\r\n    /**\r\n     * Creates an injector from previously resolved providers.\r\n     *\r\n     * This API is the recommended way to construct injectors in performance-sensitive parts.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * @Injectable()\r\n     * class Engine {\r\n     * }\r\n     *\r\n     * @Injectable()\r\n     * class Car {\r\n     *   constructor(public engine:Engine) {}\r\n     * }\r\n     *\r\n     * var providers = ReflectiveInjector.resolve([Car, Engine]);\r\n     * var injector = ReflectiveInjector.fromResolvedProviders(providers);\r\n     * expect(injector.get(Car) instanceof Car).toBe(true);\r\n     * ```\r\n     */\r\n    static fromResolvedProviders(providers: ResolvedReflectiveProvider[], parent?: Injector): ReflectiveInjector;\r\n    /**\r\n     * Parent of this injector.\r\n     *\r\n     * <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.\r\n     * -->\r\n     */\r\n    abstract get parent(): Injector | null;\r\n    /**\r\n     * Resolves an array of providers and creates a child injector from those providers.\r\n     *\r\n     * <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.\r\n     * -->\r\n     *\r\n     * The passed-in providers can be an array of `Type`, `Provider`,\r\n     * or a recursive array of more providers.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * class ParentProvider {}\r\n     * class ChildProvider {}\r\n     *\r\n     * var parent = ReflectiveInjector.resolveAndCreate([ParentProvider]);\r\n     * var child = parent.resolveAndCreateChild([ChildProvider]);\r\n     *\r\n     * expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true);\r\n     * expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true);\r\n     * expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider));\r\n     * ```\r\n     */\r\n    abstract resolveAndCreateChild(providers: Provider[]): ReflectiveInjector;\r\n    /**\r\n     * Creates a child injector from previously resolved providers.\r\n     *\r\n     * <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.\r\n     * -->\r\n     *\r\n     * This API is the recommended way to construct injectors in performance-sensitive parts.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * class ParentProvider {}\r\n     * class ChildProvider {}\r\n     *\r\n     * var parentProviders = ReflectiveInjector.resolve([ParentProvider]);\r\n     * var childProviders = ReflectiveInjector.resolve([ChildProvider]);\r\n     *\r\n     * var parent = ReflectiveInjector.fromResolvedProviders(parentProviders);\r\n     * var child = parent.createChildFromResolved(childProviders);\r\n     *\r\n     * expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true);\r\n     * expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true);\r\n     * expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider));\r\n     * ```\r\n     */\r\n    abstract createChildFromResolved(providers: ResolvedReflectiveProvider[]): ReflectiveInjector;\r\n    /**\r\n     * Resolves a provider and instantiates an object in the context of the injector.\r\n     *\r\n     * The created object does not get cached by the injector.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * @Injectable()\r\n     * class Engine {\r\n     * }\r\n     *\r\n     * @Injectable()\r\n     * class Car {\r\n     *   constructor(public engine:Engine) {}\r\n     * }\r\n     *\r\n     * var injector = ReflectiveInjector.resolveAndCreate([Engine]);\r\n     *\r\n     * var car = injector.resolveAndInstantiate(Car);\r\n     * expect(car.engine).toBe(injector.get(Engine));\r\n     * expect(car).not.toBe(injector.resolveAndInstantiate(Car));\r\n     * ```\r\n     */\r\n    abstract resolveAndInstantiate(provider: Provider): any;\r\n    /**\r\n     * Instantiates an object using a resolved provider in the context of the injector.\r\n     *\r\n     * The created object does not get cached by the injector.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * @Injectable()\r\n     * class Engine {\r\n     * }\r\n     *\r\n     * @Injectable()\r\n     * class Car {\r\n     *   constructor(public engine:Engine) {}\r\n     * }\r\n     *\r\n     * var injector = ReflectiveInjector.resolveAndCreate([Engine]);\r\n     * var carProvider = ReflectiveInjector.resolve([Car])[0];\r\n     * var car = injector.instantiateResolved(carProvider);\r\n     * expect(car.engine).toBe(injector.get(Engine));\r\n     * expect(car).not.toBe(injector.instantiateResolved(carProvider));\r\n     * ```\r\n     */\r\n    abstract instantiateResolved(provider: ResolvedReflectiveProvider): any;\r\n    abstract get(token: any, notFoundValue?: any): any;\r\n}\r\n\r\n\r\n/**\r\n * A unique object used for retrieving items from the {@link ReflectiveInjector}.\r\n *\r\n * Keys have:\r\n * - a system-wide unique `id`.\r\n * - a `token`.\r\n *\r\n * `Key` is used internally by {@link ReflectiveInjector} because its system-wide unique `id` allows\r\n * the\r\n * injector to store created objects in a more efficient way.\r\n *\r\n * `Key` should not be created directly. {@link ReflectiveInjector} creates keys automatically when\r\n * resolving\r\n * providers.\r\n *\r\n * @deprecated No replacement\r\n * @publicApi\r\n */\r\nexport declare class ReflectiveKey {\r\n    token: Object;\r\n    id: number;\r\n    readonly displayName: string;\r\n    /**\r\n     * Private\r\n     */\r\n    constructor(token: Object, id: number);\r\n    /**\r\n     * Retrieves a `Key` for a token.\r\n     */\r\n    static get(token: Object): ReflectiveKey;\r\n    /**\r\n     * @returns the number of keys registered in the system.\r\n     */\r\n    static get numberOfKeys(): number;\r\n}\r\n\r\n/**\r\n * Subset of API needed for writing attributes, properties, and setting up\r\n * listeners on Element.\r\n */\r\ndeclare interface RElement extends RNode {\r\n    style: RCssStyleDeclaration;\r\n    classList: RDomTokenList;\r\n    className: string;\r\n    textContent: string | null;\r\n    setAttribute(name: string, value: string | TrustedHTML | TrustedScript | TrustedScriptURL): void;\r\n    removeAttribute(name: string): void;\r\n    setAttributeNS(namespaceURI: string, qualifiedName: string, value: string | TrustedHTML | TrustedScript | TrustedScriptURL): void;\r\n    addEventListener(type: string, listener: EventListener, useCapture?: boolean): void;\r\n    removeEventListener(type: string, listener?: EventListener, options?: boolean): void;\r\n    setProperty?(name: string, value: any): void;\r\n}\r\n\r\n/**\r\n * This is a synthetic lifecycle hook which gets inserted into `TView.preOrderHooks` to simulate\r\n * `ngOnChanges`.\r\n *\r\n * The hook reads the `NgSimpleChangesStore` data from the component instance and if changes are\r\n * found it invokes `ngOnChanges` on the component instance.\r\n *\r\n * @param this Component instance. Because this function gets inserted into `TView.preOrderHooks`,\r\n *     it is guaranteed to be called with component instance.\r\n */\r\ndeclare function rememberChangeHistoryAndInvokeOnChangesHook(this: OnChanges): void;\r\n\r\ndeclare const RENDERER = 11;\r\n\r\n/**\r\n * Extend this base class to implement custom rendering. By default, Angular\r\n * renders a template into DOM. You can use custom rendering to intercept\r\n * rendering calls, or to render to something other than DOM.\r\n *\r\n * Create your custom renderer using `RendererFactory2`.\r\n *\r\n * Use a custom renderer to bypass Angular's templating and\r\n * make custom UI changes that can't be expressed declaratively.\r\n * For example if you need to set a property or an attribute whose name is\r\n * not statically known, use the `setProperty()` or\r\n * `setAttribute()` method.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class Renderer2 {\r\n    /**\r\n     * Use to store arbitrary developer-defined data on a renderer instance,\r\n     * as an object containing key-value pairs.\r\n     * This is useful for renderers that delegate to other renderers.\r\n     */\r\n    abstract get data(): {\r\n        [key: string]: any;\r\n    };\r\n    /**\r\n     * Implement this callback to destroy the renderer or the host element.\r\n     */\r\n    abstract destroy(): void;\r\n    /**\r\n     * Implement this callback to create an instance of the host element.\r\n     * @param name An identifying name for the new element, unique within the namespace.\r\n     * @param namespace The namespace for the new element.\r\n     * @returns The new element.\r\n     */\r\n    abstract createElement(name: string, namespace?: string | null): any;\r\n    /**\r\n     * Implement this callback to add a comment to the DOM of the host element.\r\n     * @param value The comment text.\r\n     * @returns The modified element.\r\n     */\r\n    abstract createComment(value: string): any;\r\n    /**\r\n     * Implement this callback to add text to the DOM of the host element.\r\n     * @param value The text string.\r\n     * @returns The modified element.\r\n     */\r\n    abstract createText(value: string): any;\r\n    /**\r\n     * If null or undefined, the view engine won't call it.\r\n     * This is used as a performance optimization for production mode.\r\n     */\r\n    destroyNode: ((node: any) => void) | null;\r\n    /**\r\n     * Appends a child to a given parent node in the host element DOM.\r\n     * @param parent The parent node.\r\n     * @param newChild The new child node.\r\n     */\r\n    abstract appendChild(parent: any, newChild: any): void;\r\n    /**\r\n     * Implement this callback to insert a child node at a given position in a parent node\r\n     * in the host element DOM.\r\n     * @param parent The parent node.\r\n     * @param newChild The new child nodes.\r\n     * @param refChild The existing child node before which `newChild` is inserted.\r\n     * @param isMove Optional argument which signifies if the current `insertBefore` is a result of a\r\n     *     move. Animation uses this information to trigger move animations. In the past the Animation\r\n     *     would always assume that any `insertBefore` is a move. This is not strictly true because\r\n     *     with runtime i18n it is possible to invoke `insertBefore` as a result of i18n and it should\r\n     *     not trigger an animation move.\r\n     */\r\n    abstract insertBefore(parent: any, newChild: any, refChild: any, isMove?: boolean): void;\r\n    /**\r\n     * Implement this callback to remove a child node from the host element's DOM.\r\n     * @param parent The parent node.\r\n     * @param oldChild The child node to remove.\r\n     * @param isHostElement Optionally signal to the renderer whether this element is a host element\r\n     * or not\r\n     */\r\n    abstract removeChild(parent: any, oldChild: any, isHostElement?: boolean): void;\r\n    /**\r\n     * Implement this callback to prepare an element to be bootstrapped\r\n     * as a root element, and return the element instance.\r\n     * @param selectorOrNode The DOM element.\r\n     * @param preserveContent Whether the contents of the root element\r\n     * should be preserved, or cleared upon bootstrap (default behavior).\r\n     * Use with `ViewEncapsulation.ShadowDom` to allow simple native\r\n     * content projection via `<slot>` elements.\r\n     * @returns The root element.\r\n     */\r\n    abstract selectRootElement(selectorOrNode: string | any, preserveContent?: boolean): any;\r\n    /**\r\n     * Implement this callback to get the parent of a given node\r\n     * in the host element's DOM.\r\n     * @param node The child node to query.\r\n     * @returns The parent node, or null if there is no parent.\r\n     * For WebWorkers, always returns true.\r\n     * This is because the check is synchronous,\r\n     * and the caller can't rely on checking for null.\r\n     */\r\n    abstract parentNode(node: any): any;\r\n    /**\r\n     * Implement this callback to get the next sibling node of a given node\r\n     * in the host element's DOM.\r\n     * @returns The sibling node, or null if there is no sibling.\r\n     * For WebWorkers, always returns a value.\r\n     * This is because the check is synchronous,\r\n     * and the caller can't rely on checking for null.\r\n     */\r\n    abstract nextSibling(node: any): any;\r\n    /**\r\n     * Implement this callback to set an attribute value for an element in the DOM.\r\n     * @param el The element.\r\n     * @param name The attribute name.\r\n     * @param value The new value.\r\n     * @param namespace The namespace.\r\n     */\r\n    abstract setAttribute(el: any, name: string, value: string, namespace?: string | null): void;\r\n    /**\r\n     * Implement this callback to remove an attribute from an element in the DOM.\r\n     * @param el The element.\r\n     * @param name The attribute name.\r\n     * @param namespace The namespace.\r\n     */\r\n    abstract removeAttribute(el: any, name: string, namespace?: string | null): void;\r\n    /**\r\n     * Implement this callback to add a class to an element in the DOM.\r\n     * @param el The element.\r\n     * @param name The class name.\r\n     */\r\n    abstract addClass(el: any, name: string): void;\r\n    /**\r\n     * Implement this callback to remove a class from an element in the DOM.\r\n     * @param el The element.\r\n     * @param name The class name.\r\n     */\r\n    abstract removeClass(el: any, name: string): void;\r\n    /**\r\n     * Implement this callback to set a CSS style for an element in the DOM.\r\n     * @param el The element.\r\n     * @param style The name of the style.\r\n     * @param value The new value.\r\n     * @param flags Flags for style variations. No flags are set by default.\r\n     */\r\n    abstract setStyle(el: any, style: string, value: any, flags?: RendererStyleFlags2): void;\r\n    /**\r\n     * Implement this callback to remove the value from a CSS style for an element in the DOM.\r\n     * @param el The element.\r\n     * @param style The name of the style.\r\n     * @param flags Flags for style variations to remove, if set. ???\r\n     */\r\n    abstract removeStyle(el: any, style: string, flags?: RendererStyleFlags2): void;\r\n    /**\r\n     * Implement this callback to set the value of a property of an element in the DOM.\r\n     * @param el The element.\r\n     * @param name The property name.\r\n     * @param value The new value.\r\n     */\r\n    abstract setProperty(el: any, name: string, value: any): void;\r\n    /**\r\n     * Implement this callback to set the value of a node in the host element.\r\n     * @param node The node.\r\n     * @param value The new value.\r\n     */\r\n    abstract setValue(node: any, value: string): void;\r\n    /**\r\n     * Implement this callback to start an event listener.\r\n     * @param target The context in which to listen for events. Can be\r\n     * the entire window or document, the body of the document, or a specific\r\n     * DOM element.\r\n     * @param eventName The event to listen for.\r\n     * @param callback A handler function to invoke when the event occurs.\r\n     * @returns An \"unlisten\" function for disposing of this handler.\r\n     */\r\n    abstract listen(target: 'window' | 'document' | 'body' | any, eventName: string, callback: (event: any) => boolean | void): () => void;\r\n}\r\n\r\ndeclare type Renderer3 = ObjectOrientedRenderer3 | ProceduralRenderer3;\r\n\r\ndeclare const RENDERER_FACTORY = 10;\r\n\r\n/**\r\n * Creates and initializes a custom renderer that implements the `Renderer2` base class.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class RendererFactory2 {\r\n    /**\r\n     * Creates and initializes a custom renderer for a host DOM element.\r\n     * @param hostElement The element to render.\r\n     * @param type The base class to implement.\r\n     * @returns The new custom renderer instance.\r\n     */\r\n    abstract createRenderer(hostElement: any, type: RendererType2 | null): Renderer2;\r\n    /**\r\n     * A callback invoked when rendering has begun.\r\n     */\r\n    abstract begin?(): void;\r\n    /**\r\n     * A callback invoked when rendering has completed.\r\n     */\r\n    abstract end?(): void;\r\n    /**\r\n     * Use with animations test-only mode. Notifies the test when rendering has completed.\r\n     * @returns The asynchronous result of the developer-defined function.\r\n     */\r\n    abstract whenRenderingDone?(): Promise<any>;\r\n}\r\n\r\ndeclare interface RendererFactory3 {\r\n    createRenderer(hostElement: RElement | null, rendererType: RendererType2 | null): Renderer3;\r\n    begin?(): void;\r\n    end?(): void;\r\n}\r\n\r\n/**\r\n * Flags for renderer-specific style modifiers.\r\n * @publicApi\r\n */\r\nexport declare enum RendererStyleFlags2 {\r\n    /**\r\n     * Marks a style as important.\r\n     */\r\n    Important = 1,\r\n    /**\r\n     * Marks a style as using dash case naming (this-is-dash-case).\r\n     */\r\n    DashCase = 2\r\n}\r\n\r\ndeclare enum RendererStyleFlags3 {\r\n    Important = 1,\r\n    DashCase = 2\r\n}\r\n\r\n/**\r\n * Used by `RendererFactory2` to associate custom rendering data and styles\r\n * with a rendering implementation.\r\n *  @publicApi\r\n */\r\nexport declare interface RendererType2 {\r\n    /**\r\n     * A unique identifying string for the new renderer, used when creating\r\n     * unique styles for encapsulation.\r\n     */\r\n    id: string;\r\n    /**\r\n     * The view encapsulation type, which determines how styles are applied to\r\n     * DOM elements. One of\r\n     * - `Emulated` (default): Emulate native scoping of styles.\r\n     * - `Native`: Use the native encapsulation mechanism of the renderer.\r\n     * - `ShadowDom`: Use modern [Shadow\r\n     * DOM](https://w3c.github.io/webcomponents/spec/shadow/) and\r\n     * create a ShadowRoot for component's host element.\r\n     * - `None`: Do not provide any template or style encapsulation.\r\n     */\r\n    encapsulation: ViewEncapsulation;\r\n    /**\r\n     * Defines CSS styles to be stored on a renderer instance.\r\n     */\r\n    styles: (string | any[])[];\r\n    /**\r\n     * Defines arbitrary developer-defined data to be stored on a renderer instance.\r\n     * This is useful for renderers that delegate to other renderers.\r\n     */\r\n    data: {\r\n        [kind: string]: any;\r\n    };\r\n}\r\n\r\n/**\r\n * An internal resolved representation of a factory function created by resolving `Provider`.\r\n * @publicApi\r\n */\r\nexport declare class ResolvedReflectiveFactory {\r\n    /**\r\n     * Factory function which can return an instance of an object represented by a key.\r\n     */\r\n    factory: Function;\r\n    /**\r\n     * Arguments (dependencies) to the `factory` function.\r\n     */\r\n    dependencies: ɵangular_packages_core_core_e[];\r\n    constructor(\r\n    /**\r\n     * Factory function which can return an instance of an object represented by a key.\r\n     */\r\n    factory: Function, \r\n    /**\r\n     * Arguments (dependencies) to the `factory` function.\r\n     */\r\n    dependencies: ɵangular_packages_core_core_e[]);\r\n}\r\n\r\n/**\r\n * An internal resolved representation of a `Provider` used by the `Injector`.\r\n *\r\n * @usageNotes\r\n * This is usually created automatically by `Injector.resolveAndCreate`.\r\n *\r\n * It can be created manually, as follows:\r\n *\r\n * ### Example\r\n *\r\n * ```typescript\r\n * var resolvedProviders = Injector.resolve([{ provide: 'message', useValue: 'Hello' }]);\r\n * var injector = Injector.fromResolvedProviders(resolvedProviders);\r\n *\r\n * expect(injector.get('message')).toEqual('Hello');\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ResolvedReflectiveProvider {\r\n    /**\r\n     * A key, usually a `Type<any>`.\r\n     */\r\n    key: ReflectiveKey;\r\n    /**\r\n     * Factory function which can return an instance of an object represented by a key.\r\n     */\r\n    resolvedFactories: ResolvedReflectiveFactory[];\r\n    /**\r\n     * Indicates if the provider is a multi-provider or a regular provider.\r\n     */\r\n    multiProvider: boolean;\r\n}\r\n\r\n/**\r\n * Lazily retrieves the reference value from a forwardRef.\r\n *\r\n * Acts as the identity function when given a non-forward-ref value.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}\r\n *\r\n * @see `forwardRef`\r\n * @publicApi\r\n */\r\nexport declare function resolveForwardRef<T>(type: T): T;\r\n\r\n/**\r\n * The goal here is to make sure that the browser DOM API is the Renderer.\r\n * We do this by defining a subset of DOM API to be the renderer and then\r\n * use that at runtime for rendering.\r\n *\r\n * At runtime we can then use the DOM api directly, in server or web-worker\r\n * it will be easy to implement such API.\r\n */\r\n/** Subset of API needed for appending elements and text nodes. */\r\ndeclare interface RNode {\r\n    /**\r\n     * Returns the parent Element, Document, or DocumentFragment\r\n     */\r\n    parentNode: RNode | null;\r\n    /**\r\n     * Returns the parent Element if there is one\r\n     */\r\n    parentElement: RElement | null;\r\n    /**\r\n     * Gets the Node immediately following this one in the parent's childNodes\r\n     */\r\n    nextSibling: RNode | null;\r\n    /**\r\n     * Removes a child from the current node and returns the removed node\r\n     * @param oldChild the child node to remove\r\n     */\r\n    removeChild(oldChild: RNode): RNode;\r\n    /**\r\n     * Insert a child node.\r\n     *\r\n     * Used exclusively for adding View root nodes into ViewAnchor location.\r\n     */\r\n    insertBefore(newChild: RNode, refChild: RNode | null, isViewRoot: boolean): void;\r\n    /**\r\n     * Append a child node.\r\n     *\r\n     * Used exclusively for building up DOM which are static (ie not View roots)\r\n     */\r\n    appendChild(newChild: RNode): RNode;\r\n}\r\n\r\n/**\r\n * RootContext contains information which is shared for all components which\r\n * were bootstrapped with {@link renderComponent}.\r\n */\r\ndeclare interface RootContext {\r\n    /**\r\n     * A function used for scheduling change detection in the future. Usually\r\n     * this is `requestAnimationFrame`.\r\n     */\r\n    scheduler: (workFn: () => void) => void;\r\n    /**\r\n     * A promise which is resolved when all components are considered clean (not dirty).\r\n     *\r\n     * This promise is overwritten every time a first call to {@link markDirty} is invoked.\r\n     */\r\n    clean: Promise<null>;\r\n    /**\r\n     * RootComponents - The components that were instantiated by the call to\r\n     * {@link renderComponent}.\r\n     */\r\n    components: {}[];\r\n    /**\r\n     * The player flushing handler to kick off all animations\r\n     */\r\n    playerHandler: ɵPlayerHandler | null;\r\n    /**\r\n     * What render-related operations to run once a scheduler has been set\r\n     */\r\n    flags: RootContextFlags;\r\n}\r\n\r\ndeclare const enum RootContextFlags {\r\n    Empty = 0,\r\n    DetectChanges = 1,\r\n    FlushPlayers = 2\r\n}\r\n\r\ndeclare interface RootData {\r\n    injector: Injector;\r\n    ngModule: NgModuleRef<any>;\r\n    projectableNodes: any[][];\r\n    selectorOrNode: any;\r\n    renderer: Renderer2;\r\n    rendererFactory: RendererFactory2;\r\n    errorHandler: ErrorHandler;\r\n    sanitizer: Sanitizer;\r\n}\r\n\r\ndeclare interface RText extends RNode {\r\n    textContent: string | null;\r\n}\r\n\r\ndeclare const SANITIZER = 12;\r\n\r\n/**\r\n * Sanitizer is used by the views to sanitize potentially dangerous values.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class Sanitizer {\r\n    abstract sanitize(context: SecurityContext, value: {} | string | null): string | null;\r\n    /** @nocollapse */\r\n    static ɵprov: unknown;\r\n}\r\n\r\n/**\r\n * Function used to sanitize the value before writing it into the renderer.\r\n */\r\ndeclare type SanitizerFn = (value: any, tagName?: string, propName?: string) => string | TrustedHTML | TrustedScript | TrustedScriptURL;\r\n\r\n\r\n/**\r\n * A schema definition associated with an NgModule.\r\n *\r\n * @see `@NgModule`, `CUSTOM_ELEMENTS_SCHEMA`, `NO_ERRORS_SCHEMA`\r\n *\r\n * @param name The name of a defined schema.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SchemaMetadata {\r\n    name: string;\r\n}\r\n\r\n\r\n/**\r\n * A SecurityContext marks a location that has dangerous security implications, e.g. a DOM property\r\n * like `innerHTML` that could cause Cross Site Scripting (XSS) security bugs when improperly\r\n * handled.\r\n *\r\n * See DomSanitizer for more details on security in Angular applications.\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum SecurityContext {\r\n    NONE = 0,\r\n    HTML = 1,\r\n    STYLE = 2,\r\n    SCRIPT = 3,\r\n    URL = 4,\r\n    RESOURCE_URL = 5\r\n}\r\n\r\n/** Flags used to build up CssSelectors */\r\ndeclare const enum SelectorFlags {\r\n    /** Indicates this is the beginning of a new negative selector */\r\n    NOT = 1,\r\n    /** Mode for matching attributes */\r\n    ATTRIBUTE = 2,\r\n    /** Mode for matching tag names */\r\n    ELEMENT = 4,\r\n    /** Mode for matching class names */\r\n    CLASS = 8\r\n}\r\n\r\n/**\r\n * Type of the Self metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Self {\r\n}\r\n\r\n/**\r\n * Self decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Self: SelfDecorator;\r\n\r\n/**\r\n * Type of the Self decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SelfDecorator {\r\n    /**\r\n     * Parameter decorator to be used on constructor parameters,\r\n     * which tells the DI framework to start dependency resolution from the local injector.\r\n     *\r\n     * Resolution works upward through the injector hierarchy, so the children\r\n     * of this class must configure their own providers or be prepared for a `null` result.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * In the following example, the dependency can be resolved\r\n     * by the local injector when instantiating the class itself, but not\r\n     * when instantiating a child.\r\n     *\r\n     * <code-example path=\"core/di/ts/metadata_spec.ts\" region=\"Self\">\r\n     * </code-example>\r\n     *\r\n     * @see `SkipSelf`\r\n     * @see `Optional`\r\n     *\r\n     */\r\n    (): any;\r\n    new (): Self;\r\n}\r\n\r\n/**\r\n * Set the {@link GetTestability} implementation used by the Angular testing framework.\r\n * @publicApi\r\n */\r\nexport declare function setTestabilityGetter(getter: GetTestability): void;\r\n\r\n\r\n/**\r\n * Represents a basic change from a previous to a new value for a single\r\n * property on a directive instance. Passed as a value in a\r\n * {@link SimpleChanges} object to the `ngOnChanges` hook.\r\n *\r\n * @see `OnChanges`\r\n *\r\n * @publicApi\r\n */\r\nexport declare class SimpleChange {\r\n    previousValue: any;\r\n    currentValue: any;\r\n    firstChange: boolean;\r\n    constructor(previousValue: any, currentValue: any, firstChange: boolean);\r\n    /**\r\n     * Check whether the new value is the first value assigned.\r\n     */\r\n    isFirstChange(): boolean;\r\n}\r\n\r\n/**\r\n * A hashtable of changes represented by {@link SimpleChange} objects stored\r\n * at the declared property name they belong to on a Directive or Component. This is\r\n * the type passed to the `ngOnChanges` hook.\r\n *\r\n * @see `OnChanges`\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SimpleChanges {\r\n    [propName: string]: SimpleChange;\r\n}\r\n\r\n/**\r\n * Type of the `SkipSelf` metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SkipSelf {\r\n}\r\n\r\n/**\r\n * `SkipSelf` decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const SkipSelf: SkipSelfDecorator;\r\n\r\n/**\r\n * Type of the `SkipSelf` decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SkipSelfDecorator {\r\n    /**\r\n     * Parameter decorator to be used on constructor parameters,\r\n     * which tells the DI framework to start dependency resolution from the parent injector.\r\n     * Resolution works upward through the injector hierarchy, so the local injector\r\n     * is not checked for a provider.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * In the following example, the dependency can be resolved when\r\n     * instantiating a child, but not when instantiating the class itself.\r\n     *\r\n     * <code-example path=\"core/di/ts/metadata_spec.ts\" region=\"SkipSelf\">\r\n     * </code-example>\r\n     *\r\n     * @see [Dependency Injection guide](guide/dependency-injection-in-action#skip).\r\n     * @see `Self`\r\n     * @see `Optional`\r\n     *\r\n     */\r\n    (): any;\r\n    new (): SkipSelf;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return an instance of `useClass` for a token.\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='StaticClassProvider'}\r\n *\r\n * Note that following two providers are not equal:\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='StaticClassProviderDifference'}\r\n *\r\n * ### Multi-value example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface StaticClassProvider extends StaticClassSansProvider {\r\n    /**\r\n     * An injection token. Typically an instance of `Type` or `InjectionToken`, but can be `any`.\r\n     */\r\n    provide: any;\r\n    /**\r\n     * When true, injector returns an array of instances. This is useful to allow multiple\r\n     * providers spread across many files to provide configuration information to a common token.\r\n     */\r\n    multi?: boolean;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return an instance of `useClass` for a token.\r\n * Base for `StaticClassProvider` decorator.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface StaticClassSansProvider {\r\n    /**\r\n     * An optional class to instantiate for the `token`. By default, the `provide`\r\n     * class is instantiated.\r\n     */\r\n    useClass: Type<any>;\r\n    /**\r\n     * A list of `token`s to be resolved by the injector. The list of values is then\r\n     * used as arguments to the `useClass` constructor.\r\n     */\r\n    deps: any[];\r\n}\r\n\r\n/**\r\n * Describes how an `Injector` should be configured as static (that is, without reflection).\r\n * A static provider provides tokens to an injector for various types of dependencies.\r\n *\r\n * @see `Injector.create()`.\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection-providers).\r\n *\r\n * @publicApi\r\n */\r\nexport declare type StaticProvider = ValueProvider | ExistingProvider | StaticClassProvider | ConstructorProvider | FactoryProvider | any[];\r\n\r\n/**\r\n * NgModuleFactoryLoader that uses SystemJS to load NgModuleFactory\r\n * @publicApi\r\n * @deprecated the `string` form of `loadChildren` is deprecated, and `SystemJsNgModuleLoader` is\r\n * part of its implementation. See `LoadChildren` for more details.\r\n */\r\nexport declare class SystemJsNgModuleLoader implements NgModuleFactoryLoader {\r\n    private _compiler;\r\n    private _config;\r\n    constructor(_compiler: Compiler, config?: SystemJsNgModuleLoaderConfig);\r\n    load(path: string): Promise<NgModuleFactory<any>>;\r\n    private loadAndCompile;\r\n    private loadFactory;\r\n}\r\n\r\n/**\r\n * Configuration for SystemJsNgModuleLoader.\r\n * token.\r\n *\r\n * @publicApi\r\n * @deprecated the `string` form of `loadChildren` is deprecated, and `SystemJsNgModuleLoaderConfig`\r\n * is part of its implementation. See `LoadChildren` for more details.\r\n */\r\nexport declare abstract class SystemJsNgModuleLoaderConfig {\r\n    /**\r\n     * Prefix to add when computing the name of the factory module for a given module name.\r\n     */\r\n    factoryPathPrefix: string;\r\n    /**\r\n     * Suffix to add when computing the name of the factory module for a given module name.\r\n     */\r\n    factoryPathSuffix: string;\r\n}\r\n\r\ndeclare const T_HOST = 6;\r\n\r\n/**\r\n * A combination of:\r\n * - Attribute names and values.\r\n * - Special markers acting as flags to alter attributes processing.\r\n * - Parsed ngProjectAs selectors.\r\n */\r\ndeclare type TAttributes = (string | ɵAttributeMarker | CssSelector)[];\r\n\r\n/**\r\n * Constants that are associated with a view. Includes:\r\n * - Attribute arrays.\r\n * - Local definition arrays.\r\n * - Translated messages (i18n).\r\n */\r\ndeclare type TConstants = (TAttributes | string)[];\r\n\r\n/**\r\n * Factory function that returns an array of consts. Consts can be represented as a function in\r\n * case any additional statements are required to define consts in the list. An example is i18n\r\n * where additional i18n calls are generated, which should be executed when consts are requested\r\n * for the first time.\r\n */\r\ndeclare type TConstantsFactory = () => TConstants;\r\n\r\n/**\r\n * TConstants type that describes how the `consts` field is generated on ComponentDef: it can be\r\n * either an array or a factory function that returns that array.\r\n */\r\ndeclare type TConstantsOrFactory = TConstants | TConstantsFactory;\r\n\r\n/** Static data for an LContainer */\r\ndeclare interface TContainerNode extends TNode {\r\n    /**\r\n     * Index in the data[] array.\r\n     *\r\n     * If it's -1, this is a dynamically created container node that isn't stored in\r\n     * data[] (e.g. when you inject ViewContainerRef) .\r\n     */\r\n    index: number;\r\n    child: null;\r\n    /**\r\n     * Container nodes will have parents unless:\r\n     *\r\n     * - They are the first node of a component or embedded view\r\n     * - They are dynamically created\r\n     */\r\n    parent: ɵangular_packages_core_core_bk | TElementContainerNode | null;\r\n    tViews: TView | TView[] | null;\r\n    projection: null;\r\n    value: null;\r\n}\r\n\r\n/**\r\n * Static data that corresponds to the instance-specific data array on an LView.\r\n *\r\n * Each node's static data is stored in tData at the same index that it's stored\r\n * in the data array.  Any nodes that do not have static data store a null value in\r\n * tData to avoid a sparse array.\r\n *\r\n * Each pipe's definition is stored here at the same index as its pipe instance in\r\n * the data array.\r\n *\r\n * Each host property's name is stored here at the same index as its value in the\r\n * data array.\r\n *\r\n * Each property binding name is stored here at the same index as its value in\r\n * the data array. If the binding is an interpolation, the static string values\r\n * are stored parallel to the dynamic values. Example:\r\n *\r\n * id=\"prefix {{ v0 }} a {{ v1 }} b {{ v2 }} suffix\"\r\n *\r\n * LView       |   TView.data\r\n *------------------------\r\n *  v0 value   |   'a'\r\n *  v1 value   |   'b'\r\n *  v2 value   |   id � prefix � suffix\r\n *\r\n * Injector bloom filters are also stored here.\r\n */\r\ndeclare type TData = (TNode | ɵPipeDef<any> | ɵDirectiveDef<any> | ɵComponentDef<any> | number | TStylingRange | TStylingKey | ProviderToken<any> | TI18n | I18nUpdateOpCodes | TIcu | null | string)[];\r\n\r\n/** Static data for an <ng-container> */\r\ndeclare interface TElementContainerNode extends TNode {\r\n    /** Index in the LView[] array. */\r\n    index: number;\r\n    child: ɵangular_packages_core_core_bk | TTextNode | TContainerNode | TElementContainerNode | TProjectionNode | null;\r\n    parent: ɵangular_packages_core_core_bk | TElementContainerNode | null;\r\n    tViews: null;\r\n    projection: null;\r\n}\r\n\r\n/**\r\n * Represents an embedded template that can be used to instantiate embedded views.\r\n * To instantiate embedded views based on a template, use the `ViewContainerRef`\r\n * method `createEmbeddedView()`.\r\n *\r\n * Access a `TemplateRef` instance by placing a directive on an `<ng-template>`\r\n * element (or directive prefixed with `*`). The `TemplateRef` for the embedded view\r\n * is injected into the constructor of the directive,\r\n * using the `TemplateRef` token.\r\n *\r\n * You can also use a `Query` to find a `TemplateRef` associated with\r\n * a component or a directive.\r\n *\r\n * @see `ViewContainerRef`\r\n * @see [Navigate the Component Tree with DI](guide/dependency-injection-navtree)\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class TemplateRef<C> {\r\n    /**\r\n     * The anchor element in the parent view for this embedded view.\r\n     *\r\n     * The data-binding and injection contexts of embedded views created from this `TemplateRef`\r\n     * inherit from the contexts of this location.\r\n     *\r\n     * Typically new embedded views are attached to the view container of this location, but in\r\n     * advanced use-cases, the view can be attached to a different container while keeping the\r\n     * data-binding and injection context from the original location.\r\n     *\r\n     */\r\n    abstract get elementRef(): ElementRef;\r\n    /**\r\n     * Instantiates an embedded view based on this template,\r\n     * and attaches it to the view container.\r\n     * @param context The data-binding context of the embedded view, as declared\r\n     * in the `<ng-template>` usage.\r\n     * @returns The new embedded view object.\r\n     */\r\n    abstract createEmbeddedView(context: C): EmbeddedViewRef<C>;\r\n}\r\n\r\n/**\r\n * The Testability service provides testing hooks that can be accessed from\r\n * the browser. Each bootstrapped Angular application on the page will have\r\n * an instance of Testability.\r\n * @publicApi\r\n */\r\nexport declare class Testability implements PublicTestability {\r\n    private _ngZone;\r\n    private _pendingCount;\r\n    private _isZoneStable;\r\n    private _callbacks;\r\n    private taskTrackingZone;\r\n    constructor(_ngZone: NgZone);\r\n    private _watchAngularEvents;\r\n    /**\r\n     * Increases the number of pending request\r\n     * @deprecated pending requests are now tracked with zones.\r\n     */\r\n    increasePendingRequestCount(): number;\r\n    /**\r\n     * Decreases the number of pending request\r\n     * @deprecated pending requests are now tracked with zones\r\n     */\r\n    decreasePendingRequestCount(): number;\r\n    /**\r\n     * Whether an associated application is stable\r\n     */\r\n    isStable(): boolean;\r\n    private _runCallbacksIfReady;\r\n    private getPendingTasks;\r\n    private addCallback;\r\n    /**\r\n     * Wait for the application to be stable with a timeout. If the timeout is reached before that\r\n     * happens, the callback receives a list of the macro tasks that were pending, otherwise null.\r\n     *\r\n     * @param doneCb The callback to invoke when Angular is stable or the timeout expires\r\n     *    whichever comes first.\r\n     * @param timeout Optional. The maximum time to wait for Angular to become stable. If not\r\n     *    specified, whenStable() will wait forever.\r\n     * @param updateCb Optional. If specified, this callback will be invoked whenever the set of\r\n     *    pending macrotasks changes. If this callback returns true doneCb will not be invoked\r\n     *    and no further updates will be issued.\r\n     */\r\n    whenStable(doneCb: Function, timeout?: number, updateCb?: Function): void;\r\n    /**\r\n     * Get the number of pending requests\r\n     * @deprecated pending requests are now tracked with zones\r\n     */\r\n    getPendingRequestCount(): number;\r\n    /**\r\n     * Find providers by name\r\n     * @param using The root element to search from\r\n     * @param provider The name of binding variable\r\n     * @param exactMatch Whether using exactMatch\r\n     */\r\n    findProviders(using: any, provider: string, exactMatch: boolean): any[];\r\n}\r\n\r\n/**\r\n * A global registry of {@link Testability} instances for specific elements.\r\n * @publicApi\r\n */\r\nexport declare class TestabilityRegistry {\r\n    constructor();\r\n    /**\r\n     * Registers an application with a testability hook so that it can be tracked\r\n     * @param token token of application, root element\r\n     * @param testability Testability hook\r\n     */\r\n    registerApplication(token: any, testability: Testability): void;\r\n    /**\r\n     * Unregisters an application.\r\n     * @param token token of application, root element\r\n     */\r\n    unregisterApplication(token: any): void;\r\n    /**\r\n     * Unregisters all applications\r\n     */\r\n    unregisterAllApplications(): void;\r\n    /**\r\n     * Get a testability hook associated with the application\r\n     * @param elem root element\r\n     */\r\n    getTestability(elem: any): Testability | null;\r\n    /**\r\n     * Get all registered testabilities\r\n     */\r\n    getAllTestabilities(): Testability[];\r\n    /**\r\n     * Get all registered applications(root elements)\r\n     */\r\n    getAllRootElements(): any[];\r\n    /**\r\n     * Find testability of a node in the Tree\r\n     * @param elem node\r\n     * @param findInAncestors whether finding testability in ancestors if testability was not found in\r\n     * current node\r\n     */\r\n    findTestabilityInTree(elem: Node, findInAncestors?: boolean): Testability | null;\r\n}\r\n\r\ndeclare interface TextDef {\r\n    prefix: string;\r\n}\r\n\r\n/**\r\n * Store information for the i18n translation block.\r\n */\r\ndeclare interface TI18n {\r\n    /**\r\n     * A set of OpCodes which will create the Text Nodes and ICU anchors for the translation blocks.\r\n     *\r\n     * NOTE: The ICU anchors are filled in with ICU Update OpCode.\r\n     */\r\n    create: I18nCreateOpCodes;\r\n    /**\r\n     * A set of OpCodes which will be executed on each change detection to determine if any changes to\r\n     * DOM are required.\r\n     */\r\n    update: I18nUpdateOpCodes;\r\n}\r\n\r\ndeclare interface TIcu {\r\n    /**\r\n     * Defines the ICU type of `select` or `plural`\r\n     */\r\n    type: IcuType;\r\n    /**\r\n     * Index in `LView` where the anchor node is stored. `<!-- ICU 0:0 -->`\r\n     */\r\n    anchorIdx: number;\r\n    /**\r\n     * Currently selected ICU case pointer.\r\n     *\r\n     * `lView[currentCaseLViewIndex]` stores the currently selected case. This is needed to know how\r\n     * to clean up the current case when transitioning no the new case.\r\n     *\r\n     * If the value stored is:\r\n     * `null`: No current case selected.\r\n     *   `<0`: A flag which means that the ICU just switched and that `icuUpdate` must be executed\r\n     *         regardless of the `mask`. (After the execution the flag is cleared)\r\n     *   `>=0` A currently selected case index.\r\n     */\r\n    currentCaseLViewIndex: number;\r\n    /**\r\n     * A list of case values which the current ICU will try to match.\r\n     *\r\n     * The last value is `other`\r\n     */\r\n    cases: any[];\r\n    /**\r\n     * A set of OpCodes to apply in order to build up the DOM render tree for the ICU\r\n     */\r\n    create: IcuCreateOpCodes[];\r\n    /**\r\n     * A set of OpCodes to apply in order to destroy the DOM render tree for the ICU.\r\n     */\r\n    remove: I18nRemoveOpCodes[];\r\n    /**\r\n     * A set of OpCodes to apply in order to update the DOM render tree for the ICU bindings.\r\n     */\r\n    update: I18nUpdateOpCodes[];\r\n}\r\n\r\n/**\r\n * Binding data (flyweight) for a particular node that is shared between all templates\r\n * of a specific type.\r\n *\r\n * If a property is:\r\n *    - PropertyAliases: that property's data was generated and this is it\r\n *    - Null: that property's data was already generated and nothing was found.\r\n *    - Undefined: that property's data has not yet been generated\r\n *\r\n * see: https://en.wikipedia.org/wiki/Flyweight_pattern for more on the Flyweight pattern\r\n */\r\ndeclare interface TNode {\r\n    /** The type of the TNode. See TNodeType. */\r\n    type: TNodeType;\r\n    /**\r\n     * Index of the TNode in TView.data and corresponding native element in LView.\r\n     *\r\n     * This is necessary to get from any TNode to its corresponding native element when\r\n     * traversing the node tree.\r\n     *\r\n     * If index is -1, this is a dynamically created container node or embedded view node.\r\n     */\r\n    index: number;\r\n    /**\r\n     * Insert before existing DOM node index.\r\n     *\r\n     * When DOM nodes are being inserted, normally they are being appended as they are created.\r\n     * Under i18n case, the translated text nodes are created ahead of time as part of the\r\n     * `ɵɵi18nStart` instruction which means that this `TNode` can't just be appended and instead\r\n     * needs to be inserted using `insertBeforeIndex` semantics.\r\n     *\r\n     * Additionally sometimes it is necessary to insert new text nodes as a child of this `TNode`. In\r\n     * such a case the value stores an array of text nodes to insert.\r\n     *\r\n     * Example:\r\n     * ```\r\n     * <div i18n>\r\n     *   Hello <span>World</span>!\r\n     * </div>\r\n     * ```\r\n     * In the above example the `ɵɵi18nStart` instruction can create `Hello `, `World` and `!` text\r\n     * nodes. It can also insert `Hello ` and `!` text node as a child of `<div>`, but it can't\r\n     * insert `World` because the `<span>` node has not yet been created. In such a case the\r\n     * `<span>` `TNode` will have an array which will direct the `<span>` to not only insert\r\n     * itself in front of `!` but also to insert the `World` (created by `ɵɵi18nStart`) into\r\n     * `<span>` itself.\r\n     *\r\n     * Pseudo code:\r\n     * ```\r\n     *   if (insertBeforeIndex === null) {\r\n     *     // append as normal\r\n     *   } else if (Array.isArray(insertBeforeIndex)) {\r\n     *     // First insert current `TNode` at correct location\r\n     *     const currentNode = lView[this.index];\r\n     *     parentNode.insertBefore(currentNode, lView[this.insertBeforeIndex[0]]);\r\n     *     // Now append all of the children\r\n     *     for(let i=1; i<this.insertBeforeIndex; i++) {\r\n     *       currentNode.appendChild(lView[this.insertBeforeIndex[i]]);\r\n     *     }\r\n     *   } else {\r\n     *     parentNode.insertBefore(lView[this.index], lView[this.insertBeforeIndex])\r\n     *   }\r\n     * ```\r\n     * - null: Append as normal using `parentNode.appendChild`\r\n     * - `number`: Append using\r\n     *      `parentNode.insertBefore(lView[this.index], lView[this.insertBeforeIndex])`\r\n     *\r\n     * *Initialization*\r\n     *\r\n     * Because `ɵɵi18nStart` executes before nodes are created, on `TView.firstCreatePass` it is not\r\n     * possible for `ɵɵi18nStart` to set the `insertBeforeIndex` value as the corresponding `TNode`\r\n     * has not yet been created. For this reason the `ɵɵi18nStart` creates a `TNodeType.Placeholder`\r\n     * `TNode` at that location. See `TNodeType.Placeholder` for more information.\r\n     */\r\n    insertBeforeIndex: InsertBeforeIndex;\r\n    /**\r\n     * The index of the closest injector in this node's LView.\r\n     *\r\n     * If the index === -1, there is no injector on this node or any ancestor node in this view.\r\n     *\r\n     * If the index !== -1, it is the index of this node's injector OR the index of a parent\r\n     * injector in the same view. We pass the parent injector index down the node tree of a view so\r\n     * it's possible to find the parent injector without walking a potentially deep node tree.\r\n     * Injector indices are not set across view boundaries because there could be multiple component\r\n     * hosts.\r\n     *\r\n     * If tNode.injectorIndex === tNode.parent.injectorIndex, then the index belongs to a parent\r\n     * injector.\r\n     */\r\n    injectorIndex: number;\r\n    /**\r\n     * Stores starting index of the directives.\r\n     *\r\n     * NOTE: The first directive is always component (if present).\r\n     */\r\n    directiveStart: number;\r\n    /**\r\n     * Stores final exclusive index of the directives.\r\n     *\r\n     * The area right behind the `directiveStart-directiveEnd` range is used to allocate the\r\n     * `HostBindingFunction` `vars` (or null if no bindings.) Therefore `directiveEnd` is used to set\r\n     * `LFrame.bindingRootIndex` before `HostBindingFunction` is executed.\r\n     */\r\n    directiveEnd: number;\r\n    /**\r\n     * Stores the last directive which had a styling instruction.\r\n     *\r\n     * Initial value of this is `-1` which means that no `hostBindings` styling instruction has\r\n     * executed. As `hostBindings` instructions execute they set the value to the index of the\r\n     * `DirectiveDef` which contained the last `hostBindings` styling instruction.\r\n     *\r\n     * Valid values are:\r\n     * - `-1` No `hostBindings` instruction has executed.\r\n     * - `directiveStart <= directiveStylingLast < directiveEnd`: Points to the `DirectiveDef` of\r\n     * the last styling instruction which executed in the `hostBindings`.\r\n     *\r\n     * This data is needed so that styling instructions know which static styling data needs to be\r\n     * collected from the `DirectiveDef.hostAttrs`. A styling instruction needs to collect all data\r\n     * since last styling instruction.\r\n     */\r\n    directiveStylingLast: number;\r\n    /**\r\n     * Stores indexes of property bindings. This field is only set in the ngDevMode and holds\r\n     * indexes of property bindings so TestBed can get bound property metadata for a given node.\r\n     */\r\n    propertyBindings: number[] | null;\r\n    /**\r\n     * Stores if Node isComponent, isProjected, hasContentQuery, hasClassInput and hasStyleInput\r\n     * etc.\r\n     */\r\n    flags: TNodeFlags;\r\n    /**\r\n     * This number stores two values using its bits:\r\n     *\r\n     * - the index of the first provider on that node (first 16 bits)\r\n     * - the count of view providers from the component on this node (last 16 bits)\r\n     */\r\n    providerIndexes: TNodeProviderIndexes;\r\n    /**\r\n     * The value name associated with this node.\r\n     * if type:\r\n     *   `TNodeType.Text`: text value\r\n     *   `TNodeType.Element`: tag name\r\n     *   `TNodeType.ICUContainer`: `TIcu`\r\n     */\r\n    value: any;\r\n    /**\r\n     * Attributes associated with an element. We need to store attributes to support various\r\n     * use-cases (attribute injection, content projection with selectors, directives matching).\r\n     * Attributes are stored statically because reading them from the DOM would be way too slow for\r\n     * content projection and queries.\r\n     *\r\n     * Since attrs will always be calculated first, they will never need to be marked undefined by\r\n     * other instructions.\r\n     *\r\n     * For regular attributes a name of an attribute and its value alternate in the array.\r\n     * e.g. ['role', 'checkbox']\r\n     * This array can contain flags that will indicate \"special attributes\" (attributes with\r\n     * namespaces, attributes extracted from bindings and outputs).\r\n     */\r\n    attrs: TAttributes | null;\r\n    /**\r\n     * Same as `TNode.attrs` but contains merged data across all directive host bindings.\r\n     *\r\n     * We need to keep `attrs` as unmerged so that it can be used for attribute selectors.\r\n     * We merge attrs here so that it can be used in a performant way for initial rendering.\r\n     *\r\n     * The `attrs` are merged in first pass in following order:\r\n     * - Component's `hostAttrs`\r\n     * - Directives' `hostAttrs`\r\n     * - Template `TNode.attrs` associated with the current `TNode`.\r\n     */\r\n    mergedAttrs: TAttributes | null;\r\n    /**\r\n     * A set of local names under which a given element is exported in a template and\r\n     * visible to queries. An entry in this array can be created for different reasons:\r\n     * - an element itself is referenced, ex.: `<div #foo>`\r\n     * - a component is referenced, ex.: `<my-cmpt #foo>`\r\n     * - a directive is referenced, ex.: `<my-cmpt #foo=\"directiveExportAs\">`.\r\n     *\r\n     * A given element might have different local names and those names can be associated\r\n     * with a directive. We store local names at even indexes while odd indexes are reserved\r\n     * for directive index in a view (or `-1` if there is no associated directive).\r\n     *\r\n     * Some examples:\r\n     * - `<div #foo>` => `[\"foo\", -1]`\r\n     * - `<my-cmpt #foo>` => `[\"foo\", myCmptIdx]`\r\n     * - `<my-cmpt #foo #bar=\"directiveExportAs\">` => `[\"foo\", myCmptIdx, \"bar\", directiveIdx]`\r\n     * - `<div #foo #bar=\"directiveExportAs\">` => `[\"foo\", -1, \"bar\", directiveIdx]`\r\n     */\r\n    localNames: (string | number)[] | null;\r\n    /** Information about input properties that need to be set once from attribute data. */\r\n    initialInputs: InitialInputData | null | undefined;\r\n    /**\r\n     * Input data for all directives on this node. `null` means that there are no directives with\r\n     * inputs on this node.\r\n     */\r\n    inputs: PropertyAliases | null;\r\n    /**\r\n     * Output data for all directives on this node. `null` means that there are no directives with\r\n     * outputs on this node.\r\n     */\r\n    outputs: PropertyAliases | null;\r\n    /**\r\n     * The TView or TViews attached to this node.\r\n     *\r\n     * If this TNode corresponds to an LContainer with inline views, the container will\r\n     * need to store separate static data for each of its view blocks (TView[]). Otherwise,\r\n     * nodes in inline views with the same index as nodes in their parent views will overwrite\r\n     * each other, as they are in the same template.\r\n     *\r\n     * Each index in this array corresponds to the static data for a certain\r\n     * view. So if you had V(0) and V(1) in a container, you might have:\r\n     *\r\n     * [\r\n     *   [{tagName: 'div', attrs: ...}, null],     // V(0) TView\r\n     *   [{tagName: 'button', attrs ...}, null]    // V(1) TView\r\n     *\r\n     * If this TNode corresponds to an LContainer with a template (e.g. structural\r\n     * directive), the template's TView will be stored here.\r\n     *\r\n     * If this TNode corresponds to an element, tViews will be null .\r\n     */\r\n    tViews: TView | TView[] | null;\r\n    /**\r\n     * The next sibling node. Necessary so we can propagate through the root nodes of a view\r\n     * to insert them or remove them from the DOM.\r\n     */\r\n    next: TNode | null;\r\n    /**\r\n     * The next projected sibling. Since in Angular content projection works on the node-by-node\r\n     * basis the act of projecting nodes might change nodes relationship at the insertion point\r\n     * (target view). At the same time we need to keep initial relationship between nodes as\r\n     * expressed in content view.\r\n     */\r\n    projectionNext: TNode | null;\r\n    /**\r\n     * First child of the current node.\r\n     *\r\n     * For component nodes, the child will always be a ContentChild (in same view).\r\n     * For embedded view nodes, the child will be in their child view.\r\n     */\r\n    child: TNode | null;\r\n    /**\r\n     * Parent node (in the same view only).\r\n     *\r\n     * We need a reference to a node's parent so we can append the node to its parent's native\r\n     * element at the appropriate time.\r\n     *\r\n     * If the parent would be in a different view (e.g. component host), this property will be null.\r\n     * It's important that we don't try to cross component boundaries when retrieving the parent\r\n     * because the parent will change (e.g. index, attrs) depending on where the component was\r\n     * used (and thus shouldn't be stored on TNode). In these cases, we retrieve the parent through\r\n     * LView.node instead (which will be instance-specific).\r\n     *\r\n     * If this is an inline view node (V), the parent will be its container.\r\n     */\r\n    parent: ɵangular_packages_core_core_bk | TContainerNode | null;\r\n    /**\r\n     * List of projected TNodes for a given component host element OR index into the said nodes.\r\n     *\r\n     * For easier discussion assume this example:\r\n     * `<parent>`'s view definition:\r\n     * ```\r\n     * <child id=\"c1\">content1</child>\r\n     * <child id=\"c2\"><span>content2</span></child>\r\n     * ```\r\n     * `<child>`'s view definition:\r\n     * ```\r\n     * <ng-content id=\"cont1\"></ng-content>\r\n     * ```\r\n     *\r\n     * If `Array.isArray(projection)` then `TNode` is a host element:\r\n     * - `projection` stores the content nodes which are to be projected.\r\n     *    - The nodes represent categories defined by the selector: For example:\r\n     *      `<ng-content/><ng-content select=\"abc\"/>` would represent the heads for `<ng-content/>`\r\n     *      and `<ng-content select=\"abc\"/>` respectively.\r\n     *    - The nodes we store in `projection` are heads only, we used `.next` to get their\r\n     *      siblings.\r\n     *    - The nodes `.next` is sorted/rewritten as part of the projection setup.\r\n     *    - `projection` size is equal to the number of projections `<ng-content>`. The size of\r\n     *      `c1` will be `1` because `<child>` has only one `<ng-content>`.\r\n     * - we store `projection` with the host (`c1`, `c2`) rather than the `<ng-content>` (`cont1`)\r\n     *   because the same component (`<child>`) can be used in multiple locations (`c1`, `c2`) and\r\n     * as a result have different set of nodes to project.\r\n     * - without `projection` it would be difficult to efficiently traverse nodes to be projected.\r\n     *\r\n     * If `typeof projection == 'number'` then `TNode` is a `<ng-content>` element:\r\n     * - `projection` is an index of the host's `projection`Nodes.\r\n     *   - This would return the first head node to project:\r\n     *     `getHost(currentTNode).projection[currentTNode.projection]`.\r\n     * - When projecting nodes the parent node retrieved may be a `<ng-content>` node, in which case\r\n     *   the process is recursive in nature.\r\n     *\r\n     * If `projection` is of type `RNode[][]` than we have a collection of native nodes passed as\r\n     * projectable nodes during dynamic component creation.\r\n     */\r\n    projection: (TNode | RNode[])[] | number | null;\r\n    /**\r\n     * A collection of all `style` static values for an element (including from host).\r\n     *\r\n     * This field will be populated if and when:\r\n     *\r\n     * - There are one or more initial `style`s on an element (e.g. `<div style=\"width:200px;\">`)\r\n     * - There are one or more initial `style`s on a directive/component host\r\n     *   (e.g. `@Directive({host: {style: \"width:200px;\" } }`)\r\n     */\r\n    styles: string | null;\r\n    /**\r\n     * A collection of all `style` static values for an element excluding host sources.\r\n     *\r\n     * Populated when there are one or more initial `style`s on an element\r\n     * (e.g. `<div style=\"width:200px;\">`)\r\n     * Must be stored separately from `tNode.styles` to facilitate setting directive\r\n     * inputs that shadow the `style` property. If we used `tNode.styles` as is for shadowed inputs,\r\n     * we would feed host styles back into directives as \"inputs\". If we used `tNode.attrs`, we\r\n     * would have to concatenate the attributes on every template pass. Instead, we process once on\r\n     * first create pass and store here.\r\n     */\r\n    stylesWithoutHost: string | null;\r\n    /**\r\n     * A `KeyValueArray` version of residual `styles`.\r\n     *\r\n     * When there are styling instructions than each instruction stores the static styling\r\n     * which is of lower priority than itself. This means that there may be a higher priority\r\n     * styling than the instruction.\r\n     *\r\n     * Imagine:\r\n     * ```\r\n     * <div style=\"color: highest;\" my-dir>\r\n     *\r\n     * @Directive({\r\n     *   host: {\r\n     *     style: 'color: lowest; ',\r\n     *     '[styles.color]': 'exp' // ɵɵstyleProp('color', ctx.exp);\r\n     *   }\r\n     * })\r\n     * ```\r\n     *\r\n     * In the above case:\r\n     * - `color: lowest` is stored with `ɵɵstyleProp('color', ctx.exp);` instruction\r\n     * -  `color: highest` is the residual and is stored here.\r\n     *\r\n     * - `undefined': not initialized.\r\n     * - `null`: initialized but `styles` is `null`\r\n     * - `KeyValueArray`: parsed version of `styles`.\r\n     */\r\n    residualStyles: KeyValueArray<any> | undefined | null;\r\n    /**\r\n     * A collection of all class static values for an element (including from host).\r\n     *\r\n     * This field will be populated if and when:\r\n     *\r\n     * - There are one or more initial classes on an element (e.g. `<div class=\"one two three\">`)\r\n     * - There are one or more initial classes on an directive/component host\r\n     *   (e.g. `@Directive({host: {class: \"SOME_CLASS\" } }`)\r\n     */\r\n    classes: string | null;\r\n    /**\r\n     * A collection of all class static values for an element excluding host sources.\r\n     *\r\n     * Populated when there are one or more initial classes on an element\r\n     * (e.g. `<div class=\"SOME_CLASS\">`)\r\n     * Must be stored separately from `tNode.classes` to facilitate setting directive\r\n     * inputs that shadow the `class` property. If we used `tNode.classes` as is for shadowed\r\n     * inputs, we would feed host classes back into directives as \"inputs\". If we used\r\n     * `tNode.attrs`, we would have to concatenate the attributes on every template pass. Instead,\r\n     * we process once on first create pass and store here.\r\n     */\r\n    classesWithoutHost: string | null;\r\n    /**\r\n     * A `KeyValueArray` version of residual `classes`.\r\n     *\r\n     * Same as `TNode.residualStyles` but for classes.\r\n     *\r\n     * - `undefined': not initialized.\r\n     * - `null`: initialized but `classes` is `null`\r\n     * - `KeyValueArray`: parsed version of `classes`.\r\n     */\r\n    residualClasses: KeyValueArray<any> | undefined | null;\r\n    /**\r\n     * Stores the head/tail index of the class bindings.\r\n     *\r\n     * - If no bindings, the head and tail will both be 0.\r\n     * - If there are template bindings, stores the head/tail of the class bindings in the template.\r\n     * - If no template bindings but there are host bindings, the head value will point to the last\r\n     *   host binding for \"class\" (not the head of the linked list), tail will be 0.\r\n     *\r\n     * See: `style_binding_list.ts` for details.\r\n     *\r\n     * This is used by `insertTStylingBinding` to know where the next styling binding should be\r\n     * inserted so that they can be sorted in priority order.\r\n     */\r\n    classBindings: TStylingRange;\r\n    /**\r\n     * Stores the head/tail index of the class bindings.\r\n     *\r\n     * - If no bindings, the head and tail will both be 0.\r\n     * - If there are template bindings, stores the head/tail of the style bindings in the template.\r\n     * - If no template bindings but there are host bindings, the head value will point to the last\r\n     *   host binding for \"style\" (not the head of the linked list), tail will be 0.\r\n     *\r\n     * See: `style_binding_list.ts` for details.\r\n     *\r\n     * This is used by `insertTStylingBinding` to know where the next styling binding should be\r\n     * inserted so that they can be sorted in priority order.\r\n     */\r\n    styleBindings: TStylingRange;\r\n}\r\n\r\n/**\r\n * Corresponds to the TNode.flags property.\r\n */\r\ndeclare const enum TNodeFlags {\r\n    /** Bit #1 - This bit is set if the node is a host for any directive (including a component) */\r\n    isDirectiveHost = 1,\r\n    /**\r\n     * Bit #2 - This bit is set if the node is a host for a component.\r\n     *\r\n     * Setting this bit implies that the `isDirectiveHost` bit is set as well.\r\n     * */\r\n    isComponentHost = 2,\r\n    /** Bit #3 - This bit is set if the node has been projected */\r\n    isProjected = 4,\r\n    /** Bit #4 - This bit is set if any directive on this node has content queries */\r\n    hasContentQuery = 8,\r\n    /** Bit #5 - This bit is set if the node has any \"class\" inputs */\r\n    hasClassInput = 16,\r\n    /** Bit #6 - This bit is set if the node has any \"style\" inputs */\r\n    hasStyleInput = 32,\r\n    /** Bit #7 This bit is set if the node has been detached by i18n */\r\n    isDetached = 64,\r\n    /**\r\n     * Bit #8 - This bit is set if the node has directives with host bindings.\r\n     *\r\n     * This flags allows us to guard host-binding logic and invoke it only on nodes\r\n     * that actually have directives with host bindings.\r\n     */\r\n    hasHostBindings = 128\r\n}\r\n\r\n/**\r\n * Corresponds to the TNode.providerIndexes property.\r\n */\r\ndeclare const enum TNodeProviderIndexes {\r\n    /** The index of the first provider on this node is encoded on the least significant bits. */\r\n    ProvidersStartIndexMask = 1048575,\r\n    /**\r\n     * The count of view providers from the component on this node is\r\n     * encoded on the 20 most significant bits.\r\n     */\r\n    CptViewProvidersCountShift = 20,\r\n    CptViewProvidersCountShifter = 1048576\r\n}\r\n\r\n/**\r\n * TNodeType corresponds to the {@link TNode} `type` property.\r\n *\r\n * NOTE: type IDs are such that we use each bit to denote a type. This is done so that we can easily\r\n * check if the `TNode` is of more than one type.\r\n *\r\n * `if (tNode.type === TNodeType.Text || tNode.type === TNode.Element)`\r\n * can be written as:\r\n * `if (tNode.type & (TNodeType.Text | TNodeType.Element))`\r\n *\r\n * However any given `TNode` can only be of one type.\r\n */\r\ndeclare const enum TNodeType {\r\n    /**\r\n     * The TNode contains information about a DOM element aka {@link RText}.\r\n     */\r\n    Text = 1,\r\n    /**\r\n     * The TNode contains information about a DOM element aka {@link RElement}.\r\n     */\r\n    Element = 2,\r\n    /**\r\n     * The TNode contains information about an {@link LContainer} for embedded views.\r\n     */\r\n    Container = 4,\r\n    /**\r\n     * The TNode contains information about an `<ng-container>` element {@link RNode}.\r\n     */\r\n    ElementContainer = 8,\r\n    /**\r\n     * The TNode contains information about an `<ng-content>` projection\r\n     */\r\n    Projection = 16,\r\n    /**\r\n     * The TNode contains information about an ICU comment used in `i18n`.\r\n     */\r\n    Icu = 32,\r\n    /**\r\n     * Special node type representing a placeholder for future `TNode` at this location.\r\n     *\r\n     * I18n translation blocks are created before the element nodes which they contain. (I18n blocks\r\n     * can span over many elements.) Because i18n `TNode`s (representing text) are created first they\r\n     * often may need to point to element `TNode`s which are not yet created. In such a case we create\r\n     * a `Placeholder` `TNode`. This allows the i18n to structurally link the `TNode`s together\r\n     * without knowing any information about the future nodes which will be at that location.\r\n     *\r\n     * On `firstCreatePass` When element instruction executes it will try to create a `TNode` at that\r\n     * location. Seeing a `Placeholder` `TNode` already there tells the system that it should reuse\r\n     * existing `TNode` (rather than create a new one) and just update the missing information.\r\n     */\r\n    Placeholder = 64,\r\n    AnyRNode = 3,\r\n    AnyContainer = 12\r\n}\r\n\r\n/**\r\n * Type representing a set of TNodes that can have local refs (`#foo`) placed on them.\r\n */\r\ndeclare type TNodeWithLocalRefs = TContainerNode | ɵangular_packages_core_core_bk | TElementContainerNode;\r\n\r\n/** Static data for an LProjectionNode  */\r\ndeclare interface TProjectionNode extends TNode {\r\n    /** Index in the data[] array */\r\n    child: null;\r\n    /**\r\n     * Projection nodes will have parents unless they are the first node of a component\r\n     * or embedded view (which means their parent is in a different view and must be\r\n     * retrieved using LView.node).\r\n     */\r\n    parent: ɵangular_packages_core_core_bk | TElementContainerNode | null;\r\n    tViews: null;\r\n    /** Index of the projection node. (See TNode.projection for more info.) */\r\n    projection: number;\r\n    value: null;\r\n}\r\n\r\n/**\r\n * TQueries represent a collection of individual TQuery objects tracked in a given view. Most of the\r\n * methods on this interface are simple proxy methods to the corresponding functionality on TQuery.\r\n */\r\ndeclare interface TQueries {\r\n    /**\r\n     * Adds a new TQuery to a collection of queries tracked in a given view.\r\n     * @param tQuery\r\n     */\r\n    track(tQuery: TQuery): void;\r\n    /**\r\n     * Returns a TQuery instance for at the given index  in the queries array.\r\n     * @param index\r\n     */\r\n    getByIndex(index: number): TQuery;\r\n    /**\r\n     * Returns the number of queries tracked in a given view.\r\n     */\r\n    length: number;\r\n    /**\r\n     * A proxy method that iterates over all the TQueries in a given TView and calls the corresponding\r\n     * `elementStart` on each and every TQuery.\r\n     * @param tView\r\n     * @param tNode\r\n     */\r\n    elementStart(tView: TView, tNode: TNode): void;\r\n    /**\r\n     * A proxy method that iterates over all the TQueries in a given TView and calls the corresponding\r\n     * `elementEnd` on each and every TQuery.\r\n     * @param tNode\r\n     */\r\n    elementEnd(tNode: TNode): void;\r\n    /**\r\n     * A proxy method that iterates over all the TQueries in a given TView and calls the corresponding\r\n     * `template` on each and every TQuery.\r\n     * @param tView\r\n     * @param tNode\r\n     */\r\n    template(tView: TView, tNode: TNode): void;\r\n    /**\r\n     * A proxy method that iterates over all the TQueries in a given TView and calls the corresponding\r\n     * `embeddedTView` on each and every TQuery.\r\n     * @param tNode\r\n     */\r\n    embeddedTView(tNode: TNode): TQueries | null;\r\n}\r\n\r\n/**\r\n * TQuery objects represent all the query-related data that remain the same from one view instance\r\n * to another and can be determined on the very first template pass. Most notably TQuery holds all\r\n * the matches for a given view.\r\n */\r\ndeclare interface TQuery {\r\n    /**\r\n     * Query metadata extracted from query annotations.\r\n     */\r\n    metadata: TQueryMetadata;\r\n    /**\r\n     * Index of a query in a declaration view in case of queries propagated to en embedded view, -1\r\n     * for queries declared in a given view. We are storing this index so we can find a parent query\r\n     * to clone for an embedded view (when an embedded view is created).\r\n     */\r\n    indexInDeclarationView: number;\r\n    /**\r\n     * Matches collected on the first template pass. Each match is a pair of:\r\n     * - TNode index;\r\n     * - match index;\r\n     *\r\n     * A TNode index can be either:\r\n     * - a positive number (the most common case) to indicate a matching TNode;\r\n     * - a negative number to indicate that a given query is crossing a <ng-template> element and\r\n     * results from views created based on TemplateRef should be inserted at this place.\r\n     *\r\n     * A match index is a number used to find an actual value (for a given node) when query results\r\n     * are materialized. This index can have one of the following values:\r\n     * - -2 - indicates that we need to read a special token (TemplateRef, ViewContainerRef etc.);\r\n     * - -1 - indicates that we need to read a default value based on the node type (TemplateRef for\r\n     * ng-template and ElementRef for other elements);\r\n     * - a positive number - index of an injectable to be read from the element injector.\r\n     */\r\n    matches: number[] | null;\r\n    /**\r\n     * A flag indicating if a given query crosses an <ng-template> element. This flag exists for\r\n     * performance reasons: we can notice that queries not crossing any <ng-template> elements will\r\n     * have matches from a given view only (and adapt processing accordingly).\r\n     */\r\n    crossesNgTemplate: boolean;\r\n    /**\r\n     * A method call when a given query is crossing an element (or element container). This is where a\r\n     * given TNode is matched against a query predicate.\r\n     * @param tView\r\n     * @param tNode\r\n     */\r\n    elementStart(tView: TView, tNode: TNode): void;\r\n    /**\r\n     * A method called when processing the elementEnd instruction - this is mostly useful to determine\r\n     * if a given content query should match any nodes past this point.\r\n     * @param tNode\r\n     */\r\n    elementEnd(tNode: TNode): void;\r\n    /**\r\n     * A method called when processing the template instruction. This is where a\r\n     * given TContainerNode is matched against a query predicate.\r\n     * @param tView\r\n     * @param tNode\r\n     */\r\n    template(tView: TView, tNode: TNode): void;\r\n    /**\r\n     * A query-related method called when an embedded TView is created based on the content of a\r\n     * <ng-template> element. We call this method to determine if a given query should be propagated\r\n     * to the embedded view and if so - return a cloned TQuery for this embedded view.\r\n     * @param tNode\r\n     * @param childQueryIndex\r\n     */\r\n    embeddedTView(tNode: TNode, childQueryIndex: number): TQuery | null;\r\n}\r\n\r\n/**\r\n * An object representing query metadata extracted from query annotations.\r\n */\r\ndeclare interface TQueryMetadata {\r\n    predicate: ProviderToken<unknown> | string[];\r\n    read: any;\r\n    flags: QueryFlags;\r\n}\r\n\r\n/**\r\n * A function optionally passed into the `NgForOf` directive to customize how `NgForOf` uniquely\r\n * identifies items in an iterable.\r\n *\r\n * `NgForOf` needs to uniquely identify items in the iterable to correctly perform DOM updates\r\n * when items in the iterable are reordered, new items are added, or existing items are removed.\r\n *\r\n *\r\n * In all of these scenarios it is usually desirable to only update the DOM elements associated\r\n * with the items affected by the change. This behavior is important to:\r\n *\r\n * - preserve any DOM-specific UI state (like cursor position, focus, text selection) when the\r\n *   iterable is modified\r\n * - enable animation of item addition, removal, and iterable reordering\r\n * - preserve the value of the `<select>` element when nested `<option>` elements are dynamically\r\n *   populated using `NgForOf` and the bound iterable is updated\r\n *\r\n * A common use for custom `trackBy` functions is when the model that `NgForOf` iterates over\r\n * contains a property with a unique identifier. For example, given a model:\r\n *\r\n * ```ts\r\n * class User {\r\n *   id: number;\r\n *   name: string;\r\n *   ...\r\n * }\r\n * ```\r\n * a custom `trackBy` function could look like the following:\r\n * ```ts\r\n * function userTrackBy(index, user) {\r\n *   return user.id;\r\n * }\r\n * ```\r\n *\r\n * A custom `trackBy` function must have several properties:\r\n *\r\n * - be [idempotent](https://en.wikipedia.org/wiki/Idempotence) (be without side effects, and always\r\n * return the same value for a given input)\r\n * - return unique value for all unique inputs\r\n * - be fast\r\n *\r\n * @see [`NgForOf#ngForTrackBy`](api/common/NgForOf#ngForTrackBy)\r\n * @publicApi\r\n */\r\nexport declare interface TrackByFunction<T> {\r\n    /**\r\n     * @param index The index of the item within the iterable.\r\n     * @param item The item in the iterable.\r\n     */\r\n    <U extends T>(index: number, item: T & U): any;\r\n}\r\n\r\n/**\r\n * Use this token at bootstrap to provide the content of your translation file (`xtb`,\r\n * `xlf` or `xlf2`) when you want to translate your application in another language.\r\n *\r\n * See the [i18n guide](guide/i18n-common-merge) for more information.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```typescript\r\n * import { TRANSLATIONS } from '@angular/core';\r\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n * import { AppModule } from './app/app.module';\r\n *\r\n * // content of your translation file\r\n * const translations = '....';\r\n *\r\n * platformBrowserDynamic().bootstrapModule(AppModule, {\r\n *   providers: [{provide: TRANSLATIONS, useValue: translations }]\r\n * });\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare const TRANSLATIONS: InjectionToken<string>;\r\n\r\n/**\r\n * Provide this token at bootstrap to set the format of your {@link TRANSLATIONS}: `xtb`,\r\n * `xlf` or `xlf2`.\r\n *\r\n * See the [i18n guide](guide/i18n-common-merge) for more information.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```typescript\r\n * import { TRANSLATIONS_FORMAT } from '@angular/core';\r\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n * import { AppModule } from './app/app.module';\r\n *\r\n * platformBrowserDynamic().bootstrapModule(AppModule, {\r\n *   providers: [{provide: TRANSLATIONS_FORMAT, useValue: 'xlf' }]\r\n * });\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare const TRANSLATIONS_FORMAT: InjectionToken<string>;\r\n\r\ndeclare const TRANSPLANTED_VIEWS_TO_REFRESH = 5;\r\n\r\n\r\n/**\r\n * @fileoverview\r\n * While Angular only uses Trusted Types internally for the time being,\r\n * references to Trusted Types could leak into our core.d.ts, which would force\r\n * anyone compiling against @angular/core to provide the @types/trusted-types\r\n * package in their compilation unit.\r\n *\r\n * Until https://github.com/microsoft/TypeScript/issues/30024 is resolved, we\r\n * will keep Angular's public API surface free of references to Trusted Types.\r\n * For internal and semi-private APIs that need to reference Trusted Types, the\r\n * minimal type definitions for the Trusted Types API provided by this module\r\n * should be used instead. They are marked as \"declare\" to prevent them from\r\n * being renamed by compiler optimization.\r\n *\r\n * Adapted from\r\n * https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/trusted-types/index.d.ts\r\n * but restricted to the API surface used within Angular.\r\n */\r\ndeclare interface TrustedHTML {\r\n    __brand__: 'TrustedHTML';\r\n}\r\n\r\ndeclare interface TrustedScript {\r\n    __brand__: 'TrustedScript';\r\n}\r\n\r\ndeclare interface TrustedScriptURL {\r\n    __brand__: 'TrustedScriptURL';\r\n}\r\n\r\n/**\r\n * Value stored in the `TData` which is needed to re-concatenate the styling.\r\n *\r\n * See: `TStylingKeyPrimitive` and `TStylingStatic`\r\n */\r\ndeclare type TStylingKey = TStylingKeyPrimitive | TStylingStatic;\r\n\r\n/**\r\n * The primitive portion (`TStylingStatic` removed) of the value stored in the `TData` which is\r\n * needed to re-concatenate the styling.\r\n *\r\n * - `string`: Stores the property name. Used with `ɵɵstyleProp`/`ɵɵclassProp` instruction.\r\n * - `null`: Represents map, so there is no name. Used with `ɵɵstyleMap`/`ɵɵclassMap`.\r\n * - `false`: Represents an ignore case. This happens when `ɵɵstyleProp`/`ɵɵclassProp` instruction\r\n *   is combined with directive which shadows its input `@Input('class')`. That way the binding\r\n *   should not participate in the styling resolution.\r\n */\r\ndeclare type TStylingKeyPrimitive = string | null | false;\r\n\r\n/**\r\n * This is a branded number which contains previous and next index.\r\n *\r\n * When we come across styling instructions we need to store the `TStylingKey` in the correct\r\n * order so that we can re-concatenate the styling value in the desired priority.\r\n *\r\n * The insertion can happen either at the:\r\n * - end of template as in the case of coming across additional styling instruction in the template\r\n * - in front of the template in the case of coming across additional instruction in the\r\n *   `hostBindings`.\r\n *\r\n * We use `TStylingRange` to store the previous and next index into the `TData` where the template\r\n * bindings can be found.\r\n *\r\n * - bit 0 is used to mark that the previous index has a duplicate for current value.\r\n * - bit 1 is used to mark that the next index has a duplicate for the current value.\r\n * - bits 2-16 are used to encode the next/tail of the template.\r\n * - bits 17-32 are used to encode the previous/head of template.\r\n *\r\n * NODE: *duplicate* false implies that it is statically known that this binding will not collide\r\n * with other bindings and therefore there is no need to check other bindings. For example the\r\n * bindings in `<div [style.color]=\"exp\" [style.width]=\"exp\">` will never collide and will have\r\n * their bits set accordingly. Previous duplicate means that we may need to check previous if the\r\n * current binding is `null`. Next duplicate means that we may need to check next bindings if the\r\n * current binding is not `null`.\r\n *\r\n * NOTE: `0` has special significance and represents `null` as in no additional pointer.\r\n */\r\ndeclare interface TStylingRange {\r\n    __brand__: 'TStylingRange';\r\n}\r\n\r\n/**\r\n * Store the static values for the styling binding.\r\n *\r\n * The `TStylingStatic` is just `KeyValueArray` where key `\"\"` (stored at location 0) contains the\r\n * `TStylingKey` (stored at location 1). In other words this wraps the `TStylingKey` such that the\r\n * `\"\"` contains the wrapped value.\r\n *\r\n * When instructions are resolving styling they may need to look forward or backwards in the linked\r\n * list to resolve the value. For this reason we have to make sure that he linked list also contains\r\n * the static values. However the list only has space for one item per styling instruction. For this\r\n * reason we store the static values here as part of the `TStylingKey`. This means that the\r\n * resolution function when looking for a value needs to first look at the binding value, and than\r\n * at `TStylingKey` (if it exists).\r\n *\r\n * Imagine we have:\r\n *\r\n * ```\r\n * <div class=\"TEMPLATE\" my-dir>\r\n *\r\n * @Directive({\r\n *   host: {\r\n *     class: 'DIR',\r\n *     '[class.dynamic]': 'exp' // ɵɵclassProp('dynamic', ctx.exp);\r\n *   }\r\n * })\r\n * ```\r\n *\r\n * In the above case the linked list will contain one item:\r\n *\r\n * ```\r\n *   // assume binding location: 10 for `ɵɵclassProp('dynamic', ctx.exp);`\r\n *   tData[10] = <TStylingStatic>[\r\n *     '': 'dynamic', // This is the wrapped value of `TStylingKey`\r\n *     'DIR': true,   // This is the default static value of directive binding.\r\n *   ];\r\n *   tData[10 + 1] = 0; // We don't have prev/next.\r\n *\r\n *   lView[10] = undefined;     // assume `ctx.exp` is `undefined`\r\n *   lView[10 + 1] = undefined; // Just normalized `lView[10]`\r\n * ```\r\n *\r\n * So when the function is resolving styling value, it first needs to look into the linked list\r\n * (there is none) and than into the static `TStylingStatic` too see if there is a default value for\r\n * `dynamic` (there is not). Therefore it is safe to remove it.\r\n *\r\n * If setting `true` case:\r\n * ```\r\n *   lView[10] = true;     // assume `ctx.exp` is `true`\r\n *   lView[10 + 1] = true; // Just normalized `lView[10]`\r\n * ```\r\n * So when the function is resolving styling value, it first needs to look into the linked list\r\n * (there is none) and than into `TNode.residualClass` (TNode.residualStyle) which contains\r\n * ```\r\n *   tNode.residualClass = [\r\n *     'TEMPLATE': true,\r\n *   ];\r\n * ```\r\n *\r\n * This means that it is safe to add class.\r\n */\r\ndeclare interface TStylingStatic extends KeyValueArray<any> {\r\n}\r\n\r\n/** Static data for a text node */\r\ndeclare interface TTextNode extends TNode {\r\n    /** Index in the data[] array */\r\n    index: number;\r\n    child: null;\r\n    /**\r\n     * Text nodes will have parents unless they are the first node of a component or\r\n     * embedded view (which means their parent is in a different view and must be\r\n     * retrieved using LView.node).\r\n     */\r\n    parent: ɵangular_packages_core_core_bk | TElementContainerNode | null;\r\n    tViews: null;\r\n    projection: null;\r\n}\r\n\r\ndeclare const TVIEW = 1;\r\n\r\n/**\r\n * The static data for an LView (shared between all templates of a\r\n * given type).\r\n *\r\n * Stored on the `ComponentDef.tView`.\r\n */\r\ndeclare interface TView {\r\n    /**\r\n     * Type of `TView` (`Root`|`Component`|`Embedded`).\r\n     */\r\n    type: TViewType;\r\n    /**\r\n     * This is a blueprint used to generate LView instances for this TView. Copying this\r\n     * blueprint is faster than creating a new LView from scratch.\r\n     */\r\n    blueprint: ɵangular_packages_core_core_ca;\r\n    /**\r\n     * The template function used to refresh the view of dynamically created views\r\n     * and components. Will be null for inline views.\r\n     */\r\n    template: ComponentTemplate<{}> | null;\r\n    /**\r\n     * A function containing query-related instructions.\r\n     */\r\n    viewQuery: ViewQueriesFunction<{}> | null;\r\n    /**\r\n     * A `TNode` representing the declaration location of this `TView` (not part of this TView).\r\n     */\r\n    declTNode: TNode | null;\r\n    /** Whether or not this template has been processed in creation mode. */\r\n    firstCreatePass: boolean;\r\n    /**\r\n     *  Whether or not this template has been processed in update mode (e.g. change detected)\r\n     *\r\n     * `firstUpdatePass` is used by styling to set up `TData` to contain metadata about the styling\r\n     * instructions. (Mainly to build up a linked list of styling priority order.)\r\n     *\r\n     * Typically this function gets cleared after first execution. If exception is thrown then this\r\n     * flag can remain turned un until there is first successful (no exception) pass. This means that\r\n     * individual styling instructions keep track of if they have already been added to the linked\r\n     * list to prevent double adding.\r\n     */\r\n    firstUpdatePass: boolean;\r\n    /** Static data equivalent of LView.data[]. Contains TNodes, PipeDefInternal or TI18n. */\r\n    data: TData;\r\n    /**\r\n     * The binding start index is the index at which the data array\r\n     * starts to store bindings only. Saving this value ensures that we\r\n     * will begin reading bindings at the correct point in the array when\r\n     * we are in update mode.\r\n     *\r\n     * -1 means that it has not been initialized.\r\n     */\r\n    bindingStartIndex: number;\r\n    /**\r\n     * The index where the \"expando\" section of `LView` begins. The expando\r\n     * section contains injectors, directive instances, and host binding values.\r\n     * Unlike the \"decls\" and \"vars\" sections of `LView`, the length of this\r\n     * section cannot be calculated at compile-time because directives are matched\r\n     * at runtime to preserve locality.\r\n     *\r\n     * We store this start index so we know where to start checking host bindings\r\n     * in `setHostBindings`.\r\n     */\r\n    expandoStartIndex: number;\r\n    /**\r\n     * Whether or not there are any static view queries tracked on this view.\r\n     *\r\n     * We store this so we know whether or not we should do a view query\r\n     * refresh after creation mode to collect static query results.\r\n     */\r\n    staticViewQueries: boolean;\r\n    /**\r\n     * Whether or not there are any static content queries tracked on this view.\r\n     *\r\n     * We store this so we know whether or not we should do a content query\r\n     * refresh after creation mode to collect static query results.\r\n     */\r\n    staticContentQueries: boolean;\r\n    /**\r\n     * A reference to the first child node located in the view.\r\n     */\r\n    firstChild: TNode | null;\r\n    /**\r\n     * Stores the OpCodes to be replayed during change-detection to process the `HostBindings`\r\n     *\r\n     * See `HostBindingOpCodes` for encoding details.\r\n     */\r\n    hostBindingOpCodes: HostBindingOpCodes | null;\r\n    /**\r\n     * Full registry of directives and components that may be found in this view.\r\n     *\r\n     * It's necessary to keep a copy of the full def list on the TView so it's possible\r\n     * to render template functions without a host component.\r\n     */\r\n    directiveRegistry: DirectiveDefList | null;\r\n    /**\r\n     * Full registry of pipes that may be found in this view.\r\n     *\r\n     * The property is either an array of `PipeDefs`s or a function which returns the array of\r\n     * `PipeDefs`s. The function is necessary to be able to support forward declarations.\r\n     *\r\n     * It's necessary to keep a copy of the full def list on the TView so it's possible\r\n     * to render template functions without a host component.\r\n     */\r\n    pipeRegistry: PipeDefList | null;\r\n    /**\r\n     * Array of ngOnInit, ngOnChanges and ngDoCheck hooks that should be executed for this view in\r\n     * creation mode.\r\n     *\r\n     * This array has a flat structure and contains TNode indices, directive indices (where an\r\n     * instance can be found in `LView`) and hook functions. TNode index is followed by the directive\r\n     * index and a hook function. If there are multiple hooks for a given TNode, the TNode index is\r\n     * not repeated and the next lifecycle hook information is stored right after the previous hook\r\n     * function. This is done so that at runtime the system can efficiently iterate over all of the\r\n     * functions to invoke without having to make any decisions/lookups.\r\n     */\r\n    preOrderHooks: HookData | null;\r\n    /**\r\n     * Array of ngOnChanges and ngDoCheck hooks that should be executed for this view in update mode.\r\n     *\r\n     * This array has the same structure as the `preOrderHooks` one.\r\n     */\r\n    preOrderCheckHooks: HookData | null;\r\n    /**\r\n     * Array of ngAfterContentInit and ngAfterContentChecked hooks that should be executed\r\n     * for this view in creation mode.\r\n     *\r\n     * Even indices: Directive index\r\n     * Odd indices: Hook function\r\n     */\r\n    contentHooks: HookData | null;\r\n    /**\r\n     * Array of ngAfterContentChecked hooks that should be executed for this view in update\r\n     * mode.\r\n     *\r\n     * Even indices: Directive index\r\n     * Odd indices: Hook function\r\n     */\r\n    contentCheckHooks: HookData | null;\r\n    /**\r\n     * Array of ngAfterViewInit and ngAfterViewChecked hooks that should be executed for\r\n     * this view in creation mode.\r\n     *\r\n     * Even indices: Directive index\r\n     * Odd indices: Hook function\r\n     */\r\n    viewHooks: HookData | null;\r\n    /**\r\n     * Array of ngAfterViewChecked hooks that should be executed for this view in\r\n     * update mode.\r\n     *\r\n     * Even indices: Directive index\r\n     * Odd indices: Hook function\r\n     */\r\n    viewCheckHooks: HookData | null;\r\n    /**\r\n     * Array of ngOnDestroy hooks that should be executed when this view is destroyed.\r\n     *\r\n     * Even indices: Directive index\r\n     * Odd indices: Hook function\r\n     */\r\n    destroyHooks: DestroyHookData | null;\r\n    /**\r\n     * When a view is destroyed, listeners need to be released and outputs need to be\r\n     * unsubscribed. This cleanup array stores both listener data (in chunks of 4)\r\n     * and output data (in chunks of 2) for a particular view. Combining the arrays\r\n     * saves on memory (70 bytes per array) and on a few bytes of code size (for two\r\n     * separate for loops).\r\n     *\r\n     * If it's a native DOM listener or output subscription being stored:\r\n     * 1st index is: event name  `name = tView.cleanup[i+0]`\r\n     * 2nd index is: index of native element or a function that retrieves global target (window,\r\n     *               document or body) reference based on the native element:\r\n     *    `typeof idxOrTargetGetter === 'function'`: global target getter function\r\n     *    `typeof idxOrTargetGetter === 'number'`: index of native element\r\n     *\r\n     * 3rd index is: index of listener function `listener = lView[CLEANUP][tView.cleanup[i+2]]`\r\n     * 4th index is: `useCaptureOrIndx = tView.cleanup[i+3]`\r\n     *    `typeof useCaptureOrIndx == 'boolean' : useCapture boolean\r\n     *    `typeof useCaptureOrIndx == 'number':\r\n     *         `useCaptureOrIndx >= 0` `removeListener = LView[CLEANUP][useCaptureOrIndx]`\r\n     *         `useCaptureOrIndx <  0` `subscription = LView[CLEANUP][-useCaptureOrIndx]`\r\n     *\r\n     * If it's an output subscription or query list destroy hook:\r\n     * 1st index is: output unsubscribe function / query list destroy function\r\n     * 2nd index is: index of function context in LView.cleanupInstances[]\r\n     *               `tView.cleanup[i+0].call(lView[CLEANUP][tView.cleanup[i+1]])`\r\n     */\r\n    cleanup: any[] | null;\r\n    /**\r\n     * A list of element indices for child components that will need to be\r\n     * refreshed when the current view has finished its check. These indices have\r\n     * already been adjusted for the HEADER_OFFSET.\r\n     *\r\n     */\r\n    components: number[] | null;\r\n    /**\r\n     * A collection of queries tracked in a given view.\r\n     */\r\n    queries: TQueries | null;\r\n    /**\r\n     * An array of indices pointing to directives with content queries alongside with the\r\n     * corresponding query index. Each entry in this array is a tuple of:\r\n     * - index of the first content query index declared by a given directive;\r\n     * - index of a directive.\r\n     *\r\n     * We are storing those indexes so we can refresh content queries as part of a view refresh\r\n     * process.\r\n     */\r\n    contentQueries: number[] | null;\r\n    /**\r\n     * Set of schemas that declare elements to be allowed inside the view.\r\n     */\r\n    schemas: SchemaMetadata[] | null;\r\n    /**\r\n     * Array of constants for the view. Includes attribute arrays, local definition arrays etc.\r\n     * Used for directive matching, attribute bindings, local definitions and more.\r\n     */\r\n    consts: TConstants | null;\r\n    /**\r\n     * Indicates that there was an error before we managed to complete the first create pass of the\r\n     * view. This means that the view is likely corrupted and we should try to recover it.\r\n     */\r\n    incompleteFirstPass: boolean;\r\n}\r\n\r\n/**\r\n * Explicitly marks `TView` as a specific type in `ngDevMode`\r\n *\r\n * It is useful to know conceptually what time of `TView` we are dealing with when\r\n * debugging an application (even if the runtime does not need it.) For this reason\r\n * we store this information in the `ngDevMode` `TView` and than use it for\r\n * better debugging experience.\r\n */\r\ndeclare const enum TViewType {\r\n    /**\r\n     * Root `TView` is the used to bootstrap components into. It is used in conjunction with\r\n     * `LView` which takes an existing DOM node not owned by Angular and wraps it in `TView`/`LView`\r\n     * so that other components can be loaded into it.\r\n     */\r\n    Root = 0,\r\n    /**\r\n     * `TView` associated with a Component. This would be the `TView` directly associated with the\r\n     * component view (as opposed an `Embedded` `TView` which would be a child of `Component` `TView`)\r\n     */\r\n    Component = 1,\r\n    /**\r\n     * `TView` associated with a template. Such as `*ngIf`, `<ng-template>` etc... A `Component`\r\n     * can have zero or more `Embedede` `TView`s.\r\n     */\r\n    Embedded = 2\r\n}\r\n\r\n/**\r\n * Special location which allows easy identification of type. If we have an array which was\r\n * retrieved from the `LView` and that array has `true` at `TYPE` location, we know it is\r\n * `LContainer`.\r\n */\r\ndeclare const TYPE = 1;\r\n\r\n/**\r\n * @description\r\n *\r\n * Represents a type that a Component or other object is instances of.\r\n *\r\n * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is represented by\r\n * the `MyCustomComponent` constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const Type: FunctionConstructor;\r\n\r\nexport declare interface Type<T> extends Function {\r\n    new (...args: any[]): T;\r\n}\r\n\r\ndeclare type Type_2 = Function;\r\n\r\n/**\r\n * An interface implemented by all Angular type decorators, which allows them to be used as\r\n * decorators as well as Angular syntax.\r\n *\r\n * ```\r\n * @ng.Component({...})\r\n * class MyClass {...}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface TypeDecorator {\r\n    /**\r\n     * Invoke as decorator.\r\n     */\r\n    <T extends Type<any>>(type: T): T;\r\n    (target: Object, propertyKey?: string | symbol, parameterIndex?: number): void;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return an instance of `Type` when `Type' is used as the token.\r\n *\r\n * Create an instance by invoking the `new` operator and supplying additional arguments.\r\n * This form is a short form of `TypeProvider`;\r\n *\r\n * For more details, see the [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='TypeProvider'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface TypeProvider extends Type<any> {\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return a value for a token.\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * ### Example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='ValueProvider'}\r\n *\r\n * ### Multi-value example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ValueProvider extends ValueSansProvider {\r\n    /**\r\n     * An injection token. Typically an instance of `Type` or `InjectionToken`, but can be `any`.\r\n     */\r\n    provide: any;\r\n    /**\r\n     * When true, injector returns an array of instances. This is useful to allow multiple\r\n     * providers spread across many files to provide configuration information to a common token.\r\n     */\r\n    multi?: boolean;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return a value for a token.\r\n * Base for `ValueProvider` decorator.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ValueSansProvider {\r\n    /**\r\n     * The value to inject.\r\n     */\r\n    useValue: any;\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 * @description Represents the version of Angular\r\n *\r\n * @publicApi\r\n */\r\nexport declare class Version {\r\n    full: string;\r\n    readonly major: string;\r\n    readonly minor: string;\r\n    readonly patch: string;\r\n    constructor(full: string);\r\n}\r\n\r\ndeclare const VIEW_REFS = 8;\r\n\r\n/**\r\n * Type of the ViewChild metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type ViewChild = Query;\r\n\r\n/**\r\n * ViewChild decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const ViewChild: ViewChildDecorator;\r\n\r\n/**\r\n * Type of the ViewChild decorator / constructor function.\r\n *\r\n * @see `ViewChild`.\r\n * @publicApi\r\n */\r\nexport declare interface ViewChildDecorator {\r\n    /**\r\n     * @description\r\n     * Property decorator that configures a view query.\r\n     * The change detector looks for the first element or the directive matching the selector\r\n     * in the view DOM. If the view DOM changes, and a new child matches the selector,\r\n     * the property is updated.\r\n     *\r\n     * View queries are set before the `ngAfterViewInit` callback is called.\r\n     *\r\n     * **Metadata Properties**:\r\n     *\r\n     * * **selector** - The directive type or the name used for querying.\r\n     * * **read** - Used to read a different token from the queried elements.\r\n     * * **static** - True to resolve query results before change detection runs,\r\n     * false to resolve after change detection. Defaults to false.\r\n     *\r\n     *\r\n     * The following selectors are supported.\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * A template reference variable as a string (e.g. query `<my-component #cmp></my-component>`\r\n     * with `@ViewChild('cmp')`)\r\n     *   * Any provider defined in the child component tree of the current component (e.g.\r\n     * `@ViewChild(SomeService) someService: SomeService`)\r\n     *   * Any provider defined through a string token (e.g. `@ViewChild('someToken') someTokenVal:\r\n     * any`)\r\n     *   * A `TemplateRef` (e.g. query `<ng-template></ng-template>` with `@ViewChild(TemplateRef)\r\n     * template;`)\r\n     *\r\n     * The following values are supported by `read`:\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * Any provider defined on the injector of the component that is matched by the `selector` of\r\n     * this query\r\n     *   * Any provider defined through a string token (e.g. `{provide: 'token', useValue: 'val'}`)\r\n     *   * `TemplateRef`, `ElementRef`, and `ViewContainerRef`\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * {@example core/di/ts/viewChild/view_child_example.ts region='Component'}\r\n     *\r\n     * ### Example 2\r\n     *\r\n     * {@example core/di/ts/viewChild/view_child_howto.ts region='HowTo'}\r\n     *\r\n     * @Annotation\r\n     */\r\n    (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        read?: any;\r\n        static?: boolean;\r\n    }): any;\r\n    new (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        read?: any;\r\n        static?: boolean;\r\n    }): ViewChild;\r\n}\r\n\r\n/**\r\n * Type of the ViewChildren metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type ViewChildren = Query;\r\n\r\n/**\r\n * ViewChildren decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const ViewChildren: ViewChildrenDecorator;\r\n\r\n/**\r\n * Type of the ViewChildren decorator / constructor function.\r\n *\r\n * @see `ViewChildren`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ViewChildrenDecorator {\r\n    /**\r\n     * @description\r\n     * Property decorator that configures a view query.\r\n     *\r\n     * Use to get the `QueryList` of elements or directives from the view DOM.\r\n     * Any time a child element is added, removed, or moved, the query list will be updated,\r\n     * and the changes observable of the query list will emit a new value.\r\n     *\r\n     * View queries are set before the `ngAfterViewInit` callback is called.\r\n     *\r\n     * **Metadata Properties**:\r\n     *\r\n     * * **selector** - The directive type or the name used for querying.\r\n     * * **read** - Used to read a different token from the queried elements.\r\n     * * **emitDistinctChangesOnly** - The ` QueryList#changes` observable will emit new values only\r\n     *   if the QueryList result has changed. When `false` the `changes` observable might emit even\r\n     *   if the QueryList has not changed.\r\n     *   ** Note: *** This config option is **deprecated**, it will be permanently set to `true` and\r\n     * removed in future versions of Angular.\r\n     *\r\n     * The following selectors are supported.\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * A template reference variable as a string (e.g. query `<my-component #cmp></my-component>`\r\n     * with `@ViewChildren('cmp')`)\r\n     *   * Any provider defined in the child component tree of the current component (e.g.\r\n     * `@ViewChildren(SomeService) someService!: SomeService`)\r\n     *   * Any provider defined through a string token (e.g. `@ViewChildren('someToken')\r\n     * someTokenVal!: any`)\r\n     *   * A `TemplateRef` (e.g. query `<ng-template></ng-template>` with `@ViewChildren(TemplateRef)\r\n     * template;`)\r\n     *\r\n     * In addition, multiple string selectors can be separated with a comma (e.g.\r\n     * `@ViewChildren('cmp1,cmp2')`)\r\n     *\r\n     * The following values are supported by `read`:\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * Any provider defined on the injector of the component that is matched by the `selector` of\r\n     * this query\r\n     *   * Any provider defined through a string token (e.g. `{provide: 'token', useValue: 'val'}`)\r\n     *   * `TemplateRef`, `ElementRef`, and `ViewContainerRef`\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * {@example core/di/ts/viewChildren/view_children_howto.ts region='HowTo'}\r\n     *\r\n     * ### Another example\r\n     *\r\n     * {@example core/di/ts/viewChildren/view_children_example.ts region='Component'}\r\n     *\r\n     * @Annotation\r\n     */\r\n    (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        read?: any;\r\n        emitDistinctChangesOnly?: boolean;\r\n    }): any;\r\n    new (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        read?: any;\r\n        emitDistinctChangesOnly?: boolean;\r\n    }): ViewChildren;\r\n}\r\n\r\n/**\r\n * Represents a container where one or more views can be attached to a component.\r\n *\r\n * Can contain *host views* (created by instantiating a\r\n * component with the `createComponent()` method), and *embedded views*\r\n * (created by instantiating a `TemplateRef` with the `createEmbeddedView()` method).\r\n *\r\n * A view container instance can contain other view containers,\r\n * creating a [view hierarchy](guide/glossary#view-tree).\r\n *\r\n * @see `ComponentRef`\r\n * @see `EmbeddedViewRef`\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class ViewContainerRef {\r\n    /**\r\n     * Anchor element that specifies the location of this container in the containing view.\r\n     * Each view container can have only one anchor element, and each anchor element\r\n     * can have only a single view container.\r\n     *\r\n     * Root elements of views attached to this container become siblings of the anchor element in\r\n     * the rendered view.\r\n     *\r\n     * Access the `ViewContainerRef` of an element by placing a `Directive` injected\r\n     * with `ViewContainerRef` on the element, or use a `ViewChild` query.\r\n     *\r\n     * <!-- TODO: rename to anchorElement -->\r\n     */\r\n    abstract get element(): ElementRef;\r\n    /**\r\n     * The [dependency injector](guide/glossary#injector) for this view container.\r\n     */\r\n    abstract get injector(): Injector;\r\n    /** @deprecated No replacement */\r\n    abstract get parentInjector(): Injector;\r\n    /**\r\n     * Destroys all views in this container.\r\n     */\r\n    abstract clear(): void;\r\n    /**\r\n     * Retrieves a view from this container.\r\n     * @param index The 0-based index of the view to retrieve.\r\n     * @returns The `ViewRef` instance, or null if the index is out of range.\r\n     */\r\n    abstract get(index: number): ViewRef | null;\r\n    /**\r\n     * Reports how many views are currently attached to this container.\r\n     * @returns The number of views.\r\n     */\r\n    abstract get length(): number;\r\n    /**\r\n     * Instantiates an embedded view and inserts it\r\n     * into this container.\r\n     * @param templateRef The HTML template that defines the view.\r\n     * @param context The data-binding context of the embedded view, as declared\r\n     * in the `<ng-template>` usage.\r\n     * @param index The 0-based index at which to insert the new view into this container.\r\n     * If not specified, appends the new view as the last entry.\r\n     *\r\n     * @returns The `ViewRef` instance for the newly created view.\r\n     */\r\n    abstract createEmbeddedView<C>(templateRef: TemplateRef<C>, context?: C, index?: number): EmbeddedViewRef<C>;\r\n    /**\r\n     * Instantiates a single component and inserts its host view into this container.\r\n     *\r\n     * @param componentFactory The factory to use.\r\n     * @param index The index at which to insert the new component's host view into this container.\r\n     * If not specified, appends the new view as the last entry.\r\n     * @param injector The injector to use as the parent for the new component.\r\n     * @param projectableNodes\r\n     * @param ngModule\r\n     *\r\n     * @returns The new component instance, containing the host view.\r\n     *\r\n     */\r\n    abstract createComponent<C>(componentFactory: ComponentFactory<C>, index?: number, injector?: Injector, projectableNodes?: any[][], ngModule?: NgModuleRef<any>): ComponentRef<C>;\r\n    /**\r\n     * Inserts a view into this container.\r\n     * @param viewRef The view to insert.\r\n     * @param index The 0-based index at which to insert the view.\r\n     * If not specified, appends the new view as the last entry.\r\n     * @returns The inserted `ViewRef` instance.\r\n     *\r\n     */\r\n    abstract insert(viewRef: ViewRef, index?: number): ViewRef;\r\n    /**\r\n     * Moves a view to a new location in this container.\r\n     * @param viewRef The view to move.\r\n     * @param index The 0-based index of the new location.\r\n     * @returns The moved `ViewRef` instance.\r\n     */\r\n    abstract move(viewRef: ViewRef, currentIndex: number): ViewRef;\r\n    /**\r\n     * Returns the index of a view within the current container.\r\n     * @param viewRef The view to query.\r\n     * @returns The 0-based index of the view's position in this container,\r\n     * or `-1` if this container doesn't contain the view.\r\n     */\r\n    abstract indexOf(viewRef: ViewRef): number;\r\n    /**\r\n     * Destroys a view attached to this container\r\n     * @param index The 0-based index of the view to destroy.\r\n     * If not specified, the last view in the container is removed.\r\n     */\r\n    abstract remove(index?: number): void;\r\n    /**\r\n     * Detaches a view from this container without destroying it.\r\n     * Use along with `insert()` to move a view within the current container.\r\n     * @param index The 0-based index of the view to detach.\r\n     * If not specified, the last view in the container is detached.\r\n     */\r\n    abstract detach(index?: number): ViewRef | null;\r\n}\r\n\r\n/**\r\n * View instance data.\r\n * Attention: Adding fields to this is performance sensitive!\r\n */\r\ndeclare interface ViewData {\r\n    def: ɵViewDefinition;\r\n    root: RootData;\r\n    renderer: Renderer2;\r\n    parentNodeDef: NodeDef | null;\r\n    parent: ViewData | null;\r\n    viewContainerParent: ViewData | null;\r\n    component: any;\r\n    context: any;\r\n    nodes: {\r\n        [key: number]: NodeData;\r\n    };\r\n    state: ViewState;\r\n    oldValues: any[];\r\n    disposables: DisposableFn[] | null;\r\n    initIndex: number;\r\n}\r\n\r\ndeclare interface ViewDefinitionFactory extends DefinitionFactory<ɵViewDefinition> {\r\n}\r\n\r\n\r\n/**\r\n * Defines template and style encapsulation options available for Component's {@link Component}.\r\n *\r\n * See {@link Component#encapsulation encapsulation}.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * {@example core/ts/metadata/encapsulation.ts region='longform'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum ViewEncapsulation {\r\n    /**\r\n     * Emulate `Native` scoping of styles by adding an attribute containing surrogate id to the Host\r\n     * Element and pre-processing the style rules provided via {@link Component#styles styles} or\r\n     * {@link Component#styleUrls styleUrls}, and adding the new Host Element attribute to all\r\n     * selectors.\r\n     *\r\n     * This is the default option.\r\n     */\r\n    Emulated = 0,\r\n    /**\r\n     * Don't provide any template or style encapsulation.\r\n     */\r\n    None = 2,\r\n    /**\r\n     * Use Shadow DOM to encapsulate styles.\r\n     *\r\n     * For the DOM this means using modern [Shadow\r\n     * DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM) and\r\n     * creating a ShadowRoot for Component's Host Element.\r\n     */\r\n    ShadowDom = 3\r\n}\r\n\r\ndeclare enum ViewEncapsulation_2 {\r\n    Emulated = 0,\r\n    None = 2,\r\n    ShadowDom = 3\r\n}\r\n\r\ndeclare interface viewEngine_ChangeDetectorRef_interface extends ChangeDetectorRef {\r\n}\r\n\r\ndeclare interface ViewHandleEventFn {\r\n    (view: ViewData, nodeIndex: number, eventName: string, event: any): boolean;\r\n}\r\n\r\n/**\r\n * Definition of what a view queries function should look like.\r\n */\r\ndeclare type ViewQueriesFunction<T> = <U extends T>(rf: ɵRenderFlags, ctx: U) => void;\r\n\r\n/**\r\n * Represents an Angular [view](guide/glossary#view \"Definition\").\r\n *\r\n * @see {@link ChangeDetectorRef#usage-notes Change detection usage}\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class ViewRef extends ChangeDetectorRef {\r\n    /**\r\n     * Destroys this view and all of the data structures associated with it.\r\n     */\r\n    abstract destroy(): void;\r\n    /**\r\n     * Reports whether this view has been destroyed.\r\n     * @returns True after the `destroy()` method has been called, false otherwise.\r\n     */\r\n    abstract get destroyed(): boolean;\r\n    /**\r\n     * A lifecycle hook that provides additional developer-defined cleanup\r\n     * functionality for views.\r\n     * @param callback A handler function that cleans up developer-defined data\r\n     * associated with a view. Called when the `destroy()` method is invoked.\r\n     */\r\n    abstract onDestroy(callback: Function): any /** TODO #9100 */;\r\n}\r\n\r\ndeclare class ViewRef_2<T> implements EmbeddedViewRef<T>, InternalViewRef, viewEngine_ChangeDetectorRef_interface {\r\n    /**\r\n     * This represents the `LView` associated with the point where `ChangeDetectorRef` was\r\n     * requested.\r\n     *\r\n     * This may be different from `_lView` if the `_cdRefInjectingView` is an embedded view.\r\n     */\r\n    private _cdRefInjectingView?;\r\n    private _appRef;\r\n    private _attachedToViewContainer;\r\n    get rootNodes(): any[];\r\n    constructor(\r\n    /**\r\n     * This represents `LView` associated with the component when ViewRef is a ChangeDetectorRef.\r\n     *\r\n     * When ViewRef is created for a dynamic component, this also represents the `LView` for the\r\n     * component.\r\n     *\r\n     * For a \"regular\" ViewRef created for an embedded view, this is the `LView` for the embedded\r\n     * view.\r\n     *\r\n     * @internal\r\n     */\r\n    _lView: ɵangular_packages_core_core_ca, \r\n    /**\r\n     * This represents the `LView` associated with the point where `ChangeDetectorRef` was\r\n     * requested.\r\n     *\r\n     * This may be different from `_lView` if the `_cdRefInjectingView` is an embedded view.\r\n     */\r\n    _cdRefInjectingView?: ɵangular_packages_core_core_ca | undefined);\r\n    get context(): T;\r\n    set context(value: T);\r\n    get destroyed(): boolean;\r\n    destroy(): void;\r\n    onDestroy(callback: Function): void;\r\n    /**\r\n     * Marks a view and all of its ancestors dirty.\r\n     *\r\n     * This can be used to ensure an {@link ChangeDetectionStrategy#OnPush OnPush} component is\r\n     * checked when it needs to be re-rendered but the two normal triggers haven't marked it\r\n     * dirty (i.e. inputs haven't changed and events haven't fired in the view).\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on OnPush components -->\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * @Component({\r\n     *   selector: 'app-root',\r\n     *   template: `Number of ticks: {{numberOfTicks}}`\r\n     *   changeDetection: ChangeDetectionStrategy.OnPush,\r\n     * })\r\n     * class AppComponent {\r\n     *   numberOfTicks = 0;\r\n     *\r\n     *   constructor(private ref: ChangeDetectorRef) {\r\n     *     setInterval(() => {\r\n     *       this.numberOfTicks++;\r\n     *       // the following is required, otherwise the view will not be updated\r\n     *       this.ref.markForCheck();\r\n     *     }, 1000);\r\n     *   }\r\n     * }\r\n     * ```\r\n     */\r\n    markForCheck(): void;\r\n    /**\r\n     * Detaches the view from the change detection tree.\r\n     *\r\n     * Detached views will not be checked during change detection runs until they are\r\n     * re-attached, even if they are dirty. `detach` can be used in combination with\r\n     * {@link ChangeDetectorRef#detectChanges detectChanges} to implement local change\r\n     * detection checks.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\r\n     * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * The following example defines a component with a large list of readonly data.\r\n     * Imagine the data changes constantly, many times per second. For performance reasons,\r\n     * we want to check and update the list every five seconds. We can do that by detaching\r\n     * the component's change detector and doing a local check every five seconds.\r\n     *\r\n     * ```typescript\r\n     * class DataProvider {\r\n     *   // in a real application the returned data will be different every time\r\n     *   get data() {\r\n     *     return [1,2,3,4,5];\r\n     *   }\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'giant-list',\r\n     *   template: `\r\n     *     <li *ngFor=\"let d of dataProvider.data\">Data {{d}}</li>\r\n     *   `,\r\n     * })\r\n     * class GiantList {\r\n     *   constructor(private ref: ChangeDetectorRef, private dataProvider: DataProvider) {\r\n     *     ref.detach();\r\n     *     setInterval(() => {\r\n     *       this.ref.detectChanges();\r\n     *     }, 5000);\r\n     *   }\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'app',\r\n     *   providers: [DataProvider],\r\n     *   template: `\r\n     *     <giant-list><giant-list>\r\n     *   `,\r\n     * })\r\n     * class App {\r\n     * }\r\n     * ```\r\n     */\r\n    detach(): void;\r\n    /**\r\n     * Re-attaches a view to the change detection tree.\r\n     *\r\n     * This can be used to re-attach views that were previously detached from the tree\r\n     * using {@link ChangeDetectorRef#detach detach}. Views are attached to the tree by default.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * The following example creates a component displaying `live` data. The component will detach\r\n     * its change detector from the main change detector tree when the component's live property\r\n     * is set to false.\r\n     *\r\n     * ```typescript\r\n     * class DataProvider {\r\n     *   data = 1;\r\n     *\r\n     *   constructor() {\r\n     *     setInterval(() => {\r\n     *       this.data = this.data * 2;\r\n     *     }, 500);\r\n     *   }\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'live-data',\r\n     *   inputs: ['live'],\r\n     *   template: 'Data: {{dataProvider.data}}'\r\n     * })\r\n     * class LiveData {\r\n     *   constructor(private ref: ChangeDetectorRef, private dataProvider: DataProvider) {}\r\n     *\r\n     *   set live(value) {\r\n     *     if (value) {\r\n     *       this.ref.reattach();\r\n     *     } else {\r\n     *       this.ref.detach();\r\n     *     }\r\n     *   }\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'app-root',\r\n     *   providers: [DataProvider],\r\n     *   template: `\r\n     *     Live Update: <input type=\"checkbox\" [(ngModel)]=\"live\">\r\n     *     <live-data [live]=\"live\"><live-data>\r\n     *   `,\r\n     * })\r\n     * class AppComponent {\r\n     *   live = true;\r\n     * }\r\n     * ```\r\n     */\r\n    reattach(): void;\r\n    /**\r\n     * Checks the view and its children.\r\n     *\r\n     * This can also be used in combination with {@link ChangeDetectorRef#detach detach} to implement\r\n     * local change detection checks.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\r\n     * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * The following example defines a component with a large list of readonly data.\r\n     * Imagine, the data changes constantly, many times per second. For performance reasons,\r\n     * we want to check and update the list every five seconds.\r\n     *\r\n     * We can do that by detaching the component's change detector and doing a local change detection\r\n     * check every five seconds.\r\n     *\r\n     * See {@link ChangeDetectorRef#detach detach} for more information.\r\n     */\r\n    detectChanges(): void;\r\n    /**\r\n     * Checks the change detector and its children, and throws if any changes are detected.\r\n     *\r\n     * This is used in development mode to verify that running change detection doesn't\r\n     * introduce other changes.\r\n     */\r\n    checkNoChanges(): void;\r\n    attachToViewContainerRef(): void;\r\n    detachFromAppRef(): void;\r\n    attachToAppRef(appRef: ViewRefTracker): void;\r\n}\r\n\r\n/**\r\n * Interface for tracking root `ViewRef`s in `ApplicationRef`.\r\n *\r\n * NOTE: Importing `ApplicationRef` here directly creates circular dependency, which is why we have\r\n * a subset of the `ApplicationRef` interface `ViewRefTracker` here.\r\n */\r\ndeclare interface ViewRefTracker {\r\n    detachView(viewRef: ViewRef): void;\r\n}\r\n\r\n/**\r\n * Bitmask of states\r\n */\r\ndeclare const enum ViewState {\r\n    BeforeFirstCheck = 1,\r\n    FirstCheck = 2,\r\n    Attached = 4,\r\n    ChecksEnabled = 8,\r\n    IsProjectedView = 16,\r\n    CheckProjectedView = 32,\r\n    CheckProjectedViews = 64,\r\n    Destroyed = 128,\r\n    InitState_Mask = 1792,\r\n    InitState_BeforeInit = 0,\r\n    InitState_CallingOnInit = 256,\r\n    InitState_CallingAfterContentInit = 512,\r\n    InitState_CallingAfterViewInit = 768,\r\n    InitState_AfterInit = 1024,\r\n    CatDetectChanges = 12,\r\n    CatInit = 13\r\n}\r\n\r\ndeclare interface ViewUpdateFn {\r\n    (check: NodeCheckFn, view: ViewData): void;\r\n}\r\n\r\n/**\r\n * Indicates that the result of a {@link Pipe} transformation has changed even though the\r\n * reference has not changed.\r\n *\r\n * Wrapped values are unwrapped automatically during the change detection, and the unwrapped value\r\n * is stored.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * if (this._latestValue === this._latestReturnedValue) {\r\n *    return this._latestReturnedValue;\r\n *  } else {\r\n *    this._latestReturnedValue = this._latestValue;\r\n *    return WrappedValue.wrap(this._latestValue); // this will force update\r\n *  }\r\n * ```\r\n *\r\n * @publicApi\r\n * @deprecated from v10 stop using. (No replacement, deemed unnecessary.)\r\n */\r\nexport declare class WrappedValue {\r\n    /** @deprecated from 5.3, use `unwrap()` instead - will switch to protected */\r\n    wrapped: any;\r\n    constructor(value: any);\r\n    /** Creates a wrapped value. */\r\n    static wrap(value: any): WrappedValue;\r\n    /**\r\n     * Returns the underlying value of a wrapped value.\r\n     * Returns the given `value` when it is not wrapped.\r\n     **/\r\n    static unwrap(value: any): any;\r\n    /** Returns true if `value` is a wrapped value. */\r\n    static isWrapped(value: any): value is WrappedValue;\r\n}\r\n\r\n/**\r\n * Sanitizes the given unsafe, untrusted HTML fragment, and returns HTML text that is safe to add to\r\n * the DOM in a browser environment.\r\n */\r\nexport declare function ɵ_sanitizeHtml(defaultDoc: any, unsafeHtmlInput: string): TrustedHTML | string;\r\n\r\n\r\nexport declare function ɵ_sanitizeUrl(url: string): string;\r\n\r\nexport declare const ɵALLOW_MULTIPLE_PLATFORMS: InjectionToken<boolean>;\r\n\r\nexport declare function ɵallowSanitizationBypassAndThrow(value: any, type: ɵBypassType.Html): value is ɵSafeHtml;\r\n\r\nexport declare function ɵallowSanitizationBypassAndThrow(value: any, type: ɵBypassType.ResourceUrl): value is ɵSafeResourceUrl;\r\n\r\nexport declare function ɵallowSanitizationBypassAndThrow(value: any, type: ɵBypassType.Script): value is ɵSafeScript;\r\n\r\nexport declare function ɵallowSanitizationBypassAndThrow(value: any, type: ɵBypassType.Style): value is ɵSafeStyle;\r\n\r\nexport declare function ɵallowSanitizationBypassAndThrow(value: any, type: ɵBypassType.Url): value is ɵSafeUrl;\r\n\r\nexport declare function ɵallowSanitizationBypassAndThrow(value: any, type: ɵBypassType): boolean;\r\n\r\nexport declare function ɵand(flags: ɵNodeFlags, matchedQueriesDsl: null | [string | number, ɵQueryValueType][], ngContentIndex: null | number, childCount: number, handleEvent?: null | ElementHandleEventFn, templateFactory?: ViewDefinitionFactory): NodeDef;\r\n\r\n/** Checks whether a function is wrapped by a `forwardRef`. */\r\nexport declare function ɵangular_packages_core_core_a(fn: any): fn is () => any;\r\n\r\nexport declare function ɵangular_packages_core_core_b<T>(token: ProviderToken<T>): T;\r\n\r\nexport declare function ɵangular_packages_core_core_b<T>(token: ProviderToken<T>, flags?: InjectFlags): T | null;\r\n\r\n/**\r\n * Schedule work at next available slot.\r\n *\r\n * In Ivy this is just `requestAnimationFrame`. For compatibility reasons when bootstrapped\r\n * using `platformRef.bootstrap` we need to use `NgZone.onStable` as the scheduling mechanism.\r\n * This overrides the scheduling mechanism in Ivy to `NgZone.onStable`.\r\n *\r\n * @param ngZone NgZone to use for scheduling.\r\n */\r\nexport declare function ɵangular_packages_core_core_ba(ngZone: NgZone): (fn: () => void) => void;\r\n\r\n/**\r\n * USD currency code that the application uses by default for CurrencyPipe when no\r\n * DEFAULT_CURRENCY_CODE is provided.\r\n */\r\nexport declare const ɵangular_packages_core_core_bb = \"USD\";\r\n\r\nexport declare function ɵangular_packages_core_core_bc(checkIndex: number, flags: ɵNodeFlags, matchedQueriesDsl: [string | number, ɵQueryValueType][] | null, childCount: number, token: any, value: any, deps: ([ɵDepFlags, any] | any)[], bindings?: BindingDef[], outputs?: OutputDef[]): NodeDef;\r\n\r\nexport declare abstract class ɵangular_packages_core_core_bd {\r\n    abstract get view(): ViewData;\r\n    abstract get nodeIndex(): number | null;\r\n    abstract get injector(): Injector;\r\n    abstract get component(): any;\r\n    abstract get providerTokens(): any[];\r\n    abstract get references(): {\r\n        [key: string]: any;\r\n    };\r\n    abstract get context(): any;\r\n    abstract get componentRenderElement(): any;\r\n    abstract get renderNode(): any;\r\n    abstract logError(console: Console, ...values: any[]): void;\r\n}\r\n\r\nexport declare function ɵangular_packages_core_core_be<T>(definition: ɵDirectiveDef<T>): typeof rememberChangeHistoryAndInvokeOnChangesHook;\r\n\r\n/**\r\n * A change detection scheduler token for {@link RootContext}. This token is the default value used\r\n * for the default `RootContext` found in the {@link ROOT_CONTEXT} token.\r\n */\r\nexport declare const ɵangular_packages_core_core_bf: InjectionToken<(fn: () => void) => void>;\r\n\r\n/**\r\n * Inject static attribute value into directive constructor.\r\n *\r\n * This method is used with `factory` functions which are generated as part of\r\n * `defineDirective` or `defineComponent`. The method retrieves the static value\r\n * of an attribute. (Dynamic attributes are not supported since they are not resolved\r\n *  at the time of injection and can change over time.)\r\n *\r\n * # Example\r\n * Given:\r\n * ```\r\n * @Component(...)\r\n * class MyComponent {\r\n *   constructor(@Attribute('title') title: string) { ... }\r\n * }\r\n * ```\r\n * When instantiated with\r\n * ```\r\n * <my-component title=\"Hello\"></my-component>\r\n * ```\r\n *\r\n * Then factory method generated is:\r\n * ```\r\n * MyComponent.ɵcmp = defineComponent({\r\n *   factory: () => new MyComponent(injectAttribute('title'))\r\n *   ...\r\n * })\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare function ɵangular_packages_core_core_bg(tNode: TNode, attrNameToInject: string): string | null;\r\n\r\n/**\r\n * Return the current `LView`.\r\n */\r\nexport declare function ɵangular_packages_core_core_bh(): ɵangular_packages_core_core_ca;\r\n\r\nexport declare function ɵangular_packages_core_core_bi(): number;\r\n\r\nexport declare function ɵangular_packages_core_core_bj<T = any>(level: number): T;\r\n\r\n/** Static data for an element  */\r\nexport declare interface ɵangular_packages_core_core_bk extends TNode {\r\n    /** Index in the data[] array */\r\n    index: number;\r\n    child: ɵangular_packages_core_core_bk | TTextNode | TElementContainerNode | TContainerNode | TProjectionNode | null;\r\n    /**\r\n     * Element nodes will have parents unless they are the first node of a component or\r\n     * embedded view (which means their parent is in a different view and must be\r\n     * retrieved using viewData[HOST_NODE]).\r\n     */\r\n    parent: ɵangular_packages_core_core_bk | TElementContainerNode | null;\r\n    tViews: null;\r\n    /**\r\n     * If this is a component TNode with projection, this will be an array of projected\r\n     * TNodes or native nodes (see TNode.projection for more info). If it's a regular element node\r\n     * or a component without projection, it will be null.\r\n     */\r\n    projection: (TNode | RNode[])[] | null;\r\n    /**\r\n     * Stores TagName\r\n     */\r\n    value: string;\r\n}\r\n\r\n/**\r\n * If the value of the provided exp has changed, calls the pure function to return\r\n * an updated value. Or if the value has not changed, returns cached value.\r\n *\r\n * @param lView LView in which the function is being executed.\r\n * @param bindingRoot Binding root index.\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn Function that returns an updated value\r\n * @param exp Updated expression value\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n */\r\nexport declare function ɵangular_packages_core_core_bl(lView: ɵangular_packages_core_core_ca, bindingRoot: number, slotOffset: number, pureFn: (v: any) => any, exp: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param lView LView in which the function is being executed.\r\n * @param bindingRoot Binding root index.\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n */\r\nexport declare function ɵangular_packages_core_core_bm(lView: ɵangular_packages_core_core_ca, bindingRoot: number, slotOffset: number, pureFn: (v1: any, v2: any) => any, exp1: any, exp2: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param lView LView in which the function is being executed.\r\n * @param bindingRoot Binding root index.\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n */\r\nexport declare function ɵangular_packages_core_core_bn(lView: ɵangular_packages_core_core_ca, bindingRoot: number, slotOffset: number, pureFn: (v1: any, v2: any, v3: any) => any, exp1: any, exp2: any, exp3: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param lView LView in which the function is being executed.\r\n * @param bindingRoot Binding root index.\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param exp4\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n */\r\nexport declare function ɵangular_packages_core_core_bo(lView: ɵangular_packages_core_core_ca, bindingRoot: number, slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, thisArg?: any): any;\r\n\r\n/**\r\n * pureFunction instruction that can support any number of bindings.\r\n *\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param lView LView in which the function is being executed.\r\n * @param bindingRoot Binding root index.\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn A pure function that takes binding values and builds an object or array\r\n * containing those values.\r\n * @param exps An array of binding values\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n */\r\nexport declare function ɵangular_packages_core_core_bp(lView: ɵangular_packages_core_core_ca, bindingRoot: number, slotOffset: number, pureFn: (...v: any[]) => any, exps: any[], thisArg?: any): any;\r\n\r\n/**\r\n * Detects which sanitizer to use for URL property, based on tag name and prop name.\r\n *\r\n * The rules are based on the RESOURCE_URL context config from\r\n * `packages/compiler/src/schema/dom_security_schema.ts`.\r\n * If tag and prop names don't match Resource URL schema, use URL sanitizer.\r\n */\r\nexport declare function ɵangular_packages_core_core_bq(tag: string, prop: string): typeof ɵɵsanitizeResourceUrl;\r\n\r\nexport declare function ɵangular_packages_core_core_br(name: string, props?: (...args: any[]) => any, parentClass?: any, additionalProcessing?: (target: any, name: string, ...args: any[]) => void): any;\r\n\r\nexport declare function ɵangular_packages_core_core_bs(name: string, props?: (...args: any[]) => any, parentClass?: any): any;\r\n\r\n\r\n/**\r\n * Special flag indicating that a decorator is of type `Inject`. It's used to make `Inject`\r\n * decorator tree-shakable (so we don't have to rely on the `instanceof` checks).\r\n * Note: this flag is not included into the `InjectFlags` since it's an internal-only API.\r\n */\r\nexport declare const enum ɵangular_packages_core_core_bt {\r\n    Inject = -1\r\n}\r\n\r\n/**\r\n * This enum is an exact copy of the `InjectFlags` enum above, but the difference is that this is a\r\n * const enum, so actual enum values would be inlined in generated code. The `InjectFlags` enum can\r\n * be turned into a const enum when ViewEngine is removed (see TODO at the `InjectFlags` enum\r\n * above). The benefit of inlining is that we can use these flags at the top level without affecting\r\n * tree-shaking (see \"no-toplevel-property-access\" tslint rule for more info).\r\n * Keep this enum in sync with `InjectFlags` enum above.\r\n */\r\nexport declare const enum ɵangular_packages_core_core_bu {\r\n    /** Check self and check parent injector if needed */\r\n    Default = 0,\r\n    /**\r\n     * Specifies that an injector should retrieve a dependency from any injector until reaching the\r\n     * host element of the current component. (Only used with Element Injector)\r\n     */\r\n    Host = 1,\r\n    /** Don't ascend to ancestors of the node requesting injection. */\r\n    Self = 2,\r\n    /** Skip the node that is requesting injection. */\r\n    SkipSelf = 4,\r\n    /** Inject `defaultValue` instead if token not found. */\r\n    Optional = 8,\r\n    /**\r\n     * This token is being injected into a pipe.\r\n     *\r\n     * This flag is intentionally not in the public facing `InjectFlags` because it is only added by\r\n     * the compiler and is not a developer applicable flag.\r\n     */\r\n    ForPipe = 16\r\n}\r\n\r\n\r\nexport declare function ɵangular_packages_core_core_bv<T>(objWithPropertyToExtract: T): string;\r\n\r\nexport declare class ɵangular_packages_core_core_bw implements Injector {\r\n    get(token: any, notFoundValue?: any): any;\r\n}\r\n\r\nexport declare function ɵangular_packages_core_core_bx(): (<T>(token: ProviderToken<T>, flags?: InjectFlags | undefined) => T | null) | undefined;\r\n\r\n\r\n/**\r\n * Special markers which can be left on `Type.__NG_ELEMENT_ID__` which are used by the Ivy's\r\n * `NodeInjector`. Usually these markers contain factory functions. But in case of this special\r\n * marker we can't leave behind a function because it would create tree shaking problem.\r\n *\r\n * Currently only `Injector` is special.\r\n *\r\n * NOTE: the numbers here must be negative, because positive numbers are used as IDs for bloom\r\n * filter.\r\n */\r\nexport declare const enum ɵangular_packages_core_core_by {\r\n    /**\r\n     * Marks that the current type is `Injector`\r\n     */\r\n    Injector = -1\r\n}\r\n\r\n/**\r\n * Retrieve an `RNode` for a given `TNode` and `LView`.\r\n *\r\n * This function guarantees in dev mode to retrieve a non-null `RNode`.\r\n *\r\n * @param tNode\r\n * @param lView\r\n */\r\nexport declare function ɵangular_packages_core_core_bz(tNode: TNode, lView: ɵangular_packages_core_core_ca): RNode;\r\n\r\n/**\r\n * Attaches a given InjectFlag to a given decorator using monkey-patching.\r\n * Since DI decorators can be used in providers `deps` array (when provider is configured using\r\n * `useFactory`) without initialization (e.g. `Host`) and as an instance (e.g. `new Host()`), we\r\n * attach the flag to make it available both as a static property and as a field on decorator\r\n * instance.\r\n *\r\n * @param decorator Provided DI decorator.\r\n * @param flag InjectFlag that should be applied.\r\n */\r\nexport declare function ɵangular_packages_core_core_c(decorator: any, flag: ɵangular_packages_core_core_bu | ɵangular_packages_core_core_bt): any;\r\n\r\n/**\r\n * `LView` stores all of the information needed to process the instructions as\r\n * they are invoked from the template. Each embedded view and component view has its\r\n * own `LView`. When processing a particular view, we set the `viewData` to that\r\n * `LView`. When that view is done processing, the `viewData` is set back to\r\n * whatever the original `viewData` was before (the parent `LView`).\r\n *\r\n * Keeping separate state for each view facilities view insertion / deletion, so we\r\n * don't have to edit the data array based on which views are present.\r\n */\r\nexport declare interface ɵangular_packages_core_core_ca extends Array<any> {\r\n    /**\r\n     * Human readable representation of the `LView`.\r\n     *\r\n     * NOTE: This property only exists if `ngDevMode` is set to `true` and it is not present in\r\n     * production. Its presence is purely to help debug issue in development, and should not be relied\r\n     * on in production application.\r\n     */\r\n    debug?: LViewDebug;\r\n    /**\r\n     * The node into which this `LView` is inserted.\r\n     */\r\n    [HOST]: RElement | null;\r\n    /**\r\n     * The static data for this view. We need a reference to this so we can easily walk up the\r\n     * node tree in DI and get the TView.data array associated with a node (where the\r\n     * directive defs are stored).\r\n     */\r\n    readonly [TVIEW]: TView;\r\n    /** Flags for this view. See LViewFlags for more info. */\r\n    [FLAGS]: LViewFlags;\r\n    /**\r\n     * This may store an {@link LView} or {@link LContainer}.\r\n     *\r\n     * `LView` - The parent view. This is needed when we exit the view and must restore the previous\r\n     * LView. Without this, the render method would have to keep a stack of\r\n     * views as it is recursively rendering templates.\r\n     *\r\n     * `LContainer` - The current view is part of a container, and is an embedded view.\r\n     */\r\n    [PARENT]: ɵangular_packages_core_core_ca | LContainer | null;\r\n    /**\r\n     *\r\n     * The next sibling LView or LContainer.\r\n     *\r\n     * Allows us to propagate between sibling view states that aren't in the same\r\n     * container. Embedded views already have a node.next, but it is only set for\r\n     * views in the same container. We need a way to link component views and views\r\n     * across containers as well.\r\n     */\r\n    [NEXT]: ɵangular_packages_core_core_ca | LContainer | null;\r\n    /** Queries active for this view - nodes from a view are reported to those queries. */\r\n    [QUERIES]: LQueries | null;\r\n    /**\r\n     * Store the `TNode` of the location where the current `LView` is inserted into.\r\n     *\r\n     * Given:\r\n     * ```\r\n     * <div>\r\n     *   <ng-template><span></span></ng-template>\r\n     * </div>\r\n     * ```\r\n     *\r\n     * We end up with two `TView`s.\r\n     * - `parent` `TView` which contains `<div><!-- anchor --></div>`\r\n     * - `child` `TView` which contains `<span></span>`\r\n     *\r\n     * Typically the `child` is inserted into the declaration location of the `parent`, but it can be\r\n     * inserted anywhere. Because it can be inserted anywhere it is not possible to store the\r\n     * insertion information in the `TView` and instead we must store it in the `LView[T_HOST]`.\r\n     *\r\n     * So to determine where is our insertion parent we would execute:\r\n     * ```\r\n     * const parentLView = lView[PARENT];\r\n     * const parentTNode = lView[T_HOST];\r\n     * const insertionParent = parentLView[parentTNode.index];\r\n     * ```\r\n     *\r\n     *\r\n     * If `null`, this is the root view of an application (root component is in this view) and it has\r\n     * no parents.\r\n     */\r\n    [T_HOST]: TNode | null;\r\n    /**\r\n     * When a view is destroyed, listeners need to be released and outputs need to be\r\n     * unsubscribed. This context array stores both listener functions wrapped with\r\n     * their context and output subscription instances for a particular view.\r\n     *\r\n     * These change per LView instance, so they cannot be stored on TView. Instead,\r\n     * TView.cleanup saves an index to the necessary context in this array.\r\n     *\r\n     * After `LView` is created it is possible to attach additional instance specific functions at the\r\n     * end of the `lView[CLENUP]` because we know that no more `T` level cleanup functions will be\r\n     * addeded here.\r\n     */\r\n    [CLEANUP]: any[] | null;\r\n    /**\r\n     * - For dynamic views, this is the context with which to render the template (e.g.\r\n     *   `NgForContext`), or `{}` if not defined explicitly.\r\n     * - For root view of the root component the context contains change detection data.\r\n     * - For non-root components, the context is the component instance,\r\n     * - For inline views, the context is null.\r\n     */\r\n    [CONTEXT]: {} | RootContext | null;\r\n    /** An optional Module Injector to be used as fall back after Element Injectors are consulted. */\r\n    readonly [INJECTOR_2]: Injector | null;\r\n    /** Factory to be used for creating Renderer. */\r\n    [RENDERER_FACTORY]: RendererFactory3;\r\n    /** Renderer to be used for this view. */\r\n    [RENDERER]: Renderer3;\r\n    /** An optional custom sanitizer. */\r\n    [SANITIZER]: Sanitizer | null;\r\n    /**\r\n     * Reference to the first LView or LContainer beneath this LView in\r\n     * the hierarchy.\r\n     *\r\n     * Necessary to store this so views can traverse through their nested views\r\n     * to remove listeners and call onDestroy callbacks.\r\n     */\r\n    [CHILD_HEAD]: ɵangular_packages_core_core_ca | LContainer | null;\r\n    /**\r\n     * The last LView or LContainer beneath this LView in the hierarchy.\r\n     *\r\n     * The tail allows us to quickly add a new state to the end of the view list\r\n     * without having to propagate starting from the first child.\r\n     */\r\n    [CHILD_TAIL]: ɵangular_packages_core_core_ca | LContainer | null;\r\n    /**\r\n     * View where this view's template was declared.\r\n     *\r\n     * The template for a dynamically created view may be declared in a different view than\r\n     * it is inserted. We already track the \"insertion view\" (view where the template was\r\n     * inserted) in LView[PARENT], but we also need access to the \"declaration view\"\r\n     * (view where the template was declared). Otherwise, we wouldn't be able to call the\r\n     * view's template function with the proper contexts. Context should be inherited from\r\n     * the declaration view tree, not the insertion view tree.\r\n     *\r\n     * Example (AppComponent template):\r\n     *\r\n     * <ng-template #foo></ng-template>       <-- declared here -->\r\n     * <some-comp [tpl]=\"foo\"></some-comp>    <-- inserted inside this component -->\r\n     *\r\n     * The <ng-template> above is declared in the AppComponent template, but it will be passed into\r\n     * SomeComp and inserted there. In this case, the declaration view would be the AppComponent,\r\n     * but the insertion view would be SomeComp. When we are removing views, we would want to\r\n     * traverse through the insertion view to clean up listeners. When we are calling the\r\n     * template function during change detection, we need the declaration view to get inherited\r\n     * context.\r\n     */\r\n    [DECLARATION_VIEW]: ɵangular_packages_core_core_ca | null;\r\n    /**\r\n     * Points to the declaration component view, used to track transplanted `LView`s.\r\n     *\r\n     * See: `DECLARATION_VIEW` which points to the actual `LView` where it was declared, whereas\r\n     * `DECLARATION_COMPONENT_VIEW` points to the component which may not be same as\r\n     * `DECLARATION_VIEW`.\r\n     *\r\n     * Example:\r\n     * ```\r\n     * <#VIEW #myComp>\r\n     *  <div *ngIf=\"true\">\r\n     *   <ng-template #myTmpl>...</ng-template>\r\n     *  </div>\r\n     * </#VIEW>\r\n     * ```\r\n     * In the above case `DECLARATION_VIEW` for `myTmpl` points to the `LView` of `ngIf` whereas\r\n     * `DECLARATION_COMPONENT_VIEW` points to `LView` of the `myComp` which owns the template.\r\n     *\r\n     * The reason for this is that all embedded views are always check-always whereas the component\r\n     * view can be check-always or on-push. When we have a transplanted view it is important to\r\n     * determine if we have transplanted a view from check-always declaration to on-push insertion\r\n     * point. In such a case the transplanted view needs to be added to the `LContainer` in the\r\n     * declared `LView` and CD during the declared view CD (in addition to the CD at the insertion\r\n     * point.) (Any transplanted views which are intra Component are of no interest because the CD\r\n     * strategy of declaration and insertion will always be the same, because it is the same\r\n     * component.)\r\n     *\r\n     * Queries already track moved views in `LView[DECLARATION_LCONTAINER]` and\r\n     * `LContainer[MOVED_VIEWS]`. However the queries also track `LView`s which moved within the same\r\n     * component `LView`. Transplanted views are a subset of moved views, and we use\r\n     * `DECLARATION_COMPONENT_VIEW` to differentiate them. As in this example.\r\n     *\r\n     * Example showing intra component `LView` movement.\r\n     * ```\r\n     * <#VIEW #myComp>\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     * </#VIEW>\r\n     * ```\r\n     * The `thenBlock` and `elseBlock` is moved but not transplanted.\r\n     *\r\n     * Example showing inter component `LView` movement (transplanted view).\r\n     * ```\r\n     * <#VIEW #myComp>\r\n     *   <ng-template #myTmpl>...</ng-template>\r\n     *   <insertion-component [template]=\"myTmpl\"></insertion-component>\r\n     * </#VIEW>\r\n     * ```\r\n     * In the above example `myTmpl` is passed into a different component. If `insertion-component`\r\n     * instantiates `myTmpl` and `insertion-component` is on-push then the `LContainer` needs to be\r\n     * marked as containing transplanted views and those views need to be CD as part of the\r\n     * declaration CD.\r\n     *\r\n     *\r\n     * When change detection runs, it iterates over `[MOVED_VIEWS]` and CDs any child `LView`s where\r\n     * the `DECLARATION_COMPONENT_VIEW` of the current component and the child `LView` does not match\r\n     * (it has been transplanted across components.)\r\n     *\r\n     * Note: `[DECLARATION_COMPONENT_VIEW]` points to itself if the LView is a component view (the\r\n     *       simplest / most common case).\r\n     *\r\n     * see also:\r\n     *   - https://hackmd.io/@mhevery/rJUJsvv9H write up of the problem\r\n     *   - `LContainer[HAS_TRANSPLANTED_VIEWS]` which marks which `LContainer` has transplanted views.\r\n     *   - `LContainer[TRANSPLANT_HEAD]` and `LContainer[TRANSPLANT_TAIL]` storage for transplanted\r\n     *   - `LView[DECLARATION_LCONTAINER]` similar problem for queries\r\n     *   - `LContainer[MOVED_VIEWS]` similar problem for queries\r\n     */\r\n    [DECLARATION_COMPONENT_VIEW]: ɵangular_packages_core_core_ca;\r\n    /**\r\n     * A declaration point of embedded views (ones instantiated based on the content of a\r\n     * <ng-template>), null for other types of views.\r\n     *\r\n     * We need to track all embedded views created from a given declaration point so we can prepare\r\n     * query matches in a proper order (query matches are ordered based on their declaration point and\r\n     * _not_ the insertion point).\r\n     */\r\n    [DECLARATION_LCONTAINER]: LContainer | null;\r\n    /**\r\n     * More flags for this view. See PreOrderHookFlags for more info.\r\n     */\r\n    [PREORDER_HOOK_FLAGS]: PreOrderHookFlags;\r\n    /**\r\n     * The number of direct transplanted views which need a refresh or have descendants themselves\r\n     * that need a refresh but have not marked their ancestors as Dirty. This tells us that during\r\n     * change detection we should still descend to find those children to refresh, even if the parents\r\n     * are not `Dirty`/`CheckAlways`.\r\n     */\r\n    [TRANSPLANTED_VIEWS_TO_REFRESH]: number;\r\n}\r\n\r\n/**\r\n * Returns the `RootContext` instance that is associated with\r\n * the application where the target is situated. It does this by walking the parent views until it\r\n * gets to the root view, then getting the context off of that.\r\n *\r\n * @param viewOrComponent the `LView` or component to get the root context for.\r\n */\r\nexport declare function ɵangular_packages_core_core_cb(viewOrComponent: ɵangular_packages_core_core_ca | {}): RootContext;\r\n\r\n\r\n/**\r\n * Handles message string post-processing for internationalization.\r\n *\r\n * Handles message string post-processing by transforming it from intermediate\r\n * format (that might contain some markers that we need to replace) to the final\r\n * form, consumable by i18nStart instruction. Post processing steps include:\r\n *\r\n * 1. Resolve all multi-value cases (like [�*1:1��#2:1�|�#4:1�|�5�])\r\n * 2. Replace all ICU vars (like \"VAR_PLURAL\")\r\n * 3. Replace all placeholders used inside ICUs in a form of {PLACEHOLDER}\r\n * 4. Replace all ICU references with corresponding values (like �ICU_EXP_ICU_1�)\r\n *    in case multiple ICUs have the same placeholder name\r\n *\r\n * @param message Raw translation string for post processing\r\n * @param replacements Set of replacements that should be applied\r\n *\r\n * @returns Transformed string that can be consumed by i18nStart instruction\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵangular_packages_core_core_cc(message: string, replacements?: {\r\n    [key: string]: (string | string[]);\r\n}): string;\r\n\r\nexport declare class ɵangular_packages_core_core_d implements ReflectiveInjector {\r\n    private static INJECTOR_KEY;\r\n    readonly parent: Injector | null;\r\n    keyIds: number[];\r\n    objs: any[];\r\n    /**\r\n     * Private\r\n     */\r\n    constructor(_providers: ResolvedReflectiveProvider[], _parent?: Injector);\r\n    get(token: any, notFoundValue?: any): any;\r\n    resolveAndCreateChild(providers: Provider[]): ReflectiveInjector;\r\n    createChildFromResolved(providers: ResolvedReflectiveProvider[]): ReflectiveInjector;\r\n    resolveAndInstantiate(provider: Provider): any;\r\n    instantiateResolved(provider: ResolvedReflectiveProvider): any;\r\n    getProviderAtIndex(index: number): ResolvedReflectiveProvider;\r\n    private _getMaxNumberOfObjects;\r\n    private _instantiateProvider;\r\n    private _instantiate;\r\n    private _getByReflectiveDependency;\r\n    private _getByKey;\r\n    private _getObjByKeyId;\r\n    get displayName(): string;\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * `Dependency` is used by the framework to extend DI.\r\n * This is internal to Angular and should not be used directly.\r\n */\r\nexport declare class ɵangular_packages_core_core_e {\r\n    key: ReflectiveKey;\r\n    optional: boolean;\r\n    visibility: Self | SkipSelf | null;\r\n    constructor(key: ReflectiveKey, optional: boolean, visibility: Self | SkipSelf | null);\r\n    static fromKey(key: ReflectiveKey): ɵangular_packages_core_core_e;\r\n}\r\n\r\n/**\r\n * Resolve a list of Providers.\r\n */\r\nexport declare function ɵangular_packages_core_core_f(providers: Provider[]): ResolvedReflectiveProvider[];\r\n\r\nexport declare function ɵangular_packages_core_core_g(): string;\r\n\r\n/** Injects a Renderer2 for the current component. */\r\nexport declare function ɵangular_packages_core_core_h(): Renderer2;\r\n\r\n/**\r\n * Creates an ElementRef from the most recent node.\r\n *\r\n * @returns The ElementRef instance to use\r\n */\r\nexport declare function ɵangular_packages_core_core_i(): ElementRef;\r\n\r\n/**\r\n * Creates an ElementRef given a node.\r\n *\r\n * @param tNode The node for which you'd like an ElementRef\r\n * @param lView The view to which the node belongs\r\n * @returns The ElementRef instance to use\r\n */\r\nexport declare function ɵangular_packages_core_core_j(tNode: TNode, lView: ɵangular_packages_core_core_ca): ElementRef;\r\n\r\nexport declare function ɵangular_packages_core_core_k(id: string): NgModuleFactory<any>;\r\n\r\n/**\r\n * Creates a TemplateRef given a node.\r\n *\r\n * @returns The TemplateRef instance to use\r\n */\r\nexport declare function ɵangular_packages_core_core_l<T>(): TemplateRef<T> | null;\r\n\r\n/**\r\n * Creates a TemplateRef and stores it on the injector.\r\n *\r\n * @param hostTNode The node on which a TemplateRef is requested\r\n * @param hostLView The `LView` to which the node belongs\r\n * @returns The TemplateRef instance or null if we can't create a TemplateRef on a given node type\r\n */\r\nexport declare function ɵangular_packages_core_core_m<T>(hostTNode: TNode, hostLView: ɵangular_packages_core_core_ca): TemplateRef<T> | null;\r\n\r\n/**\r\n * Creates a ViewContainerRef and stores it on the injector. Or, if the ViewContainerRef\r\n * already exists, retrieves the existing ViewContainerRef.\r\n *\r\n * @returns The ViewContainerRef instance to use\r\n */\r\nexport declare function ɵangular_packages_core_core_n(): ViewContainerRef;\r\n\r\nexport declare class ɵangular_packages_core_core_o {\r\n    readonly listeners: DebugEventListener[];\r\n    readonly parent: DebugElement | null;\r\n    readonly nativeNode: any;\r\n    private readonly _debugContext;\r\n    constructor(nativeNode: any, parent: DebugNode | null, _debugContext: ɵangular_packages_core_core_bd);\r\n    get injector(): Injector;\r\n    get componentInstance(): any;\r\n    get context(): any;\r\n    get references(): {\r\n        [key: string]: any;\r\n    };\r\n    get providerTokens(): any[];\r\n}\r\n\r\nexport declare class ɵangular_packages_core_core_p extends ɵangular_packages_core_core_o implements DebugElement {\r\n    readonly name: string;\r\n    readonly properties: {\r\n        [key: string]: any;\r\n    };\r\n    readonly attributes: {\r\n        [key: string]: string | null;\r\n    };\r\n    readonly classes: {\r\n        [key: string]: boolean;\r\n    };\r\n    readonly styles: {\r\n        [key: string]: string | null;\r\n    };\r\n    readonly childNodes: DebugNode[];\r\n    readonly nativeElement: any;\r\n    constructor(nativeNode: any, parent: any, _debugContext: ɵangular_packages_core_core_bd);\r\n    addChild(child: DebugNode): void;\r\n    removeChild(child: DebugNode): void;\r\n    insertChildrenAfter(child: DebugNode, newChildren: DebugNode[]): void;\r\n    insertBefore(refChild: DebugNode, newChild: DebugNode): void;\r\n    query(predicate: Predicate<DebugElement>): DebugElement;\r\n    queryAll(predicate: Predicate<DebugElement>): DebugElement[];\r\n    queryAllNodes(predicate: Predicate<DebugNode>): DebugNode[];\r\n    get children(): DebugElement[];\r\n    triggerEventHandler(eventName: string, eventObj: any): void;\r\n}\r\n\r\nexport declare function ɵangular_packages_core_core_q(nativeNode: any): DebugNode | null;\r\n\r\n/** Returns a ChangeDetectorRef (a.k.a. a ViewRef) */\r\nexport declare function ɵangular_packages_core_core_r(flags: InjectFlags): ChangeDetectorRef;\r\n\r\nexport declare class ɵangular_packages_core_core_s implements IterableDifferFactory {\r\n    constructor();\r\n    supports(obj: Object | null | undefined): boolean;\r\n    create<V>(trackByFn?: TrackByFunction<V>): DefaultIterableDiffer<V>;\r\n}\r\n\r\nexport declare class ɵangular_packages_core_core_t<K, V> implements KeyValueDifferFactory {\r\n    constructor();\r\n    supports(obj: any): boolean;\r\n    create<K, V>(): KeyValueDiffer<K, V>;\r\n}\r\n\r\nexport declare function ɵangular_packages_core_core_u(): IterableDiffers;\r\n\r\nexport declare function ɵangular_packages_core_core_v(): KeyValueDiffers;\r\n\r\nexport declare function ɵangular_packages_core_core_w(): IterableDiffers;\r\n\r\nexport declare function ɵangular_packages_core_core_x(): KeyValueDiffers;\r\n\r\nexport declare function ɵangular_packages_core_core_y(locale?: string): string;\r\n\r\n/**\r\n * A built-in [dependency injection token](guide/glossary#di-token)\r\n * that is used to configure the root injector for bootstrapping.\r\n */\r\nexport declare const ɵangular_packages_core_core_z: StaticProvider[];\r\n\r\n/**\r\n * Providers that generate a random `APP_ID_TOKEN`.\r\n * @publicApi\r\n */\r\nexport declare const ɵAPP_ID_RANDOM_PROVIDER: {\r\n    provide: InjectionToken<string>;\r\n    useFactory: typeof ɵangular_packages_core_core_g;\r\n    deps: any[];\r\n};\r\n\r\nexport declare const enum ɵArgumentType {\r\n    Inline = 0,\r\n    Dynamic = 1\r\n}\r\n\r\n/**\r\n * A set of marker values to be used in the attributes arrays. These markers indicate that some\r\n * items are not regular attributes and the processing should be adapted accordingly.\r\n */\r\nexport declare const enum ɵAttributeMarker {\r\n    /**\r\n     * An implicit marker which indicates that the value in the array are of `attributeKey`,\r\n     * `attributeValue` format.\r\n     *\r\n     * NOTE: This is implicit as it is the type when no marker is present in array. We indicate that\r\n     * it should not be present at runtime by the negative number.\r\n     */\r\n    ImplicitAttributes = -1,\r\n    /**\r\n     * Marker indicates that the following 3 values in the attributes array are:\r\n     * namespaceUri, attributeName, attributeValue\r\n     * in that order.\r\n     */\r\n    NamespaceURI = 0,\r\n    /**\r\n     * Signals class declaration.\r\n     *\r\n     * Each value following `Classes` designates a class name to include on the element.\r\n     * ## Example:\r\n     *\r\n     * Given:\r\n     * ```\r\n     * <div class=\"foo bar baz\">...<d/vi>\r\n     * ```\r\n     *\r\n     * the generated code is:\r\n     * ```\r\n     * var _c1 = [AttributeMarker.Classes, 'foo', 'bar', 'baz'];\r\n     * ```\r\n     */\r\n    Classes = 1,\r\n    /**\r\n     * Signals style declaration.\r\n     *\r\n     * Each pair of values following `Styles` designates a style name and value to include on the\r\n     * element.\r\n     * ## Example:\r\n     *\r\n     * Given:\r\n     * ```\r\n     * <div style=\"width:100px; height:200px; color:red\">...</div>\r\n     * ```\r\n     *\r\n     * the generated code is:\r\n     * ```\r\n     * var _c1 = [AttributeMarker.Styles, 'width', '100px', 'height'. '200px', 'color', 'red'];\r\n     * ```\r\n     */\r\n    Styles = 2,\r\n    /**\r\n     * Signals that the following attribute names were extracted from input or output bindings.\r\n     *\r\n     * For example, given the following HTML:\r\n     *\r\n     * ```\r\n     * <div moo=\"car\" [foo]=\"exp\" (bar)=\"doSth()\">\r\n     * ```\r\n     *\r\n     * the generated code is:\r\n     *\r\n     * ```\r\n     * var _c1 = ['moo', 'car', AttributeMarker.Bindings, 'foo', 'bar'];\r\n     * ```\r\n     */\r\n    Bindings = 3,\r\n    /**\r\n     * Signals that the following attribute names were hoisted from an inline-template declaration.\r\n     *\r\n     * For example, given the following HTML:\r\n     *\r\n     * ```\r\n     * <div *ngFor=\"let value of values; trackBy:trackBy\" dirA [dirB]=\"value\">\r\n     * ```\r\n     *\r\n     * the generated code for the `template()` instruction would include:\r\n     *\r\n     * ```\r\n     * ['dirA', '', AttributeMarker.Bindings, 'dirB', AttributeMarker.Template, 'ngFor', 'ngForOf',\r\n     * 'ngForTrackBy', 'let-value']\r\n     * ```\r\n     *\r\n     * while the generated code for the `element()` instruction inside the template function would\r\n     * include:\r\n     *\r\n     * ```\r\n     * ['dirA', '', AttributeMarker.Bindings, 'dirB']\r\n     * ```\r\n     */\r\n    Template = 4,\r\n    /**\r\n     * Signals that the following attribute is `ngProjectAs` and its value is a parsed\r\n     * `CssSelector`.\r\n     *\r\n     * For example, given the following HTML:\r\n     *\r\n     * ```\r\n     * <h1 attr=\"value\" ngProjectAs=\"[title]\">\r\n     * ```\r\n     *\r\n     * the generated code for the `element()` instruction would include:\r\n     *\r\n     * ```\r\n     * ['attr', 'value', AttributeMarker.ProjectAs, ['', 'title', '']]\r\n     * ```\r\n     */\r\n    ProjectAs = 5,\r\n    /**\r\n     * Signals that the following attribute will be translated by runtime i18n\r\n     *\r\n     * For example, given the following HTML:\r\n     *\r\n     * ```\r\n     * <div moo=\"car\" foo=\"value\" i18n-foo [bar]=\"binding\" i18n-bar>\r\n     * ```\r\n     *\r\n     * the generated code is:\r\n     *\r\n     * ```\r\n     * var _c1 = ['moo', 'car', AttributeMarker.I18n, 'foo', 'bar'];\r\n     */\r\n    I18n = 6\r\n}\r\n\r\nexport declare const enum ɵBindingFlags {\r\n    TypeElementAttribute = 1,\r\n    TypeElementClass = 2,\r\n    TypeElementStyle = 4,\r\n    TypeProperty = 8,\r\n    SyntheticProperty = 16,\r\n    SyntheticHostProperty = 32,\r\n    CatSyntheticProperty = 48,\r\n    Types = 15\r\n}\r\n\r\n/**\r\n * Mark `html` string as trusted.\r\n *\r\n * This function wraps the trusted string in `String` and brands it in a way which makes it\r\n * recognizable to {@link htmlSanitizer} to be trusted implicitly.\r\n *\r\n * @param trustedHtml `html` string which needs to be implicitly trusted.\r\n * @returns a `html` which has been branded to be implicitly trusted.\r\n */\r\nexport declare function ɵbypassSanitizationTrustHtml(trustedHtml: string): ɵSafeHtml;\r\n\r\n/**\r\n * Mark `url` string as trusted.\r\n *\r\n * This function wraps the trusted string in `String` and brands it in a way which makes it\r\n * recognizable to {@link resourceUrlSanitizer} to be trusted implicitly.\r\n *\r\n * @param trustedResourceUrl `url` string which needs to be implicitly trusted.\r\n * @returns a `url` which has been branded to be implicitly trusted.\r\n */\r\nexport declare function ɵbypassSanitizationTrustResourceUrl(trustedResourceUrl: string): ɵSafeResourceUrl;\r\n\r\n/**\r\n * Mark `script` string as trusted.\r\n *\r\n * This function wraps the trusted string in `String` and brands it in a way which makes it\r\n * recognizable to {@link scriptSanitizer} to be trusted implicitly.\r\n *\r\n * @param trustedScript `script` string which needs to be implicitly trusted.\r\n * @returns a `script` which has been branded to be implicitly trusted.\r\n */\r\nexport declare function ɵbypassSanitizationTrustScript(trustedScript: string): ɵSafeScript;\r\n\r\n/**\r\n * Mark `style` string as trusted.\r\n *\r\n * This function wraps the trusted string in `String` and brands it in a way which makes it\r\n * recognizable to {@link styleSanitizer} to be trusted implicitly.\r\n *\r\n * @param trustedStyle `style` string which needs to be implicitly trusted.\r\n * @returns a `style` hich has been branded to be implicitly trusted.\r\n */\r\nexport declare function ɵbypassSanitizationTrustStyle(trustedStyle: string): ɵSafeStyle;\r\n\r\n/**\r\n * Mark `url` string as trusted.\r\n *\r\n * This function wraps the trusted string in `String` and brands it in a way which makes it\r\n * recognizable to {@link urlSanitizer} to be trusted implicitly.\r\n *\r\n * @param trustedUrl `url` string which needs to be implicitly trusted.\r\n * @returns a `url`  which has been branded to be implicitly trusted.\r\n */\r\nexport declare function ɵbypassSanitizationTrustUrl(trustedUrl: string): ɵSafeUrl;\r\n\r\n\r\nexport declare const enum ɵBypassType {\r\n    Url = \"URL\",\r\n    Html = \"HTML\",\r\n    ResourceUrl = \"ResourceURL\",\r\n    Script = \"Script\",\r\n    Style = \"Style\"\r\n}\r\n\r\nexport declare function ɵccf(selector: string, componentType: Type<any>, viewDefFactory: ViewDefinitionFactory, inputs: {\r\n    [propName: string]: string;\r\n} | null, outputs: {\r\n    [propName: string]: string;\r\n}, ngContentSelectors: string[]): ComponentFactory<any>;\r\n\r\n/**\r\n * Defines the possible states of the default change detector.\r\n * @see `ChangeDetectorRef`\r\n */\r\nexport declare enum ɵChangeDetectorStatus {\r\n    /**\r\n     * A state in which, after calling `detectChanges()`, the change detector\r\n     * state becomes `Checked`, and must be explicitly invoked or reactivated.\r\n     */\r\n    CheckOnce = 0,\r\n    /**\r\n     * A state in which change detection is skipped until the change detector mode\r\n     * becomes `CheckOnce`.\r\n     */\r\n    Checked = 1,\r\n    /**\r\n     * A state in which change detection continues automatically until explicitly\r\n     * deactivated.\r\n     */\r\n    CheckAlways = 2,\r\n    /**\r\n     * A state in which a change detector sub tree is not a part of the main tree and\r\n     * should be skipped.\r\n     */\r\n    Detached = 3,\r\n    /**\r\n     * Indicates that the change detector encountered an error checking a binding\r\n     * or calling a directive lifecycle method and is now in an inconsistent state. Change\r\n     * detectors in this state do not detect changes.\r\n     */\r\n    Errored = 4,\r\n    /**\r\n     * Indicates that the change detector has been destroyed.\r\n     */\r\n    Destroyed = 5\r\n}\r\n\r\nexport declare function ɵclearOverrides(): void;\r\n\r\nexport declare function ɵclearResolutionOfComponentResourcesQueue(): Map<Type<any>, Component>;\r\n\r\nexport declare function ɵcmf(ngModuleType: Type<any>, bootstrapComponents: Type<any>[], defFactory: NgModuleDefinitionFactory): NgModuleFactory<any>;\r\n\r\nexport declare class ɵCodegenComponentFactoryResolver implements ComponentFactoryResolver {\r\n    private _parent;\r\n    private _ngModule;\r\n    private _factories;\r\n    constructor(factories: ComponentFactory<any>[], _parent: ComponentFactoryResolver, _ngModule: NgModuleRef<any>);\r\n    resolveComponentFactory<T>(component: {\r\n        new (...args: any[]): T;\r\n    }): ComponentFactory<T>;\r\n}\r\n\r\n/**\r\n * Compile an Angular component according to its decorator metadata, and patch the resulting\r\n * component def (ɵcmp) onto the component type.\r\n *\r\n * Compilation may be asynchronous (due to the need to resolve URLs for the component template or\r\n * other resources, for example). In the event that compilation is not immediate, `compileComponent`\r\n * will enqueue resource resolution into a global queue and will fail to return the `ɵcmp`\r\n * until the global queue has been resolved with a call to `resolveComponentResources`.\r\n */\r\nexport declare function ɵcompileComponent(type: Type<any>, metadata: Component): void;\r\n\r\n/**\r\n * Compile an Angular directive according to its decorator metadata, and patch the resulting\r\n * directive def onto the component type.\r\n *\r\n * In the event that compilation is not immediate, `compileDirective` will return a `Promise` which\r\n * will resolve when compilation completes and the directive becomes usable.\r\n */\r\nexport declare function ɵcompileDirective(type: Type<any>, directive: Directive | null): void;\r\n\r\n/**\r\n * Compiles a module in JIT mode.\r\n *\r\n * This function automatically gets called when a class has a `@NgModule` decorator.\r\n */\r\nexport declare function ɵcompileNgModule(moduleType: Type<any>, ngModule?: NgModule): void;\r\n\r\n/**\r\n * Compiles and adds the `ɵmod`, `ɵfac` and `ɵinj` properties to the module class.\r\n *\r\n * It's possible to compile a module via this API which will allow duplicate declarations in its\r\n * root.\r\n */\r\nexport declare function ɵcompileNgModuleDefs(moduleType: ɵNgModuleType, ngModule: NgModule, allowDuplicateDeclarationsInRoot?: boolean): void;\r\n\r\nexport declare function ɵcompileNgModuleFactory__POST_R3__<M>(injector: Injector, options: CompilerOptions, moduleType: Type<M>): Promise<NgModuleFactory<M>>;\r\n\r\nexport declare function ɵcompilePipe(type: Type<any>, meta: Pipe): void;\r\n\r\nexport declare const ɵCompiler_compileModuleAndAllComponentsAsync__POST_R3__: <T>(moduleType: Type<T>) => Promise<ModuleWithComponentFactories<T>>;\r\n\r\nexport declare const ɵCompiler_compileModuleAndAllComponentsSync__POST_R3__: <T>(moduleType: Type<T>) => ModuleWithComponentFactories<T>;\r\n\r\nexport declare const ɵCompiler_compileModuleAsync__POST_R3__: <T>(moduleType: Type<T>) => Promise<NgModuleFactory<T>>;\r\n\r\nexport declare const ɵCompiler_compileModuleSync__POST_R3__: <T>(moduleType: Type<T>) => NgModuleFactory<T>;\r\n\r\n/**\r\n * Runtime link information for Components.\r\n *\r\n * This is an internal data structure used by the render to link\r\n * components into templates.\r\n *\r\n * NOTE: Always use `defineComponent` function to create this object,\r\n * never create the object directly since the shape of this object\r\n * can change between versions.\r\n *\r\n * See: {@link defineComponent}\r\n */\r\nexport declare interface ɵComponentDef<T> extends ɵDirectiveDef<T> {\r\n    /**\r\n     * Runtime unique component ID.\r\n     */\r\n    readonly id: string;\r\n    /**\r\n     * The View template of the component.\r\n     */\r\n    readonly template: ComponentTemplate<T>;\r\n    /** Constants associated with the component's view. */\r\n    readonly consts: TConstantsOrFactory | null;\r\n    /**\r\n     * An array of `ngContent[selector]` values that were found in the template.\r\n     */\r\n    readonly ngContentSelectors?: string[];\r\n    /**\r\n     * A set of styles that the component needs to be present for component to render correctly.\r\n     */\r\n    readonly styles: string[];\r\n    /**\r\n     * The number of nodes, local refs, and pipes in this component template.\r\n     *\r\n     * Used to calculate the length of the component's LView array, so we\r\n     * can pre-fill the array and set the binding start index.\r\n     */\r\n    readonly decls: number;\r\n    /**\r\n     * The number of bindings in this component template (including pure fn bindings).\r\n     *\r\n     * Used to calculate the length of the component's LView array, so we\r\n     * can pre-fill the array and set the host binding start index.\r\n     */\r\n    readonly vars: number;\r\n    /**\r\n     * Query-related instructions for a component.\r\n     */\r\n    viewQuery: ViewQueriesFunction<T> | null;\r\n    /**\r\n     * The view encapsulation type, which determines how styles are applied to\r\n     * DOM elements. One of\r\n     * - `Emulated` (default): Emulate native scoping of styles.\r\n     * - `Native`: Use the native encapsulation mechanism of the renderer.\r\n     * - `ShadowDom`: Use modern [ShadowDOM](https://w3c.github.io/webcomponents/spec/shadow/) and\r\n     *   create a ShadowRoot for component's host element.\r\n     * - `None`: Do not provide any template or style encapsulation.\r\n     */\r\n    readonly encapsulation: ViewEncapsulation;\r\n    /**\r\n     * Defines arbitrary developer-defined data to be stored on a renderer instance.\r\n     * This is useful for renderers that delegate to other renderers.\r\n     */\r\n    readonly data: {\r\n        [kind: string]: any;\r\n    };\r\n    /** Whether or not this component's ChangeDetectionStrategy is OnPush */\r\n    readonly onPush: boolean;\r\n    /**\r\n     * Registry of directives and components that may be found in this view.\r\n     *\r\n     * The property is either an array of `DirectiveDef`s or a function which returns the array of\r\n     * `DirectiveDef`s. The function is necessary to be able to support forward declarations.\r\n     */\r\n    directiveDefs: DirectiveDefListOrFactory | null;\r\n    /**\r\n     * Registry of pipes that may be found in this view.\r\n     *\r\n     * The property is either an array of `PipeDefs`s or a function which returns the array of\r\n     * `PipeDefs`s. The function is necessary to be able to support forward declarations.\r\n     */\r\n    pipeDefs: PipeDefListOrFactory | null;\r\n    /**\r\n     * The set of schemas that declare elements to be allowed in the component's template.\r\n     */\r\n    schemas: SchemaMetadata[] | null;\r\n    /**\r\n     * Ivy runtime uses this place to store the computed tView for the component. This gets filled on\r\n     * the first run of component.\r\n     */\r\n    tView: TView | null;\r\n    /**\r\n     * Used to store the result of `noSideEffects` function so that it is not removed by closure\r\n     * compiler. The property should never be read.\r\n     */\r\n    readonly _?: unknown;\r\n}\r\n\r\n/**\r\n * A subclass of `Type` which has a static `ɵcmp`:`ComponentDef` field making it\r\n * consumable for rendering.\r\n */\r\nexport declare interface ɵComponentType<T> extends Type<T> {\r\n    ɵcmp: unknown;\r\n}\r\n\r\n\r\nexport declare class ɵConsole {\r\n    log(message: string): void;\r\n    warn(message: string): void;\r\n}\r\n\r\nexport declare function ɵCREATE_ATTRIBUTE_DECORATOR__POST_R3__(): AttributeDecorator;\r\n\r\n/**\r\n * Create a new `Injector` which is configured using a `defType` of `InjectorType<any>`s.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function ɵcreateInjector(defType: any, parent?: Injector | null, additionalProviders?: StaticProvider[] | null, name?: string): Injector;\r\n\r\nexport declare function ɵcrt(values: {\r\n    styles: (string | any[])[];\r\n    encapsulation: ViewEncapsulation;\r\n    data: {\r\n        [kind: string]: any[];\r\n    };\r\n}): RendererType2;\r\n\r\n/**\r\n * A list of CssSelectors.\r\n *\r\n * A directive or component can have multiple selectors. This type is used for\r\n * directive defs so any of the selectors in the list will match that directive.\r\n *\r\n * Original: 'form, [ngForm]'\r\n * Parsed: [['form'], ['', 'ngForm', '']]\r\n */\r\nexport declare type ɵCssSelectorList = CssSelector[];\r\n\r\n/**\r\n * Index of each value in currency data (used to describe CURRENCIES_EN in currencies.ts)\r\n */\r\nexport declare const enum ɵCurrencyIndex {\r\n    Symbol = 0,\r\n    SymbolNarrow = 1,\r\n    NbOfDigits = 2\r\n}\r\n\r\n/**\r\n * The locale id that the application is using by default (for translations and ICU expressions).\r\n */\r\nexport declare const ɵDEFAULT_LOCALE_ID = \"en-US\";\r\n\r\nexport declare const ɵdefaultIterableDiffers: IterableDiffers;\r\n\r\nexport declare const ɵdefaultKeyValueDiffers: KeyValueDiffers;\r\n\r\n/**\r\n * Bitmask for DI flags\r\n */\r\nexport declare const enum ɵDepFlags {\r\n    None = 0,\r\n    SkipSelf = 1,\r\n    Optional = 2,\r\n    Self = 4,\r\n    Value = 8\r\n}\r\n\r\n\r\n/**\r\n * Synchronously perform change detection on a component (and possibly its sub-components).\r\n *\r\n * This function triggers change detection in a synchronous way on a component.\r\n *\r\n * @param component The component which the change detection should be performed on.\r\n */\r\nexport declare function ɵdetectChanges(component: {}): void;\r\n\r\n\r\nexport declare function ɵdevModeEqual(a: any, b: any): boolean;\r\n\r\nexport declare function ɵdid(checkIndex: number, flags: ɵNodeFlags, matchedQueries: null | [string | number, ɵQueryValueType][], childCount: number, ctor: any, deps: ([ɵDepFlags, any] | any)[], props?: null | {\r\n    [name: string]: [number, string];\r\n}, outputs?: null | {\r\n    [name: string]: string;\r\n}): NodeDef;\r\n\r\n/**\r\n * Runtime link information for Directives.\r\n *\r\n * This is an internal data structure used by the render to link\r\n * directives into templates.\r\n *\r\n * NOTE: Always use `defineDirective` function to create this object,\r\n * never create the object directly since the shape of this object\r\n * can change between versions.\r\n *\r\n * @param Selector type metadata specifying the selector of the directive or component\r\n *\r\n * See: {@link defineDirective}\r\n */\r\nexport declare interface ɵDirectiveDef<T> {\r\n    /**\r\n     * A dictionary mapping the inputs' minified property names to their public API names, which\r\n     * are their aliases if any, or their original unminified property names\r\n     * (as in `@Input('alias') propertyName: any;`).\r\n     */\r\n    readonly inputs: {\r\n        [P in keyof T]: string;\r\n    };\r\n    /**\r\n     * @deprecated This is only here because `NgOnChanges` incorrectly uses declared name instead of\r\n     * public or minified name.\r\n     */\r\n    readonly declaredInputs: {\r\n        [P in keyof T]: string;\r\n    };\r\n    /**\r\n     * A dictionary mapping the outputs' minified property names to their public API names, which\r\n     * are their aliases if any, or their original unminified property names\r\n     * (as in `@Output('alias') propertyName: any;`).\r\n     */\r\n    readonly outputs: {\r\n        [P in keyof T]: string;\r\n    };\r\n    /**\r\n     * Function to create and refresh content queries associated with a given directive.\r\n     */\r\n    contentQueries: ContentQueriesFunction<T> | null;\r\n    /**\r\n     * Query-related instructions for a directive. Note that while directives don't have a\r\n     * view and as such view queries won't necessarily do anything, there might be\r\n     * components that extend the directive.\r\n     */\r\n    viewQuery: ViewQueriesFunction<T> | null;\r\n    /**\r\n     * Refreshes host bindings on the associated directive.\r\n     */\r\n    readonly hostBindings: HostBindingsFunction<T> | null;\r\n    /**\r\n     * The number of bindings in this directive `hostBindings` (including pure fn bindings).\r\n     *\r\n     * Used to calculate the length of the component's LView array, so we\r\n     * can pre-fill the array and set the host binding start index.\r\n     */\r\n    readonly hostVars: number;\r\n    /**\r\n     * Assign static attribute values to a host element.\r\n     *\r\n     * This property will assign static attribute values as well as class and style\r\n     * values to a host element. Since attribute values can consist of different types of values, the\r\n     * `hostAttrs` array must include the values in the following format:\r\n     *\r\n     * attrs = [\r\n     *   // static attributes (like `title`, `name`, `id`...)\r\n     *   attr1, value1, attr2, value,\r\n     *\r\n     *   // a single namespace value (like `x:id`)\r\n     *   NAMESPACE_MARKER, namespaceUri1, name1, value1,\r\n     *\r\n     *   // another single namespace value (like `x:name`)\r\n     *   NAMESPACE_MARKER, namespaceUri2, name2, value2,\r\n     *\r\n     *   // a series of CSS classes that will be applied to the element (no spaces)\r\n     *   CLASSES_MARKER, class1, class2, class3,\r\n     *\r\n     *   // a series of CSS styles (property + value) that will be applied to the element\r\n     *   STYLES_MARKER, prop1, value1, prop2, value2\r\n     * ]\r\n     *\r\n     * All non-class and non-style attributes must be defined at the start of the list\r\n     * first before all class and style values are set. When there is a change in value\r\n     * type (like when classes and styles are introduced) a marker must be used to separate\r\n     * the entries. The marker values themselves are set via entries found in the\r\n     * [AttributeMarker] enum.\r\n     */\r\n    readonly hostAttrs: TAttributes | null;\r\n    /** Token representing the directive. Used by DI. */\r\n    readonly type: Type<T>;\r\n    /** Function that resolves providers and publishes them into the DI system. */\r\n    providersResolver: (<U extends T>(def: ɵDirectiveDef<U>, processProvidersFn?: ProcessProvidersFunction) => void) | null;\r\n    /** The selectors that will be used to match nodes to this directive. */\r\n    readonly selectors: ɵCssSelectorList;\r\n    /**\r\n     * Name under which the directive is exported (for use with local references in template)\r\n     */\r\n    readonly exportAs: string[] | null;\r\n    /**\r\n     * Factory function used to create a new directive instance. Will be null initially.\r\n     * Populated when the factory is first requested by directive instantiation logic.\r\n     */\r\n    readonly factory: FactoryFn<T> | null;\r\n    /**\r\n     * The features applied to this directive\r\n     */\r\n    readonly features: DirectiveDefFeature[] | null;\r\n    setInput: (<U extends T>(this: ɵDirectiveDef<U>, instance: U, value: any, publicName: string, privateName: string) => void) | null;\r\n}\r\n\r\n/**\r\n * A subclass of `Type` which has a static `ɵdir`:`DirectiveDef` field making it\r\n * consumable for rendering.\r\n */\r\nexport declare interface ɵDirectiveType<T> extends Type<T> {\r\n    ɵdir: unknown;\r\n    ɵfac: unknown;\r\n}\r\n\r\nexport declare function ɵeld(checkIndex: number, flags: ɵNodeFlags, matchedQueriesDsl: null | [string | number, ɵQueryValueType][], ngContentIndex: null | number, childCount: number, namespaceAndName: string | null, fixedAttrs?: null | [string, string][], bindings?: null | [ɵBindingFlags, string, string | SecurityContext | null][], outputs?: null | ([string, string])[], handleEvent?: null | ElementHandleEventFn, componentView?: null | ViewDefinitionFactory, componentRendererType?: RendererType2 | null): NodeDef;\r\n\r\nexport declare const ɵEMPTY_ARRAY: any[];\r\n\r\nexport declare const ɵEMPTY_MAP: {\r\n    [key: string]: any;\r\n};\r\n\r\n/**\r\n * Index of each type of locale data from the extra locale data array\r\n */\r\nexport declare const enum ɵExtraLocaleDataIndex {\r\n    ExtraDayPeriodFormats = 0,\r\n    ExtraDayPeriodStandalone = 1,\r\n    ExtraDayPeriodsRules = 2\r\n}\r\n\r\n/**\r\n * Finds the locale data for a given locale.\r\n *\r\n * @param locale The locale code.\r\n * @returns The locale data.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n */\r\nexport declare function ɵfindLocaleData(locale: string): any;\r\n\r\n/**\r\n * Loops over queued module definitions, if a given module definition has all of its\r\n * declarations resolved, it dequeues that module definition and sets the scope on\r\n * its declarations.\r\n */\r\nexport declare function ɵflushModuleScopingQueueAsMuchAsPossible(): void;\r\n\r\nexport declare function ɵgetComponentViewDefinitionFactory(componentFactory: ComponentFactory<any>): ViewDefinitionFactory;\r\n\r\nexport declare function ɵgetDebugNode__POST_R3__(nativeNode: Element): DebugElement__POST_R3__;\r\n\r\nexport declare function ɵgetDebugNode__POST_R3__(nativeNode: Node): DebugNode__POST_R3__;\r\n\r\nexport declare function ɵgetDebugNode__POST_R3__(nativeNode: null): null;\r\n\r\nexport declare const ɵgetDebugNodeR2: (nativeNode: any) => DebugNode | null;\r\n\r\n/**\r\n * Retrieves directive instances associated with a given DOM node. Does not include\r\n * component instances.\r\n *\r\n * @usageNotes\r\n * Given the following DOM structure:\r\n *\r\n * ```html\r\n * <app-root>\r\n *   <button my-button></button>\r\n *   <my-comp></my-comp>\r\n * </app-root>\r\n * ```\r\n *\r\n * Calling `getDirectives` on `<button>` will return an array with an instance of the `MyButton`\r\n * directive that is associated with the DOM node.\r\n *\r\n * Calling `getDirectives` on `<my-comp>` will return an empty array.\r\n *\r\n * @param node DOM node for which to get the directives.\r\n * @returns Array of directives associated with the node.\r\n *\r\n * @publicApi\r\n * @globalApi ng\r\n */\r\nexport declare function ɵgetDirectives(node: Node): {}[];\r\n\r\n/**\r\n * Retrieves the host element of a component or directive instance.\r\n * The host element is the DOM element that matched the selector of the directive.\r\n *\r\n * @param componentOrDirective Component or directive instance for which the host\r\n *     element should be retrieved.\r\n * @returns Host element of the target.\r\n *\r\n * @publicApi\r\n * @globalApi ng\r\n */\r\nexport declare function ɵgetHostElement(componentOrDirective: {}): Element;\r\n\r\n/**\r\n * Read the injectable def (`ɵprov`) for `type` in a way which is immune to accidentally reading\r\n * inherited value.\r\n *\r\n * @param type A type which may have its own (non-inherited) `ɵprov`.\r\n */\r\nexport declare function ɵgetInjectableDef<T>(type: any): ɵɵInjectableDeclaration<T> | null;\r\n\r\n/**\r\n * Returns the matching `LContext` data for a given DOM node, directive or component instance.\r\n *\r\n * This function will examine the provided DOM element, component, or directive instance\\'s\r\n * monkey-patched property to derive the `LContext` data. Once called then the monkey-patched\r\n * value will be that of the newly created `LContext`.\r\n *\r\n * If the monkey-patched value is the `LView` instance then the context value for that\r\n * target will be created and the monkey-patch reference will be updated. Therefore when this\r\n * function is called it may mutate the provided element\\'s, component\\'s or any of the associated\r\n * directive\\'s monkey-patch values.\r\n *\r\n * If the monkey-patch value is not detected then the code will walk up the DOM until an element\r\n * is found which contains a monkey-patch reference. When that occurs then the provided element\r\n * will be updated with a new context (which is then returned). If the monkey-patch value is not\r\n * detected for a component/directive instance then it will throw an error (all components and\r\n * directives should be automatically monkey-patched by ivy).\r\n *\r\n * @param target Component, Directive or DOM Node.\r\n */\r\nexport declare function ɵgetLContext(target: any): ɵLContext | null;\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 */\r\nexport declare function ɵgetLocaleCurrencyCode(locale: string): string | null;\r\n\r\n/**\r\n * Retrieves the plural function used by ICU expressions to determine the plural case to use\r\n * for a given locale.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @returns The plural function for the locale.\r\n * @see `NgPlural`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n */\r\nexport declare function ɵgetLocalePluralCase(locale: string): (value: number) => number;\r\n\r\nexport declare function ɵgetModuleFactory__POST_R3__(id: string): NgModuleFactory<any>;\r\n\r\nexport declare function ɵgetSanitizationBypassType(value: any): ɵBypassType | null;\r\n\r\nexport declare type ɵGetterFn = (obj: any) => any;\r\n\r\n\r\nexport declare const ɵglobal: any;\r\n\r\nexport declare function ɵinitServicesIfNeeded(): void;\r\n\r\nexport declare function ɵINJECTOR_IMPL__POST_R3__(providers: StaticProvider[], parent: Injector | undefined, name: string): Injector;\r\n\r\n/**\r\n * An internal token whose presence in an injector indicates that the injector should treat itself\r\n * as a root scoped injector when processing requests for unknown tokens which may indicate\r\n * they are provided in the root scope.\r\n */\r\nexport declare const ɵINJECTOR_SCOPE: InjectionToken<\"root\" | \"platform\" | null>;\r\n\r\nexport declare function ɵinlineInterpolate(valueCount: number, c0: string, a1: any, c1: string, a2?: any, c2?: string, a3?: any, c3?: string, a4?: any, c4?: string, a5?: any, c5?: string, a6?: any, c6?: string, a7?: any, c7?: string, a8?: any, c8?: string, a9?: any, c9?: string): string;\r\n\r\nexport declare function ɵinterpolate(valueCount: number, constAndInterp: string[]): string;\r\n\r\nexport declare function ɵisBoundToModule__POST_R3__<C>(cf: ComponentFactory<C>): boolean;\r\n\r\n/**\r\n * Reports whether a given strategy is currently the default for change detection.\r\n * @param changeDetectionStrategy The strategy to check.\r\n * @returns True if the given strategy is the current default, false otherwise.\r\n * @see `ChangeDetectorStatus`\r\n * @see `ChangeDetectorRef`\r\n */\r\nexport declare function ɵisDefaultChangeDetectionStrategy(changeDetectionStrategy: ChangeDetectionStrategy): boolean;\r\n\r\nexport declare function ɵisListLikeIterable(obj: any): boolean;\r\n\r\n/**\r\n * Determine if the argument is an Observable\r\n *\r\n * Strictly this tests that the `obj` is `Subscribable`, since `Observable`\r\n * types need additional methods, such as `lift()`. But it is adequate for our\r\n * needs since within the Angular framework code we only ever need to use the\r\n * `subscribe()` method, and RxJS has mechanisms to wrap `Subscribable` objects\r\n * into `Observable` as needed.\r\n */\r\nexport declare const ɵisObservable: (obj: any | Observable<any>) => obj is Observable<any>;\r\n\r\n/**\r\n * Determine if the argument is shaped like a Promise\r\n */\r\nexport declare function ɵisPromise<T = any>(obj: any): obj is Promise<T>;\r\n\r\n/**\r\n * Determine if the argument is a Subscribable\r\n */\r\nexport declare function ɵisSubscribable(obj: any | Subscribable<any>): obj is Subscribable<any>;\r\n\r\nexport declare const ɵivyEnabled = false;\r\n\r\n/**\r\n * The internal view context which is specific to a given DOM element, directive or\r\n * component instance. Each value in here (besides the LView and element node details)\r\n * can be present, null or undefined. If undefined then it implies the value has not been\r\n * looked up yet, otherwise, if null, then a lookup was executed and nothing was found.\r\n *\r\n * Each value will get filled when the respective value is examined within the getContext\r\n * function. The component, element and each directive instance will share the same instance\r\n * of the context.\r\n */\r\nexport declare interface ɵLContext {\r\n    /**\r\n     * The component's parent view data.\r\n     */\r\n    lView: ɵangular_packages_core_core_ca;\r\n    /**\r\n     * The index instance of the node.\r\n     */\r\n    nodeIndex: number;\r\n    /**\r\n     * The instance of the DOM node that is attached to the lNode.\r\n     */\r\n    native: RNode;\r\n    /**\r\n     * The instance of the Component node.\r\n     */\r\n    component: {} | null | undefined;\r\n    /**\r\n     * The list of active directives that exist on this element.\r\n     */\r\n    directives: any[] | null | undefined;\r\n    /**\r\n     * The map of local references (local reference name => element or directive instance) that exist\r\n     * on this element.\r\n     */\r\n    localRefs: {\r\n        [key: string]: any;\r\n    } | null | undefined;\r\n}\r\n\r\n/**\r\n * Used to enable lifecycle hooks on the root component.\r\n *\r\n * Include this feature when calling `renderComponent` if the root component\r\n * you are rendering has lifecycle hooks defined. Otherwise, the hooks won't\r\n * be called properly.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * renderComponent(AppComponent, {hostFeatures: [LifecycleHooksFeature]});\r\n * ```\r\n */\r\nexport declare function ɵLifecycleHooksFeature(component: any, def: ɵComponentDef<any>): void;\r\n\r\n/**\r\n * Index of each type of locale data from the locale data array\r\n */\r\nexport declare enum ɵLocaleDataIndex {\r\n    LocaleId = 0,\r\n    DayPeriodsFormat = 1,\r\n    DayPeriodsStandalone = 2,\r\n    DaysFormat = 3,\r\n    DaysStandalone = 4,\r\n    MonthsFormat = 5,\r\n    MonthsStandalone = 6,\r\n    Eras = 7,\r\n    FirstDayOfWeek = 8,\r\n    WeekendRange = 9,\r\n    DateFormat = 10,\r\n    TimeFormat = 11,\r\n    DateTimeFormat = 12,\r\n    NumberSymbols = 13,\r\n    NumberFormats = 14,\r\n    CurrencyCode = 15,\r\n    CurrencySymbol = 16,\r\n    CurrencyName = 17,\r\n    Currencies = 18,\r\n    Directionality = 19,\r\n    PluralCase = 20,\r\n    ExtraData = 21\r\n}\r\n\r\n/**\r\n * @suppress {globalThis}\r\n */\r\nexport declare function ɵmakeDecorator<T>(name: string, props?: (...args: any[]) => any, parentClass?: any, additionalProcessing?: (type: Type<T>) => void, typeFn?: (type: Type<T>, ...args: any[]) => void): {\r\n    new (...args: any[]): any;\r\n    (...args: any[]): any;\r\n    (...args: any[]): (cls: any) => any;\r\n};\r\n\r\n/**\r\n * Marks the component as dirty (needing change detection). Marking a component dirty will\r\n * schedule a change detection on it at some point in the future.\r\n *\r\n * Marking an already dirty component as dirty won't do anything. Only one outstanding change\r\n * detection can be scheduled per component tree.\r\n *\r\n * @param component Component to mark as dirty.\r\n */\r\nexport declare function ɵmarkDirty(component: {}): void;\r\n\r\nexport declare type ɵMethodFn = (obj: any, args: any[]) => any;\r\n\r\nexport declare function ɵmod(providers: NgModuleProviderDef[]): NgModuleDefinition;\r\n\r\nexport declare function ɵmpd(flags: ɵNodeFlags, token: any, value: any, deps: ([ɵDepFlags, any] | any)[]): NgModuleProviderDef;\r\n\r\nexport declare function ɵncd(ngContentIndex: null | number, index: number): NodeDef;\r\n\r\n\r\nexport declare const ɵNG_COMP_DEF: string;\r\n\r\nexport declare const ɵNG_DIR_DEF: string;\r\n\r\n/**\r\n * If a directive is diPublic, bloomAdd sets a property on the type with this constant as\r\n * the key and the directive's unique ID as the value. This allows us to map directives to their\r\n * bloom filter bit for DI.\r\n */\r\nexport declare const ɵNG_ELEMENT_ID: string;\r\n\r\nexport declare const ɵNG_INJ_DEF: string;\r\n\r\nexport declare const ɵNG_MOD_DEF: string;\r\n\r\nexport declare const ɵNG_PIPE_DEF: string;\r\n\r\nexport declare const ɵNG_PROV_DEF: string;\r\n\r\n/**\r\n * Runtime link information for NgModules.\r\n *\r\n * This is the internal data structure used by the runtime to assemble components, directives,\r\n * pipes, and injectors.\r\n *\r\n * NOTE: Always use `ɵɵdefineNgModule` function to create this object,\r\n * never create the object directly since the shape of this object\r\n * can change between versions.\r\n */\r\nexport declare interface ɵNgModuleDef<T> {\r\n    /** Token representing the module. Used by DI. */\r\n    type: T;\r\n    /** List of components to bootstrap. */\r\n    bootstrap: Type<any>[] | (() => Type<any>[]);\r\n    /** List of components, directives, and pipes declared by this module. */\r\n    declarations: Type<any>[] | (() => Type<any>[]);\r\n    /** List of modules or `ModuleWithProviders` imported by this module. */\r\n    imports: Type<any>[] | (() => Type<any>[]);\r\n    /**\r\n     * List of modules, `ModuleWithProviders`, components, directives, or pipes exported by this\r\n     * module.\r\n     */\r\n    exports: Type<any>[] | (() => Type<any>[]);\r\n    /**\r\n     * Cached value of computed `transitiveCompileScopes` for this module.\r\n     *\r\n     * This should never be read directly, but accessed via `transitiveScopesFor`.\r\n     */\r\n    transitiveCompileScopes: ɵNgModuleTransitiveScopes | null;\r\n    /** The set of schemas that declare elements to be allowed in the NgModule. */\r\n    schemas: SchemaMetadata[] | null;\r\n    /** Unique ID for the module with which it should be registered.  */\r\n    id: string | null;\r\n}\r\n\r\nexport declare class ɵNgModuleFactory<T> extends NgModuleFactory<T> {\r\n    moduleType: Type<T>;\r\n    constructor(moduleType: Type<T>);\r\n    create(parentInjector: Injector | null): NgModuleRef<T>;\r\n}\r\n\r\n/**\r\n * Represents the expansion of an `NgModule` into its scopes.\r\n *\r\n * A scope is a set of directives and pipes that are visible in a particular context. Each\r\n * `NgModule` has two scopes. The `compilation` scope is the set of directives and pipes that will\r\n * be recognized in the templates of components declared by the module. The `exported` scope is the\r\n * set of directives and pipes exported by a module (that is, module B's exported scope gets added\r\n * to module A's compilation scope when module A imports B).\r\n */\r\nexport declare interface ɵNgModuleTransitiveScopes {\r\n    compilation: {\r\n        directives: Set<any>;\r\n        pipes: Set<any>;\r\n    };\r\n    exported: {\r\n        directives: Set<any>;\r\n        pipes: Set<any>;\r\n    };\r\n    schemas: SchemaMetadata[] | null;\r\n}\r\n\r\nexport declare interface ɵNgModuleType<T = any> extends Type<T> {\r\n    ɵmod: ɵNgModuleDef<T>;\r\n}\r\n\r\n\r\nexport declare interface ɵNO_CHANGE {\r\n    __brand__: 'NO_CHANGE';\r\n}\r\n\r\n/** A special value which designates that a value has not changed. */\r\nexport declare const ɵNO_CHANGE: ɵNO_CHANGE;\r\n\r\n/**\r\n * Bitmask for NodeDef.flags.\r\n * Naming convention:\r\n * - `Type...`: flags that are mutually exclusive\r\n * - `Cat...`: union of multiple `Type...` (short for category).\r\n */\r\nexport declare const enum ɵNodeFlags {\r\n    None = 0,\r\n    TypeElement = 1,\r\n    TypeText = 2,\r\n    ProjectedTemplate = 4,\r\n    CatRenderNode = 3,\r\n    TypeNgContent = 8,\r\n    TypePipe = 16,\r\n    TypePureArray = 32,\r\n    TypePureObject = 64,\r\n    TypePurePipe = 128,\r\n    CatPureExpression = 224,\r\n    TypeValueProvider = 256,\r\n    TypeClassProvider = 512,\r\n    TypeFactoryProvider = 1024,\r\n    TypeUseExistingProvider = 2048,\r\n    LazyProvider = 4096,\r\n    PrivateProvider = 8192,\r\n    TypeDirective = 16384,\r\n    Component = 32768,\r\n    CatProviderNoDirective = 3840,\r\n    CatProvider = 20224,\r\n    OnInit = 65536,\r\n    OnDestroy = 131072,\r\n    DoCheck = 262144,\r\n    OnChanges = 524288,\r\n    AfterContentInit = 1048576,\r\n    AfterContentChecked = 2097152,\r\n    AfterViewInit = 4194304,\r\n    AfterViewChecked = 8388608,\r\n    EmbeddedViews = 16777216,\r\n    ComponentView = 33554432,\r\n    TypeContentQuery = 67108864,\r\n    TypeViewQuery = 134217728,\r\n    StaticQuery = 268435456,\r\n    DynamicQuery = 536870912,\r\n    TypeNgModule = 1073741824,\r\n    EmitDistinctChangesOnly = -2147483648,\r\n    CatQuery = 201326592,\r\n    Types = 201347067\r\n}\r\n\r\n/**\r\n * Provides a noop implementation of `NgZone` which does nothing. This zone requires explicit calls\r\n * to framework to perform rendering.\r\n */\r\nexport declare class ɵNoopNgZone implements NgZone {\r\n    readonly hasPendingMicrotasks: boolean;\r\n    readonly hasPendingMacrotasks: boolean;\r\n    readonly isStable: boolean;\r\n    readonly onUnstable: EventEmitter<any>;\r\n    readonly onMicrotaskEmpty: EventEmitter<any>;\r\n    readonly onStable: EventEmitter<any>;\r\n    readonly onError: EventEmitter<any>;\r\n    run<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any): T;\r\n    runGuarded<T>(fn: (...args: any[]) => any, applyThis?: any, applyArgs?: any): T;\r\n    runOutsideAngular<T>(fn: (...args: any[]) => T): T;\r\n    runTask<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any, name?: string): T;\r\n}\r\n\r\n\r\n/**\r\n * Convince closure compiler that the wrapped function has no side-effects.\r\n *\r\n * Closure compiler always assumes that `toString` has no side-effects. We use this quirk to\r\n * allow us to execute a function but have closure compiler mark the call as no-side-effects.\r\n * It is important that the return value for the `noSideEffects` function be assigned\r\n * to something which is retained otherwise the call to `noSideEffects` will be removed by closure\r\n * compiler.\r\n */\r\nexport declare function ɵnoSideEffects<T>(fn: () => T): T;\r\n\r\nexport declare const ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR: {};\r\n\r\nexport declare function ɵnov(view: ViewData, index: number): any;\r\n\r\nexport declare function ɵoverrideComponentView(comp: Type<any>, componentFactory: ComponentFactory<any>): void;\r\n\r\nexport declare function ɵoverrideProvider(override: ProviderOverride): void;\r\n\r\nexport declare function ɵpad(checkIndex: number, argCount: number): NodeDef;\r\n\r\n/**\r\n * Patch the definition of a component with directives and pipes from the compilation scope of\r\n * a given module.\r\n */\r\nexport declare function ɵpatchComponentDefWithScope<C>(componentDef: ɵComponentDef<C>, transitiveScopes: ɵNgModuleTransitiveScopes): void;\r\n\r\nexport declare function ɵpid(flags: ɵNodeFlags, ctor: any, deps: ([ɵDepFlags, any] | any)[]): NodeDef;\r\n\r\n/**\r\n * Runtime link information for Pipes.\r\n *\r\n * This is an internal data structure used by the renderer to link\r\n * pipes into templates.\r\n *\r\n * NOTE: Always use `definePipe` function to create this object,\r\n * never create the object directly since the shape of this object\r\n * can change between versions.\r\n *\r\n * See: {@link definePipe}\r\n */\r\nexport declare interface ɵPipeDef<T> {\r\n    /** Token representing the pipe. */\r\n    type: Type<T>;\r\n    /**\r\n     * Pipe name.\r\n     *\r\n     * Used to resolve pipe in templates.\r\n     */\r\n    readonly name: string;\r\n    /**\r\n     * Factory function used to create a new pipe instance. Will be null initially.\r\n     * Populated when the factory is first requested by pipe instantiation logic.\r\n     */\r\n    factory: FactoryFn<T> | null;\r\n    /**\r\n     * Whether or not the pipe is pure.\r\n     *\r\n     * Pure pipes result only depends on the pipe input and not on internal\r\n     * state of the pipe.\r\n     */\r\n    readonly pure: boolean;\r\n    onDestroy: (() => void) | null;\r\n}\r\n\r\n\r\n/**\r\n * A shared interface which contains an animation player\r\n */\r\nexport declare interface ɵPlayer {\r\n    parent?: ɵPlayer | null;\r\n    state: ɵPlayState;\r\n    play(): void;\r\n    pause(): void;\r\n    finish(): void;\r\n    destroy(): void;\r\n    addEventListener(state: ɵPlayState | string, cb: (data?: any) => any): void;\r\n}\r\n\r\n/**\r\n * Used as a reference to build a player from a styling template binding\r\n * (`[style]` and `[class]`).\r\n *\r\n * The `fn` function will be called once any styling-related changes are\r\n * evaluated on an element and is expected to return a player that will\r\n * be then run on the element.\r\n *\r\n * `[style]`, `[style.prop]`, `[class]` and `[class.name]` template bindings\r\n * all accept a `PlayerFactory` as input and this player factories.\r\n */\r\nexport declare interface ɵPlayerFactory {\r\n    '__brand__': 'Brand for PlayerFactory that nothing will match';\r\n}\r\n\r\n/**\r\n * Designed to be used as an injection service to capture all animation players.\r\n *\r\n * When present all animation players will be passed into the flush method below.\r\n * This feature is designed to service application-wide animation testing, live\r\n * debugging as well as custom animation choreographing tools.\r\n */\r\nexport declare interface ɵPlayerHandler {\r\n    /**\r\n     * Designed to kick off the player at the end of change detection\r\n     */\r\n    flushPlayers(): void;\r\n    /**\r\n     * @param player The player that has been scheduled to run within the application.\r\n     * @param context The context as to where the player was bound to\r\n     */\r\n    queuePlayer(player: ɵPlayer, context: ComponentInstance | DirectiveInstance | HTMLElement): void;\r\n}\r\n\r\n/**\r\n * The state of a given player\r\n *\r\n * Do not change the increasing nature of the numbers since the player\r\n * code may compare state by checking if a number is higher or lower than\r\n * a certain numeric value.\r\n */\r\nexport declare const enum ɵPlayState {\r\n    Pending = 0,\r\n    Running = 1,\r\n    Paused = 2,\r\n    Finished = 100,\r\n    Destroyed = 200\r\n}\r\n\r\nexport declare function ɵpod(checkIndex: number, propToIndex: {\r\n    [p: string]: number;\r\n}): NodeDef;\r\n\r\nexport declare function ɵppd(checkIndex: number, argCount: number): NodeDef;\r\n\r\nexport declare function ɵprd(flags: ɵNodeFlags, matchedQueries: null | [string | number, ɵQueryValueType][], token: any, value: any, deps: ([ɵDepFlags, any] | any)[]): NodeDef;\r\n\r\n/**\r\n * Profiler function which the runtime will invoke before and after user code.\r\n */\r\nexport declare interface ɵProfiler {\r\n    (event: ɵProfilerEvent, instance: {} | null, hookOrListener?: (e?: any) => any): void;\r\n}\r\n\r\n\r\n/**\r\n * Profiler events is an enum used by the profiler to distinguish between different calls of user\r\n * code invoked throughout the application lifecycle.\r\n */\r\nexport declare const enum ɵProfilerEvent {\r\n    /**\r\n     * Corresponds to the point in time before the runtime has called the template function of a\r\n     * component with `RenderFlags.Create`.\r\n     */\r\n    TemplateCreateStart = 0,\r\n    /**\r\n     * Corresponds to the point in time after the runtime has called the template function of a\r\n     * component with `RenderFlags.Create`.\r\n     */\r\n    TemplateCreateEnd = 1,\r\n    /**\r\n     * Corresponds to the point in time before the runtime has called the template function of a\r\n     * component with `RenderFlags.Update`.\r\n     */\r\n    TemplateUpdateStart = 2,\r\n    /**\r\n     * Corresponds to the point in time after the runtime has called the template function of a\r\n     * component with `RenderFlags.Update`.\r\n     */\r\n    TemplateUpdateEnd = 3,\r\n    /**\r\n     * Corresponds to the point in time before the runtime has called a lifecycle hook of a component\r\n     * or directive.\r\n     */\r\n    LifecycleHookStart = 4,\r\n    /**\r\n     * Corresponds to the point in time after the runtime has called a lifecycle hook of a component\r\n     * or directive.\r\n     */\r\n    LifecycleHookEnd = 5,\r\n    /**\r\n     * Corresponds to the point in time before the runtime has evaluated an expression associated with\r\n     * an event or an output.\r\n     */\r\n    OutputStart = 6,\r\n    /**\r\n     * Corresponds to the point in time after the runtime has evaluated an expression associated with\r\n     * an event or an output.\r\n     */\r\n    OutputEnd = 7\r\n}\r\n\r\n/**\r\n * Publishes a collection of default debug tools onto`window.ng`.\r\n *\r\n * These functions are available globally when Angular is in development\r\n * mode and are automatically stripped away from prod mode is on.\r\n */\r\nexport declare function ɵpublishDefaultGlobalUtils(): void;\r\n\r\n/**\r\n * Publishes the given function to `window.ng` so that it can be\r\n * used from the browser console when an application is not in production.\r\n */\r\nexport declare function ɵpublishGlobalUtil(name: string, fn: Function): void;\r\n\r\nexport declare function ɵqud(flags: ɵNodeFlags, id: number, bindings: {\r\n    [propName: string]: ɵQueryBindingType;\r\n}): NodeDef;\r\n\r\nexport declare const enum ɵQueryBindingType {\r\n    First = 0,\r\n    All = 1\r\n}\r\n\r\nexport declare const enum ɵQueryValueType {\r\n    ElementRef = 0,\r\n    RenderElement = 1,\r\n    TemplateRef = 2,\r\n    ViewContainerRef = 3,\r\n    Provider = 4\r\n}\r\n\r\nexport declare class ɵReflectionCapabilities implements PlatformReflectionCapabilities {\r\n    private _reflect;\r\n    constructor(reflect?: any);\r\n    isReflectionEnabled(): boolean;\r\n    factory<T>(t: Type<T>): (args: any[]) => T;\r\n    private _ownParameters;\r\n    parameters(type: Type<any>): any[][];\r\n    private _ownAnnotations;\r\n    annotations(typeOrFunc: Type<any>): any[];\r\n    private _ownPropMetadata;\r\n    propMetadata(typeOrFunc: any): {\r\n        [key: string]: any[];\r\n    };\r\n    ownPropMetadata(typeOrFunc: any): {\r\n        [key: string]: any[];\r\n    };\r\n    hasLifecycleHook(type: any, lcProperty: string): boolean;\r\n    guards(type: any): {\r\n        [key: string]: any;\r\n    };\r\n    getter(name: string): ɵGetterFn;\r\n    setter(name: string): ɵSetterFn;\r\n    method(name: string): ɵMethodFn;\r\n    importUri(type: any): string;\r\n    resourceUri(type: any): string;\r\n    resolveIdentifier(name: string, moduleUrl: string, members: string[], runtime: any): any;\r\n    resolveEnum(enumIdentifier: any, name: string): any;\r\n}\r\n\r\n/**\r\n * Register locale 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\nexport declare function ɵregisterLocaleData(data: any, localeId?: string | any, extraData?: any): void;\r\n\r\n/**\r\n * Registers a loaded module. Should only be called from generated NgModuleFactory code.\r\n * @publicApi\r\n */\r\nexport declare function ɵregisterModuleFactory(id: string, factory: NgModuleFactory<any>): void;\r\n\r\nexport declare function ɵregisterNgModuleType(ngModuleType: ɵNgModuleType): void;\r\n\r\n/**\r\n * Render3 implementation of {@link viewEngine_ComponentFactory}.\r\n */\r\nexport declare class ɵRender3ComponentFactory<T> extends ComponentFactory<T> {\r\n    private componentDef;\r\n    private ngModule?;\r\n    selector: string;\r\n    componentType: Type<any>;\r\n    ngContentSelectors: string[];\r\n    isBoundToModule: boolean;\r\n    get inputs(): {\r\n        propName: string;\r\n        templateName: string;\r\n    }[];\r\n    get outputs(): {\r\n        propName: string;\r\n        templateName: string;\r\n    }[];\r\n    /**\r\n     * @param componentDef The component definition.\r\n     * @param ngModule The NgModuleRef to which the factory is bound.\r\n     */\r\n    constructor(componentDef: ɵComponentDef<any>, ngModule?: NgModuleRef<any> | undefined);\r\n    create(injector: Injector, projectableNodes?: any[][] | undefined, rootSelectorOrNode?: any, ngModule?: NgModuleRef<any> | undefined): ComponentRef<T>;\r\n}\r\n\r\n/**\r\n * Represents an instance of a Component created via a {@link ComponentFactory}.\r\n *\r\n * `ComponentRef` provides access to the Component Instance as well other objects related to this\r\n * Component Instance and allows you to destroy the Component Instance via the {@link #destroy}\r\n * method.\r\n *\r\n */\r\nexport declare class ɵRender3ComponentRef<T> extends ComponentRef<T> {\r\n    location: ElementRef;\r\n    private _rootLView;\r\n    private _tNode;\r\n    instance: T;\r\n    hostView: ViewRef_2<T>;\r\n    changeDetectorRef: ChangeDetectorRef;\r\n    componentType: Type<T>;\r\n    constructor(componentType: Type<T>, instance: T, location: ElementRef, _rootLView: ɵangular_packages_core_core_ca, _tNode: ɵangular_packages_core_core_bk | TContainerNode | TElementContainerNode);\r\n    get injector(): Injector;\r\n    destroy(): void;\r\n    onDestroy(callback: () => void): void;\r\n}\r\n\r\nexport declare class ɵRender3NgModuleRef<T> extends NgModuleRef<T> implements InternalNgModuleRef<T> {\r\n    _parent: Injector | null;\r\n    _bootstrapComponents: Type<any>[];\r\n    _r3Injector: R3Injector;\r\n    injector: Injector;\r\n    instance: T;\r\n    destroyCbs: (() => void)[] | null;\r\n    readonly componentFactoryResolver: ComponentFactoryResolver_2;\r\n    constructor(ngModuleType: Type<T>, _parent: Injector | null);\r\n    get(token: any, notFoundValue?: any, injectFlags?: InjectFlags): any;\r\n    destroy(): void;\r\n    onDestroy(callback: () => void): void;\r\n}\r\n\r\n/**\r\n * Bootstraps a Component into an existing host element and returns an instance\r\n * of the component.\r\n *\r\n * Use this function to bootstrap a component into the DOM tree. Each invocation\r\n * of this function will create a separate tree of components, injectors and\r\n * change detection cycles and lifetimes. To dynamically insert a new component\r\n * into an existing tree such that it shares the same injection, change detection\r\n * and object lifetime, use {@link ViewContainer#createComponent}.\r\n *\r\n * @param componentType Component to bootstrap\r\n * @param options Optional parameters which control bootstrapping\r\n */\r\nexport declare function ɵrenderComponent<T>(componentType: ɵComponentType<T> | Type<T>, opts?: CreateComponentOptions): T;\r\n\r\n/**\r\n * Flags passed into template functions to determine which blocks (i.e. creation, update)\r\n * should be executed.\r\n *\r\n * Typically, a template runs both the creation block and the update block on initialization and\r\n * subsequent runs only execute the update block. However, dynamically created views require that\r\n * the creation block be executed separately from the update block (for backwards compat).\r\n */\r\nexport declare const enum ɵRenderFlags {\r\n    Create = 1,\r\n    Update = 2\r\n}\r\n\r\nexport declare function ɵresetCompiledComponents(): void;\r\n\r\nexport declare function ɵresetJitOptions(): void;\r\n\r\n/**\r\n * Used to resolve resource URLs on `@Component` when used with JIT compilation.\r\n *\r\n * Example:\r\n * ```\r\n * @Component({\r\n *   selector: 'my-comp',\r\n *   templateUrl: 'my-comp.html', // This requires asynchronous resolution\r\n * })\r\n * class MyComponent{\r\n * }\r\n *\r\n * // Calling `renderComponent` will fail because `renderComponent` is a synchronous process\r\n * // and `MyComponent`'s `@Component.templateUrl` needs to be resolved asynchronously.\r\n *\r\n * // Calling `resolveComponentResources()` will resolve `@Component.templateUrl` into\r\n * // `@Component.template`, which allows `renderComponent` to proceed in a synchronous manner.\r\n *\r\n * // Use browser's `fetch()` function as the default resource resolution strategy.\r\n * resolveComponentResources(fetch).then(() => {\r\n *   // After resolution all URLs have been converted into `template` strings.\r\n *   renderComponent(MyComponent);\r\n * });\r\n *\r\n * ```\r\n *\r\n * NOTE: In AOT the resolution happens during compilation, and so there should be no need\r\n * to call this method outside JIT mode.\r\n *\r\n * @param resourceResolver a function which is responsible for returning a `Promise` to the\r\n * contents of the resolved URL. Browser's `fetch()` method is a good default implementation.\r\n */\r\nexport declare function ɵresolveComponentResources(resourceResolver: (url: string) => (Promise<string | {\r\n    text(): Promise<string>;\r\n}>)): Promise<void>;\r\n\r\nexport declare class ɵRuntimeError extends Error {\r\n    code: ɵRuntimeErrorCode;\r\n    constructor(code: ɵRuntimeErrorCode, message: string);\r\n}\r\n\r\n\r\nexport declare const enum ɵRuntimeErrorCode {\r\n    EXPRESSION_CHANGED_AFTER_CHECKED = \"100\",\r\n    CYCLIC_DI_DEPENDENCY = \"200\",\r\n    PROVIDER_NOT_FOUND = \"201\",\r\n    MULTIPLE_COMPONENTS_MATCH = \"300\",\r\n    EXPORT_NOT_FOUND = \"301\",\r\n    PIPE_NOT_FOUND = \"302\",\r\n    UNKNOWN_BINDING = \"303\",\r\n    UNKNOWN_ELEMENT = \"304\",\r\n    TEMPLATE_STRUCTURE_ERROR = \"305\"\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as HTML.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵSafeHtml extends ɵSafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as a URL to load executable code from.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵSafeResourceUrl extends ɵSafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as JavaScript.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵSafeScript extends ɵSafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as style (CSS).\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵSafeStyle extends ɵSafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as a URL linking to a document.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵSafeUrl extends ɵSafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use in a particular context.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵSafeValue {\r\n}\r\n\r\n/**\r\n * Adds decorator, constructor, and property metadata to a given type via static metadata fields\r\n * on the type.\r\n *\r\n * These metadata fields can later be read with Angular's `ReflectionCapabilities` API.\r\n *\r\n * Calls to `setClassMetadata` can be guarded by ngDevMode, resulting in the metadata assignments\r\n * being tree-shaken away during production builds.\r\n */\r\nexport declare function ɵsetClassMetadata(type: Type<any>, decorators: any[] | null, ctorParameters: (() => any[]) | null, propDecorators: {\r\n    [field: string]: any;\r\n} | null): void;\r\n\r\nexport declare function ɵsetCurrentInjector(injector: Injector | null | undefined): Injector | undefined | null;\r\n\r\n\r\n/**\r\n * Tell ivy what the `document` is for this platform.\r\n *\r\n * It is only necessary to call this if the current platform is not a browser.\r\n *\r\n * @param document The object representing the global `document` in this environment.\r\n */\r\nexport declare function ɵsetDocument(document: Document | undefined): void;\r\n\r\n\r\n/**\r\n * Sets the locale id that will be used for translations and ICU expressions.\r\n * This is the ivy version of `LOCALE_ID` that was defined as an injection token for the view engine\r\n * but is now defined as a global value.\r\n *\r\n * @param localeId\r\n */\r\nexport declare function ɵsetLocaleId(localeId: string): void;\r\n\r\n\r\nexport declare type ɵSetterFn = (obj: any, value: any) => void;\r\n\r\n/** Store a value in the `data` at a given `index`. */\r\nexport declare function ɵstore<T>(tView: TView, lView: ɵangular_packages_core_core_ca, index: number, value: T): void;\r\n\r\n\r\nexport declare function ɵstringify(token: any): string;\r\n\r\nexport declare const ɵSWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__: typeof ɵangular_packages_core_core_r;\r\n\r\nexport declare const ɵSWITCH_COMPILE_COMPONENT__POST_R3__: typeof ɵcompileComponent;\r\n\r\nexport declare const ɵSWITCH_COMPILE_DIRECTIVE__POST_R3__: typeof ɵcompileDirective;\r\n\r\nexport declare const ɵSWITCH_COMPILE_INJECTABLE__POST_R3__: typeof compileInjectable;\r\n\r\nexport declare const ɵSWITCH_COMPILE_NGMODULE__POST_R3__: typeof ɵcompileNgModule;\r\n\r\nexport declare const ɵSWITCH_COMPILE_PIPE__POST_R3__: typeof ɵcompilePipe;\r\n\r\nexport declare const ɵSWITCH_ELEMENT_REF_FACTORY__POST_R3__: typeof ɵangular_packages_core_core_i;\r\n\r\n\r\nexport declare const ɵSWITCH_IVY_ENABLED__POST_R3__ = true;\r\n\r\nexport declare const ɵSWITCH_RENDERER2_FACTORY__POST_R3__: typeof ɵangular_packages_core_core_h;\r\n\r\nexport declare const ɵSWITCH_TEMPLATE_REF_FACTORY__POST_R3__: typeof ɵangular_packages_core_core_l;\r\n\r\nexport declare const ɵSWITCH_VIEW_CONTAINER_REF_FACTORY__POST_R3__: typeof ɵangular_packages_core_core_n;\r\n\r\nexport declare function ɵted(checkIndex: number, ngContentIndex: number | null, staticText: string[]): NodeDef;\r\n\r\n/**\r\n * Compute the pair of transitive scopes (compilation scope and exported scope) for a given module.\r\n *\r\n * This operation is memoized and the result is cached on the module's definition. This function can\r\n * be called on modules with components that have not fully compiled yet, but the result should not\r\n * be used until they have.\r\n *\r\n * @param moduleType module that transitive scope should be calculated for.\r\n */\r\nexport declare function ɵtransitiveScopesFor<T>(moduleType: Type<T>): ɵNgModuleTransitiveScopes;\r\n\r\n/**\r\n * Helper function to remove all the locale data from `LOCALE_DATA`.\r\n */\r\nexport declare function ɵunregisterLocaleData(): void;\r\n\r\nexport declare function ɵunv(view: ViewData, nodeIdx: number, bindingIdx: number, value: any): any;\r\n\r\nexport declare function ɵunwrapSafeValue(value: ɵSafeValue): string;\r\n\r\nexport declare function ɵunwrapSafeValue<T>(value: T): T;\r\n\r\nexport declare function ɵvid(flags: ɵViewFlags, nodes: NodeDef[], updateDirectives?: null | ViewUpdateFn, updateRenderer?: null | ViewUpdateFn): ɵViewDefinition;\r\n\r\nexport declare interface ɵViewDefinition extends Definition<ViewDefinitionFactory> {\r\n    flags: ɵViewFlags;\r\n    updateDirectives: ViewUpdateFn;\r\n    updateRenderer: ViewUpdateFn;\r\n    handleEvent: ViewHandleEventFn;\r\n    /**\r\n     * Order: Depth first.\r\n     * Especially providers are before elements / anchors.\r\n     */\r\n    nodes: NodeDef[];\r\n    /** aggregated NodeFlags for all nodes **/\r\n    nodeFlags: ɵNodeFlags;\r\n    rootNodeFlags: ɵNodeFlags;\r\n    lastRenderRootNode: NodeDef | null;\r\n    bindingCount: number;\r\n    outputCount: number;\r\n    /**\r\n     * Binary or of all query ids that are matched by one of the nodes.\r\n     * This includes query ids from templates as well.\r\n     * Used as a bloom filter.\r\n     */\r\n    nodeMatchedQueries: number;\r\n}\r\n\r\n/**\r\n * Bitmask for ViewDefinition.flags.\r\n */\r\nexport declare const enum ɵViewFlags {\r\n    None = 0,\r\n    OnPush = 2\r\n}\r\n\r\n/**\r\n * Wait on component until it is rendered.\r\n *\r\n * This function returns a `Promise` which is resolved when the component's\r\n * change detection is executed. This is determined by finding the scheduler\r\n * associated with the `component`'s render tree and waiting until the scheduler\r\n * flushes. If nothing is scheduled, the function returns a resolved promise.\r\n *\r\n * Example:\r\n * ```\r\n * await whenRendered(myComponent);\r\n * ```\r\n *\r\n * @param component Component to wait upon\r\n * @returns Promise which resolves when the component is rendered.\r\n */\r\nexport declare function ɵwhenRendered(component: any): Promise<null>;\r\n\r\n/**\r\n * Advances to an element for later binding instructions.\r\n *\r\n * Used in conjunction with instructions like {@link property} to act on elements with specified\r\n * indices, for example those created with {@link element} or {@link elementStart}.\r\n *\r\n * ```ts\r\n * (rf: RenderFlags, ctx: any) => {\r\n *   if (rf & 1) {\r\n *     text(0, 'Hello');\r\n *     text(1, 'Goodbye')\r\n *     element(2, 'div');\r\n *   }\r\n *   if (rf & 2) {\r\n *     advance(2); // Advance twice to the <div>.\r\n *     property('title', 'test');\r\n *   }\r\n *  }\r\n * ```\r\n * @param delta Number of elements to advance forwards by.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵadvance(delta: number): void;\r\n\r\n/**\r\n * Updates the value of or removes a bound attribute on an Element.\r\n *\r\n * Used in the case of `[attr.title]=\"value\"`\r\n *\r\n * @param name name The name of the attribute.\r\n * @param value value The attribute is removed when value is `null` or `undefined`.\r\n *                  Otherwise the attribute value is set to the stringified value.\r\n * @param sanitizer An optional function used to sanitize the value.\r\n * @param namespace Optional namespace to use when setting the attribute.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattribute(name: string, value: any, sanitizer?: SanitizerFn | null, namespace?: string): typeof ɵɵattribute;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with single bound value surrounded by text.\r\n *\r\n * Used when the value passed to a property has 1 interpolated value in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate1('title', 'prefix', v0, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate1(attrName: string, prefix: string, v0: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate1;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 2 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 2 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate2('title', 'prefix', v0, '-', v1, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate2(attrName: string, prefix: string, v0: any, i0: string, v1: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate2;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 3 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 3 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate3(\r\n * 'title', 'prefix', v0, '-', v1, '-', v2, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate3(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate3;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 4 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 4 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate4(\r\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate4(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate4;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 5 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 5 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate5(\r\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate5(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate5;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 6 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 6 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate6(\r\n *    'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate6(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate6;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 7 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 7 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate7(\r\n *    'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate7(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate7;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 8 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 8 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate8(\r\n *  'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param i6 Static value used for concatenation only.\r\n * @param v7 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate8(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate8;\r\n\r\n/**\r\n * Update an interpolated attribute on an element with 9 or more bound values surrounded by text.\r\n *\r\n * Used when the number of interpolated values exceeds 8.\r\n *\r\n * ```html\r\n * <div\r\n *  title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolateV(\r\n *  'title', ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\r\n *  'suffix']);\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update.\r\n * @param values The collection of values and the strings in-between those values, beginning with\r\n * a string prefix and ending with a string suffix.\r\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolateV(attrName: string, values: any[], sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolateV;\r\n\r\n/**\r\n * Update class bindings using an object literal or class-string on an element.\r\n *\r\n * This instruction is meant to apply styling via the `[class]=\"exp\"` template bindings.\r\n * When classes are applied to the element they will then be updated with\r\n * respect to any styles/classes set via `classProp`. If any\r\n * classes are set to falsy then they will be removed from the element.\r\n *\r\n * Note that the styling instruction will not be applied until `stylingApply` is called.\r\n * Note that this will the provided classMap value to the host element if this function is called\r\n * within a host binding.\r\n *\r\n * @param classes A key/value map or string of CSS classes that will be added to the\r\n *        given element. Any missing classes (that have already been applied to the element\r\n *        beforehand) will be removed (unset) from the element's list of CSS classes.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMap(classes: {\r\n    [className: string]: boolean | undefined | null;\r\n} | string | undefined | null): void;\r\n\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with single bound value surrounded by text.\r\n *\r\n * Used when the value passed to a property has 1 interpolated value in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate1('prefix', v0, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate1(prefix: string, v0: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 2 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 2 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate2('prefix', v0, '-', v1, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate2(prefix: string, v0: any, i0: string, v1: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 3 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 3 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate3(\r\n * 'prefix', v0, '-', v1, '-', v2, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate3(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 4 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 4 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate4(\r\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate4(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 5 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 5 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate5(\r\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate5(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 6 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 6 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate6(\r\n *    'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate6(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 7 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 7 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate7(\r\n *    'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate7(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 8 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 8 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate8(\r\n *  'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param i6 Static value used for concatenation only.\r\n * @param v7 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate8(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string): void;\r\n\r\n/**\r\n * Update an interpolated class on an element with 9 or more bound values surrounded by text.\r\n *\r\n * Used when the number of interpolated values exceeds 8.\r\n *\r\n * ```html\r\n * <div\r\n *  class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolateV(\r\n *  ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\r\n *  'suffix']);\r\n * ```\r\n *.\r\n * @param values The collection of values and the strings in-between those values, beginning with\r\n * a string prefix and ending with a string suffix.\r\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolateV(values: any[]): void;\r\n\r\n/**\r\n * Update a class binding on an element with the provided value.\r\n *\r\n * This instruction is meant to handle the `[class.foo]=\"exp\"` case and,\r\n * therefore, the class binding itself must already be allocated using\r\n * `styling` within the creation block.\r\n *\r\n * @param prop A valid CSS class (only one).\r\n * @param value A true/false value which will turn the class on or off.\r\n *\r\n * Note that this will apply the provided class value to the host element if this function\r\n * is called within a host binding function.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassProp(className: string, value: boolean | undefined | null): typeof ɵɵclassProp;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare type ɵɵComponentDeclaration<T, Selector extends String, ExportAs extends string[], InputMap extends {\r\n    [key: string]: string;\r\n}, OutputMap extends {\r\n    [key: string]: string;\r\n}, QueryFields extends string[], NgContentSelectors extends string[]> = unknown;\r\n\r\n/**\r\n * Registers a QueryList, associated with a content query, for later refresh (part of a view\r\n * refresh).\r\n *\r\n * @param directiveIndex Current directive index\r\n * @param predicate The type for which the query will search\r\n * @param flags Flags associated with the query\r\n * @param read What to save in the query\r\n * @returns QueryList<T>\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵcontentQuery<T>(directiveIndex: number, predicate: ProviderToken<unknown> | string[], flags: QueryFlags, read?: any): void;\r\n\r\n/**\r\n * Copies the fields not handled by the `ɵɵInheritDefinitionFeature` from the supertype of a\r\n * definition.\r\n *\r\n * This exists primarily to support ngcc migration of an existing View Engine pattern, where an\r\n * entire decorator is inherited from a parent to a child class. When ngcc detects this case, it\r\n * generates a skeleton definition on the child class, and applies this feature.\r\n *\r\n * The `ɵɵCopyDefinitionFeature` then copies any needed fields from the parent class' definition,\r\n * including things like the component template function.\r\n *\r\n * @param definition The definition of a child class which inherits from a parent class with its\r\n * own definition.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵCopyDefinitionFeature(definition: ɵDirectiveDef<any> | ɵComponentDef<any>): void;\r\n\r\n/**\r\n * Create a component definition object.\r\n *\r\n *\r\n * # Example\r\n * ```\r\n * class MyDirective {\r\n *   // Generated by Angular Template Compiler\r\n *   // [Symbol] syntax will not be supported by TypeScript until v2.7\r\n *   static ɵcmp = defineComponent({\r\n *     ...\r\n *   });\r\n * }\r\n * ```\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵdefineComponent<T>(componentDefinition: {\r\n    /**\r\n     * Directive type, needed to configure the injector.\r\n     */\r\n    type: Type<T>;\r\n    /** The selectors that will be used to match nodes to this component. */\r\n    selectors?: ɵCssSelectorList;\r\n    /**\r\n     * The number of nodes, local refs, and pipes in this component template.\r\n     *\r\n     * Used to calculate the length of this component's LView array, so we\r\n     * can pre-fill the array and set the binding start index.\r\n     */\r\n    decls: number;\r\n    /**\r\n     * The number of bindings in this component template (including pure fn bindings).\r\n     *\r\n     * Used to calculate the length of this component's LView array, so we\r\n     * can pre-fill the array and set the host binding start index.\r\n     */\r\n    vars: number;\r\n    /**\r\n     * A map of input names.\r\n     *\r\n     * The format is in: `{[actualPropertyName: string]:(string|[string, string])}`.\r\n     *\r\n     * Given:\r\n     * ```\r\n     * class MyComponent {\r\n     *   @Input()\r\n     *   publicInput1: string;\r\n     *\r\n     *   @Input('publicInput2')\r\n     *   declaredInput2: string;\r\n     * }\r\n     * ```\r\n     *\r\n     * is described as:\r\n     * ```\r\n     * {\r\n     *   publicInput1: 'publicInput1',\r\n     *   declaredInput2: ['publicInput2', 'declaredInput2'],\r\n     * }\r\n     * ```\r\n     *\r\n     * Which the minifier may translate to:\r\n     * ```\r\n     * {\r\n     *   minifiedPublicInput1: 'publicInput1',\r\n     *   minifiedDeclaredInput2: ['publicInput2', 'declaredInput2'],\r\n     * }\r\n     * ```\r\n     *\r\n     * This allows the render to re-construct the minified, public, and declared names\r\n     * of properties.\r\n     *\r\n     * NOTE:\r\n     *  - Because declared and public name are usually same we only generate the array\r\n     *    `['public', 'declared']` format when they differ.\r\n     *  - The reason why this API and `outputs` API is not the same is that `NgOnChanges` has\r\n     *    inconsistent behavior in that it uses declared names rather than minified or public. For\r\n     *    this reason `NgOnChanges` will be deprecated and removed in future version and this\r\n     *    API will be simplified to be consistent with `output`.\r\n     */\r\n    inputs?: {\r\n        [P in keyof T]?: string | [string, string];\r\n    };\r\n    /**\r\n     * A map of output names.\r\n     *\r\n     * The format is in: `{[actualPropertyName: string]:string}`.\r\n     *\r\n     * Which the minifier may translate to: `{[minifiedPropertyName: string]:string}`.\r\n     *\r\n     * This allows the render to re-construct the minified and non-minified names\r\n     * of properties.\r\n     */\r\n    outputs?: {\r\n        [P in keyof T]?: string;\r\n    };\r\n    /**\r\n     * Function executed by the parent template to allow child directive to apply host bindings.\r\n     */\r\n    hostBindings?: HostBindingsFunction<T>;\r\n    /**\r\n     * The number of bindings in this directive `hostBindings` (including pure fn bindings).\r\n     *\r\n     * Used to calculate the length of the component's LView array, so we\r\n     * can pre-fill the array and set the host binding start index.\r\n     */\r\n    hostVars?: number;\r\n    /**\r\n     * Assign static attribute values to a host element.\r\n     *\r\n     * This property will assign static attribute values as well as class and style\r\n     * values to a host element. Since attribute values can consist of different types of values, the\r\n     * `hostAttrs` array must include the values in the following format:\r\n     *\r\n     * attrs = [\r\n     *   // static attributes (like `title`, `name`, `id`...)\r\n     *   attr1, value1, attr2, value,\r\n     *\r\n     *   // a single namespace value (like `x:id`)\r\n     *   NAMESPACE_MARKER, namespaceUri1, name1, value1,\r\n     *\r\n     *   // another single namespace value (like `x:name`)\r\n     *   NAMESPACE_MARKER, namespaceUri2, name2, value2,\r\n     *\r\n     *   // a series of CSS classes that will be applied to the element (no spaces)\r\n     *   CLASSES_MARKER, class1, class2, class3,\r\n     *\r\n     *   // a series of CSS styles (property + value) that will be applied to the element\r\n     *   STYLES_MARKER, prop1, value1, prop2, value2\r\n     * ]\r\n     *\r\n     * All non-class and non-style attributes must be defined at the start of the list\r\n     * first before all class and style values are set. When there is a change in value\r\n     * type (like when classes and styles are introduced) a marker must be used to separate\r\n     * the entries. The marker values themselves are set via entries found in the\r\n     * [AttributeMarker] enum.\r\n     */\r\n    hostAttrs?: TAttributes;\r\n    /**\r\n     * Function to create instances of content queries associated with a given directive.\r\n     */\r\n    contentQueries?: ContentQueriesFunction<T>;\r\n    /**\r\n     * Defines the name that can be used in the template to assign this directive to a variable.\r\n     *\r\n     * See: {@link Directive.exportAs}\r\n     */\r\n    exportAs?: string[];\r\n    /**\r\n     * Template function use for rendering DOM.\r\n     *\r\n     * This function has following structure.\r\n     *\r\n     * ```\r\n     * function Template<T>(ctx:T, creationMode: boolean) {\r\n     *   if (creationMode) {\r\n     *     // Contains creation mode instructions.\r\n     *   }\r\n     *   // Contains binding update instructions\r\n     * }\r\n     * ```\r\n     *\r\n     * Common instructions are:\r\n     * Creation mode instructions:\r\n     *  - `elementStart`, `elementEnd`\r\n     *  - `text`\r\n     *  - `container`\r\n     *  - `listener`\r\n     *\r\n     * Binding update instructions:\r\n     * - `bind`\r\n     * - `elementAttribute`\r\n     * - `elementProperty`\r\n     * - `elementClass`\r\n     * - `elementStyle`\r\n     *\r\n     */\r\n    template: ComponentTemplate<T>;\r\n    /**\r\n     * Constants for the nodes in the component's view.\r\n     * Includes attribute arrays, local definition arrays etc.\r\n     */\r\n    consts?: TConstantsOrFactory;\r\n    /**\r\n     * An array of `ngContent[selector]` values that were found in the template.\r\n     */\r\n    ngContentSelectors?: string[];\r\n    /**\r\n     * Additional set of instructions specific to view query processing. This could be seen as a\r\n     * set of instruction to be inserted into the template function.\r\n     *\r\n     * Query-related instructions need to be pulled out to a specific function as a timing of\r\n     * execution is different as compared to all other instructions (after change detection hooks but\r\n     * before view hooks).\r\n     */\r\n    viewQuery?: ViewQueriesFunction<T> | null;\r\n    /**\r\n     * A list of optional features to apply.\r\n     *\r\n     * See: {@link NgOnChangesFeature}, {@link ProvidersFeature}\r\n     */\r\n    features?: ComponentDefFeature[];\r\n    /**\r\n     * Defines template and style encapsulation options available for Component's {@link Component}.\r\n     */\r\n    encapsulation?: ViewEncapsulation;\r\n    /**\r\n     * Defines arbitrary developer-defined data to be stored on a renderer instance.\r\n     * This is useful for renderers that delegate to other renderers.\r\n     *\r\n     * see: animation\r\n     */\r\n    data?: {\r\n        [kind: string]: any;\r\n    };\r\n    /**\r\n     * A set of styles that the component needs to be present for component to render correctly.\r\n     */\r\n    styles?: string[];\r\n    /**\r\n     * The strategy that the default change detector uses to detect changes.\r\n     * When set, takes effect the next time change detection is triggered.\r\n     */\r\n    changeDetection?: ChangeDetectionStrategy;\r\n    /**\r\n     * Registry of directives and components that may be found in this component's view.\r\n     *\r\n     * The property is either an array of `DirectiveDef`s or a function which returns the array of\r\n     * `DirectiveDef`s. The function is necessary to be able to support forward declarations.\r\n     */\r\n    directives?: DirectiveTypesOrFactory | null;\r\n    /**\r\n     * Registry of pipes that may be found in this component's view.\r\n     *\r\n     * The property is either an array of `PipeDefs`s or a function which returns the array of\r\n     * `PipeDefs`s. The function is necessary to be able to support forward declarations.\r\n     */\r\n    pipes?: PipeTypesOrFactory | null;\r\n    /**\r\n     * The set of schemas that declare elements to be allowed in the component's template.\r\n     */\r\n    schemas?: SchemaMetadata[] | null;\r\n}): unknown;\r\n\r\n/**\r\n * Create a directive definition object.\r\n *\r\n * # Example\r\n * ```ts\r\n * class MyDirective {\r\n *   // Generated by Angular Template Compiler\r\n *   // [Symbol] syntax will not be supported by TypeScript until v2.7\r\n *   static ɵdir = ɵɵdefineDirective({\r\n *     ...\r\n *   });\r\n * }\r\n * ```\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare const ɵɵdefineDirective: <T>(directiveDefinition: {\r\n    /**\r\n     * Directive type, needed to configure the injector.\r\n     */\r\n    type: Type<T>;\r\n    /** The selectors that will be used to match nodes to this directive. */\r\n    selectors?: ɵCssSelectorList | undefined;\r\n    /**\r\n     * A map of input names.\r\n     *\r\n     * The format is in: `{[actualPropertyName: string]:(string|[string, string])}`.\r\n     *\r\n     * Given:\r\n     * ```\r\n     * class MyComponent {\r\n     *   @Input()\r\n     *   publicInput1: string;\r\n     *\r\n     *   @Input('publicInput2')\r\n     *   declaredInput2: string;\r\n     * }\r\n     * ```\r\n     *\r\n     * is described as:\r\n     * ```\r\n     * {\r\n     *   publicInput1: 'publicInput1',\r\n     *   declaredInput2: ['declaredInput2', 'publicInput2'],\r\n     * }\r\n     * ```\r\n     *\r\n     * Which the minifier may translate to:\r\n     * ```\r\n     * {\r\n     *   minifiedPublicInput1: 'publicInput1',\r\n     *   minifiedDeclaredInput2: [ 'publicInput2', 'declaredInput2'],\r\n     * }\r\n     * ```\r\n     *\r\n     * This allows the render to re-construct the minified, public, and declared names\r\n     * of properties.\r\n     *\r\n     * NOTE:\r\n     *  - Because declared and public name are usually same we only generate the array\r\n     *    `['declared', 'public']` format when they differ.\r\n     *  - The reason why this API and `outputs` API is not the same is that `NgOnChanges` has\r\n     *    inconsistent behavior in that it uses declared names rather than minified or public. For\r\n     *    this reason `NgOnChanges` will be deprecated and removed in future version and this\r\n     *    API will be simplified to be consistent with `output`.\r\n     */\r\n    inputs?: { [P in keyof T]?: string | [string, string] | undefined; } | undefined;\r\n    /**\r\n     * A map of output names.\r\n     *\r\n     * The format is in: `{[actualPropertyName: string]:string}`.\r\n     *\r\n     * Which the minifier may translate to: `{[minifiedPropertyName: string]:string}`.\r\n     *\r\n     * This allows the render to re-construct the minified and non-minified names\r\n     * of properties.\r\n     */\r\n    outputs?: { [P_1 in keyof T]?: string | undefined; } | undefined;\r\n    /**\r\n     * A list of optional features to apply.\r\n     *\r\n     * See: {@link NgOnChangesFeature}, {@link ProvidersFeature}, {@link InheritDefinitionFeature}\r\n     */\r\n    features?: DirectiveDefFeature[] | undefined;\r\n    /**\r\n     * Function executed by the parent template to allow child directive to apply host bindings.\r\n     */\r\n    hostBindings?: HostBindingsFunction<T> | undefined;\r\n    /**\r\n     * The number of bindings in this directive `hostBindings` (including pure fn bindings).\r\n     *\r\n     * Used to calculate the length of the component's LView array, so we\r\n     * can pre-fill the array and set the host binding start index.\r\n     */\r\n    hostVars?: number | undefined;\r\n    /**\r\n     * Assign static attribute values to a host element.\r\n     *\r\n     * This property will assign static attribute values as well as class and style\r\n     * values to a host element. Since attribute values can consist of different types of values,\r\n     * the `hostAttrs` array must include the values in the following format:\r\n     *\r\n     * attrs = [\r\n     *   // static attributes (like `title`, `name`, `id`...)\r\n     *   attr1, value1, attr2, value,\r\n     *\r\n     *   // a single namespace value (like `x:id`)\r\n     *   NAMESPACE_MARKER, namespaceUri1, name1, value1,\r\n     *\r\n     *   // another single namespace value (like `x:name`)\r\n     *   NAMESPACE_MARKER, namespaceUri2, name2, value2,\r\n     *\r\n     *   // a series of CSS classes that will be applied to the element (no spaces)\r\n     *   CLASSES_MARKER, class1, class2, class3,\r\n     *\r\n     *   // a series of CSS styles (property + value) that will be applied to the element\r\n     *   STYLES_MARKER, prop1, value1, prop2, value2\r\n     * ]\r\n     *\r\n     * All non-class and non-style attributes must be defined at the start of the list\r\n     * first before all class and style values are set. When there is a change in value\r\n     * type (like when classes and styles are introduced) a marker must be used to separate\r\n     * the entries. The marker values themselves are set via entries found in the\r\n     * [AttributeMarker] enum.\r\n     */\r\n    hostAttrs?: TAttributes | undefined;\r\n    /**\r\n     * Function to create instances of content queries associated with a given directive.\r\n     */\r\n    contentQueries?: ContentQueriesFunction<T> | undefined;\r\n    /**\r\n     * Additional set of instructions specific to view query processing. This could be seen as a\r\n     * set of instructions to be inserted into the template function.\r\n     */\r\n    viewQuery?: ViewQueriesFunction<T> | null | undefined;\r\n    /**\r\n     * Defines the name that can be used in the template to assign this directive to a variable.\r\n     *\r\n     * See: {@link Directive.exportAs}\r\n     */\r\n    exportAs?: string[] | undefined;\r\n}) => never;\r\n\r\n/**\r\n * Construct an injectable definition which defines how a token will be constructed by the DI\r\n * system, and in which injectors (if any) it will be available.\r\n *\r\n * This should be assigned to a static `ɵprov` field on a type, which will then be an\r\n * `InjectableType`.\r\n *\r\n * Options:\r\n * * `providedIn` determines which injectors will include the injectable, by either associating it\r\n *   with an `@NgModule` or other `InjectorType`, or by specifying that this injectable should be\r\n *   provided in the `'root'` injector, which will be the application-level injector in most apps.\r\n * * `factory` gives the zero argument function which will create an instance of the injectable.\r\n *   The factory can call `inject` to access the `Injector` and request injection of dependencies.\r\n *\r\n * @codeGenApi\r\n * @publicApi This instruction has been emitted by ViewEngine for some time and is deployed to npm.\r\n */\r\nexport declare function ɵɵdefineInjectable<T>(opts: {\r\n    token: unknown;\r\n    providedIn?: Type<any> | 'root' | 'platform' | 'any' | null;\r\n    factory: () => T;\r\n}): unknown;\r\n\r\n/**\r\n * Construct an `InjectorDef` which configures an injector.\r\n *\r\n * This should be assigned to a static injector def (`ɵinj`) field on a type, which will then be an\r\n * `InjectorType`.\r\n *\r\n * Options:\r\n *\r\n * * `providers`: an optional array of providers to add to the injector. Each provider must\r\n *   either have a factory or point to a type which has a `ɵprov` static property (the\r\n *   type must be an `InjectableType`).\r\n * * `imports`: an optional array of imports of other `InjectorType`s or `InjectorTypeWithModule`s\r\n *   whose providers will also be added to the injector. Locally provided types will override\r\n *   providers from imports.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵdefineInjector(options: {\r\n    providers?: any[];\r\n    imports?: any[];\r\n}): unknown;\r\n\r\n/**\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵdefineNgModule<T>(def: {\r\n    /** Token representing the module. Used by DI. */\r\n    type: T;\r\n    /** List of components to bootstrap. */\r\n    bootstrap?: Type<any>[] | (() => Type<any>[]);\r\n    /** List of components, directives, and pipes declared by this module. */\r\n    declarations?: Type<any>[] | (() => Type<any>[]);\r\n    /** List of modules or `ModuleWithProviders` imported by this module. */\r\n    imports?: Type<any>[] | (() => Type<any>[]);\r\n    /**\r\n     * List of modules, `ModuleWithProviders`, components, directives, or pipes exported by this\r\n     * module.\r\n     */\r\n    exports?: Type<any>[] | (() => Type<any>[]);\r\n    /** The set of schemas that declare elements to be allowed in the NgModule. */\r\n    schemas?: SchemaMetadata[] | null;\r\n    /** Unique ID for the module that is used with `getModuleFactory`. */\r\n    id?: string | null;\r\n}): unknown;\r\n\r\n/**\r\n * Create a pipe definition object.\r\n *\r\n * # Example\r\n * ```\r\n * class MyPipe implements PipeTransform {\r\n *   // Generated by Angular Template Compiler\r\n *   static ɵpipe = definePipe({\r\n *     ...\r\n *   });\r\n * }\r\n * ```\r\n * @param pipeDef Pipe definition generated by the compiler\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵdefinePipe<T>(pipeDef: {\r\n    /** Name of the pipe. Used for matching pipes in template to pipe defs. */\r\n    name: string;\r\n    /** Pipe class reference. Needed to extract pipe lifecycle hooks. */\r\n    type: Type<T>;\r\n    /** Whether the pipe is pure. */\r\n    pure?: boolean;\r\n}): unknown;\r\n\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare type ɵɵDirectiveDeclaration<T, Selector extends string, ExportAs extends string[], InputMap extends {\r\n    [key: string]: string;\r\n}, OutputMap extends {\r\n    [key: string]: string;\r\n}, QueryFields extends string[]> = unknown;\r\n\r\n/**\r\n * Returns the value associated to the given token from the injectors.\r\n *\r\n * `directiveInject` is intended to be used for directive, component and pipe factories.\r\n *  All other injection use `inject` which does not walk the node injector tree.\r\n *\r\n * Usage example (in factory function):\r\n *\r\n * ```ts\r\n * class SomeDirective {\r\n *   constructor(directive: DirectiveA) {}\r\n *\r\n *   static ɵdir = ɵɵdefineDirective({\r\n *     type: SomeDirective,\r\n *     factory: () => new SomeDirective(ɵɵdirectiveInject(DirectiveA))\r\n *   });\r\n * }\r\n * ```\r\n * @param token the type or token to inject\r\n * @param flags Injection flags\r\n * @returns the value from the injector or `null` when not found\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵdirectiveInject<T>(token: ProviderToken<T>): T;\r\n\r\nexport declare function ɵɵdirectiveInject<T>(token: ProviderToken<T>, flags: InjectFlags): T;\r\n\r\n/**\r\n * Disables directive matching on element.\r\n *\r\n *  * Example:\r\n * ```\r\n * <my-comp my-directive>\r\n *   Should match component / directive.\r\n * </my-comp>\r\n * <div ngNonBindable>\r\n *   <!-- ɵɵdisableBindings() -->\r\n *   <my-comp my-directive>\r\n *     Should not match component / directive because we are in ngNonBindable.\r\n *   </my-comp>\r\n *   <!-- ɵɵenableBindings() -->\r\n * </div>\r\n * ```\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵdisableBindings(): void;\r\n\r\n/**\r\n * Creates an empty element using {@link elementStart} and {@link elementEnd}\r\n *\r\n * @param index Index of the element in the data array\r\n * @param name Name of the DOM Node\r\n * @param attrsIndex Index of the element's attributes in the `consts` array.\r\n * @param localRefsIndex Index of the element's local references in the `consts` array.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelement(index: number, name: string, attrsIndex?: number | null, localRefsIndex?: number): void;\r\n\r\n/**\r\n * Creates an empty logical container using {@link elementContainerStart}\r\n * and {@link elementContainerEnd}\r\n *\r\n * @param index Index of the element in the LView array\r\n * @param attrsIndex Index of the container attributes in the `consts` array.\r\n * @param localRefsIndex Index of the container's local references in the `consts` array.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelementContainer(index: number, attrsIndex?: number | null, localRefsIndex?: number): void;\r\n\r\n/**\r\n * Mark the end of the <ng-container>.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelementContainerEnd(): void;\r\n\r\n/**\r\n * Creates a logical container for other nodes (<ng-container>) backed by a comment node in the DOM.\r\n * The instruction must later be followed by `elementContainerEnd()` call.\r\n *\r\n * @param index Index of the element in the LView array\r\n * @param attrsIndex Index of the container attributes in the `consts` array.\r\n * @param localRefsIndex Index of the container's local references in the `consts` array.\r\n *\r\n * Even if this instruction accepts a set of attributes no actual attribute values are propagated to\r\n * the DOM (as a comment node can't have attributes). Attributes are here only for directive\r\n * matching purposes and setting initial inputs of directives.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelementContainerStart(index: number, attrsIndex?: number | null, localRefsIndex?: number): void;\r\n\r\n/**\r\n * Mark the end of the element.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelementEnd(): void;\r\n\r\n\r\n/**\r\n * Create DOM element. The instruction must later be followed by `elementEnd()` call.\r\n *\r\n * @param index Index of the element in the LView array\r\n * @param name Name of the DOM Node\r\n * @param attrsIndex Index of the element's attributes in the `consts` array.\r\n * @param localRefsIndex Index of the element's local references in the `consts` array.\r\n *\r\n * Attributes and localRefs are passed as an array of strings where elements with an even index\r\n * hold an attribute name and elements with an odd index hold an attribute value, ex.:\r\n * ['id', 'warning5', 'class', 'alert']\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelementStart(index: number, name: string, attrsIndex?: number | null, localRefsIndex?: number): void;\r\n\r\n/**\r\n * Enables directive matching on elements.\r\n *\r\n *  * Example:\r\n * ```\r\n * <my-comp my-directive>\r\n *   Should match component / directive.\r\n * </my-comp>\r\n * <div ngNonBindable>\r\n *   <!-- ɵɵdisableBindings() -->\r\n *   <my-comp my-directive>\r\n *     Should not match component / directive because we are in ngNonBindable.\r\n *   </my-comp>\r\n *   <!-- ɵɵenableBindings() -->\r\n * </div>\r\n * ```\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵenableBindings(): void;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare type ɵɵFactoryDeclaration<T, CtorDependencies extends CtorDependency[]> = unknown;\r\n\r\nexport declare enum ɵɵFactoryTarget {\r\n    Directive = 0,\r\n    Component = 1,\r\n    Injectable = 2,\r\n    Pipe = 3,\r\n    NgModule = 4\r\n}\r\n\r\n/**\r\n * Returns the current OpaqueViewState instance.\r\n *\r\n * Used in conjunction with the restoreView() instruction to save a snapshot\r\n * of the current view and restore it when listeners are invoked. This allows\r\n * walking the declaration view tree in listeners to get vars from parent views.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵgetCurrentView(): OpaqueViewState;\r\n\r\n/**\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵgetInheritedFactory<T>(type: Type<any>): (type: Type<T>) => T;\r\n\r\n/**\r\n * Update a property on a host element. Only applies to native node properties, not inputs.\r\n *\r\n * Operates on the element selected by index via the {@link select} instruction.\r\n *\r\n * @param propName Name of property. Because it is going to DOM, this is not subject to\r\n *        renaming as part of minification.\r\n * @param value New value to write.\r\n * @param sanitizer An optional function used to sanitize the value.\r\n * @returns This function returns itself so that it may be chained\r\n * (e.g. `property('name', ctx.name)('title', ctx.title)`)\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵhostProperty<T>(propName: string, value: T, sanitizer?: SanitizerFn | null): typeof ɵɵhostProperty;\r\n\r\n/**\r\n *\r\n * Use this instruction to create a translation block that doesn't contain any placeholder.\r\n * It calls both {@link i18nStart} and {@link i18nEnd} in one instruction.\r\n *\r\n * The translation `message` is the value which is locale specific. The translation string may\r\n * contain placeholders which associate inner elements and sub-templates within the translation.\r\n *\r\n * The translation `message` placeholders are:\r\n * - `�{index}(:{block})�`: *Binding Placeholder*: Marks a location where an expression will be\r\n *   interpolated into. The placeholder `index` points to the expression binding index. An optional\r\n *   `block` that matches the sub-template in which it was declared.\r\n * - `�#{index}(:{block})�`/`�/#{index}(:{block})�`: *Element Placeholder*:  Marks the beginning\r\n *   and end of DOM element that were embedded in the original translation block. The placeholder\r\n *   `index` points to the element index in the template instructions set. An optional `block` that\r\n *   matches the sub-template in which it was declared.\r\n * - `�*{index}:{block}�`/`�/*{index}:{block}�`: *Sub-template Placeholder*: Sub-templates must be\r\n *   split up and translated separately in each angular template function. The `index` points to the\r\n *   `template` instruction index. A `block` that matches the sub-template in which it was declared.\r\n *\r\n * @param index A unique index of the translation in the static block.\r\n * @param messageIndex An index of the translation message from the `def.consts` array.\r\n * @param subTemplateIndex Optional sub-template index in the `message`.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18n(index: number, messageIndex: number, subTemplateIndex?: number): void;\r\n\r\n/**\r\n * Updates a translation block or an i18n attribute when the bindings have changed.\r\n *\r\n * @param index Index of either {@link i18nStart} (translation block) or {@link i18nAttributes}\r\n * (i18n attribute) on which it should update the content.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18nApply(index: number): void;\r\n\r\n/**\r\n * Marks a list of attributes as translatable.\r\n *\r\n * @param index A unique index in the static block\r\n * @param values\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18nAttributes(index: number, attrsIndex: number): void;\r\n\r\n/**\r\n * Translates a translation block marked by `i18nStart` and `i18nEnd`. It inserts the text/ICU nodes\r\n * into the render tree, moves the placeholder nodes and removes the deleted nodes.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18nEnd(): void;\r\n\r\n/**\r\n * Stores the values of the bindings during each update cycle in order to determine if we need to\r\n * update the translated nodes.\r\n *\r\n * @param value The binding's value\r\n * @returns This function returns itself so that it may be chained\r\n * (e.g. `i18nExp(ctx.name)(ctx.title)`)\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18nExp<T>(value: T): typeof ɵɵi18nExp;\r\n\r\n/**\r\n * Handles message string post-processing for internationalization.\r\n *\r\n * Handles message string post-processing by transforming it from intermediate\r\n * format (that might contain some markers that we need to replace) to the final\r\n * form, consumable by i18nStart instruction. Post processing steps include:\r\n *\r\n * 1. Resolve all multi-value cases (like [�*1:1��#2:1�|�#4:1�|�5�])\r\n * 2. Replace all ICU vars (like \"VAR_PLURAL\")\r\n * 3. Replace all placeholders used inside ICUs in a form of {PLACEHOLDER}\r\n * 4. Replace all ICU references with corresponding values (like �ICU_EXP_ICU_1�)\r\n *    in case multiple ICUs have the same placeholder name\r\n *\r\n * @param message Raw translation string for post processing\r\n * @param replacements Set of replacements that should be applied\r\n *\r\n * @returns Transformed string that can be consumed by i18nStart instruction\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18nPostprocess(message: string, replacements?: {\r\n    [key: string]: (string | string[]);\r\n}): string;\r\n\r\n/**\r\n * Marks a block of text as translatable.\r\n *\r\n * The instructions `i18nStart` and `i18nEnd` mark the translation block in the template.\r\n * The translation `message` is the value which is locale specific. The translation string may\r\n * contain placeholders which associate inner elements and sub-templates within the translation.\r\n *\r\n * The translation `message` placeholders are:\r\n * - `�{index}(:{block})�`: *Binding Placeholder*: Marks a location where an expression will be\r\n *   interpolated into. The placeholder `index` points to the expression binding index. An optional\r\n *   `block` that matches the sub-template in which it was declared.\r\n * - `�#{index}(:{block})�`/`�/#{index}(:{block})�`: *Element Placeholder*:  Marks the beginning\r\n *   and end of DOM element that were embedded in the original translation block. The placeholder\r\n *   `index` points to the element index in the template instructions set. An optional `block` that\r\n *   matches the sub-template in which it was declared.\r\n * - `�*{index}:{block}�`/`�/*{index}:{block}�`: *Sub-template Placeholder*: Sub-templates must be\r\n *   split up and translated separately in each angular template function. The `index` points to the\r\n *   `template` instruction index. A `block` that matches the sub-template in which it was declared.\r\n *\r\n * @param index A unique index of the translation in the static block.\r\n * @param messageIndex An index of the translation message from the `def.consts` array.\r\n * @param subTemplateIndex Optional sub-template index in the `message`.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18nStart(index: number, messageIndex: number, subTemplateIndex?: number): void;\r\n\r\n/**\r\n * Merges the definition from a super class to a sub class.\r\n * @param definition The definition that is a SubClass of another directive of component\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵInheritDefinitionFeature(definition: ɵDirectiveDef<any> | ɵComponentDef<any>): void;\r\n\r\n/**\r\n * Generated instruction: Injects a token from the currently active injector.\r\n *\r\n * Must be used in the context of a factory function such as one defined for an\r\n * `InjectionToken`. Throws an error if not called from such a context.\r\n *\r\n * (Additional documentation moved to `inject`, as it is the public API, and an alias for this\r\n * instruction)\r\n *\r\n * @see inject\r\n * @codeGenApi\r\n * @publicApi This instruction has been emitted by ViewEngine for some time and is deployed to npm.\r\n */\r\nexport declare function ɵɵinject<T>(token: ProviderToken<T>): T;\r\n\r\nexport declare function ɵɵinject<T>(token: ProviderToken<T>, flags?: InjectFlags): T | null;\r\n\r\n/**\r\n * Information about how a type or `InjectionToken` interfaces with the DI system.\r\n *\r\n * At a minimum, this includes a `factory` which defines how to create the given type `T`, possibly\r\n * requesting injection of other types if necessary.\r\n *\r\n * Optionally, a `providedIn` parameter specifies that the given type belongs to a particular\r\n * `Injector`, `NgModule`, or a special scope (e.g. `'root'`). A value of `null` indicates\r\n * that the injectable does not belong to any scope.\r\n *\r\n * @codeGenApi\r\n * @publicApi The ViewEngine compiler emits code with this type for injectables. This code is\r\n *   deployed to npm, and should be treated as public api.\r\n\r\n */\r\nexport declare interface ɵɵInjectableDeclaration<T> {\r\n    /**\r\n     * Specifies that the given type belongs to a particular injector:\r\n     * - `InjectorType` such as `NgModule`,\r\n     * - `'root'` the root injector\r\n     * - `'any'` all injectors.\r\n     * - `null`, does not belong to any injector. Must be explicitly listed in the injector\r\n     *   `providers`.\r\n     */\r\n    providedIn: InjectorType<any> | 'root' | 'platform' | 'any' | null;\r\n    /**\r\n     * The token to which this definition belongs.\r\n     *\r\n     * Note that this may not be the same as the type that the `factory` will create.\r\n     */\r\n    token: unknown;\r\n    /**\r\n     * Factory method to execute to create an instance of the injectable.\r\n     */\r\n    factory: (t?: Type<any>) => T;\r\n    /**\r\n     * In a case of no explicit injector, a location where the instance of the injectable is stored.\r\n     */\r\n    value: T | undefined;\r\n}\r\n\r\n/**\r\n * Facade for the attribute injection from DI.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵinjectAttribute(attrNameToInject: string): string | null;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare type ɵɵInjectorDeclaration<T> = unknown;\r\n\r\n/**\r\n * Information about the providers to be included in an `Injector` as well as how the given type\r\n * which carries the information should be created by the DI system.\r\n *\r\n * An `InjectorDef` can import other types which have `InjectorDefs`, forming a deep nested\r\n * structure of providers with a defined priority (identically to how `NgModule`s also have\r\n * an import/dependency structure).\r\n *\r\n * NOTE: This is a private type and should not be exported\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare interface ɵɵInjectorDef<T> {\r\n    providers: (Type<any> | ValueProvider | ExistingProvider | FactoryProvider | ConstructorProvider | StaticClassProvider | ClassProvider | any[])[];\r\n    imports: (InjectorType<any> | InjectorTypeWithProviders<any>)[];\r\n}\r\n\r\n/**\r\n * Throws an error indicating that a factory function could not be generated by the compiler for a\r\n * particular class.\r\n *\r\n * This instruction allows the actual error message to be optimized away when ngDevMode is turned\r\n * off, saving bytes of generated code while still providing a good experience in dev mode.\r\n *\r\n * The name of the class is not mentioned here, but will be in the generated factory function name\r\n * and thus in the stack trace.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵinvalidFactory(): never;\r\n\r\n/**\r\n * Throws an error indicating that a factory function could not be generated by the compiler for a\r\n * particular class.\r\n *\r\n * This instruction allows the actual error message to be optimized away when ngDevMode is turned\r\n * off, saving bytes of generated code while still providing a good experience in dev mode.\r\n *\r\n * The name of the class is not mentioned here, but will be in the generated factory function name\r\n * and thus in the stack trace.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵinvalidFactoryDep(index: number): never;\r\n\r\n/**\r\n * Adds an event listener to the current node.\r\n *\r\n * If an output exists on one of the node's directives, it also subscribes to the output\r\n * and saves the subscription for later cleanup.\r\n *\r\n * @param eventName Name of the event\r\n * @param listenerFn The function to be called when event emits\r\n * @param useCapture Whether or not to use capture in event listener\r\n * @param eventTargetResolver Function that returns global target information in case this listener\r\n * should be attached to a global object like window, document or body\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵlistener(eventName: string, listenerFn: (e?: any) => any, useCapture?: boolean, eventTargetResolver?: GlobalTargetResolver): typeof ɵɵlistener;\r\n\r\n/**\r\n * Loads a QueryList corresponding to the current view or content query.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵloadQuery<T>(): QueryList<T>;\r\n\r\n/**\r\n * Sets the namespace used to create elements to `null`, which forces element creation to use\r\n * `createElement` rather than `createElementNS`.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵnamespaceHTML(): void;\r\n\r\n/**\r\n * Sets the namespace used to create elements to `'http://www.w3.org/1998/MathML/'` in global state.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵnamespaceMathML(): void;\r\n\r\n/**\r\n * Sets the namespace used to create elements to `'http://www.w3.org/2000/svg'` in global state.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵnamespaceSVG(): void;\r\n\r\n/**\r\n * Retrieves a context at the level specified and saves it as the global, contextViewData.\r\n * Will get the next level up if level is not specified.\r\n *\r\n * This is used to save contexts of parent views so they can be bound in embedded views, or\r\n * in conjunction with reference() to bind a ref from a parent view.\r\n *\r\n * @param level The relative level of the view from which to grab context compared to contextVewData\r\n * @returns context\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵnextContext<T = any>(level?: number): T;\r\n\r\n/**\r\n * Evaluates the class metadata declaration.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareClassMetadata(decl: {\r\n    type: Type<any>;\r\n    decorators: any[];\r\n    ctorParameters?: () => any[];\r\n    propDecorators?: {\r\n        [field: string]: any;\r\n    };\r\n}): void;\r\n\r\n/**\r\n * Compiles a partial component declaration object into a full component definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareComponent(decl: R3DeclareComponentFacade): unknown;\r\n\r\n/**\r\n * Compiles a partial directive declaration object into a full directive definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareDirective(decl: R3DeclareDirectiveFacade): unknown;\r\n\r\n/**\r\n * Compiles a partial pipe declaration object into a full pipe definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareFactory(decl: R3DeclareFactoryFacade): unknown;\r\n\r\n/**\r\n * Compiles a partial injectable declaration object into a full injectable definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareInjectable(decl: R3DeclareInjectableFacade): unknown;\r\n\r\n/**\r\n * Compiles a partial injector declaration object into a full injector definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareInjector(decl: R3DeclareInjectorFacade): unknown;\r\n\r\n/**\r\n * Compiles a partial NgModule declaration object into a full NgModule definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareNgModule(decl: R3DeclareNgModuleFacade): unknown;\r\n\r\n/**\r\n * Compiles a partial pipe declaration object into a full pipe definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclarePipe(decl: R3DeclarePipeFacade): unknown;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare type ɵɵNgModuleDeclaration<T, Declarations, Imports, Exports> = unknown;\r\n\r\n/**\r\n * The NgOnChangesFeature decorates a component with support for the ngOnChanges\r\n * lifecycle hook, so it should be included in any component that implements\r\n * that hook.\r\n *\r\n * If the component or directive uses inheritance, the NgOnChangesFeature MUST\r\n * be included as a feature AFTER {@link InheritDefinitionFeature}, otherwise\r\n * inherited properties will not be propagated to the ngOnChanges lifecycle\r\n * hook.\r\n *\r\n * Example usage:\r\n *\r\n * ```\r\n * static ɵcmp = defineComponent({\r\n *   ...\r\n *   inputs: {name: 'publicName'},\r\n *   features: [NgOnChangesFeature]\r\n * });\r\n * ```\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵNgOnChangesFeature<T>(): DirectiveDefFeature;\r\n\r\n\r\n/**\r\n * Create a pipe.\r\n *\r\n * @param index Pipe index where the pipe will be stored.\r\n * @param pipeName The name of the pipe\r\n * @returns T the instance of the pipe.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpipe(index: number, pipeName: string): any;\r\n\r\n/**\r\n * Invokes a pipe with 1 arguments.\r\n *\r\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\r\n * the pipe only when an input to the pipe changes.\r\n *\r\n * @param index Pipe index where the pipe was stored on creation.\r\n * @param slotOffset the offset in the reserved slot space\r\n * @param v1 1st argument to {@link PipeTransform#transform}.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpipeBind1(index: number, slotOffset: number, v1: any): any;\r\n\r\n/**\r\n * Invokes a pipe with 2 arguments.\r\n *\r\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\r\n * the pipe only when an input to the pipe changes.\r\n *\r\n * @param index Pipe index where the pipe was stored on creation.\r\n * @param slotOffset the offset in the reserved slot space\r\n * @param v1 1st argument to {@link PipeTransform#transform}.\r\n * @param v2 2nd argument to {@link PipeTransform#transform}.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpipeBind2(index: number, slotOffset: number, v1: any, v2: any): any;\r\n\r\n/**\r\n * Invokes a pipe with 3 arguments.\r\n *\r\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\r\n * the pipe only when an input to the pipe changes.\r\n *\r\n * @param index Pipe index where the pipe was stored on creation.\r\n * @param slotOffset the offset in the reserved slot space\r\n * @param v1 1st argument to {@link PipeTransform#transform}.\r\n * @param v2 2nd argument to {@link PipeTransform#transform}.\r\n * @param v3 4rd argument to {@link PipeTransform#transform}.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpipeBind3(index: number, slotOffset: number, v1: any, v2: any, v3: any): any;\r\n\r\n/**\r\n * Invokes a pipe with 4 arguments.\r\n *\r\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\r\n * the pipe only when an input to the pipe changes.\r\n *\r\n * @param index Pipe index where the pipe was stored on creation.\r\n * @param slotOffset the offset in the reserved slot space\r\n * @param v1 1st argument to {@link PipeTransform#transform}.\r\n * @param v2 2nd argument to {@link PipeTransform#transform}.\r\n * @param v3 3rd argument to {@link PipeTransform#transform}.\r\n * @param v4 4th argument to {@link PipeTransform#transform}.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpipeBind4(index: number, slotOffset: number, v1: any, v2: any, v3: any, v4: any): any;\r\n\r\n/**\r\n * Invokes a pipe with variable number of arguments.\r\n *\r\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\r\n * the pipe only when an input to the pipe changes.\r\n *\r\n * @param index Pipe index where the pipe was stored on creation.\r\n * @param slotOffset the offset in the reserved slot space\r\n * @param values Array of arguments to pass to {@link PipeTransform#transform} method.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpipeBindV(index: number, slotOffset: number, values: [any, ...any[]]): any;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare type ɵɵPipeDeclaration<T, Name extends string> = unknown;\r\n\r\n/**\r\n * Inserts previously re-distributed projected nodes. This instruction must be preceded by a call\r\n * to the projectionDef instruction.\r\n *\r\n * @param nodeIndex\r\n * @param selectorIndex:\r\n *        - 0 when the selector is `*` (or unspecified as this is the default value),\r\n *        - 1 based index of the selector from the {@link projectionDef}\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵprojection(nodeIndex: number, selectorIndex?: number, attrs?: TAttributes): void;\r\n\r\n/**\r\n * Instruction to distribute projectable nodes among <ng-content> occurrences in a given template.\r\n * It takes all the selectors from the entire component's template and decides where\r\n * each projected node belongs (it re-distributes nodes among \"buckets\" where each \"bucket\" is\r\n * backed by a selector).\r\n *\r\n * This function requires CSS selectors to be provided in 2 forms: parsed (by a compiler) and text,\r\n * un-parsed form.\r\n *\r\n * The parsed form is needed for efficient matching of a node against a given CSS selector.\r\n * The un-parsed, textual form is needed for support of the ngProjectAs attribute.\r\n *\r\n * Having a CSS selector in 2 different formats is not ideal, but alternatives have even more\r\n * drawbacks:\r\n * - having only a textual form would require runtime parsing of CSS selectors;\r\n * - we can't have only a parsed as we can't re-construct textual form from it (as entered by a\r\n * template author).\r\n *\r\n * @param projectionSlots? A collection of projection slots. A projection slot can be based\r\n *        on a parsed CSS selectors or set to the wildcard selector (\"*\") in order to match\r\n *        all nodes which do not match any selector. If not specified, a single wildcard\r\n *        selector projection slot will be defined.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵprojectionDef(projectionSlots?: ProjectionSlots): void;\r\n\r\n/**\r\n * Update a property on a selected element.\r\n *\r\n * Operates on the element selected by index via the {@link select} instruction.\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled\r\n *\r\n * @param propName Name of property. Because it is going to DOM, this is not subject to\r\n *        renaming as part of minification.\r\n * @param value New value to write.\r\n * @param sanitizer An optional function used to sanitize the value.\r\n * @returns This function returns itself so that it may be chained\r\n * (e.g. `property('name', ctx.name)('title', ctx.title)`)\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵproperty<T>(propName: string, value: T, sanitizer?: SanitizerFn | null): typeof ɵɵproperty;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with a lone bound value\r\n *\r\n * Used when the value passed to a property has 1 interpolated value in it, an no additional text\r\n * surrounds that interpolated value:\r\n *\r\n * ```html\r\n * <div title=\"{{v0}}\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate('title', v0);\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate(propName: string, v0: any, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with single bound value surrounded by text.\r\n *\r\n * Used when the value passed to a property has 1 interpolated value in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate1('title', 'prefix', v0, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate1(propName: string, prefix: string, v0: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate1;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 2 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 2 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate2('title', 'prefix', v0, '-', v1, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate2(propName: string, prefix: string, v0: any, i0: string, v1: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate2;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 3 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 3 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate3(\r\n * 'title', 'prefix', v0, '-', v1, '-', v2, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate3(propName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate3;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 4 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 4 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate4(\r\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate4(propName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate4;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 5 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 5 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate5(\r\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate5(propName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate5;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 6 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 6 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate6(\r\n *    'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate6(propName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate6;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 7 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 7 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate7(\r\n *    'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate7(propName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate7;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 8 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 8 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate8(\r\n *  'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param i6 Static value used for concatenation only.\r\n * @param v7 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate8(propName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate8;\r\n\r\n/**\r\n * Update an interpolated property on an element with 9 or more bound values surrounded by text.\r\n *\r\n * Used when the number of interpolated values exceeds 8.\r\n *\r\n * ```html\r\n * <div\r\n *  title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolateV(\r\n *  'title', ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\r\n *  'suffix']);\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update.\r\n * @param values The collection of values and the strings inbetween those values, beginning with a\r\n * string prefix and ending with a string suffix.\r\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolateV(propName: string, values: any[], sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolateV;\r\n\r\n/**\r\n * This feature resolves the providers of a directive (or component),\r\n * and publish them into the DI system, making it visible to others for injection.\r\n *\r\n * For example:\r\n * ```ts\r\n * class ComponentWithProviders {\r\n *   constructor(private greeter: GreeterDE) {}\r\n *\r\n *   static ɵcmp = defineComponent({\r\n *     type: ComponentWithProviders,\r\n *     selectors: [['component-with-providers']],\r\n *    factory: () => new ComponentWithProviders(directiveInject(GreeterDE as any)),\r\n *    decls: 1,\r\n *    vars: 1,\r\n *    template: function(fs: RenderFlags, ctx: ComponentWithProviders) {\r\n *      if (fs & RenderFlags.Create) {\r\n *        ɵɵtext(0);\r\n *      }\r\n *      if (fs & RenderFlags.Update) {\r\n *        ɵɵtextInterpolate(ctx.greeter.greet());\r\n *      }\r\n *    },\r\n *    features: [ɵɵProvidersFeature([GreeterDE])]\r\n *  });\r\n * }\r\n * ```\r\n *\r\n * @param definition\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵProvidersFeature<T>(providers: Provider[], viewProviders?: Provider[]): (definition: ɵDirectiveDef<T>) => void;\r\n\r\n/**\r\n * Bindings for pure functions are stored after regular bindings.\r\n *\r\n * |-------decls------|---------vars---------|                 |----- hostVars (dir1) ------|\r\n * ------------------------------------------------------------------------------------------\r\n * | nodes/refs/pipes | bindings | fn slots  | injector | dir1 | host bindings | host slots |\r\n * ------------------------------------------------------------------------------------------\r\n *                    ^                      ^\r\n *      TView.bindingStartIndex      TView.expandoStartIndex\r\n *\r\n * Pure function instructions are given an offset from the binding root. Adding the offset to the\r\n * binding root gives the first index where the bindings are stored. In component views, the binding\r\n * root is the bindingStartIndex. In host bindings, the binding root is the expandoStartIndex +\r\n * any directive instances + any hostVars in directives evaluated before it.\r\n *\r\n * See VIEW_DATA.md for more information about host binding resolution.\r\n */\r\n/**\r\n * If the value hasn't been saved, calls the pure function to store and return the\r\n * value. If it has been saved, returns the saved value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn Function that returns a value\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction0<T>(slotOffset: number, pureFn: () => T, thisArg?: any): T;\r\n\r\n/**\r\n * If the value of the provided exp has changed, calls the pure function to return\r\n * an updated value. Or if the value has not changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn Function that returns an updated value\r\n * @param exp Updated expression value\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction1(slotOffset: number, pureFn: (v: any) => any, exp: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction2(slotOffset: number, pureFn: (v1: any, v2: any) => any, exp1: any, exp2: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction3(slotOffset: number, pureFn: (v1: any, v2: any, v3: any) => any, exp1: any, exp2: any, exp3: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param exp4\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction4(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param exp4\r\n * @param exp5\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction5(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param exp4\r\n * @param exp5\r\n * @param exp6\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction6(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param exp4\r\n * @param exp5\r\n * @param exp6\r\n * @param exp7\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction7(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, v7: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, exp7: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param exp4\r\n * @param exp5\r\n * @param exp6\r\n * @param exp7\r\n * @param exp8\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction8(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, v7: any, v8: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, exp7: any, exp8: any, thisArg?: any): any;\r\n\r\n/**\r\n * pureFunction instruction that can support any number of bindings.\r\n *\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn A pure function that takes binding values and builds an object or array\r\n * containing those values.\r\n * @param exps An array of binding values\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunctionV(slotOffset: number, pureFn: (...v: any[]) => any, exps: any[], thisArg?: any): any;\r\n\r\n/**\r\n * Refreshes a query by combining matches from all active views and removing matches from deleted\r\n * views.\r\n *\r\n * @returns `true` if a query got dirty during change detection or if this is a static query\r\n * resolving in creation mode, `false` otherwise.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵqueryRefresh(queryList: QueryList<any>): boolean;\r\n\r\n/**\r\n * Retrieves a local reference from the current contextViewData.\r\n *\r\n * If the reference to retrieve is in a parent view, this instruction is used in conjunction\r\n * with a nextContext() call, which walks up the tree and updates the contextViewData instance.\r\n *\r\n * @param index The index of the local ref in contextViewData.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵreference<T>(index: number): T;\r\n\r\n/**\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵresolveBody(element: RElement & {\r\n    ownerDocument: Document;\r\n}): HTMLElement;\r\n\r\n/**\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵresolveDocument(element: RElement & {\r\n    ownerDocument: Document;\r\n}): Document;\r\n\r\n/**\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵresolveWindow(element: RElement & {\r\n    ownerDocument: Document;\r\n}): (Window & typeof globalThis) | null;\r\n\r\n/**\r\n * Restores `contextViewData` to the given OpaqueViewState instance.\r\n *\r\n * Used in conjunction with the getCurrentView() instruction to save a snapshot\r\n * of the current view and restore it when listeners are invoked. This allows\r\n * walking the declaration view tree in listeners to get vars from parent views.\r\n *\r\n * @param viewToRestore The OpaqueViewState instance to restore.\r\n * @returns Context of the restored OpaqueViewState instance.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵrestoreView<T = any>(viewToRestore: OpaqueViewState): T;\r\n\r\n/**\r\n * An `html` sanitizer which converts untrusted `html` **string** into trusted string by removing\r\n * dangerous content.\r\n *\r\n * This method parses the `html` and locates potentially dangerous content (such as urls and\r\n * javascript) and removes it.\r\n *\r\n * It is possible to mark a string as trusted by calling {@link bypassSanitizationTrustHtml}.\r\n *\r\n * @param unsafeHtml untrusted `html`, typically from the user.\r\n * @returns `html` string which is safe to display to user, because all of the dangerous javascript\r\n * and urls have been removed.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsanitizeHtml(unsafeHtml: any): TrustedHTML | string;\r\n\r\n/**\r\n * A `url` sanitizer which only lets trusted `url`s through.\r\n *\r\n * This passes only `url`s marked trusted by calling {@link bypassSanitizationTrustResourceUrl}.\r\n *\r\n * @param unsafeResourceUrl untrusted `url`, typically from the user.\r\n * @returns `url` string which is safe to bind to the `src` properties such as `<img src>`, because\r\n * only trusted `url`s have been allowed to pass.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsanitizeResourceUrl(unsafeResourceUrl: any): TrustedScriptURL | string;\r\n\r\n/**\r\n * A `script` sanitizer which only lets trusted javascript through.\r\n *\r\n * This passes only `script`s marked trusted by calling {@link\r\n * bypassSanitizationTrustScript}.\r\n *\r\n * @param unsafeScript untrusted `script`, typically from the user.\r\n * @returns `url` string which is safe to bind to the `<script>` element such as `<img src>`,\r\n * because only trusted `scripts` have been allowed to pass.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsanitizeScript(unsafeScript: any): TrustedScript | string;\r\n\r\n/**\r\n * A `style` sanitizer which converts untrusted `style` **string** into trusted string by removing\r\n * dangerous content.\r\n *\r\n * It is possible to mark a string as trusted by calling {@link bypassSanitizationTrustStyle}.\r\n *\r\n * @param unsafeStyle untrusted `style`, typically from the user.\r\n * @returns `style` string which is safe to bind to the `style` properties.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsanitizeStyle(unsafeStyle: any): string;\r\n\r\n/**\r\n * A `url` sanitizer which converts untrusted `url` **string** into trusted string by removing\r\n * dangerous\r\n * content.\r\n *\r\n * This method parses the `url` and locates potentially dangerous content (such as javascript) and\r\n * removes it.\r\n *\r\n * It is possible to mark a string as trusted by calling {@link bypassSanitizationTrustUrl}.\r\n *\r\n * @param unsafeUrl untrusted `url`, typically from the user.\r\n * @returns `url` string which is safe to bind to the `src` properties such as `<img src>`, because\r\n * all of the dangerous javascript has been removed.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsanitizeUrl(unsafeUrl: any): string;\r\n\r\n/**\r\n * Sanitizes URL, selecting sanitizer function based on tag and property names.\r\n *\r\n * This function is used in case we can't define security context at compile time, when only prop\r\n * name is available. This happens when we generate host bindings for Directives/Components. The\r\n * host element is unknown at compile time, so we defer calculation of specific sanitizer to\r\n * runtime.\r\n *\r\n * @param unsafeUrl untrusted `url`, typically from the user.\r\n * @param tag target element tag name.\r\n * @param prop name of the property that contains the value.\r\n * @returns `url` string which is safe to bind.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsanitizeUrlOrResourceUrl(unsafeUrl: any, tag: string, prop: string): any;\r\n\r\n/**\r\n * Generated next to NgModules to monkey-patch directive and pipe references onto a component's\r\n * definition, when generating a direct reference in the component file would otherwise create an\r\n * import cycle.\r\n *\r\n * See [this explanation](https://hackmd.io/Odw80D0pR6yfsOjg_7XCJg?view) for more details.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsetComponentScope(type: ɵComponentType<any>, directives: Type<any>[], pipes: Type<any>[]): void;\r\n\r\n/**\r\n * Adds the module metadata that is necessary to compute the module's transitive scope to an\r\n * existing module definition.\r\n *\r\n * Scope metadata of modules is not used in production builds, so calls to this function can be\r\n * marked pure to tree-shake it from the bundle, allowing for all referenced declarations\r\n * to become eligible for tree-shaking as well.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsetNgModuleScope(type: any, scope: {\r\n    /** List of components, directives, and pipes declared by this module. */\r\n    declarations?: Type<any>[] | (() => Type<any>[]);\r\n    /** List of modules or `ModuleWithProviders` imported by this module. */\r\n    imports?: Type<any>[] | (() => Type<any>[]);\r\n    /**\r\n     * List of modules, `ModuleWithProviders`, components, directives, or pipes exported by this\r\n     * module.\r\n     */\r\n    exports?: Type<any>[] | (() => Type<any>[]);\r\n}): unknown;\r\n\r\n/**\r\n * Update style bindings using an object literal on an element.\r\n *\r\n * This instruction is meant to apply styling via the `[style]=\"exp\"` template bindings.\r\n * When styles are applied to the element they will then be updated with respect to\r\n * any styles/classes set via `styleProp`. If any styles are set to falsy\r\n * then they will be removed from the element.\r\n *\r\n * Note that the styling instruction will not be applied until `stylingApply` is called.\r\n *\r\n * @param styles A key/value style map of the styles that will be applied to the given element.\r\n *        Any missing styles (that have already been applied to the element beforehand) will be\r\n *        removed (unset) from the element's styling.\r\n *\r\n * Note that this will apply the provided styleMap value to the host element if this function\r\n * is called within a host binding.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMap(styles: {\r\n    [styleName: string]: any;\r\n} | string | undefined | null): void;\r\n\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with single bound value surrounded by text.\r\n *\r\n * Used when the value passed to a property has 1 interpolated value in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate1('key: ', v0, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate1(prefix: string, v0: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 2 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 2 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key1: {{v1}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate2('key: ', v0, '; key1: ', v1, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate2(prefix: string, v0: any, i0: string, v1: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 3 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 3 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key2: {{v1}}; key2: {{v2}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate3(\r\n *     'key: ', v0, '; key1: ', v1, '; key2: ', v2, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate3(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 4 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 4 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate4(\r\n *     'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate4(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 5 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 5 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate5(\r\n *     'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate5(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 6 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 6 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}};\r\n *             key5: {{v5}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate6(\r\n *    'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, '; key5: ', v5,\r\n *    'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate6(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 7 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 7 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}}; key5: {{v5}};\r\n *             key6: {{v6}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate7(\r\n *    'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, '; key5: ', v5,\r\n *    '; key6: ', v6, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate7(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 8 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 8 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}}; key5: {{v5}};\r\n *             key6: {{v6}}; key7: {{v7}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate8(\r\n *    'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, '; key5: ', v5,\r\n *    '; key6: ', v6, '; key7: ', v7, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param i6 Static value used for concatenation only.\r\n * @param v7 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate8(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string): void;\r\n\r\n/**\r\n * Update an interpolated style on an element with 9 or more bound values surrounded by text.\r\n *\r\n * Used when the number of interpolated values exceeds 8.\r\n *\r\n * ```html\r\n * <div\r\n *  class=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}}; key5: {{v5}};\r\n *         key6: {{v6}}; key7: {{v7}}; key8: {{v8}}; key9: {{v9}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolateV(\r\n *    ['key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, '; key5: ', v5,\r\n *     '; key6: ', v6, '; key7: ', v7, '; key8: ', v8, '; key9: ', v9, 'suffix']);\r\n * ```\r\n *.\r\n * @param values The collection of values and the strings in-between those values, beginning with\r\n * a string prefix and ending with a string suffix.\r\n * (e.g. `['prefix', value0, '; key2: ', value1, '; key2: ', value2, ..., value99, 'suffix']`)\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolateV(values: any[]): void;\r\n\r\n/**\r\n * Update a style binding on an element with the provided value.\r\n *\r\n * If the style value is falsy then it will be removed from the element\r\n * (or assigned a different value depending if there are any styles placed\r\n * on the element with `styleMap` or any static styles that are\r\n * present from when the element was created with `styling`).\r\n *\r\n * Note that the styling element is updated as part of `stylingApply`.\r\n *\r\n * @param prop A valid CSS property.\r\n * @param value New value to write (`null` or an empty string to remove).\r\n * @param suffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n *\r\n * Note that this will apply the provided style value to the host element if this function is called\r\n * within a host binding function.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleProp(prop: string, value: string | number | ɵSafeValue | undefined | null, suffix?: string | null): typeof ɵɵstyleProp;\r\n\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with single bound value surrounded by text.\r\n *\r\n * Used when the value passed to a property has 1 interpolated value in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate1(0, 'prefix', v0, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate1(prop: string, prefix: string, v0: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate1;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 2 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 2 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate2(0, 'prefix', v0, '-', v1, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate2(prop: string, prefix: string, v0: any, i0: string, v1: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate2;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 3 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 3 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate3(0, 'prefix', v0, '-', v1, '-', v2, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate3(prop: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate3;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 4 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 4 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate4(0, 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate4(prop: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate4;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 5 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 5 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate5(0, 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate5(prop: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate5;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 6 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 6 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate6(0, 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate6(prop: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate6;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 7 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 7 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate7(\r\n *    0, 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate7(prop: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate7;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 8 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 8 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate8(0, 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6,\r\n * '-', v7, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param i6 Static value used for concatenation only.\r\n * @param v7 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate8(prop: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate8;\r\n\r\n/**\r\n * Update an interpolated style property on an element with 9 or more bound values surrounded by\r\n * text.\r\n *\r\n * Used when the number of interpolated values exceeds 8.\r\n *\r\n * ```html\r\n * <div\r\n *  style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix\">\r\n * </div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolateV(\r\n *  0, ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\r\n *  'suffix']);\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`..\r\n * @param values The collection of values and the strings in-between those values, beginning with\r\n * a string prefix and ending with a string suffix.\r\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolateV(prop: string, values: any[], valueSuffix?: string | null): typeof ɵɵstylePropInterpolateV;\r\n\r\n/**\r\n * Registers a synthetic host listener (e.g. `(@foo.start)`) on a component or directive.\r\n *\r\n * This instruction is for compatibility purposes and is designed to ensure that a\r\n * synthetic host listener (e.g. `@HostListener('@foo.start')`) properly gets rendered\r\n * in the component's renderer. Normally all host listeners are evaluated with the\r\n * parent component's renderer, but, in the case of animation @triggers, they need\r\n * to be evaluated with the sub component's renderer (because that's where the\r\n * animation triggers are defined).\r\n *\r\n * Do not use this instruction as a replacement for `listener`. This instruction\r\n * only exists to ensure compatibility with the ViewEngine's host binding behavior.\r\n *\r\n * @param eventName Name of the event\r\n * @param listenerFn The function to be called when event emits\r\n * @param useCapture Whether or not to use capture in event listener\r\n * @param eventTargetResolver Function that returns global target information in case this listener\r\n * should be attached to a global object like window, document or body\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsyntheticHostListener(eventName: string, listenerFn: (e?: any) => any): typeof ɵɵsyntheticHostListener;\r\n\r\n/**\r\n * Updates a synthetic host binding (e.g. `[@foo]`) on a component or directive.\r\n *\r\n * This instruction is for compatibility purposes and is designed to ensure that a\r\n * synthetic host binding (e.g. `@HostBinding('@foo')`) properly gets rendered in\r\n * the component's renderer. Normally all host bindings are evaluated with the parent\r\n * component's renderer, but, in the case of animation @triggers, they need to be\r\n * evaluated with the sub component's renderer (because that's where the animation\r\n * triggers are defined).\r\n *\r\n * Do not use this instruction as a replacement for `elementProperty`. This instruction\r\n * only exists to ensure compatibility with the ViewEngine's host binding behavior.\r\n *\r\n * @param index The index of the element to update in the data array\r\n * @param propName Name of property. Because it is going to DOM, this is not subject to\r\n *        renaming as part of minification.\r\n * @param value New value to write.\r\n * @param sanitizer An optional function used to sanitize the value.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsyntheticHostProperty<T>(propName: string, value: T | ɵNO_CHANGE, sanitizer?: SanitizerFn | null): typeof ɵɵsyntheticHostProperty;\r\n\r\n/**\r\n * Creates an LContainer for an ng-template (dynamically-inserted view), e.g.\r\n *\r\n * <ng-template #foo>\r\n *    <div></div>\r\n * </ng-template>\r\n *\r\n * @param index The index of the container in the data array\r\n * @param templateFn Inline template\r\n * @param decls The number of nodes, local refs, and pipes for this template\r\n * @param vars The number of bindings for this template\r\n * @param tagName The name of the container element, if applicable\r\n * @param attrsIndex Index of template attributes in the `consts` array.\r\n * @param localRefs Index of the local references in the `consts` array.\r\n * @param localRefExtractor A function which extracts local-refs values from the template.\r\n *        Defaults to the current element associated with the local-ref.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtemplate(index: number, templateFn: ComponentTemplate<any> | null, decls: number, vars: number, tagName?: string | null, attrsIndex?: number | null, localRefsIndex?: number | null, localRefExtractor?: LocalRefExtractor): void;\r\n\r\n/**\r\n * Retrieves `TemplateRef` instance from `Injector` when a local reference is placed on the\r\n * `<ng-template>` element.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtemplateRefExtractor(tNode: TNode, lView: ɵangular_packages_core_core_ca): TemplateRef<any> | null;\r\n\r\n/**\r\n * Create static text node\r\n *\r\n * @param index Index of the node in the data array\r\n * @param value Static string value to write.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtext(index: number, value?: string): void;\r\n\r\n/**\r\n *\r\n * Update text content with a lone bound value\r\n *\r\n * Used when a text node has 1 interpolated value in it, an no additional text\r\n * surrounds that interpolated value:\r\n *\r\n * ```html\r\n * <div>{{v0}}</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate(v0);\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate(v0: any): typeof ɵɵtextInterpolate;\r\n\r\n/**\r\n *\r\n * Update text content with single bound value surrounded by other text.\r\n *\r\n * Used when a text node has 1 interpolated value in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate1('prefix', v0, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate1(prefix: string, v0: any, suffix: string): typeof ɵɵtextInterpolate1;\r\n\r\n/**\r\n *\r\n * Update text content with 2 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 2 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate2('prefix', v0, '-', v1, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate2(prefix: string, v0: any, i0: string, v1: any, suffix: string): typeof ɵɵtextInterpolate2;\r\n\r\n/**\r\n *\r\n * Update text content with 3 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 3 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate3(\r\n * 'prefix', v0, '-', v1, '-', v2, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate3(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string): typeof ɵɵtextInterpolate3;\r\n\r\n/**\r\n *\r\n * Update text content with 4 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 4 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate4(\r\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see ɵɵtextInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate4(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string): typeof ɵɵtextInterpolate4;\r\n\r\n/**\r\n *\r\n * Update text content with 5 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 5 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate5(\r\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate5(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string): typeof ɵɵtextInterpolate5;\r\n\r\n/**\r\n *\r\n * Update text content with 6 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 6 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate6(\r\n *    'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\r\n * ```\r\n *\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change. @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate6(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string): typeof ɵɵtextInterpolate6;\r\n\r\n/**\r\n *\r\n * Update text content with 7 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 7 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate7(\r\n *    'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate7(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string): typeof ɵɵtextInterpolate7;\r\n\r\n/**\r\n *\r\n * Update text content with 8 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 8 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate8(\r\n *  'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate8(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string): typeof ɵɵtextInterpolate8;\r\n\r\n/**\r\n * Update text content with 9 or more bound values other surrounded by text.\r\n *\r\n * Used when the number of interpolated values exceeds 8.\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolateV(\r\n *  ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\r\n *  'suffix']);\r\n * ```\r\n *.\r\n * @param values The collection of values and the strings in between those values, beginning with\r\n * a string prefix and ending with a string suffix.\r\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\r\n *\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolateV(values: any[]): typeof ɵɵtextInterpolateV;\r\n\r\n/**\r\n * A template tag function for promoting the associated constant literal to a\r\n * TrustedHTML. Interpolation is explicitly not allowed.\r\n *\r\n * @param html constant template literal containing trusted HTML.\r\n * @returns TrustedHTML wrapping `html`.\r\n *\r\n * @security This is a security-sensitive function and should only be used to\r\n * convert constant values of attributes and properties found in\r\n * application-provided Angular templates to TrustedHTML.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtrustConstantHtml(html: TemplateStringsArray): TrustedHTML | string;\r\n\r\n/**\r\n * A template tag function for promoting the associated constant literal to a\r\n * TrustedScriptURL. Interpolation is explicitly not allowed.\r\n *\r\n * @param url constant template literal containing a trusted script URL.\r\n * @returns TrustedScriptURL wrapping `url`.\r\n *\r\n * @security This is a security-sensitive function and should only be used to\r\n * convert constant values of attributes and properties found in\r\n * application-provided Angular templates to TrustedScriptURL.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtrustConstantResourceUrl(url: TemplateStringsArray): TrustedScriptURL | string;\r\n\r\n/**\r\n * Creates new QueryList, stores the reference in LView and returns QueryList.\r\n *\r\n * @param predicate The type for which the query will search\r\n * @param flags Flags associated with the query\r\n * @param read What to save in the query\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵviewQuery<T>(predicate: ProviderToken<unknown> | string[], flags: QueryFlags, read?: any): void;\r\n\r\nexport { }\r\n"]}
     1{"version":3,"file":"core.d.ts","sources":["core.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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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 { Observable } from 'rxjs';\r\nimport { Subject } from 'rxjs';\r\nimport { Subscribable } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\n\r\n/**\r\n * @description\r\n *\r\n * Represents an abstract class `T`, if applied to a concrete class it would stop being\r\n * instantiable.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AbstractType<T> extends Function {\r\n    prototype: T;\r\n}\r\n\r\n/**\r\n * @description\r\n * A lifecycle hook that is called after the default change detector has\r\n * completed checking all content of a directive.\r\n *\r\n * @see `AfterViewChecked`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface to\r\n * define its own after-check functionality.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterContentChecked'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AfterContentChecked {\r\n    /**\r\n     * A callback method that is invoked immediately after the\r\n     * default change detector has completed checking all of the directive's\r\n     * content.\r\n     */\r\n    ngAfterContentChecked(): void;\r\n}\r\n\r\n/**\r\n * @description\r\n * A lifecycle hook that is called after Angular has fully initialized\r\n * all content of a directive.\r\n * Define an `ngAfterContentInit()` method to handle any additional initialization tasks.\r\n *\r\n * @see `OnInit`\r\n * @see `AfterViewInit`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface to\r\n * define its own content initialization method.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterContentInit'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AfterContentInit {\r\n    /**\r\n     * A callback method that is invoked immediately after\r\n     * Angular has completed initialization of all of the directive's\r\n     * content.\r\n     * It is invoked only once when the directive is instantiated.\r\n     */\r\n    ngAfterContentInit(): void;\r\n}\r\n\r\n/**\r\n * @description\r\n * A lifecycle hook that is called after the default change detector has\r\n * completed checking a component's view for changes.\r\n *\r\n * @see `AfterContentChecked`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface to\r\n * define its own after-check functionality.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterViewChecked'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AfterViewChecked {\r\n    /**\r\n     * A callback method that is invoked immediately after the\r\n     * default change detector has completed one change-check cycle\r\n     * for a component's view.\r\n     */\r\n    ngAfterViewChecked(): void;\r\n}\r\n\r\n/**\r\n * @description\r\n * A lifecycle hook that is called after Angular has fully initialized\r\n * a component's view.\r\n * Define an `ngAfterViewInit()` method to handle any additional initialization tasks.\r\n *\r\n * @see `OnInit`\r\n * @see `AfterContentInit`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface to\r\n * define its own view initialization method.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='AfterViewInit'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AfterViewInit {\r\n    /**\r\n     * A callback method that is invoked immediately after\r\n     * Angular has completed initialization of a component's view.\r\n     * It is invoked only once when the view is instantiated.\r\n     *\r\n     */\r\n    ngAfterViewInit(): void;\r\n}\r\n\r\n/**\r\n * A DI token that you can use to create a virtual [provider](guide/glossary#provider)\r\n * that will populate the `entryComponents` field of components and NgModules\r\n * based on its `useValue` property value.\r\n * All components that are referenced in the `useValue` value (either directly\r\n * or in a nested array or map) are added to the `entryComponents` property.\r\n *\r\n * @usageNotes\r\n *\r\n * The following example shows how the router can populate the `entryComponents`\r\n * field of an NgModule based on a router configuration that refers\r\n * to components.\r\n *\r\n * ```typescript\r\n * // helper function inside the router\r\n * function provideRoutes(routes) {\r\n *   return [\r\n *     {provide: ROUTES, useValue: routes},\r\n *     {provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: routes, multi: true}\r\n *   ];\r\n * }\r\n *\r\n * // user code\r\n * let routes = [\r\n *   {path: '/root', component: RootComp},\r\n *   {path: '/teams', component: TeamsComp}\r\n * ];\r\n *\r\n * @NgModule({\r\n *   providers: [provideRoutes(routes)]\r\n * })\r\n * class ModuleWithRoutes {}\r\n * ```\r\n *\r\n * @publicApi\r\n * @deprecated Since 9.0.0. With Ivy, this property is no longer necessary.\r\n */\r\nexport declare const ANALYZE_FOR_ENTRY_COMPONENTS: InjectionToken<any>;\r\n\r\n/**\r\n * A [DI token](guide/glossary#di-token \"DI token definition\") that provides a set of callbacks to\r\n * be called for every component that is bootstrapped.\r\n *\r\n * Each callback must take a `ComponentRef` instance and return nothing.\r\n *\r\n * `(componentRef: ComponentRef) => void`\r\n *\r\n * @publicApi\r\n */\r\nexport declare const APP_BOOTSTRAP_LISTENER: InjectionToken<((compRef: ComponentRef<any>) => void)[]>;\r\n\r\n/**\r\n * A [DI token](guide/glossary#di-token \"DI token definition\") representing a unique string ID, used\r\n * primarily for prefixing application attributes and CSS styles when\r\n * {@link ViewEncapsulation#Emulated ViewEncapsulation.Emulated} is being used.\r\n *\r\n * BY default, the value is randomly generated and assigned to the application by Angular.\r\n * To provide a custom ID value, use a DI provider <!-- TODO: provider --> to configure\r\n * the root {@link Injector} that uses this token.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const APP_ID: InjectionToken<string>;\r\n\r\n/**\r\n * A [DI token](guide/glossary#di-token \"DI token definition\") that you can use to provide\r\n * one or more initialization functions.\r\n *\r\n * The provided functions are injected at application startup and executed during\r\n * app initialization. If any of these functions returns a Promise or an Observable, initialization\r\n * does not complete until the Promise is resolved or the Observable is completed.\r\n *\r\n * You can, for example, create a factory function that loads language data\r\n * or an external configuration, and provide that function to the `APP_INITIALIZER` token.\r\n * The function is executed during the application bootstrap process,\r\n * and the needed data is available on startup.\r\n *\r\n * @see `ApplicationInitStatus`\r\n *\r\n * @usageNotes\r\n *\r\n * The following example illustrates how to configure a multi-provider using `APP_INITIALIZER` token\r\n * and a function returning a promise.\r\n *\r\n * ```\r\n *  function initializeApp(): Promise<any> {\r\n *    return new Promise((resolve, reject) => {\r\n *      // Do some asynchronous stuff\r\n *      resolve();\r\n *    });\r\n *  }\r\n *\r\n *  @NgModule({\r\n *   imports: [BrowserModule],\r\n *   declarations: [AppComponent],\r\n *   bootstrap: [AppComponent],\r\n *   providers: [{\r\n *     provide: APP_INITIALIZER,\r\n *     useFactory: () => initializeApp,\r\n *     multi: true\r\n *    }]\r\n *   })\r\n *  export class AppModule {}\r\n * ```\r\n *\r\n * It's also possible to configure a multi-provider using `APP_INITIALIZER` token and a function\r\n * returning an observable, see an example below. Note: the `HttpClient` in this example is used for\r\n * demo purposes to illustrate how the factory function can work with other providers available\r\n * through DI.\r\n *\r\n * ```\r\n *  function initializeAppFactory(httpClient: HttpClient): () => Observable<any> {\r\n *   return () => httpClient.get(\"https://someUrl.com/api/user\")\r\n *     .pipe(\r\n *        tap(user => { ... })\r\n *     );\r\n *  }\r\n *\r\n *  @NgModule({\r\n *    imports: [BrowserModule, HttpClientModule],\r\n *    declarations: [AppComponent],\r\n *    bootstrap: [AppComponent],\r\n *    providers: [{\r\n *      provide: APP_INITIALIZER,\r\n *      useFactory: initializeAppFactory,\r\n *      deps: [HttpClient],\r\n *      multi: true\r\n *    }]\r\n *  })\r\n *  export class AppModule {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare const APP_INITIALIZER: InjectionToken<readonly (() => Observable<unknown> | Promise<unknown> | void)[]>;\r\n\r\n/**\r\n * A class that reflects the state of running {@link APP_INITIALIZER} functions.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ApplicationInitStatus {\r\n    private readonly appInits;\r\n    private resolve;\r\n    private reject;\r\n    private initialized;\r\n    readonly donePromise: Promise<any>;\r\n    readonly done = false;\r\n    constructor(appInits: ReadonlyArray<() => Observable<unknown> | Promise<unknown> | void>);\r\n}\r\n\r\n/**\r\n * Configures the root injector for an app with\r\n * providers of `@angular/core` dependencies that `ApplicationRef` needs\r\n * to bootstrap components.\r\n *\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 * @publicApi\r\n */\r\nexport declare class ApplicationModule {\r\n    constructor(appRef: ApplicationRef);\r\n}\r\n\r\n/**\r\n * A reference to an Angular application running on a page.\r\n *\r\n * @usageNotes\r\n *\r\n * {@a is-stable-examples}\r\n * ### isStable examples and caveats\r\n *\r\n * Note two important points about `isStable`, demonstrated in the examples below:\r\n * - the application will never be stable if you start any kind\r\n * of recurrent asynchronous task when the application starts\r\n * (for example for a polling process, started with a `setInterval`, a `setTimeout`\r\n * or using RxJS operators like `interval`);\r\n * - the `isStable` Observable runs outside of the Angular zone.\r\n *\r\n * Let's imagine that you start a recurrent task\r\n * (here incrementing a counter, using RxJS `interval`),\r\n * and at the same time subscribe to `isStable`.\r\n *\r\n * ```\r\n * constructor(appRef: ApplicationRef) {\r\n *   appRef.isStable.pipe(\r\n *      filter(stable => stable)\r\n *   ).subscribe(() => console.log('App is stable now');\r\n *   interval(1000).subscribe(counter => console.log(counter));\r\n * }\r\n * ```\r\n * In this example, `isStable` will never emit `true`,\r\n * and the trace \"App is stable now\" will never get logged.\r\n *\r\n * If you want to execute something when the app is stable,\r\n * you have to wait for the application to be stable\r\n * before starting your polling process.\r\n *\r\n * ```\r\n * constructor(appRef: ApplicationRef) {\r\n *   appRef.isStable.pipe(\r\n *     first(stable => stable),\r\n *     tap(stable => console.log('App is stable now')),\r\n *     switchMap(() => interval(1000))\r\n *   ).subscribe(counter => console.log(counter));\r\n * }\r\n * ```\r\n * In this example, the trace \"App is stable now\" will be logged\r\n * and then the counter starts incrementing every second.\r\n *\r\n * Note also that this Observable runs outside of the Angular zone,\r\n * which means that the code in the subscription\r\n * to this Observable will not trigger the change detection.\r\n *\r\n * Let's imagine that instead of logging the counter value,\r\n * you update a field of your component\r\n * and display it in its template.\r\n *\r\n * ```\r\n * constructor(appRef: ApplicationRef) {\r\n *   appRef.isStable.pipe(\r\n *     first(stable => stable),\r\n *     switchMap(() => interval(1000))\r\n *   ).subscribe(counter => this.value = counter);\r\n * }\r\n * ```\r\n * As the `isStable` Observable runs outside the zone,\r\n * the `value` field will be updated properly,\r\n * but the template will not be refreshed!\r\n *\r\n * You'll have to manually trigger the change detection to update the template.\r\n *\r\n * ```\r\n * constructor(appRef: ApplicationRef, cd: ChangeDetectorRef) {\r\n *   appRef.isStable.pipe(\r\n *     first(stable => stable),\r\n *     switchMap(() => interval(1000))\r\n *   ).subscribe(counter => {\r\n *     this.value = counter;\r\n *     cd.detectChanges();\r\n *   });\r\n * }\r\n * ```\r\n *\r\n * Or make the subscription callback run inside the zone.\r\n *\r\n * ```\r\n * constructor(appRef: ApplicationRef, zone: NgZone) {\r\n *   appRef.isStable.pipe(\r\n *     first(stable => stable),\r\n *     switchMap(() => interval(1000))\r\n *   ).subscribe(counter => zone.run(() => this.value = counter));\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ApplicationRef {\r\n    private _zone;\r\n    private _injector;\r\n    private _exceptionHandler;\r\n    private _componentFactoryResolver;\r\n    private _initStatus;\r\n    private _views;\r\n    private _runningTick;\r\n    private _stable;\r\n    private _onMicrotaskEmptySubscription;\r\n    /**\r\n     * Get a list of component types registered to this application.\r\n     * This list is populated even before the component is created.\r\n     */\r\n    readonly componentTypes: Type<any>[];\r\n    /**\r\n     * Get a list of components registered to this application.\r\n     */\r\n    readonly components: ComponentRef<any>[];\r\n    /**\r\n     * Returns an Observable that indicates when the application is stable or unstable.\r\n     *\r\n     * @see  [Usage notes](#is-stable-examples) for examples and caveats when using this API.\r\n     */\r\n    readonly isStable: Observable<boolean>;\r\n    /**\r\n     * Bootstrap a component onto the element identified by its selector or, optionally, to a\r\n     * specified element.\r\n     *\r\n     * @usageNotes\r\n     * ### Bootstrap process\r\n     *\r\n     * When bootstrapping a component, Angular mounts it onto a target DOM element\r\n     * and kicks off automatic change detection. The target DOM element can be\r\n     * provided using the `rootSelectorOrNode` argument.\r\n     *\r\n     * If the target DOM element is not provided, Angular tries to find one on a page\r\n     * using the `selector` of the component that is being bootstrapped\r\n     * (first matched element is used).\r\n     *\r\n     * ### Example\r\n     *\r\n     * Generally, we define the component to bootstrap in the `bootstrap` array of `NgModule`,\r\n     * but it requires us to know the component while writing the application code.\r\n     *\r\n     * Imagine a situation where we have to wait for an API call to decide about the component to\r\n     * bootstrap. We can use the `ngDoBootstrap` hook of the `NgModule` and call this method to\r\n     * dynamically bootstrap a component.\r\n     *\r\n     * {@example core/ts/platform/platform.ts region='componentSelector'}\r\n     *\r\n     * Optionally, a component can be mounted onto a DOM element that does not match the\r\n     * selector of the bootstrapped component.\r\n     *\r\n     * In the following example, we are providing a CSS selector to match the target element.\r\n     *\r\n     * {@example core/ts/platform/platform.ts region='cssSelector'}\r\n     *\r\n     * While in this example, we are providing reference to a DOM node.\r\n     *\r\n     * {@example core/ts/platform/platform.ts region='domNode'}\r\n     */\r\n    bootstrap<C>(componentOrFactory: ComponentFactory<C> | Type<C>, rootSelectorOrNode?: string | any): ComponentRef<C>;\r\n    /**\r\n     * Invoke this method to explicitly process change detection and its side-effects.\r\n     *\r\n     * In development mode, `tick()` also performs a second change detection cycle to ensure that no\r\n     * further changes are detected. If additional changes are picked up during this second cycle,\r\n     * bindings in the app have side-effects that cannot be resolved in a single change detection\r\n     * pass.\r\n     * In this case, Angular throws an error, since an Angular application can only have one change\r\n     * detection pass during which all change detection must complete.\r\n     */\r\n    tick(): void;\r\n    /**\r\n     * Attaches a view so that it will be dirty checked.\r\n     * The view will be automatically detached when it is destroyed.\r\n     * This will throw if the view is already attached to a ViewContainer.\r\n     */\r\n    attachView(viewRef: ViewRef): void;\r\n    /**\r\n     * Detaches a view from dirty checking again.\r\n     */\r\n    detachView(viewRef: ViewRef): void;\r\n    private _loadComponent;\r\n    /**\r\n     * Returns the number of attached views.\r\n     */\r\n    get viewCount(): number;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare function asNativeElements(debugEls: DebugElement[]): any;\r\n\r\n/**\r\n * Checks that there is currently a platform that contains the given token as a provider.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function assertPlatform(requiredToken: any): PlatformRef;\r\n\r\n/**\r\n * Type of the Attribute metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Attribute {\r\n    /**\r\n     * The name of the attribute whose value can be injected.\r\n     */\r\n    attributeName: string;\r\n}\r\n\r\n/**\r\n * Attribute decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Attribute: AttributeDecorator;\r\n\r\n\r\n/**\r\n * Type of the Attribute decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AttributeDecorator {\r\n    /**\r\n     * Parameter decorator for a directive constructor that designates\r\n     * a host-element attribute whose value is injected as a constant string literal.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * Suppose we have an `<input>` element and want to know its `type`.\r\n     *\r\n     * ```html\r\n     * <input type=\"text\">\r\n     * ```\r\n     *\r\n     * The following example uses the decorator to inject the string literal `text` in a directive.\r\n     *\r\n     * {@example core/ts/metadata/metadata.ts region='attributeMetadata'}\r\n     *\r\n     * The following example uses the decorator in a component constructor.\r\n     *\r\n     * {@example core/ts/metadata/metadata.ts region='attributeFactory'}\r\n     *\r\n     */\r\n    (name: string): any;\r\n    new (name: string): Attribute;\r\n}\r\n\r\ndeclare interface BindingDef {\r\n    flags: ɵBindingFlags;\r\n    ns: string | null;\r\n    name: string | null;\r\n    nonMinifiedName: string | null;\r\n    securityContext: SecurityContext | null;\r\n    suffix: string | null;\r\n}\r\n\r\n/**\r\n * Provides additional options to the bootstraping process.\r\n *\r\n *\r\n */\r\ndeclare interface BootstrapOptions {\r\n    /**\r\n     * Optionally specify which `NgZone` should be used.\r\n     *\r\n     * - Provide your own `NgZone` instance.\r\n     * - `zone.js` - Use default `NgZone` which requires `Zone.js`.\r\n     * - `noop` - Use `NoopNgZone` which does nothing.\r\n     */\r\n    ngZone?: NgZone | 'zone.js' | 'noop';\r\n    /**\r\n     * Optionally specify coalescing event change detections or not.\r\n     * Consider the following case.\r\n     *\r\n     * <div (click)=\"doSomething()\">\r\n     *   <button (click)=\"doSomethingElse()\"></button>\r\n     * </div>\r\n     *\r\n     * When button is clicked, because of the event bubbling, both\r\n     * event handlers will be called and 2 change detections will be\r\n     * triggered. We can colesce such kind of events to only trigger\r\n     * change detection only once.\r\n     *\r\n     * By default, this option will be false. So the events will not be\r\n     * coalesced and the change detection will be triggered multiple times.\r\n     * And if this option be set to true, the change detection will be\r\n     * triggered async by scheduling a animation frame. So in the case above,\r\n     * the change detection will only be triggered once.\r\n     */\r\n    ngZoneEventCoalescing?: boolean;\r\n    /**\r\n     * Optionally specify if `NgZone#run()` method invocations should be coalesced\r\n     * into a single change detection.\r\n     *\r\n     * Consider the following case.\r\n     *\r\n     * for (let i = 0; i < 10; i ++) {\r\n     *   ngZone.run(() => {\r\n     *     // do something\r\n     *   });\r\n     * }\r\n     *\r\n     * This case triggers the change detection multiple times.\r\n     * With ngZoneRunCoalescing options, all change detections in an event loop trigger only once.\r\n     * In addition, the change detection executes in requestAnimation.\r\n     *\r\n     */\r\n    ngZoneRunCoalescing?: boolean;\r\n}\r\n\r\n\r\n/**\r\n * The strategy that the default change detector uses to detect changes.\r\n * When set, takes effect the next time change detection is triggered.\r\n *\r\n * @see {@link ChangeDetectorRef#usage-notes Change detection usage}\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum ChangeDetectionStrategy {\r\n    /**\r\n     * Use the `CheckOnce` strategy, meaning that automatic change detection is deactivated\r\n     * until reactivated by setting the strategy to `Default` (`CheckAlways`).\r\n     * Change detection can still be explicitly invoked.\r\n     * This strategy applies to all child directives and cannot be overridden.\r\n     */\r\n    OnPush = 0,\r\n    /**\r\n     * Use the default `CheckAlways` strategy, in which change detection is automatic until\r\n     * explicitly deactivated.\r\n     */\r\n    Default = 1\r\n}\r\n\r\ndeclare type ChangeDetectionStrategy_2 = number;\r\n\r\n/**\r\n * Base class that provides change detection functionality.\r\n * A change-detection tree collects all views that are to be checked for changes.\r\n * Use the methods to add and remove views from the tree, initiate change-detection,\r\n * and explicitly mark views as _dirty_, meaning that they have changed and need to be re-rendered.\r\n *\r\n * @see [Using change detection hooks](guide/lifecycle-hooks#using-change-detection-hooks)\r\n * @see [Defining custom change detection](guide/lifecycle-hooks#defining-custom-change-detection)\r\n *\r\n * @usageNotes\r\n *\r\n * The following examples demonstrate how to modify default change-detection behavior\r\n * to perform explicit detection when needed.\r\n *\r\n * ### Use `markForCheck()` with `CheckOnce` strategy\r\n *\r\n * The following example sets the `OnPush` change-detection strategy for a component\r\n * (`CheckOnce`, rather than the default `CheckAlways`), then forces a second check\r\n * after an interval. See [live demo](https://plnkr.co/edit/GC512b?p=preview).\r\n *\r\n * <code-example path=\"core/ts/change_detect/change-detection.ts\"\r\n * region=\"mark-for-check\"></code-example>\r\n *\r\n * ### Detach change detector to limit how often check occurs\r\n *\r\n * The following example defines a component with a large list of read-only data\r\n * that is expected to change constantly, many times per second.\r\n * To improve performance, we want to check and update the list\r\n * less often than the changes actually occur. To do that, we detach\r\n * the component's change detector and perform an explicit local check every five seconds.\r\n *\r\n * <code-example path=\"core/ts/change_detect/change-detection.ts\" region=\"detach\"></code-example>\r\n *\r\n *\r\n * ### Reattaching a detached component\r\n *\r\n * The following example creates a component displaying live data.\r\n * The component detaches its change detector from the main change detector tree\r\n * when the `live` property is set to false, and reattaches it when the property\r\n * becomes true.\r\n *\r\n * <code-example path=\"core/ts/change_detect/change-detection.ts\" region=\"reattach\"></code-example>\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class ChangeDetectorRef {\r\n    /**\r\n     * When a view uses the {@link ChangeDetectionStrategy#OnPush OnPush} (checkOnce)\r\n     * change detection strategy, explicitly marks the view as changed so that\r\n     * it can be checked again.\r\n     *\r\n     * Components are normally marked as dirty (in need of rerendering) when inputs\r\n     * have changed or events have fired in the view. Call this method to ensure that\r\n     * a component is checked even if these triggers have not occured.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on OnPush components -->\r\n     *\r\n     */\r\n    abstract markForCheck(): void;\r\n    /**\r\n     * Detaches this view from the change-detection tree.\r\n     * A detached view is  not checked until it is reattached.\r\n     * Use in combination with `detectChanges()` to implement local change detection checks.\r\n     *\r\n     * Detached views are not checked during change detection runs until they are\r\n     * re-attached, even if they are marked as dirty.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\r\n     * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->\r\n     *\r\n     */\r\n    abstract detach(): void;\r\n    /**\r\n     * Checks this view and its children. Use in combination with {@link ChangeDetectorRef#detach\r\n     * detach}\r\n     * to implement local change detection checks.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\r\n     * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->\r\n     *\r\n     */\r\n    abstract detectChanges(): void;\r\n    /**\r\n     * Checks the change detector and its children, and throws if any changes are detected.\r\n     *\r\n     * Use in development mode to verify that running change detection doesn't introduce\r\n     * other changes.\r\n     */\r\n    abstract checkNoChanges(): void;\r\n    /**\r\n     * Re-attaches the previously detached view to the change detection tree.\r\n     * Views are attached to the tree by default.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\r\n     *\r\n     */\r\n    abstract reattach(): void;\r\n}\r\n\r\ndeclare const CHILD_HEAD = 13;\r\n\r\ndeclare const CHILD_TAIL = 14;\r\n\r\n/**\r\n * Configures the `Injector` to return an instance of `useClass` for a token.\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='ClassProvider'}\r\n *\r\n * Note that following two providers are not equal:\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='ClassProviderDifference'}\r\n *\r\n * ### Multi-value example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ClassProvider extends ClassSansProvider {\r\n    /**\r\n     * An injection token. (Typically an instance of `Type` or `InjectionToken`, but can be `any`).\r\n     */\r\n    provide: any;\r\n    /**\r\n     * When true, injector returns an array of instances. This is useful to allow multiple\r\n     * providers spread across many files to provide configuration information to a common token.\r\n     */\r\n    multi?: boolean;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return a value by invoking a `useClass` function.\r\n * Base for `ClassProvider` decorator.\r\n *\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ClassSansProvider {\r\n    /**\r\n     * Class to instantiate for the `token`.\r\n     */\r\n    useClass: Type<any>;\r\n}\r\n\r\ndeclare const CLEANUP = 7;\r\n\r\n/**\r\n * Compile an Angular injectable according to its `Injectable` metadata, and patch the resulting\r\n * injectable def (`ɵprov`) onto the injectable type.\r\n */\r\ndeclare function compileInjectable(type: Type<any>, meta?: Injectable): void;\r\n\r\n/**\r\n * Low-level service for running the angular compiler during runtime\r\n * to create {@link ComponentFactory}s, which\r\n * can later be used to create and render a Component instance.\r\n *\r\n * Each `@NgModule` provides an own `Compiler` to its injector,\r\n * that will use the directives/pipes of the ng module for compilation\r\n * of components.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class Compiler {\r\n    /**\r\n     * Compiles the given NgModule and all of its components. All templates of the components listed\r\n     * in `entryComponents` have to be inlined.\r\n     */\r\n    compileModuleSync: <T>(moduleType: Type<T>) => NgModuleFactory<T>;\r\n    /**\r\n     * Compiles the given NgModule and all of its components\r\n     */\r\n    compileModuleAsync: <T>(moduleType: Type<T>) => Promise<NgModuleFactory<T>>;\r\n    /**\r\n     * Same as {@link #compileModuleSync} but also creates ComponentFactories for all components.\r\n     */\r\n    compileModuleAndAllComponentsSync: <T>(moduleType: Type<T>) => ModuleWithComponentFactories<T>;\r\n    /**\r\n     * Same as {@link #compileModuleAsync} but also creates ComponentFactories for all components.\r\n     */\r\n    compileModuleAndAllComponentsAsync: <T>(moduleType: Type<T>) => Promise<ModuleWithComponentFactories<T>>;\r\n    /**\r\n     * Clears all caches.\r\n     */\r\n    clearCache(): void;\r\n    /**\r\n     * Clears the cache for the given component/ngModule.\r\n     */\r\n    clearCacheFor(type: Type<any>): void;\r\n    /**\r\n     * Returns the id for a given NgModule, if one is defined and known to the compiler.\r\n     */\r\n    getModuleId(moduleType: Type<any>): string | undefined;\r\n}\r\n\r\n/**\r\n * Token to provide CompilerOptions in the platform injector.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const COMPILER_OPTIONS: InjectionToken<CompilerOptions[]>;\r\n\r\n/**\r\n * A factory for creating a Compiler\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class CompilerFactory {\r\n    abstract createCompiler(options?: CompilerOptions[]): Compiler;\r\n}\r\n\r\n/**\r\n * Options for creating a compiler\r\n *\r\n * @publicApi\r\n */\r\nexport declare type CompilerOptions = {\r\n    useJit?: boolean;\r\n    defaultEncapsulation?: ViewEncapsulation;\r\n    providers?: StaticProvider[];\r\n    missingTranslation?: MissingTranslationStrategy;\r\n    preserveWhitespaces?: boolean;\r\n};\r\n\r\n/**\r\n * Supplies configuration metadata for an Angular component.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Component extends Directive {\r\n    /**\r\n     * The change-detection strategy to use for this component.\r\n     *\r\n     * When a component is instantiated, Angular creates a change detector,\r\n     * which is responsible for propagating the component's bindings.\r\n     * The strategy is one of:\r\n     * - `ChangeDetectionStrategy#OnPush` sets the strategy to `CheckOnce` (on demand).\r\n     * - `ChangeDetectionStrategy#Default` sets the strategy to `CheckAlways`.\r\n     */\r\n    changeDetection?: ChangeDetectionStrategy;\r\n    /**\r\n     * Defines the set of injectable objects that are visible to its view DOM children.\r\n     * See [example](#injecting-a-class-with-a-view-provider).\r\n     *\r\n     */\r\n    viewProviders?: Provider[];\r\n    /**\r\n     * The module ID of the module that contains the component.\r\n     * The component must be able to resolve relative URLs for templates and styles.\r\n     * SystemJS exposes the `__moduleName` variable within each module.\r\n     * In CommonJS, this can  be set to `module.id`.\r\n     *\r\n     */\r\n    moduleId?: string;\r\n    /**\r\n     * The relative path or absolute URL of a template file for an Angular component.\r\n     * If provided, do not supply an inline template using `template`.\r\n     *\r\n     */\r\n    templateUrl?: string;\r\n    /**\r\n     * An inline template for an Angular component. If provided,\r\n     * do not supply a template file using `templateUrl`.\r\n     *\r\n     */\r\n    template?: string;\r\n    /**\r\n     * One or more relative paths or absolute URLs for files containing CSS stylesheets to use\r\n     * in this component.\r\n     */\r\n    styleUrls?: string[];\r\n    /**\r\n     * One or more inline CSS stylesheets to use\r\n     * in this component.\r\n     */\r\n    styles?: string[];\r\n    /**\r\n     * One or more animation `trigger()` calls, containing\r\n     * `state()` and `transition()` definitions.\r\n     * See the [Animations guide](/guide/animations) and animations API documentation.\r\n     *\r\n     */\r\n    animations?: any[];\r\n    /**\r\n     * An encapsulation policy for the template and CSS styles. One of:\r\n     * - `ViewEncapsulation.Emulated`: Use shimmed CSS that\r\n     * emulates the native behavior.\r\n     * - `ViewEncapsulation.None`: Use global CSS without any\r\n     * encapsulation.\r\n     * - `ViewEncapsulation.ShadowDom`: Use Shadow DOM v1 to encapsulate styles.\r\n     *\r\n     * If not supplied, the value is taken from `CompilerOptions`. The default compiler option is\r\n     * `ViewEncapsulation.Emulated`.\r\n     *\r\n     * If the policy is set to `ViewEncapsulation.Emulated` and the component has no `styles`\r\n     * or `styleUrls` specified, the policy is automatically switched to `ViewEncapsulation.None`.\r\n     */\r\n    encapsulation?: ViewEncapsulation;\r\n    /**\r\n     * Overrides the default interpolation start and end delimiters (`{{` and `}}`).\r\n     */\r\n    interpolation?: [string, string];\r\n    /**\r\n     * A set of components that should be compiled along with\r\n     * this component. For each component listed here,\r\n     * Angular creates a {@link ComponentFactory} and stores it in the\r\n     * {@link ComponentFactoryResolver}.\r\n     * @deprecated Since 9.0.0. With Ivy, this property is no longer necessary.\r\n     */\r\n    entryComponents?: Array<Type<any> | any[]>;\r\n    /**\r\n     * True to preserve or false to remove potentially superfluous whitespace characters\r\n     * from the compiled template. Whitespace characters are those matching the `\\s`\r\n     * character class in JavaScript regular expressions. Default is false, unless\r\n     * overridden in compiler options.\r\n     */\r\n    preserveWhitespaces?: boolean;\r\n}\r\n\r\n/**\r\n * Component decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Component: ComponentDecorator;\r\n\r\n/**\r\n * Component decorator interface\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ComponentDecorator {\r\n    /**\r\n     * Decorator that marks a class as an Angular component and provides configuration\r\n     * metadata that determines how the component should be processed,\r\n     * instantiated, and used at runtime.\r\n     *\r\n     * Components are the most basic UI building block of an Angular app.\r\n     * An Angular app contains a tree of Angular components.\r\n     *\r\n     * Angular components are a subset of directives, always associated with a template.\r\n     * Unlike other directives, only one component can be instantiated for a given element in a\r\n     * template.\r\n     *\r\n     * A component must belong to an NgModule in order for it to be available\r\n     * to another component or application. To make it a member of an NgModule,\r\n     * list it in the `declarations` field of the `NgModule` metadata.\r\n     *\r\n     * Note that, in addition to these options for configuring a directive,\r\n     * you can control a component's runtime behavior by implementing\r\n     * life-cycle hooks. For more information, see the\r\n     * [Lifecycle Hooks](guide/lifecycle-hooks) guide.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ### Setting component inputs\r\n     *\r\n     * The following example creates a component with two data-bound properties,\r\n     * specified by the `inputs` value.\r\n     *\r\n     * <code-example path=\"core/ts/metadata/directives.ts\" region=\"component-input\"></code-example>\r\n     *\r\n     *\r\n     * ### Setting component outputs\r\n     *\r\n     * The following example shows two event emitters that emit on an interval. One\r\n     * emits an output every second, while the other emits every five seconds.\r\n     *\r\n     * {@example core/ts/metadata/directives.ts region='component-output-interval'}\r\n     *\r\n     * ### Injecting a class with a view provider\r\n     *\r\n     * The following simple example injects a class into a component\r\n     * using the view provider specified in component metadata:\r\n     *\r\n     * ```ts\r\n     * class Greeter {\r\n     *    greet(name:string) {\r\n     *      return 'Hello ' + name + '!';\r\n     *    }\r\n     * }\r\n     *\r\n     * @Directive({\r\n     *   selector: 'needs-greeter'\r\n     * })\r\n     * class NeedsGreeter {\r\n     *   greeter:Greeter;\r\n     *\r\n     *   constructor(greeter:Greeter) {\r\n     *     this.greeter = greeter;\r\n     *   }\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'greet',\r\n     *   viewProviders: [\r\n     *     Greeter\r\n     *   ],\r\n     *   template: `<needs-greeter></needs-greeter>`\r\n     * })\r\n     * class HelloWorld {\r\n     * }\r\n     *\r\n     * ```\r\n     *\r\n     * ### Preserving whitespace\r\n     *\r\n     * Removing whitespace can greatly reduce AOT-generated code size and speed up view creation.\r\n     * As of Angular 6, the default for `preserveWhitespaces` is false (whitespace is removed).\r\n     * To change the default setting for all components in your application, set\r\n     * the `preserveWhitespaces` option of the AOT compiler.\r\n     *\r\n     * By default, the AOT compiler removes whitespace characters as follows:\r\n     * * Trims all whitespaces at the beginning and the end of a template.\r\n     * * Removes whitespace-only text nodes. For example,\r\n     *\r\n     * ```html\r\n     * <button>Action 1</button>  <button>Action 2</button>\r\n     * ```\r\n     *\r\n     * becomes:\r\n     *\r\n     * ```html\r\n     * <button>Action 1</button><button>Action 2</button>\r\n     * ```\r\n     *\r\n     * * Replaces a series of whitespace characters in text nodes with a single space.\r\n     * For example, `<span>\\n some text\\n</span>` becomes `<span> some text </span>`.\r\n     * * Does NOT alter text nodes inside HTML tags such as `<pre>` or `<textarea>`,\r\n     * where whitespace characters are significant.\r\n     *\r\n     * Note that these transformations can influence DOM nodes layout, although impact\r\n     * should be minimal.\r\n     *\r\n     * You can override the default behavior to preserve whitespace characters\r\n     * in certain fragments of a template. For example, you can exclude an entire\r\n     * DOM sub-tree by using the `ngPreserveWhitespaces` attribute:\r\n     *\r\n     * ```html\r\n     * <div ngPreserveWhitespaces>\r\n     *     whitespaces are preserved here\r\n     *     <span>    and here </span>\r\n     * </div>\r\n     * ```\r\n     *\r\n     * You can force a single space to be preserved in a text node by using `&ngsp;`,\r\n     * which is replaced with a space character by Angular's template\r\n     * compiler:\r\n     *\r\n     * ```html\r\n     * <a>Spaces</a>&ngsp;<a>between</a>&ngsp;<a>links.</a>\r\n     * <!-- compiled to be equivalent to:\r\n     *  <a>Spaces</a> <a>between</a> <a>links.</a>  -->\r\n     * ```\r\n     *\r\n     * Note that sequences of `&ngsp;` are still collapsed to just one space character when\r\n     * the `preserveWhitespaces` option is set to `false`.\r\n     *\r\n     * ```html\r\n     * <a>before</a>&ngsp;&ngsp;&ngsp;<a>after</a>\r\n     * <!-- compiled to be equivalent to:\r\n     *  <a>before</a> <a>after</a> -->\r\n     * ```\r\n     *\r\n     * To preserve sequences of whitespace characters, use the\r\n     * `ngPreserveWhitespaces` attribute.\r\n     *\r\n     * @Annotation\r\n     */\r\n    (obj: Component): TypeDecorator;\r\n    /**\r\n     * See the `Component` decorator.\r\n     */\r\n    new (obj: Component): Component;\r\n}\r\n\r\ndeclare interface ComponentDefFeature {\r\n    <T>(componentDef: ɵComponentDef<T>): void;\r\n    /**\r\n     * Marks a feature as something that {@link InheritDefinitionFeature} will execute\r\n     * during inheritance.\r\n     *\r\n     * NOTE: DO NOT SET IN ROOT OF MODULE! Doing so will result in tree-shakers/bundlers\r\n     * identifying the change as a side effect, and the feature will be included in\r\n     * every bundle.\r\n     */\r\n    ngInherit?: true;\r\n}\r\n\r\n/**\r\n * Base class for a factory that can create a component dynamically.\r\n * Instantiate a factory for a given type of component with `resolveComponentFactory()`.\r\n * Use the resulting `ComponentFactory.create()` method to create a component of that type.\r\n *\r\n * @see [Dynamic Components](guide/dynamic-component-loader)\r\n *\r\n * @publicApi\r\n */\r\ndeclare abstract class ComponentFactory<C> {\r\n    /**\r\n     * The component's HTML selector.\r\n     */\r\n    abstract get selector(): string;\r\n    /**\r\n     * The type of component the factory will create.\r\n     */\r\n    abstract get componentType(): Type<any>;\r\n    /**\r\n     * Selector for all <ng-content> elements in the component.\r\n     */\r\n    abstract get ngContentSelectors(): string[];\r\n    /**\r\n     * The inputs of the component.\r\n     */\r\n    abstract get inputs(): {\r\n        propName: string;\r\n        templateName: string;\r\n    }[];\r\n    /**\r\n     * The outputs of the component.\r\n     */\r\n    abstract get outputs(): {\r\n        propName: string;\r\n        templateName: string;\r\n    }[];\r\n    /**\r\n     * Creates a new component.\r\n     */\r\n    abstract create(injector: Injector, projectableNodes?: any[][], rootSelectorOrNode?: string | any, ngModule?: NgModuleRef<any>): ComponentRef<C>;\r\n}\r\nexport { ComponentFactory }\r\nexport { ComponentFactory as ɵComponentFactory }\r\n\r\n/**\r\n * A simple registry that maps `Components` to generated `ComponentFactory` classes\r\n * that can be used to create instances of components.\r\n * Use to obtain the factory for a given component type,\r\n * then use the factory's `create()` method to create a component of that type.\r\n *\r\n * @see [Dynamic Components](guide/dynamic-component-loader)\r\n * @see [Usage Example](guide/dynamic-component-loader#resolving-components)\r\n * @see <live-example name=\"dynamic-component-loader\" noDownload></live-example>\r\n of the code in this cookbook\r\n * @publicApi\r\n */\r\nexport declare abstract class ComponentFactoryResolver {\r\n    static NULL: ComponentFactoryResolver;\r\n    /**\r\n     * Retrieves the factory object that creates a component of the given type.\r\n     * @param component The component type.\r\n     */\r\n    abstract resolveComponentFactory<T>(component: Type<T>): ComponentFactory<T>;\r\n}\r\n\r\ndeclare class ComponentFactoryResolver_2 extends ComponentFactoryResolver {\r\n    private ngModule?;\r\n    /**\r\n     * @param ngModule The NgModuleRef to which all resolved factories are bound.\r\n     */\r\n    constructor(ngModule?: NgModuleRef<any> | undefined);\r\n    resolveComponentFactory<T>(component: Type<T>): ComponentFactory<T>;\r\n}\r\n\r\ndeclare type ComponentInstance = {};\r\n\r\n/**\r\n * Represents a component created by a `ComponentFactory`.\r\n * Provides access to the component instance and related objects,\r\n * and provides the means of destroying the instance.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class ComponentRef<C> {\r\n    /**\r\n     * The host or anchor [element](guide/glossary#element) for this component instance.\r\n     */\r\n    abstract get location(): ElementRef;\r\n    /**\r\n     * The [dependency injector](guide/glossary#injector) for this component instance.\r\n     */\r\n    abstract get injector(): Injector;\r\n    /**\r\n     * This component instance.\r\n     */\r\n    abstract get instance(): C;\r\n    /**\r\n     * The [host view](guide/glossary#view-tree) defined by the template\r\n     * for this component instance.\r\n     */\r\n    abstract get hostView(): ViewRef;\r\n    /**\r\n     * The change detector for this component instance.\r\n     */\r\n    abstract get changeDetectorRef(): ChangeDetectorRef;\r\n    /**\r\n     * The type of this component (as created by a `ComponentFactory` class).\r\n     */\r\n    abstract get componentType(): Type<any>;\r\n    /**\r\n     * Destroys the component instance and all of the data structures associated with it.\r\n     */\r\n    abstract destroy(): void;\r\n    /**\r\n     * A lifecycle hook that provides additional developer-defined cleanup\r\n     * functionality for the component.\r\n     * @param callback A handler function that cleans up developer-defined data\r\n     * associated with this component. Called when the `destroy()` method is invoked.\r\n     */\r\n    abstract onDestroy(callback: Function): void;\r\n}\r\n\r\n/**\r\n * Definition of what a template rendering function should look like for a component.\r\n */\r\ndeclare type ComponentTemplate<T> = {\r\n    <U extends T>(rf: ɵRenderFlags, ctx: T | U): void;\r\n};\r\n\r\n/**\r\n * Configures the `Injector` to return an instance of a token.\r\n *\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='ConstructorProvider'}\r\n *\r\n * ### Multi-value example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ConstructorProvider extends ConstructorSansProvider {\r\n    /**\r\n     * An injection token. Typically an instance of `Type` or `InjectionToken`, but can be `any`.\r\n     */\r\n    provide: Type<any>;\r\n    /**\r\n     * When true, injector returns an array of instances. This is useful to allow multiple\r\n     * providers spread across many files to provide configuration information to a common token.\r\n     */\r\n    multi?: boolean;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return an instance of a token.\r\n *\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * ```ts\r\n * @Injectable(SomeModule, {deps: []})\r\n * class MyService {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ConstructorSansProvider {\r\n    /**\r\n     * A list of `token`s to be resolved by the injector.\r\n     */\r\n    deps?: any[];\r\n}\r\n\r\n/**\r\n * Type of the ContentChild metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type ContentChild = Query;\r\n\r\n/**\r\n * ContentChild decorator and metadata.\r\n *\r\n *\r\n * @Annotation\r\n *\r\n * @publicApi\r\n */\r\nexport declare const ContentChild: ContentChildDecorator;\r\n\r\n/**\r\n * Type of the ContentChild decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ContentChildDecorator {\r\n    /**\r\n     * @description\r\n     * Property decorator that configures a content query.\r\n     *\r\n     * Use to get the first element or the directive matching the selector from the content DOM.\r\n     * If the content DOM changes, and a new child matches the selector,\r\n     * the property will be updated.\r\n     *\r\n     * Content queries are set before the `ngAfterContentInit` callback is called.\r\n     *\r\n     * Does not retrieve elements or directives that are in other components' templates,\r\n     * since a component's template is always a black box to its ancestors.\r\n     *\r\n     * **Metadata Properties**:\r\n     *\r\n     * * **selector** - The directive type or the name used for querying.\r\n     * * **read** - Used to read a different token from the queried element.\r\n     * * **static** - True to resolve query results before change detection runs,\r\n     * false to resolve after change detection. Defaults to false.\r\n     *\r\n     * The following selectors are supported.\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * A template reference variable as a string (e.g. query `<my-component #cmp></my-component>`\r\n     * with `@ContentChild('cmp')`)\r\n     *   * Any provider defined in the child component tree of the current component (e.g.\r\n     * `@ContentChild(SomeService) someService: SomeService`)\r\n     *   * Any provider defined through a string token (e.g. `@ContentChild('someToken') someTokenVal:\r\n     * any`)\r\n     *   * A `TemplateRef` (e.g. query `<ng-template></ng-template>` with `@ContentChild(TemplateRef)\r\n     * template;`)\r\n     *\r\n     * The following values are supported by `read`:\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * Any provider defined on the injector of the component that is matched by the `selector` of\r\n     * this query\r\n     *   * Any provider defined through a string token (e.g. `{provide: 'token', useValue: 'val'}`)\r\n     *   * `TemplateRef`, `ElementRef`, and `ViewContainerRef`\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * {@example core/di/ts/contentChild/content_child_howto.ts region='HowTo'}\r\n     *\r\n     * ### Example\r\n     *\r\n     * {@example core/di/ts/contentChild/content_child_example.ts region='Component'}\r\n     *\r\n     * @Annotation\r\n     */\r\n    (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        read?: any;\r\n        static?: boolean;\r\n    }): any;\r\n    new (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        read?: any;\r\n        static?: boolean;\r\n    }): ContentChild;\r\n}\r\n\r\n/**\r\n * Type of the ContentChildren metadata.\r\n *\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare type ContentChildren = Query;\r\n\r\n/**\r\n * ContentChildren decorator and metadata.\r\n *\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const ContentChildren: ContentChildrenDecorator;\r\n\r\n/**\r\n * Type of the ContentChildren decorator / constructor function.\r\n *\r\n * @see `ContentChildren`.\r\n * @publicApi\r\n */\r\nexport declare interface ContentChildrenDecorator {\r\n    /**\r\n     * @description\r\n     * Property decorator that configures a content query.\r\n     *\r\n     * Use to get the `QueryList` of elements or directives from the content DOM.\r\n     * Any time a child element is added, removed, or moved, the query list will be\r\n     * updated, and the changes observable of the query list will emit a new value.\r\n     *\r\n     * Content queries are set before the `ngAfterContentInit` callback is called.\r\n     *\r\n     * Does not retrieve elements or directives that are in other components' templates,\r\n     * since a component's template is always a black box to its ancestors.\r\n     *\r\n     * **Metadata Properties**:\r\n     *\r\n     * * **selector** - The directive type or the name used for querying.\r\n     * * **descendants** - If `true` include all descendants of the element. If `false` then only\r\n     * query direct children of the element.\r\n     * * **emitDistinctChangesOnly** - The ` QueryList#changes` observable will emit new values only\r\n     *   if the QueryList result has changed. When `false` the `changes` observable might emit even\r\n     *   if the QueryList has not changed.\r\n     *   ** Note: *** This config option is **deprecated**, it will be permanently set to `true` and\r\n     *   removed in future versions of Angular.\r\n     * * **read** - Used to read a different token from the queried elements.\r\n     *\r\n     * The following selectors are supported.\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * A template reference variable as a string (e.g. query `<my-component #cmp></my-component>`\r\n     * with `@ContentChildren('cmp')`)\r\n     *   * Any provider defined in the child component tree of the current component (e.g.\r\n     * `@ContentChildren(SomeService) someService: SomeService`)\r\n     *   * Any provider defined through a string token (e.g. `@ContentChildren('someToken')\r\n     * someTokenVal: any`)\r\n     *   * A `TemplateRef` (e.g. query `<ng-template></ng-template>` with\r\n     * `@ContentChildren(TemplateRef) template;`)\r\n     *\r\n     * In addition, multiple string selectors can be separated with a comma (e.g.\r\n     * `@ContentChildren('cmp1,cmp2')`)\r\n     *\r\n     * The following values are supported by `read`:\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * Any provider defined on the injector of the component that is matched by the `selector` of\r\n     * this query\r\n     *   * Any provider defined through a string token (e.g. `{provide: 'token', useValue: 'val'}`)\r\n     *   * `TemplateRef`, `ElementRef`, and `ViewContainerRef`\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * Here is a simple demonstration of how the `ContentChildren` decorator can be used.\r\n     *\r\n     * {@example core/di/ts/contentChildren/content_children_howto.ts region='HowTo'}\r\n     *\r\n     * ### Tab-pane example\r\n     *\r\n     * Here is a slightly more realistic example that shows how `ContentChildren` decorators\r\n     * can be used to implement a tab pane component.\r\n     *\r\n     * {@example core/di/ts/contentChildren/content_children_example.ts region='Component'}\r\n     *\r\n     * @Annotation\r\n     */\r\n    (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        descendants?: boolean;\r\n        emitDistinctChangesOnly?: boolean;\r\n        read?: any;\r\n    }): any;\r\n    new (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        descendants?: boolean;\r\n        emitDistinctChangesOnly?: boolean;\r\n        read?: any;\r\n    }): Query;\r\n}\r\n\r\n/**\r\n * Definition of what a content queries function should look like.\r\n */\r\ndeclare type ContentQueriesFunction<T> = <U extends T>(rf: ɵRenderFlags, ctx: U, directiveIndex: number) => void;\r\n\r\ndeclare const CONTEXT = 8;\r\n\r\n/** Options that control how the component should be bootstrapped. */\r\ndeclare interface CreateComponentOptions {\r\n    /** Which renderer factory to use. */\r\n    rendererFactory?: RendererFactory3;\r\n    /** A custom sanitizer instance */\r\n    sanitizer?: Sanitizer;\r\n    /** A custom animation player handler */\r\n    playerHandler?: ɵPlayerHandler;\r\n    /**\r\n     * Host element on which the component will be bootstrapped. If not specified,\r\n     * the component definition's `tag` is used to query the existing DOM for the\r\n     * element to bootstrap.\r\n     */\r\n    host?: RElement | string;\r\n    /** Module injector for the component. If unspecified, the injector will be NULL_INJECTOR. */\r\n    injector?: Injector;\r\n    /**\r\n     * List of features to be applied to the created component. Features are simply\r\n     * functions that decorate a component with a certain behavior.\r\n     *\r\n     * Typically, the features in this list are features that cannot be added to the\r\n     * other features list in the component definition because they rely on other factors.\r\n     *\r\n     * Example: `LifecycleHooksFeature` is a function that adds lifecycle hook capabilities\r\n     * to root components in a tree-shakable way. It cannot be added to the component\r\n     * features list because there's no way of knowing when the component will be used as\r\n     * a root component.\r\n     */\r\n    hostFeatures?: HostFeature[];\r\n    /**\r\n     * A function which is used to schedule change detection work in the future.\r\n     *\r\n     * When marking components as dirty, it is necessary to schedule the work of\r\n     * change detection in the future. This is done to coalesce multiple\r\n     * {@link markDirty} calls into a single changed detection processing.\r\n     *\r\n     * The default value of the scheduler is the `requestAnimationFrame` function.\r\n     *\r\n     * It is also useful to override this function for testing purposes.\r\n     */\r\n    scheduler?: (work: () => void) => void;\r\n}\r\n\r\n/**\r\n * Creates a platform.\r\n * Platforms must be created on launch using this function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function createPlatform(injector: Injector): PlatformRef;\r\n\r\n/**\r\n * Creates a factory for a platform. Can be used to provide or override `Providers` specific to\r\n * your application's runtime needs, such as `PLATFORM_INITIALIZER` and `PLATFORM_ID`.\r\n * @param parentPlatformFactory Another platform factory to modify. Allows you to compose factories\r\n * to build up configurations that might be required by different libraries or parts of the\r\n * application.\r\n * @param name Identifies the new platform factory.\r\n * @param providers A set of dependency providers for platforms created with the new factory.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function createPlatformFactory(parentPlatformFactory: ((extraProviders?: StaticProvider[]) => PlatformRef) | null, name: string, providers?: StaticProvider[]): (extraProviders?: StaticProvider[]) => PlatformRef;\r\n\r\n\r\n/**\r\n * Expresses a single CSS Selector.\r\n *\r\n * Beginning of array\r\n * - First index: element name\r\n * - Subsequent odd indices: attr keys\r\n * - Subsequent even indices: attr values\r\n *\r\n * After SelectorFlags.CLASS flag\r\n * - Class name values\r\n *\r\n * SelectorFlags.NOT flag\r\n * - Changes the mode to NOT\r\n * - Can be combined with other flags to set the element / attr / class mode\r\n *\r\n * e.g. SelectorFlags.NOT | SelectorFlags.ELEMENT\r\n *\r\n * Example:\r\n * Original: `div.foo.bar[attr1=val1][attr2]`\r\n * Parsed: ['div', 'attr1', 'val1', 'attr2', '', SelectorFlags.CLASS, 'foo', 'bar']\r\n *\r\n * Original: 'div[attr1]:not(.foo[attr2])\r\n * Parsed: [\r\n *  'div', 'attr1', '',\r\n *  SelectorFlags.NOT | SelectorFlags.ATTRIBUTE 'attr2', '', SelectorFlags.CLASS, 'foo'\r\n * ]\r\n *\r\n * See more examples in node_selector_matcher_spec.ts\r\n */\r\ndeclare type CssSelector = (string | SelectorFlags)[];\r\n\r\n/**\r\n * An object literal of this type is used to represent the metadata of a constructor dependency.\r\n * The type itself is never referred to from generated code.\r\n *\r\n * @publicApi\r\n */\r\ndeclare type CtorDependency = {\r\n    /**\r\n     * If an `@Attribute` decorator is used, this represents the injected attribute's name. If the\r\n     * attribute name is a dynamic expression instead of a string literal, this will be the unknown\r\n     * type.\r\n     */\r\n    attribute?: string | unknown;\r\n    /**\r\n     * If `@Optional()` is used, this key is set to true.\r\n     */\r\n    optional?: true;\r\n    /**\r\n     * If `@Host` is used, this key is set to true.\r\n     */\r\n    host?: true;\r\n    /**\r\n     * If `@Self` is used, this key is set to true.\r\n     */\r\n    self?: true;\r\n    /**\r\n     * If `@SkipSelf` is used, this key is set to true.\r\n     */\r\n    skipSelf?: true;\r\n} | null;\r\n\r\n/**\r\n * Defines a schema that allows an NgModule to contain the following:\r\n * - Non-Angular elements named with dash case (`-`).\r\n * - Element properties named with dash case (`-`).\r\n * Dash case is the naming convention for custom elements.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const CUSTOM_ELEMENTS_SCHEMA: SchemaMetadata;\r\n\r\n/**\r\n * @publicApi\r\n *\r\n * @see [Component testing scenarios](guide/testing-components-scenarios)\r\n * @see [Basics of testing components](guide/testing-components-basics)\r\n * @see [Testing utility APIs](guide/testing-utility-apis)\r\n */\r\nexport declare interface DebugElement extends DebugNode {\r\n    /**\r\n     * The element tag name, if it is an element.\r\n     */\r\n    readonly name: string;\r\n    /**\r\n     *  A map of property names to property values for an element.\r\n     *\r\n     *  This map includes:\r\n     *  - Regular property bindings (e.g. `[id]=\"id\"`)\r\n     *  - Host property bindings (e.g. `host: { '[id]': \"id\" }`)\r\n     *  - Interpolated property bindings (e.g. `id=\"{{ value }}\")\r\n     *\r\n     *  It does not include:\r\n     *  - input property bindings (e.g. `[myCustomInput]=\"value\"`)\r\n     *  - attribute bindings (e.g. `[attr.role]=\"menu\"`)\r\n     */\r\n    readonly properties: {\r\n        [key: string]: any;\r\n    };\r\n    /**\r\n     *  A map of attribute names to attribute values for an element.\r\n     */\r\n    readonly attributes: {\r\n        [key: string]: string | null;\r\n    };\r\n    /**\r\n     * A map containing the class names on the element as keys.\r\n     *\r\n     * This map is derived from the `className` property of the DOM element.\r\n     *\r\n     * Note: The values of this object will always be `true`. The class key will not appear in the KV\r\n     * object if it does not exist on the element.\r\n     *\r\n     * @see [Element.className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className)\r\n     */\r\n    readonly classes: {\r\n        [key: string]: boolean;\r\n    };\r\n    /**\r\n     * The inline styles of the DOM element.\r\n     *\r\n     * Will be `null` if there is no `style` property on the underlying DOM element.\r\n     *\r\n     * @see [ElementCSSInlineStyle](https://developer.mozilla.org/en-US/docs/Web/API/ElementCSSInlineStyle/style)\r\n     */\r\n    readonly styles: {\r\n        [key: string]: string | null;\r\n    };\r\n    /**\r\n     * The `childNodes` of the DOM element as a `DebugNode` array.\r\n     *\r\n     * @see [Node.childNodes](https://developer.mozilla.org/en-US/docs/Web/API/Node/childNodes)\r\n     */\r\n    readonly childNodes: DebugNode[];\r\n    /**\r\n     * The underlying DOM element at the root of the component.\r\n     */\r\n    readonly nativeElement: any;\r\n    /**\r\n     * The immediate `DebugElement` children. Walk the tree by descending through `children`.\r\n     */\r\n    readonly children: DebugElement[];\r\n    /**\r\n     * @returns the first `DebugElement` that matches the predicate at any depth in the subtree.\r\n     */\r\n    query(predicate: Predicate<DebugElement>): DebugElement;\r\n    /**\r\n     * @returns All `DebugElement` matches for the predicate at any depth in the subtree.\r\n     */\r\n    queryAll(predicate: Predicate<DebugElement>): DebugElement[];\r\n    /**\r\n     * @returns All `DebugNode` matches for the predicate at any depth in the subtree.\r\n     */\r\n    queryAllNodes(predicate: Predicate<DebugNode>): DebugNode[];\r\n    /**\r\n     * Triggers the event by its name if there is a corresponding listener in the element's\r\n     * `listeners` collection.\r\n     *\r\n     * If the event lacks a listener or there's some other problem, consider\r\n     * calling `nativeElement.dispatchEvent(eventObject)`.\r\n     *\r\n     * @param eventName The name of the event to trigger\r\n     * @param eventObj The _event object_ expected by the handler\r\n     *\r\n     * @see [Testing components scenarios](guide/testing-components-scenarios#trigger-event-handler)\r\n     */\r\n    triggerEventHandler(eventName: string, eventObj: any): void;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const DebugElement: {\r\n    new (...args: any[]): DebugElement;\r\n};\r\n\r\ndeclare class DebugElement__POST_R3__ extends DebugNode__POST_R3__ implements DebugElement {\r\n    constructor(nativeNode: Element);\r\n    get nativeElement(): Element | null;\r\n    get name(): string;\r\n    /**\r\n     *  Gets a map of property names to property values for an element.\r\n     *\r\n     *  This map includes:\r\n     *  - Regular property bindings (e.g. `[id]=\"id\"`)\r\n     *  - Host property bindings (e.g. `host: { '[id]': \"id\" }`)\r\n     *  - Interpolated property bindings (e.g. `id=\"{{ value }}\")\r\n     *\r\n     *  It does not include:\r\n     *  - input property bindings (e.g. `[myCustomInput]=\"value\"`)\r\n     *  - attribute bindings (e.g. `[attr.role]=\"menu\"`)\r\n     */\r\n    get properties(): {\r\n        [key: string]: any;\r\n    };\r\n    get attributes(): {\r\n        [key: string]: string | null;\r\n    };\r\n    get styles(): {\r\n        [key: string]: string | null;\r\n    };\r\n    get classes(): {\r\n        [key: string]: boolean;\r\n    };\r\n    get childNodes(): DebugNode[];\r\n    get children(): DebugElement[];\r\n    query(predicate: Predicate<DebugElement>): DebugElement;\r\n    queryAll(predicate: Predicate<DebugElement>): DebugElement[];\r\n    queryAllNodes(predicate: Predicate<DebugNode>): DebugNode[];\r\n    triggerEventHandler(eventName: string, eventObj: any): void;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare class DebugEventListener {\r\n    name: string;\r\n    callback: Function;\r\n    constructor(name: string, callback: Function);\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare interface DebugNode {\r\n    /**\r\n     * The callbacks attached to the component's @Output properties and/or the element's event\r\n     * properties.\r\n     */\r\n    readonly listeners: DebugEventListener[];\r\n    /**\r\n     * The `DebugElement` parent. Will be `null` if this is the root element.\r\n     */\r\n    readonly parent: DebugElement | null;\r\n    /**\r\n     * The underlying DOM node.\r\n     */\r\n    readonly nativeNode: any;\r\n    /**\r\n     * The host dependency injector. For example, the root element's component instance injector.\r\n     */\r\n    readonly injector: Injector;\r\n    /**\r\n     * The element's own component instance, if it has one.\r\n     */\r\n    readonly componentInstance: any;\r\n    /**\r\n     * An object that provides parent context for this element. Often an ancestor component instance\r\n     * that governs this element.\r\n     *\r\n     * When an element is repeated within *ngFor, the context is an `NgForOf` whose `$implicit`\r\n     * property is the value of the row instance value. For example, the `hero` in `*ngFor=\"let hero\r\n     * of heroes\"`.\r\n     */\r\n    readonly context: any;\r\n    /**\r\n     * Dictionary of objects associated with template local variables (e.g. #foo), keyed by the local\r\n     * variable name.\r\n     */\r\n    readonly references: {\r\n        [key: string]: any;\r\n    };\r\n    /**\r\n     * This component's injector lookup tokens. Includes the component itself plus the tokens that the\r\n     * component lists in its providers metadata.\r\n     */\r\n    readonly providerTokens: any[];\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const DebugNode: {\r\n    new (...args: any[]): DebugNode;\r\n};\r\n\r\n/**\r\n * A logical node which comprise into `LView`s.\r\n *\r\n */\r\ndeclare interface DebugNode_2 {\r\n    /**\r\n     * HTML representation of the node.\r\n     */\r\n    html: string | null;\r\n    /**\r\n     * Associated `TNode`\r\n     */\r\n    tNode: TNode;\r\n    /**\r\n     * Human readable node type.\r\n     */\r\n    type: string;\r\n    /**\r\n     * DOM native node.\r\n     */\r\n    native: Node;\r\n    /**\r\n     * Child nodes\r\n     */\r\n    children: DebugNode_2[];\r\n    /**\r\n     * A list of Component/Directive types which need to be instantiated an this location.\r\n     */\r\n    factories: Type<unknown>[];\r\n    /**\r\n     * A list of Component/Directive instances which were instantiated an this location.\r\n     */\r\n    instances: unknown[];\r\n    /**\r\n     * NodeInjector information.\r\n     */\r\n    injector: NodeInjectorDebug;\r\n    /**\r\n     * Injector resolution path.\r\n     */\r\n    injectorResolutionPath: any;\r\n}\r\n\r\ndeclare class DebugNode__POST_R3__ implements DebugNode {\r\n    readonly nativeNode: Node;\r\n    constructor(nativeNode: Node);\r\n    get parent(): DebugElement | null;\r\n    get injector(): Injector;\r\n    get componentInstance(): any;\r\n    get context(): any;\r\n    get listeners(): DebugEventListener[];\r\n    get references(): {\r\n        [key: string]: any;\r\n    };\r\n    get providerTokens(): any[];\r\n}\r\n\r\ndeclare const DECLARATION_COMPONENT_VIEW = 16;\r\n\r\ndeclare const DECLARATION_LCONTAINER = 17;\r\n\r\ndeclare const DECLARATION_VIEW = 15;\r\n\r\n/**\r\n * Provide this token to set the default currency code your application uses for\r\n * CurrencyPipe when there is no currency code passed into it. This is only used by\r\n * CurrencyPipe and has no relation to locale currency. Defaults to USD if not configured.\r\n *\r\n * See the [i18n guide](guide/i18n-common-locale-id) for more information.\r\n *\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 v10 the default currency code will be taken from the current locale.**\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 * @usageNotes\r\n * ### Example\r\n *\r\n * ```typescript\r\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n * import { AppModule } from './app/app.module';\r\n *\r\n * platformBrowserDynamic().bootstrapModule(AppModule, {\r\n *   providers: [{provide: DEFAULT_CURRENCY_CODE, useValue: 'EUR' }]\r\n * });\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare const DEFAULT_CURRENCY_CODE: InjectionToken<string>;\r\n\r\n/**\r\n * @deprecated v4.0.0 - Should not be part of public API.\r\n * @publicApi\r\n */\r\nexport declare class DefaultIterableDiffer<V> implements IterableDiffer<V>, IterableChanges<V> {\r\n    readonly length: number;\r\n    readonly collection: V[] | Iterable<V> | null;\r\n    private _linkedRecords;\r\n    private _unlinkedRecords;\r\n    private _previousItHead;\r\n    private _itHead;\r\n    private _itTail;\r\n    private _additionsHead;\r\n    private _additionsTail;\r\n    private _movesHead;\r\n    private _movesTail;\r\n    private _removalsHead;\r\n    private _removalsTail;\r\n    private _identityChangesHead;\r\n    private _identityChangesTail;\r\n    private _trackByFn;\r\n    constructor(trackByFn?: TrackByFunction<V>);\r\n    forEachItem(fn: (record: IterableChangeRecord_<V>) => void): void;\r\n    forEachOperation(fn: (item: IterableChangeRecord<V>, previousIndex: number | null, currentIndex: number | null) => void): void;\r\n    forEachPreviousItem(fn: (record: IterableChangeRecord_<V>) => void): void;\r\n    forEachAddedItem(fn: (record: IterableChangeRecord_<V>) => void): void;\r\n    forEachMovedItem(fn: (record: IterableChangeRecord_<V>) => void): void;\r\n    forEachRemovedItem(fn: (record: IterableChangeRecord_<V>) => void): void;\r\n    forEachIdentityChange(fn: (record: IterableChangeRecord_<V>) => void): void;\r\n    diff(collection: NgIterable<V> | null | undefined): DefaultIterableDiffer<V> | null;\r\n    onDestroy(): void;\r\n    check(collection: NgIterable<V>): boolean;\r\n    get isDirty(): boolean;\r\n    private _addToRemovals;\r\n}\r\n\r\n/**\r\n * @deprecated in v8, delete after v10. This API should be used only by generated code, and that\r\n * code should now use ɵɵdefineInjectable instead.\r\n * @publicApi\r\n */\r\nexport declare const defineInjectable: typeof ɵɵdefineInjectable;\r\n\r\ndeclare interface Definition<DF extends DefinitionFactory<any>> {\r\n    factory: DF | null;\r\n}\r\n\r\n/**\r\n * Factory for ViewDefinitions/NgModuleDefinitions.\r\n * We use a function so we can reexeute it in case an error happens and use the given logger\r\n * function to log the error from the definition of the node, which is shown in all browser\r\n * logs.\r\n */\r\ndeclare interface DefinitionFactory<D extends Definition<any>> {\r\n    (logger: NodeLogger): D;\r\n}\r\n\r\ndeclare interface DepDef {\r\n    flags: ɵDepFlags;\r\n    token: any;\r\n    tokenKey: string;\r\n}\r\n\r\n/**\r\n * Array of destroy hooks that should be executed for a view and their directive indices.\r\n *\r\n * The array is set up as a series of number/function or number/(number|function)[]:\r\n * - Even indices represent the context with which hooks should be called.\r\n * - Odd indices are the hook functions themselves. If a value at an odd index is an array,\r\n *   it represents the destroy hooks of a `multi` provider where:\r\n *     - Even indices represent the index of the provider for which we've registered a destroy hook,\r\n *       inside of the `multi` provider array.\r\n *     - Odd indices are the destroy hook functions.\r\n * For example:\r\n * LView: `[0, 1, 2, AService, 4, [BService, CService, DService]]`\r\n * destroyHooks: `[3, AService.ngOnDestroy, 5, [0, BService.ngOnDestroy, 2, DService.ngOnDestroy]]`\r\n *\r\n * In the example above `AService` is a type provider with an `ngOnDestroy`, whereas `BService`,\r\n * `CService` and `DService` are part of a `multi` provider where only `BService` and `DService`\r\n * have an `ngOnDestroy` hook.\r\n */\r\ndeclare type DestroyHookData = (HookEntry | HookData)[];\r\n\r\n/**\r\n * Destroys the current Angular platform and all Angular applications on the page.\r\n * Destroys all modules and listeners registered with the platform.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function destroyPlatform(): void;\r\n\r\n/**\r\n * Directive decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare interface Directive {\r\n    /**\r\n     * The CSS selector that identifies this directive in a template\r\n     * and triggers instantiation of the directive.\r\n     *\r\n     * Declare as one of the following:\r\n     *\r\n     * - `element-name`: Select by element name.\r\n     * - `.class`: Select by class name.\r\n     * - `[attribute]`: Select by attribute name.\r\n     * - `[attribute=value]`: Select by attribute name and value.\r\n     * - `:not(sub_selector)`: Select only if the element does not match the `sub_selector`.\r\n     * - `selector1, selector2`: Select if either `selector1` or `selector2` matches.\r\n     *\r\n     * Angular only allows directives to apply on CSS selectors that do not cross\r\n     * element boundaries.\r\n     *\r\n     * For the following template HTML, a directive with an `input[type=text]` selector,\r\n     * would be instantiated only on the `<input type=\"text\">` element.\r\n     *\r\n     * ```html\r\n     * <form>\r\n     *   <input type=\"text\">\r\n     *   <input type=\"radio\">\r\n     * <form>\r\n     * ```\r\n     *\r\n     */\r\n    selector?: string;\r\n    /**\r\n     * Enumerates the set of data-bound input properties for a directive\r\n     *\r\n     * Angular automatically updates input properties during change detection.\r\n     * The `inputs` property defines a set of `directiveProperty` to `bindingProperty`\r\n     * configuration:\r\n     *\r\n     * - `directiveProperty` specifies the component property where the value is written.\r\n     * - `bindingProperty` specifies the DOM property where the value is read from.\r\n     *\r\n     * When `bindingProperty` is not provided, it is assumed to be equal to `directiveProperty`.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The following example creates a component with two data-bound properties.\r\n     *\r\n     * ```typescript\r\n     * @Component({\r\n     *   selector: 'bank-account',\r\n     *   inputs: ['bankName', 'id: account-id'],\r\n     *   template: `\r\n     *     Bank Name: {{bankName}}\r\n     *     Account Id: {{id}}\r\n     *   `\r\n     * })\r\n     * class BankAccount {\r\n     *   bankName: string;\r\n     *   id: string;\r\n     * }\r\n     * ```\r\n     *\r\n     */\r\n    inputs?: string[];\r\n    /**\r\n     * Enumerates the set of event-bound output properties.\r\n     *\r\n     * When an output property emits an event, an event handler attached to that event\r\n     * in the template is invoked.\r\n     *\r\n     * The `outputs` property defines a set of `directiveProperty` to `bindingProperty`\r\n     * configuration:\r\n     *\r\n     * - `directiveProperty` specifies the component property that emits events.\r\n     * - `bindingProperty` specifies the DOM property the event handler is attached to.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ```typescript\r\n     * @Component({\r\n     *   selector: 'child-dir',\r\n     *   outputs: [ 'bankNameChange' ]\r\n     *   template: `<input (input)=\"bankNameChange.emit($event.target.value)\" />`\r\n     * })\r\n     * class ChildDir {\r\n     *  bankNameChange: EventEmitter<string> = new EventEmitter<string>();\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'main',\r\n     *   template: `\r\n     *     {{ bankName }} <child-dir (bankNameChange)=\"onBankNameChange($event)\"></child-dir>\r\n     *   `\r\n     * })\r\n     * class MainComponent {\r\n     *  bankName: string;\r\n     *\r\n     *   onBankNameChange(bankName: string) {\r\n     *     this.bankName = bankName;\r\n     *   }\r\n     * }\r\n     * ```\r\n     *\r\n     */\r\n    outputs?: string[];\r\n    /**\r\n     * Configures the [injector](guide/glossary#injector) of this\r\n     * directive or component with a [token](guide/glossary#di-token)\r\n     * that maps to a [provider](guide/glossary#provider) of a dependency.\r\n     */\r\n    providers?: Provider[];\r\n    /**\r\n     * Defines the name that can be used in the template to assign this directive to a variable.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ```ts\r\n     * @Directive({\r\n     *   selector: 'child-dir',\r\n     *   exportAs: 'child'\r\n     * })\r\n     * class ChildDir {\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'main',\r\n     *   template: `<child-dir #c=\"child\"></child-dir>`\r\n     * })\r\n     * class MainComponent {\r\n     * }\r\n     * ```\r\n     *\r\n     */\r\n    exportAs?: string;\r\n    /**\r\n     * Configures the queries that will be injected into the directive.\r\n     *\r\n     * Content queries are set before the `ngAfterContentInit` callback is called.\r\n     * View queries are set before the `ngAfterViewInit` callback is called.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The following example shows how queries are defined\r\n     * and when their results are available in lifecycle hooks:\r\n     *\r\n     * ```ts\r\n     * @Component({\r\n     *   selector: 'someDir',\r\n     *   queries: {\r\n     *     contentChildren: new ContentChildren(ChildDirective),\r\n     *     viewChildren: new ViewChildren(ChildDirective)\r\n     *   },\r\n     *   template: '<child-directive></child-directive>'\r\n     * })\r\n     * class SomeDir {\r\n     *   contentChildren: QueryList<ChildDirective>,\r\n     *   viewChildren: QueryList<ChildDirective>\r\n     *\r\n     *   ngAfterContentInit() {\r\n     *     // contentChildren is set\r\n     *   }\r\n     *\r\n     *   ngAfterViewInit() {\r\n     *     // viewChildren is set\r\n     *   }\r\n     * }\r\n     * ```\r\n     *\r\n     * @Annotation\r\n     */\r\n    queries?: {\r\n        [key: string]: any;\r\n    };\r\n    /**\r\n     * Maps class properties to host element bindings for properties,\r\n     * attributes, and events, using a set of key-value pairs.\r\n     *\r\n     * Angular automatically checks host property bindings during change detection.\r\n     * If a binding changes, Angular updates the directive's host element.\r\n     *\r\n     * When the key is a property of the host element, the property value is\r\n     * the propagated to the specified DOM property.\r\n     *\r\n     * When the key is a static attribute in the DOM, the attribute value\r\n     * is propagated to the specified property in the host element.\r\n     *\r\n     * For event handling:\r\n     * - The key is the DOM event that the directive listens to.\r\n     * To listen to global events, add the target to the event name.\r\n     * The target can be `window`, `document` or `body`.\r\n     * - The value is the statement to execute when the event occurs. If the\r\n     * statement evaluates to `false`, then `preventDefault` is applied on the DOM\r\n     * event. A handler method can refer to the `$event` local variable.\r\n     *\r\n     */\r\n    host?: {\r\n        [key: string]: string;\r\n    };\r\n    /**\r\n     * When present, this directive/component is ignored by the AOT compiler.\r\n     * It remains in distributed code, and the JIT compiler attempts to compile it\r\n     * at run time, in the browser.\r\n     * To ensure the correct behavior, the app must import `@angular/compiler`.\r\n     */\r\n    jit?: true;\r\n}\r\n\r\n/**\r\n * Type of the Directive metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const Directive: DirectiveDecorator;\r\n\r\n/**\r\n * Type of the Directive decorator / constructor function.\r\n * @publicApi\r\n */\r\nexport declare interface DirectiveDecorator {\r\n    /**\r\n     * Decorator that marks a class as an Angular directive.\r\n     * You can define your own directives to attach custom behavior to elements in the DOM.\r\n     *\r\n     * The options provide configuration metadata that determines\r\n     * how the directive should be processed, instantiated and used at\r\n     * runtime.\r\n     *\r\n     * Directive classes, like component classes, can implement\r\n     * [life-cycle hooks](guide/lifecycle-hooks) to influence their configuration and behavior.\r\n     *\r\n     *\r\n     * @usageNotes\r\n     * To define a directive, mark the class with the decorator and provide metadata.\r\n     *\r\n     * ```ts\r\n     * import {Directive} from '@angular/core';\r\n     *\r\n     * @Directive({\r\n     *   selector: 'my-directive',\r\n     * })\r\n     * export class MyDirective {\r\n     * ...\r\n     * }\r\n     * ```\r\n     *\r\n     * ### Declaring directives\r\n     *\r\n     * Directives are [declarables](guide/glossary#declarable).\r\n     * They must be declared by an NgModule\r\n     * in order to be usable in an app.\r\n     *\r\n     * A directive must belong to exactly one NgModule. Do not re-declare\r\n     * a directive imported from another module.\r\n     * List the directive class in the `declarations` field of an NgModule.\r\n     *\r\n     * ```ts\r\n     * declarations: [\r\n     *  AppComponent,\r\n     *  MyDirective\r\n     * ],\r\n     * ```\r\n     *\r\n     * @Annotation\r\n     */\r\n    (obj?: Directive): TypeDecorator;\r\n    /**\r\n     * See the `Directive` decorator.\r\n     */\r\n    new (obj?: Directive): Directive;\r\n}\r\n\r\ndeclare interface DirectiveDefFeature {\r\n    <T>(directiveDef: ɵDirectiveDef<T>): void;\r\n    /**\r\n     * Marks a feature as something that {@link InheritDefinitionFeature} will execute\r\n     * during inheritance.\r\n     *\r\n     * NOTE: DO NOT SET IN ROOT OF MODULE! Doing so will result in tree-shakers/bundlers\r\n     * identifying the change as a side effect, and the feature will be included in\r\n     * every bundle.\r\n     */\r\n    ngInherit?: true;\r\n}\r\n\r\ndeclare type DirectiveDefList = (ɵDirectiveDef<any> | ɵComponentDef<any>)[];\r\n\r\n/**\r\n * Type used for directiveDefs on component definition.\r\n *\r\n * The function is necessary to be able to support forward declarations.\r\n */\r\ndeclare type DirectiveDefListOrFactory = (() => DirectiveDefList) | DirectiveDefList;\r\n\r\ndeclare type DirectiveInstance = {};\r\n\r\ndeclare type DirectiveTypeList = (ɵDirectiveType<any> | ɵComponentType<any> | Type<any>)[];\r\n\r\ndeclare type DirectiveTypesOrFactory = (() => DirectiveTypeList) | DirectiveTypeList;\r\n\r\ndeclare interface DisposableFn {\r\n    (): void;\r\n}\r\n\r\n/**\r\n * @description\r\n * Hook for manual bootstrapping of the application instead of using `bootstrap` array in @NgModule\r\n * annotation. This hook is invoked only when the `bootstrap` array is empty or not provided.\r\n *\r\n * Reference to the current application is provided as a parameter.\r\n *\r\n * See [\"Bootstrapping\"](guide/bootstrapping) and [\"Entry components\"](guide/entry-components).\r\n *\r\n * @usageNotes\r\n * The example below uses `ApplicationRef.bootstrap()` to render the\r\n * `AppComponent` on the page.\r\n *\r\n * ```typescript\r\n * class AppModule implements DoBootstrap {\r\n *   ngDoBootstrap(appRef: ApplicationRef) {\r\n *     appRef.bootstrap(AppComponent); // Or some other component\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface DoBootstrap {\r\n    ngDoBootstrap(appRef: ApplicationRef): void;\r\n}\r\n\r\n/**\r\n * A lifecycle hook that invokes a custom change-detection function for a directive,\r\n * in addition to the check performed by the default change-detector.\r\n *\r\n * The default change-detection algorithm looks for differences by comparing\r\n * bound-property values by reference across change detection runs. You can use this\r\n * hook to check for and respond to changes by some other means.\r\n *\r\n * When the default change detector detects changes, it invokes `ngOnChanges()` if supplied,\r\n * regardless of whether you perform additional change detection.\r\n * Typically, you should not use both `DoCheck` and `OnChanges` to respond to\r\n * changes on the same input.\r\n *\r\n * @see `OnChanges`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface\r\n * to invoke it own change-detection cycle.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='DoCheck'}\r\n *\r\n * For a more complete example and discussion, see\r\n * [Defining custom change detection](guide/lifecycle-hooks#defining-custom-change-detection).\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface DoCheck {\r\n    /**\r\n     * A callback method that performs change-detection, invoked\r\n     * after the default change-detector runs.\r\n     * See `KeyValueDiffers` and `IterableDiffers` for implementing\r\n     * custom change checking for collections.\r\n     *\r\n     */\r\n    ngDoCheck(): void;\r\n}\r\n\r\n/**\r\n * Marks that the next string is an element name.\r\n *\r\n * See `I18nMutateOpCodes` documentation.\r\n */\r\ndeclare const ELEMENT_MARKER: ELEMENT_MARKER;\r\n\r\ndeclare interface ELEMENT_MARKER {\r\n    marker: 'element';\r\n}\r\n\r\ndeclare interface ElementDef {\r\n    name: string | null;\r\n    ns: string | null;\r\n    /** ns, name, value */\r\n    attrs: [string, string, string][] | null;\r\n    template: ɵViewDefinition | null;\r\n    componentProvider: NodeDef | null;\r\n    componentRendererType: RendererType2 | null;\r\n    componentView: ViewDefinitionFactory | null;\r\n    /**\r\n     * visible public providers for DI in the view,\r\n     * as see from this element. This does not include private providers.\r\n     */\r\n    publicProviders: {\r\n        [tokenKey: string]: NodeDef;\r\n    } | null;\r\n    /**\r\n     * same as visiblePublicProviders, but also includes private providers\r\n     * that are located on this element.\r\n     */\r\n    allProviders: {\r\n        [tokenKey: string]: NodeDef;\r\n    } | null;\r\n    handleEvent: ElementHandleEventFn | null;\r\n}\r\n\r\ndeclare interface ElementHandleEventFn {\r\n    (view: ViewData, eventName: string, event: any): boolean;\r\n}\r\n\r\n/**\r\n * A wrapper around a native element inside of a View.\r\n *\r\n * An `ElementRef` is backed by a render-specific element. In the browser, this is usually a DOM\r\n * element.\r\n *\r\n * @security Permitting direct access to the DOM can make your application more vulnerable to\r\n * XSS attacks. Carefully review any use of `ElementRef` in your code. For more detail, see the\r\n * [Security Guide](https://g.co/ng/security).\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ElementRef<T = any> {\r\n    /**\r\n     * The underlying native element or `null` if direct access to native elements is not supported\r\n     * (e.g. when the application runs in a web worker).\r\n     *\r\n     * <div class=\"callout is-critical\">\r\n     *   <header>Use with caution</header>\r\n     *   <p>\r\n     *    Use this API as the last resort when direct access to DOM is needed. Use templating and\r\n     *    data-binding provided by Angular instead. Alternatively you can take a look at {@link\r\n     * Renderer2}\r\n     *    which provides API that can safely be used even when direct access to native elements is not\r\n     *    supported.\r\n     *   </p>\r\n     *   <p>\r\n     *    Relying on direct DOM access creates tight coupling between your application and rendering\r\n     *    layers which will make it impossible to separate the two and deploy your application into a\r\n     *    web worker.\r\n     *   </p>\r\n     * </div>\r\n     *\r\n     */\r\n    nativeElement: T;\r\n    constructor(nativeElement: T);\r\n}\r\n\r\n/**\r\n * Represents an Angular [view](guide/glossary#view) in a view container.\r\n * An [embedded view](guide/glossary#view-tree) can be referenced from a component\r\n * other than the hosting component whose template defines it, or it can be defined\r\n * independently by a `TemplateRef`.\r\n *\r\n * Properties of elements in a view can change, but the structure (number and order) of elements in\r\n * a view cannot. Change the structure of elements by inserting, moving, or\r\n * removing nested views in a view container.\r\n *\r\n * @see `ViewContainerRef`\r\n *\r\n * @usageNotes\r\n *\r\n * The following template breaks down into two separate `TemplateRef` instances,\r\n * an outer one and an inner one.\r\n *\r\n * ```\r\n * Count: {{items.length}}\r\n * <ul>\r\n *   <li *ngFor=\"let  item of items\">{{item}}</li>\r\n * </ul>\r\n * ```\r\n *\r\n * This is the outer `TemplateRef`:\r\n *\r\n * ```\r\n * Count: {{items.length}}\r\n * <ul>\r\n *   <ng-template ngFor let-item [ngForOf]=\"items\"></ng-template>\r\n * </ul>\r\n * ```\r\n *\r\n * This is the inner `TemplateRef`:\r\n *\r\n * ```\r\n *   <li>{{item}}</li>\r\n * ```\r\n *\r\n * The outer and inner `TemplateRef` instances are assembled into views as follows:\r\n *\r\n * ```\r\n * <!-- ViewRef: outer-0 -->\r\n * Count: 2\r\n * <ul>\r\n *   <ng-template view-container-ref></ng-template>\r\n *   <!-- ViewRef: inner-1 --><li>first</li><!-- /ViewRef: inner-1 -->\r\n *   <!-- ViewRef: inner-2 --><li>second</li><!-- /ViewRef: inner-2 -->\r\n * </ul>\r\n * <!-- /ViewRef: outer-0 -->\r\n * ```\r\n * @publicApi\r\n */\r\nexport declare abstract class EmbeddedViewRef<C> extends ViewRef {\r\n    /**\r\n     * The context for this view, inherited from the anchor element.\r\n     */\r\n    abstract context: C;\r\n    /**\r\n     * The root nodes for this embedded view.\r\n     */\r\n    abstract get rootNodes(): any[];\r\n}\r\n\r\n/**\r\n * Disable Angular's development mode, which turns off assertions and other\r\n * checks within the framework.\r\n *\r\n * One important assertion this disables verifies that a change detection pass\r\n * does not result in additional changes to any bindings (also known as\r\n * unidirectional data flow).\r\n *\r\n * @publicApi\r\n */\r\nexport declare function enableProdMode(): void;\r\n\r\n\r\n/**\r\n * Provides a hook for centralized exception handling.\r\n *\r\n * The default implementation of `ErrorHandler` prints error messages to the `console`. To\r\n * intercept error handling, write a custom exception handler that replaces this default as\r\n * appropriate for your app.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```\r\n * class MyErrorHandler implements ErrorHandler {\r\n *   handleError(error) {\r\n *     // do something with the exception\r\n *   }\r\n * }\r\n *\r\n * @NgModule({\r\n *   providers: [{provide: ErrorHandler, useClass: MyErrorHandler}]\r\n * })\r\n * class MyModule {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ErrorHandler {\r\n    handleError(error: any): void;\r\n}\r\n\r\n/**\r\n * Use in components with the `@Output` directive to emit custom events\r\n * synchronously or asynchronously, and register handlers for those events\r\n * by subscribing to an instance.\r\n *\r\n * @usageNotes\r\n *\r\n * Extends\r\n * [RxJS `Subject`](https://rxjs.dev/api/index/class/Subject)\r\n * for Angular by adding the `emit()` method.\r\n *\r\n * In the following example, a component defines two output properties\r\n * that create event emitters. When the title is clicked, the emitter\r\n * emits an open or close event to toggle the current visibility state.\r\n *\r\n * ```html\r\n * @Component({\r\n *   selector: 'zippy',\r\n *   template: `\r\n *   <div class=\"zippy\">\r\n *     <div (click)=\"toggle()\">Toggle</div>\r\n *     <div [hidden]=\"!visible\">\r\n *       <ng-content></ng-content>\r\n *     </div>\r\n *  </div>`})\r\n * export class Zippy {\r\n *   visible: boolean = true;\r\n *   @Output() open: EventEmitter<any> = new EventEmitter();\r\n *   @Output() close: EventEmitter<any> = new EventEmitter();\r\n *\r\n *   toggle() {\r\n *     this.visible = !this.visible;\r\n *     if (this.visible) {\r\n *       this.open.emit(null);\r\n *     } else {\r\n *       this.close.emit(null);\r\n *     }\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * Access the event object with the `$event` argument passed to the output event\r\n * handler:\r\n *\r\n * ```html\r\n * <zippy (open)=\"onOpen($event)\" (close)=\"onClose($event)\"></zippy>\r\n * ```\r\n *\r\n * @see [Observables in Angular](guide/observables-in-angular)\r\n * @publicApi\r\n */\r\nexport declare interface EventEmitter<T> extends Subject<T> {\r\n    /**\r\n     * Creates an instance of this class that can\r\n     * deliver events synchronously or asynchronously.\r\n     *\r\n     * @param [isAsync=false] When true, deliver events asynchronously.\r\n     *\r\n     */\r\n    new (isAsync?: boolean): EventEmitter<T>;\r\n    /**\r\n     * Emits an event containing a given value.\r\n     * @param value The value to emit.\r\n     */\r\n    emit(value?: T): void;\r\n    /**\r\n     * Registers handlers for events emitted by this instance.\r\n     * @param next When supplied, a custom handler for emitted events.\r\n     * @param error When supplied, a custom handler for an error notification from this emitter.\r\n     * @param complete When supplied, a custom handler for a completion notification from this\r\n     *     emitter.\r\n     */\r\n    subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\r\n    /**\r\n     * Registers handlers for events emitted by this instance.\r\n     * @param observerOrNext When supplied, a custom handler for emitted events, or an observer\r\n     *     object.\r\n     * @param error When supplied, a custom handler for an error notification from this emitter.\r\n     * @param complete When supplied, a custom handler for a completion notification from this\r\n     *     emitter.\r\n     */\r\n    subscribe(observerOrNext?: any, error?: any, complete?: any): Subscription;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const EventEmitter: {\r\n    new (isAsync?: boolean): EventEmitter<any>;\r\n    new <T>(isAsync?: boolean): EventEmitter<T>;\r\n    readonly prototype: EventEmitter<any>;\r\n};\r\n\r\n/**\r\n * Configures the `Injector` to return a value of another `useExisting` token.\r\n *\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='ExistingProvider'}\r\n *\r\n * ### Multi-value example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ExistingProvider extends ExistingSansProvider {\r\n    /**\r\n     * An injection token. Typically an instance of `Type` or `InjectionToken`, but can be `any`.\r\n     */\r\n    provide: any;\r\n    /**\r\n     * When true, injector returns an array of instances. This is useful to allow multiple\r\n     * providers spread across many files to provide configuration information to a common token.\r\n     */\r\n    multi?: boolean;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return a value of another `useExisting` token.\r\n *\r\n * @see `ExistingProvider`\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ExistingSansProvider {\r\n    /**\r\n     * Existing `token` to return. (Equivalent to `injector.get(useExisting)`)\r\n     */\r\n    useExisting: any;\r\n}\r\n\r\n/**\r\n * Definition of what a factory function should look like.\r\n */\r\ndeclare type FactoryFn<T> = {\r\n    /**\r\n     * Subclasses without an explicit constructor call through to the factory of their base\r\n     * definition, providing it with their own constructor to instantiate.\r\n     */\r\n    <U extends T>(t?: Type<U>): U;\r\n    /**\r\n     * If no constructor to instantiate is provided, an instance of type T itself is created.\r\n     */\r\n    (t?: undefined): T;\r\n};\r\n\r\n/**\r\n * Configures the `Injector` to return a value by invoking a `useFactory` function.\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='FactoryProvider'}\r\n *\r\n * Dependencies can also be marked as optional:\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='FactoryProviderOptionalDeps'}\r\n *\r\n * ### Multi-value example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface FactoryProvider extends FactorySansProvider {\r\n    /**\r\n     * An injection token. (Typically an instance of `Type` or `InjectionToken`, but can be `any`).\r\n     */\r\n    provide: any;\r\n    /**\r\n     * When true, injector returns an array of instances. This is useful to allow multiple\r\n     * providers spread across many files to provide configuration information to a common token.\r\n     */\r\n    multi?: boolean;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return a value by invoking a `useFactory` function.\r\n *\r\n * @see `FactoryProvider`\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface FactorySansProvider {\r\n    /**\r\n     * A function to invoke to create a value for this `token`. The function is invoked with\r\n     * resolved values of `token`s in the `deps` field.\r\n     */\r\n    useFactory: Function;\r\n    /**\r\n     * A list of `token`s to be resolved by the injector. The list of values is then\r\n     * used as arguments to the `useFactory` function.\r\n     */\r\n    deps?: any[];\r\n}\r\n\r\ndeclare const FLAGS = 2;\r\n\r\n/**\r\n * Allows to refer to references which are not yet defined.\r\n *\r\n * For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of\r\n * DI is declared, but not yet defined. It is also used when the `token` which we use when creating\r\n * a query is not yet defined.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}\r\n * @publicApi\r\n */\r\nexport declare function forwardRef(forwardRefFn: ForwardRefFn): Type<any>;\r\n\r\n/**\r\n * An interface that a function passed into {@link forwardRef} has to implement.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref_fn'}\r\n * @publicApi\r\n */\r\nexport declare interface ForwardRefFn {\r\n    (): any;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const getDebugNode: (nativeNode: any) => DebugNode | null;\r\n\r\n/**\r\n * Returns the NgModuleFactory with the given id, if it exists and has been loaded.\r\n * Factories for modules that do not specify an `id` cannot be retrieved. Throws if the module\r\n * cannot be found.\r\n * @publicApi\r\n */\r\nexport declare const getModuleFactory: (id: string) => NgModuleFactory<any>;\r\n\r\n/**\r\n * Returns the current platform.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function getPlatform(): PlatformRef | null;\r\n\r\n/**\r\n * Adapter interface for retrieving the `Testability` service associated for a\r\n * particular context.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface GetTestability {\r\n    addToWindow(registry: TestabilityRegistry): void;\r\n    findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean): Testability | null;\r\n}\r\n\r\ndeclare type GlobalTargetName = 'document' | 'window' | 'body';\r\n\r\ndeclare type GlobalTargetResolver = (element: any) => EventTarget;\r\n\r\n/**\r\n * Flag to signify that this `LContainer` may have transplanted views which need to be change\r\n * detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.\r\n *\r\n * This flag, once set, is never unset for the `LContainer`. This means that when unset we can skip\r\n * a lot of work in `refreshEmbeddedViews`. But when set we still need to verify\r\n * that the `MOVED_VIEWS` are transplanted and on-push.\r\n */\r\ndeclare const HAS_TRANSPLANTED_VIEWS = 2;\r\n\r\n/**\r\n * Array of hooks that should be executed for a view and their directive indices.\r\n *\r\n * For each node of the view, the following data is stored:\r\n * 1) Node index (optional)\r\n * 2) A series of number/function pairs where:\r\n *  - even indices are directive indices\r\n *  - odd indices are hook functions\r\n *\r\n * Special cases:\r\n *  - a negative directive index flags an init hook (ngOnInit, ngAfterContentInit, ngAfterViewInit)\r\n */\r\ndeclare type HookData = HookEntry[];\r\n\r\n/**\r\n * Information necessary to call a hook. E.g. the callback that\r\n * needs to invoked and the index at which to find its context.\r\n */\r\ndeclare type HookEntry = number | HookFn;\r\n\r\n/** Single hook callback function. */\r\ndeclare type HookFn = () => void;\r\n\r\ndeclare const HOST = 0;\r\n\r\n/**\r\n * Type of the Host metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Host {\r\n}\r\n\r\n/**\r\n * Host decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Host: HostDecorator;\r\n\r\n/**\r\n * Type of the HostBinding metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface HostBinding {\r\n    /**\r\n     * The DOM property that is bound to a data property.\r\n     */\r\n    hostPropertyName?: string;\r\n}\r\n\r\n/**\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const HostBinding: HostBindingDecorator;\r\n\r\n/**\r\n * Type of the HostBinding decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface HostBindingDecorator {\r\n    /**\r\n     * Decorator that marks a DOM property as a host-binding property and supplies configuration\r\n     * metadata.\r\n     * Angular automatically checks host property bindings during change detection, and\r\n     * if a binding changes it updates the host element of the directive.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The following example creates a directive that sets the `valid` and `invalid`\r\n     * properties on the DOM element that has an `ngModel` directive on it.\r\n     *\r\n     * ```typescript\r\n     * @Directive({selector: '[ngModel]'})\r\n     * class NgModelStatus {\r\n     *   constructor(public control: NgModel) {}\r\n     *   @HostBinding('class.valid') get valid() { return this.control.valid; }\r\n     *   @HostBinding('class.invalid') get invalid() { return this.control.invalid; }\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'app',\r\n     *   template: `<input [(ngModel)]=\"prop\">`,\r\n     * })\r\n     * class App {\r\n     *   prop;\r\n     * }\r\n     * ```\r\n     *\r\n     */\r\n    (hostPropertyName?: string): any;\r\n    new (hostPropertyName?: string): any;\r\n}\r\n\r\n/**\r\n * Stores a set of OpCodes to process `HostBindingsFunction` associated with a current view.\r\n *\r\n * In order to invoke `HostBindingsFunction` we need:\r\n * 1. 'elementIdx`: Index to the element associated with the `HostBindingsFunction`.\r\n * 2. 'directiveIdx`: Index to the directive associated with the `HostBindingsFunction`. (This will\r\n *    become the context for the `HostBindingsFunction` invocation.)\r\n * 3. `bindingRootIdx`: Location where the bindings for the `HostBindingsFunction` start. Internally\r\n *    `HostBindingsFunction` binding indexes start from `0` so we need to add `bindingRootIdx` to\r\n *    it.\r\n * 4. `HostBindingsFunction`: A host binding function to execute.\r\n *\r\n * The above information needs to be encoded into the `HostBindingOpCodes` in an efficient manner.\r\n *\r\n * 1. `elementIdx` is encoded into the `HostBindingOpCodes` as `~elementIdx` (so a negative number);\r\n * 2. `directiveIdx`\r\n * 3. `bindingRootIdx`\r\n * 4. `HostBindingsFunction` is passed in as is.\r\n *\r\n * The `HostBindingOpCodes` array contains:\r\n * - negative number to select the element index.\r\n * - followed by 1 or more of:\r\n *    - a number to select the directive index\r\n *    - a number to select the bindingRoot index\r\n *    - and a function to invoke.\r\n *\r\n * ## Example\r\n *\r\n * ```\r\n * const hostBindingOpCodes = [\r\n *   ~30,                               // Select element 30\r\n *   40, 45, MyDir.ɵdir.hostBindings    // Invoke host bindings on MyDir on element 30;\r\n *                                      // directiveIdx = 40; bindingRootIdx = 45;\r\n *   50, 55, OtherDir.ɵdir.hostBindings // Invoke host bindings on OtherDire on element 30\r\n *                                      // directiveIdx = 50; bindingRootIdx = 55;\r\n * ]\r\n * ```\r\n *\r\n * ## Pseudocode\r\n * ```\r\n * const hostBindingOpCodes = tView.hostBindingOpCodes;\r\n * if (hostBindingOpCodes === null) return;\r\n * for (let i = 0; i < hostBindingOpCodes.length; i++) {\r\n *   const opCode = hostBindingOpCodes[i] as number;\r\n *   if (opCode < 0) {\r\n *     // Negative numbers are element indexes.\r\n *     setSelectedIndex(~opCode);\r\n *   } else {\r\n *     // Positive numbers are NumberTuple which store bindingRootIndex and directiveIndex.\r\n *     const directiveIdx = opCode;\r\n *     const bindingRootIndx = hostBindingOpCodes[++i] as number;\r\n *     const hostBindingFn = hostBindingOpCodes[++i] as HostBindingsFunction<any>;\r\n *     setBindingRootForHostBindings(bindingRootIndx, directiveIdx);\r\n *     const context = lView[directiveIdx];\r\n *     hostBindingFn(RenderFlags.Update, context);\r\n *   }\r\n * }\r\n * ```\r\n *\r\n */\r\ndeclare interface HostBindingOpCodes extends Array<number | HostBindingsFunction<any>> {\r\n    __brand__: 'HostBindingOpCodes';\r\n    debug?: string[];\r\n}\r\n\r\ndeclare type HostBindingsFunction<T> = <U extends T>(rf: ɵRenderFlags, ctx: U) => void;\r\n\r\n/**\r\n * Type of the `Host` decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface HostDecorator {\r\n    /**\r\n     * Parameter decorator on a view-provider parameter of a class constructor\r\n     * that tells the DI framework to resolve the view by checking injectors of child\r\n     * elements, and stop when reaching the host element of the current component.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The following shows use with the `@Optional` decorator, and allows for a `null` result.\r\n     *\r\n     * <code-example path=\"core/di/ts/metadata_spec.ts\" region=\"Host\">\r\n     * </code-example>\r\n     *\r\n     * For an extended example, see [\"Dependency Injection\r\n     * Guide\"](guide/dependency-injection-in-action#optional).\r\n     */\r\n    (): any;\r\n    new (): Host;\r\n}\r\n\r\n/** See CreateComponentOptions.hostFeatures */\r\ndeclare type HostFeature = (<T>(component: T, componentDef: ɵComponentDef<T>) => void);\r\n\r\n/**\r\n * Type of the HostListener metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface HostListener {\r\n    /**\r\n     * The DOM event to listen for.\r\n     */\r\n    eventName?: string;\r\n    /**\r\n     * A set of arguments to pass to the handler method when the event occurs.\r\n     */\r\n    args?: string[];\r\n}\r\n\r\n/**\r\n * Decorator that binds a DOM event to a host listener and supplies configuration metadata.\r\n * Angular invokes the supplied handler method when the host element emits the specified event,\r\n * and updates the bound element with the result.\r\n *\r\n * If the handler method returns false, applies `preventDefault` on the bound element.\r\n *\r\n * @usageNotes\r\n *\r\n * The following example declares a directive\r\n * that attaches a click listener to a button and counts clicks.\r\n *\r\n * ```ts\r\n * @Directive({selector: 'button[counting]'})\r\n * class CountClicks {\r\n *   numberOfClicks = 0;\r\n *\r\n *   @HostListener('click', ['$event.target'])\r\n *   onClick(btn) {\r\n *     console.log('button', btn, 'number of clicks:', this.numberOfClicks++);\r\n *  }\r\n * }\r\n *\r\n * @Component({\r\n *   selector: 'app',\r\n *   template: '<button counting>Increment</button>',\r\n * })\r\n * class App {}\r\n *\r\n * ```\r\n *\r\n * The following example registers another DOM event handler that listens for key-press events.\r\n * ``` ts\r\n * import { HostListener, Component } from \"@angular/core\";\r\n *\r\n * @Component({\r\n *   selector: 'app',\r\n *   template: `<h1>Hello, you have pressed keys {{counter}} number of times!</h1> Press any key to\r\n * increment the counter.\r\n *   <button (click)=\"resetCounter()\">Reset Counter</button>`\r\n * })\r\n * class AppComponent {\r\n *   counter = 0;\r\n *   @HostListener('window:keydown', ['$event'])\r\n *   handleKeyDown(event: KeyboardEvent) {\r\n *     this.counter++;\r\n *   }\r\n *   resetCounter() {\r\n *     this.counter = 0;\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const HostListener: HostListenerDecorator;\r\n\r\n/**\r\n * Type of the HostListener decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface HostListenerDecorator {\r\n    /**\r\n     * Decorator that declares a DOM event to listen for,\r\n     * and provides a handler method to run when that event occurs.\r\n     *\r\n     * Angular invokes the supplied handler method when the host element emits the specified event,\r\n     * and updates the bound element with the result.\r\n     *\r\n     * If the handler method returns false, applies `preventDefault` on the bound element.\r\n     */\r\n    (eventName: string, args?: string[]): any;\r\n    new (eventName: string, args?: string[]): any;\r\n}\r\n\r\n/**\r\n * Array storing OpCode for dynamically creating `i18n` translation DOM elements.\r\n *\r\n * This array creates a sequence of `Text` and `Comment` (as ICU anchor) DOM elements. It consists\r\n * of a pair of `number` and `string` pairs which encode the operations for the creation of the\r\n * translated block.\r\n *\r\n * The number is shifted and encoded according to `I18nCreateOpCode`\r\n *\r\n * Pseudocode:\r\n * ```\r\n * const i18nCreateOpCodes = [\r\n *   10 << I18nCreateOpCode.SHIFT, \"Text Node add to DOM\",\r\n *   11 << I18nCreateOpCode.SHIFT | I18nCreateOpCode.COMMENT, \"Comment Node add to DOM\",\r\n *   12 << I18nCreateOpCode.SHIFT | I18nCreateOpCode.APPEND_LATER, \"Text Node added later\"\r\n * ];\r\n *\r\n * for(var i=0; i<i18nCreateOpCodes.length; i++) {\r\n *   const opcode = i18NCreateOpCodes[i++];\r\n *   const index = opcode >> I18nCreateOpCode.SHIFT;\r\n *   const text = i18NCreateOpCodes[i];\r\n *   let node: Text|Comment;\r\n *   if (opcode & I18nCreateOpCode.COMMENT === I18nCreateOpCode.COMMENT) {\r\n *     node = lView[~index] = document.createComment(text);\r\n *   } else {\r\n *     node = lView[index] = document.createText(text);\r\n *   }\r\n *   if (opcode & I18nCreateOpCode.APPEND_EAGERLY !== I18nCreateOpCode.APPEND_EAGERLY) {\r\n *     parentNode.appendChild(node);\r\n *   }\r\n * }\r\n * ```\r\n */\r\ndeclare interface I18nCreateOpCodes extends Array<number | string>, I18nDebug {\r\n    __brand__: 'I18nCreateOpCodes';\r\n}\r\n\r\ndeclare interface I18nDebug {\r\n    /**\r\n     * Human readable representation of the OpCode arrays.\r\n     *\r\n     * NOTE: This property only exists if `ngDevMode` is set to `true` and it is not present in\r\n     * production. Its presence is purely to help debug issue in development, and should not be relied\r\n     * on in production application.\r\n     */\r\n    debug?: string[];\r\n}\r\n\r\n/**\r\n * Stores a list of nodes which need to be removed.\r\n *\r\n * Numbers are indexes into the `LView`\r\n * - index > 0: `removeRNode(lView[0])`\r\n * - index < 0: `removeICU(~lView[0])`\r\n */\r\ndeclare interface I18nRemoveOpCodes extends Array<number> {\r\n    __brand__: 'I18nRemoveOpCodes';\r\n}\r\n\r\n/**\r\n * Stores DOM operations which need to be applied to update DOM render tree due to changes in\r\n * expressions.\r\n *\r\n * The basic idea is that `i18nExp` OpCodes capture expression changes and update a change\r\n * mask bit. (Bit 1 for expression 1, bit 2 for expression 2 etc..., bit 32 for expression 32 and\r\n * higher.) The OpCodes then compare its own change mask against the expression change mask to\r\n * determine if the OpCodes should execute.\r\n *\r\n * NOTE: 32nd bit is special as it says 32nd or higher. This way if we have more than 32 bindings\r\n * the code still works, but with lower efficiency. (it is unlikely that a translation would have\r\n * more than 32 bindings.)\r\n *\r\n * These OpCodes can be used by both the i18n block as well as ICU sub-block.\r\n *\r\n * ## Example\r\n *\r\n * Assume\r\n * ```ts\r\n *   if (rf & RenderFlags.Update) {\r\n *    i18nExp(ctx.exp1); // If changed set mask bit 1\r\n *    i18nExp(ctx.exp2); // If changed set mask bit 2\r\n *    i18nExp(ctx.exp3); // If changed set mask bit 3\r\n *    i18nExp(ctx.exp4); // If changed set mask bit 4\r\n *    i18nApply(0);            // Apply all changes by executing the OpCodes.\r\n *  }\r\n * ```\r\n * We can assume that each call to `i18nExp` sets an internal `changeMask` bit depending on the\r\n * index of `i18nExp`.\r\n *\r\n * ### OpCodes\r\n * ```ts\r\n * <I18nUpdateOpCodes>[\r\n *   // The following OpCodes represent: `<div i18n-title=\"pre{{exp1}}in{{exp2}}post\">`\r\n *   // If `changeMask & 0b11`\r\n *   //        has changed then execute update OpCodes.\r\n *   //        has NOT changed then skip `8` values and start processing next OpCodes.\r\n *   0b11, 8,\r\n *   // Concatenate `newValue = 'pre'+lView[bindIndex-4]+'in'+lView[bindIndex-3]+'post';`.\r\n *   'pre', -4, 'in', -3, 'post',\r\n *   // Update attribute: `elementAttribute(1, 'title', sanitizerFn(newValue));`\r\n *   1 << SHIFT_REF | Attr, 'title', sanitizerFn,\r\n *\r\n *   // The following OpCodes represent: `<div i18n>Hello {{exp3}}!\">`\r\n *   // If `changeMask & 0b100`\r\n *   //        has changed then execute update OpCodes.\r\n *   //        has NOT changed then skip `4` values and start processing next OpCodes.\r\n *   0b100, 4,\r\n *   // Concatenate `newValue = 'Hello ' + lView[bindIndex -2] + '!';`.\r\n *   'Hello ', -2, '!',\r\n *   // Update text: `lView[1].textContent = newValue;`\r\n *   1 << SHIFT_REF | Text,\r\n *\r\n *   // The following OpCodes represent: `<div i18n>{exp4, plural, ... }\">`\r\n *   // If `changeMask & 0b1000`\r\n *   //        has changed then execute update OpCodes.\r\n *   //        has NOT changed then skip `2` values and start processing next OpCodes.\r\n *   0b1000, 2,\r\n *   // Concatenate `newValue = lView[bindIndex -1];`.\r\n *   -1,\r\n *   // Switch ICU: `icuSwitchCase(lView[1], 0, newValue);`\r\n *   0 << SHIFT_ICU | 1 << SHIFT_REF | IcuSwitch,\r\n *\r\n *   // Note `changeMask & -1` is always true, so the IcuUpdate will always execute.\r\n *   -1, 1,\r\n *   // Update ICU: `icuUpdateCase(lView[1], 0);`\r\n *   0 << SHIFT_ICU | 1 << SHIFT_REF | IcuUpdate,\r\n *\r\n * ];\r\n * ```\r\n *\r\n */\r\ndeclare interface I18nUpdateOpCodes extends Array<string | number | SanitizerFn | null>, I18nDebug {\r\n    __brand__: 'I18nUpdateOpCodes';\r\n}\r\n\r\n/**\r\n * Marks that the next string is comment text need for ICU.\r\n *\r\n * See `I18nMutateOpCodes` documentation.\r\n */\r\ndeclare const ICU_MARKER: ICU_MARKER;\r\n\r\ndeclare interface ICU_MARKER {\r\n    marker: 'ICU';\r\n}\r\n\r\n/**\r\n * Array storing OpCode for dynamically creating `i18n` blocks.\r\n *\r\n * Example:\r\n * ```ts\r\n * <I18nCreateOpCode>[\r\n *   // For adding text nodes\r\n *   // ---------------------\r\n *   // Equivalent to:\r\n *   //   lView[1].appendChild(lView[0] = document.createTextNode('xyz'));\r\n *   'xyz', 0, 1 << SHIFT_PARENT | 0 << SHIFT_REF | AppendChild,\r\n *\r\n *   // For adding element nodes\r\n *   // ---------------------\r\n *   // Equivalent to:\r\n *   //   lView[1].appendChild(lView[0] = document.createElement('div'));\r\n *   ELEMENT_MARKER, 'div', 0, 1 << SHIFT_PARENT | 0 << SHIFT_REF | AppendChild,\r\n *\r\n *   // For adding comment nodes\r\n *   // ---------------------\r\n *   // Equivalent to:\r\n *   //   lView[1].appendChild(lView[0] = document.createComment(''));\r\n *   ICU_MARKER, '', 0, 1 << SHIFT_PARENT | 0 << SHIFT_REF | AppendChild,\r\n *\r\n *   // For moving existing nodes to a different location\r\n *   // --------------------------------------------------\r\n *   // Equivalent to:\r\n *   //   const node = lView[1];\r\n *   //   lView[2].appendChild(node);\r\n *   1 << SHIFT_REF | Select, 2 << SHIFT_PARENT | 0 << SHIFT_REF | AppendChild,\r\n *\r\n *   // For removing existing nodes\r\n *   // --------------------------------------------------\r\n *   //   const node = lView[1];\r\n *   //   removeChild(tView.data(1), node, lView);\r\n *   1 << SHIFT_REF | Remove,\r\n *\r\n *   // For writing attributes\r\n *   // --------------------------------------------------\r\n *   //   const node = lView[1];\r\n *   //   node.setAttribute('attr', 'value');\r\n *   1 << SHIFT_REF | Attr, 'attr', 'value'\r\n * ];\r\n * ```\r\n */\r\ndeclare interface IcuCreateOpCodes extends Array<number | string | ELEMENT_MARKER | ICU_MARKER | null>, I18nDebug {\r\n    __brand__: 'I18nCreateOpCodes';\r\n}\r\n\r\n/**\r\n * Defines the ICU type of `select` or `plural`\r\n */\r\ndeclare const enum IcuType {\r\n    select = 0,\r\n    plural = 1\r\n}\r\n\r\n/**\r\n * This array contains information about input properties that\r\n * need to be set once from attribute data. It's ordered by\r\n * directive index (relative to element) so it's simple to\r\n * look up a specific directive's initial input data.\r\n *\r\n * Within each sub-array:\r\n *\r\n * i+0: attribute name\r\n * i+1: minified/internal input name\r\n * i+2: initial value\r\n *\r\n * If a directive on a node does not have any input properties\r\n * that should be set from attributes, its index is set to null\r\n * to avoid a sparse array.\r\n *\r\n * e.g. [null, ['role-min', 'minified-input', 'button']]\r\n */\r\ndeclare type InitialInputData = (InitialInputs | null)[];\r\n\r\n/**\r\n * Used by InitialInputData to store input properties\r\n * that should be set once from attributes.\r\n *\r\n * i+0: attribute name\r\n * i+1: minified/internal input name\r\n * i+2: initial value\r\n *\r\n * e.g. ['role-min', 'minified-input', 'button']\r\n */\r\ndeclare type InitialInputs = string[];\r\n\r\n/**\r\n * Type of the Inject metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Inject {\r\n    /**\r\n     * A [DI token](guide/glossary#di-token) that maps to the dependency to be injected.\r\n     */\r\n    token: any;\r\n}\r\n\r\n/**\r\n * Inject decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Inject: InjectDecorator;\r\n\r\n/**\r\n * Injects a token from the currently active injector.\r\n *\r\n * Must be used in the context of a factory function such as one defined for an\r\n * `InjectionToken`. Throws an error if not called from such a context.\r\n *\r\n * Within such a factory function, using this function to request injection of a dependency\r\n * is faster and more type-safe than providing an additional array of dependencies\r\n * (as has been common with `useFactory` providers).\r\n *\r\n * @param token The injection token for the dependency to be injected.\r\n * @param flags Optional flags that control how injection is executed.\r\n * The flags correspond to injection strategies that can be specified with\r\n * parameter decorators `@Host`, `@Self`, `@SkipSef`, and `@Optional`.\r\n * @returns the injected value if injection is successful, `null` otherwise.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Example\r\n *\r\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare const inject: typeof ɵɵinject;\r\n\r\n/**\r\n * Type of the Injectable metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Injectable {\r\n    /**\r\n     * Determines which injectors will provide the injectable.\r\n     *\r\n     * - `Type<any>` - associates the injectable with an `@NgModule` or other `InjectorType`,\r\n     * - 'null' : Equivalent to `undefined`. The injectable is not provided in any scope automatically\r\n     * and must be added to a `providers` array of an [@NgModule](api/core/NgModule#providers),\r\n     * [@Component](api/core/Directive#providers) or [@Directive](api/core/Directive#providers).\r\n     *\r\n     * The following options specify that this injectable should be provided in one of the following\r\n     * injectors:\r\n     * - 'root' : The application-level injector in most apps.\r\n     * - 'platform' : A special singleton platform injector shared by all\r\n     * applications on the page.\r\n     * - 'any' : Provides a unique instance in each lazy loaded module while all eagerly loaded\r\n     * modules share one instance.\r\n     *\r\n     */\r\n    providedIn?: Type<any> | 'root' | 'platform' | 'any' | null;\r\n}\r\n\r\n/**\r\n * Injectable decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Injectable: InjectableDecorator;\r\n\r\n/**\r\n * Type of the Injectable decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface InjectableDecorator {\r\n    /**\r\n     * Decorator that marks a class as available to be\r\n     * provided and injected as a dependency.\r\n     *\r\n     * @see [Introduction to Services and DI](guide/architecture-services)\r\n     * @see [Dependency Injection Guide](guide/dependency-injection)\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * Marking a class with `@Injectable` ensures that the compiler\r\n     * will generate the necessary metadata to create the class's\r\n     * dependencies when the class is injected.\r\n     *\r\n     * The following example shows how a service class is properly\r\n     *  marked so that a supporting service can be injected upon creation.\r\n     *\r\n     * <code-example path=\"core/di/ts/metadata_spec.ts\" region=\"Injectable\"></code-example>\r\n     *\r\n     */\r\n    (): TypeDecorator;\r\n    (options?: {\r\n        providedIn: Type<any> | 'root' | 'platform' | 'any' | null;\r\n    } & InjectableProvider): TypeDecorator;\r\n    new (): Injectable;\r\n    new (options?: {\r\n        providedIn: Type<any> | 'root' | 'platform' | 'any' | null;\r\n    } & InjectableProvider): Injectable;\r\n}\r\n\r\n/**\r\n * Injectable providers used in `@Injectable` decorator.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type InjectableProvider = ValueSansProvider | ExistingSansProvider | StaticClassSansProvider | ConstructorSansProvider | FactorySansProvider | ClassSansProvider;\r\n\r\n/**\r\n * A `Type` which has a `ɵprov: ɵɵInjectableDeclaration` static field.\r\n *\r\n * `InjectableType`s contain their own Dependency Injection metadata and are usable in an\r\n * `InjectorDef`-based `StaticInjector.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface InjectableType<T> extends Type<T> {\r\n    /**\r\n     * Opaque type whose structure is highly version dependent. Do not rely on any properties.\r\n     */\r\n    ɵprov: unknown;\r\n}\r\n\r\n\r\n/**\r\n * Type of the Inject decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface InjectDecorator {\r\n    /**\r\n     * Parameter decorator on a dependency parameter of a class constructor\r\n     * that specifies a custom provider of the dependency.\r\n     *\r\n     * @usageNotes\r\n     * The following example shows a class constructor that specifies a\r\n     * custom provider of a dependency using the parameter decorator.\r\n     *\r\n     * When `@Inject()` is not present, the injector uses the type annotation of the\r\n     * parameter as the provider.\r\n     *\r\n     * <code-example path=\"core/di/ts/metadata_spec.ts\" region=\"InjectWithoutDecorator\">\r\n     * </code-example>\r\n     *\r\n     * @see [\"Dependency Injection Guide\"](guide/dependency-injection)\r\n     *\r\n     */\r\n    (token: any): any;\r\n    new (token: any): Inject;\r\n}\r\n\r\n/**\r\n * Injection flags for DI.\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum InjectFlags {\r\n    /** Check self and check parent injector if needed */\r\n    Default = 0,\r\n    /**\r\n     * Specifies that an injector should retrieve a dependency from any injector until reaching the\r\n     * host element of the current component. (Only used with Element Injector)\r\n     */\r\n    Host = 1,\r\n    /** Don't ascend to ancestors of the node requesting injection. */\r\n    Self = 2,\r\n    /** Skip the node that is requesting injection. */\r\n    SkipSelf = 4,\r\n    /** Inject `defaultValue` instead if token not found. */\r\n    Optional = 8\r\n}\r\n\r\n/**\r\n * Creates a token that can be used in a DI Provider.\r\n *\r\n * Use an `InjectionToken` whenever the type you are injecting is not reified (does not have a\r\n * runtime representation) such as when injecting an interface, callable type, array or\r\n * parameterized type.\r\n *\r\n * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by\r\n * the `Injector`. This provides an additional level of type safety.\r\n *\r\n * ```\r\n * interface MyInterface {...}\r\n * const myInterface = injector.get(new InjectionToken<MyInterface>('SomeToken'));\r\n * // myInterface is inferred to be MyInterface.\r\n * ```\r\n *\r\n * When creating an `InjectionToken`, you can optionally specify a factory function which returns\r\n * (possibly by creating) a default value of the parameterized type `T`. This sets up the\r\n * `InjectionToken` using this factory as a provider as if it was defined explicitly in the\r\n * application's root injector. If the factory function, which takes zero arguments, needs to inject\r\n * dependencies, it can do so using the `inject` function.\r\n * As you can see in the Tree-shakable InjectionToken example below.\r\n *\r\n * Additionally, if a `factory` is specified you can also specify the `providedIn` option, which\r\n * overrides the above behavior and marks the token as belonging to a particular `@NgModule`. As\r\n * mentioned above, `'root'` is the default value for `providedIn`.\r\n *\r\n * @usageNotes\r\n * ### Basic Examples\r\n *\r\n * ### Plain InjectionToken\r\n *\r\n * {@example core/di/ts/injector_spec.ts region='InjectionToken'}\r\n *\r\n * ### Tree-shakable InjectionToken\r\n *\r\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\r\n *\r\n *\r\n * @publicApi\r\n */\r\nexport declare class InjectionToken<T> {\r\n    protected _desc: string;\r\n    readonly ɵprov: unknown;\r\n    /**\r\n     * @param _desc   Description for the token,\r\n     *                used only for debugging purposes,\r\n     *                it should but does not need to be unique\r\n     * @param options Options for the token's usage, as described above\r\n     */\r\n    constructor(_desc: string, options?: {\r\n        providedIn?: Type<any> | 'root' | 'platform' | 'any' | null;\r\n        factory: () => T;\r\n    });\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * An InjectionToken that gets the current `Injector` for `createInjector()`-style injectors.\r\n *\r\n * Requesting this token instead of `Injector` allows `StaticInjector` to be tree-shaken from a\r\n * project.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const INJECTOR: InjectionToken<Injector>;\r\n\r\n/**\r\n * Concrete injectors implement this interface. Injectors are configured\r\n * with [providers](guide/glossary#provider) that associate\r\n * dependencies of various types with [injection tokens](guide/glossary#di-token).\r\n *\r\n * @see [\"DI Providers\"](guide/dependency-injection-providers).\r\n * @see `StaticProvider`\r\n *\r\n * @usageNotes\r\n *\r\n *  The following example creates a service injector instance.\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='ConstructorProvider'}\r\n *\r\n * ### Usage example\r\n *\r\n * {@example core/di/ts/injector_spec.ts region='Injector'}\r\n *\r\n * `Injector` returns itself when given `Injector` as a token:\r\n *\r\n * {@example core/di/ts/injector_spec.ts region='injectInjector'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class Injector {\r\n    static THROW_IF_NOT_FOUND: {};\r\n    static NULL: Injector;\r\n    /**\r\n     * Retrieves an instance from the injector based on the provided token.\r\n     * @returns The instance from the injector if defined, otherwise the `notFoundValue`.\r\n     * @throws When the `notFoundValue` is `undefined` or `Injector.THROW_IF_NOT_FOUND`.\r\n     */\r\n    abstract get<T>(token: ProviderToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n    /**\r\n     * @deprecated from v4.0.0 use ProviderToken<T>\r\n     * @suppress {duplicate}\r\n     */\r\n    abstract get(token: any, notFoundValue?: any): any;\r\n    /**\r\n     * @deprecated from v5 use the new signature Injector.create(options)\r\n     */\r\n    static create(providers: StaticProvider[], parent?: Injector): Injector;\r\n    /**\r\n     * Creates a new injector instance that provides one or more dependencies,\r\n     * according to a given type or types of `StaticProvider`.\r\n     *\r\n     * @param options An object with the following properties:\r\n     * * `providers`: An array of providers of the [StaticProvider type](api/core/StaticProvider).\r\n     * * `parent`: (optional) A parent injector.\r\n     * * `name`: (optional) A developer-defined identifying name for the new injector.\r\n     *\r\n     * @returns The new injector instance.\r\n     *\r\n     */\r\n    static create(options: {\r\n        providers: StaticProvider[];\r\n        parent?: Injector;\r\n        name?: string;\r\n    }): Injector;\r\n    /** @nocollapse */\r\n    static ɵprov: unknown;\r\n}\r\n\r\ndeclare const INJECTOR_2 = 9;\r\n\r\n/**\r\n * A type which has an `InjectorDef` static field.\r\n *\r\n * `InjectorTypes` can be used to configure a `StaticInjector`.\r\n *\r\n * This is an opaque type whose structure is highly version dependent. Do not rely on any\r\n * properties.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface InjectorType<T> extends Type<T> {\r\n    ɵfac?: unknown;\r\n    ɵinj: unknown;\r\n}\r\n\r\n/**\r\n * Describes the `InjectorDef` equivalent of a `ModuleWithProviders`, an `InjectorType` with an\r\n * associated array of providers.\r\n *\r\n * Objects of this type can be listed in the imports section of an `InjectorDef`.\r\n *\r\n * NOTE: This is a private type and should not be exported\r\n */\r\ndeclare interface InjectorTypeWithProviders<T> {\r\n    ngModule: InjectorType<T>;\r\n    providers?: (Type<any> | ValueProvider | ExistingProvider | FactoryProvider | ConstructorProvider | StaticClassProvider | ClassProvider | any[])[];\r\n}\r\n\r\n/**\r\n * Type of metadata for an `Input` property.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Input {\r\n    /**\r\n     * The name of the DOM property to which the input property is bound.\r\n     */\r\n    bindingPropertyName?: string;\r\n}\r\n\r\n/**\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Input: InputDecorator;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare interface InputDecorator {\r\n    /**\r\n     * Decorator that marks a class field as an input property and supplies configuration metadata.\r\n     * The input property is bound to a DOM property in the template. During change detection,\r\n     * Angular automatically updates the data property with the DOM property's value.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * You can supply an optional name to use in templates when the\r\n     * component is instantiated, that maps to the\r\n     * name of the bound property. By default, the original\r\n     * name of the bound property is used for input binding.\r\n     *\r\n     * The following example creates a component with two input properties,\r\n     * one of which is given a special binding name.\r\n     *\r\n     * ```typescript\r\n     * @Component({\r\n     *   selector: 'bank-account',\r\n     *   template: `\r\n     *     Bank Name: {{bankName}}\r\n     *     Account Id: {{id}}\r\n     *   `\r\n     * })\r\n     * class BankAccount {\r\n     *   // This property is bound using its original name.\r\n     *   @Input() bankName: string;\r\n     *   // this property value is bound to a different property name\r\n     *   // when this component is instantiated in a template.\r\n     *   @Input('account-id') id: string;\r\n     *\r\n     *   // this property is not bound, and is not automatically updated by Angular\r\n     *   normalizedBankName: string;\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'app',\r\n     *   template: `\r\n     *     <bank-account bankName=\"RBC\" account-id=\"4747\"></bank-account>\r\n     *   `\r\n     * })\r\n     * class App {}\r\n     * ```\r\n     *\r\n     * @see [Input and Output properties](guide/inputs-outputs)\r\n     */\r\n    (bindingPropertyName?: string): any;\r\n    new (bindingPropertyName?: string): any;\r\n}\r\n\r\n/**\r\n * See `TNode.insertBeforeIndex`\r\n */\r\ndeclare type InsertBeforeIndex = null | number | number[];\r\n\r\ndeclare interface InternalNgModuleRef<T> extends NgModuleRef<T> {\r\n    _bootstrapComponents: Type<any>[];\r\n}\r\n\r\ndeclare interface InternalViewRef extends ViewRef {\r\n    detachFromAppRef(): void;\r\n    attachToAppRef(appRef: ViewRefTracker): void;\r\n}\r\n\r\n\r\n/**\r\n * Returns whether Angular is in development mode. After called once,\r\n * the value is locked and won't change any more.\r\n *\r\n * By default, this is true, unless a user calls `enableProdMode` before calling this.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function isDevMode(): boolean;\r\n\r\n/**\r\n * Record representing the item change information.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface IterableChangeRecord<V> {\r\n    /** Current index of the item in `Iterable` or null if removed. */\r\n    readonly currentIndex: number | null;\r\n    /** Previous index of the item in `Iterable` or null if added. */\r\n    readonly previousIndex: number | null;\r\n    /** The item. */\r\n    readonly item: V;\r\n    /** Track by identity as computed by the `TrackByFunction`. */\r\n    readonly trackById: any;\r\n}\r\n\r\ndeclare class IterableChangeRecord_<V> implements IterableChangeRecord<V> {\r\n    item: V;\r\n    trackById: any;\r\n    currentIndex: number | null;\r\n    previousIndex: number | null;\r\n    constructor(item: V, trackById: any);\r\n}\r\n\r\n/**\r\n * An object describing the changes in the `Iterable` collection since last time\r\n * `IterableDiffer#diff()` was invoked.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface IterableChanges<V> {\r\n    /**\r\n     * Iterate over all changes. `IterableChangeRecord` will contain information about changes\r\n     * to each item.\r\n     */\r\n    forEachItem(fn: (record: IterableChangeRecord<V>) => void): void;\r\n    /**\r\n     * Iterate over a set of operations which when applied to the original `Iterable` will produce the\r\n     * new `Iterable`.\r\n     *\r\n     * NOTE: These are not necessarily the actual operations which were applied to the original\r\n     * `Iterable`, rather these are a set of computed operations which may not be the same as the\r\n     * ones applied.\r\n     *\r\n     * @param record A change which needs to be applied\r\n     * @param previousIndex The `IterableChangeRecord#previousIndex` of the `record` refers to the\r\n     *        original `Iterable` location, where as `previousIndex` refers to the transient location\r\n     *        of the item, after applying the operations up to this point.\r\n     * @param currentIndex The `IterableChangeRecord#currentIndex` of the `record` refers to the\r\n     *        original `Iterable` location, where as `currentIndex` refers to the transient location\r\n     *        of the item, after applying the operations up to this point.\r\n     */\r\n    forEachOperation(fn: (record: IterableChangeRecord<V>, previousIndex: number | null, currentIndex: number | null) => void): void;\r\n    /**\r\n     * Iterate over changes in the order of original `Iterable` showing where the original items\r\n     * have moved.\r\n     */\r\n    forEachPreviousItem(fn: (record: IterableChangeRecord<V>) => void): void;\r\n    /** Iterate over all added items. */\r\n    forEachAddedItem(fn: (record: IterableChangeRecord<V>) => void): void;\r\n    /** Iterate over all moved items. */\r\n    forEachMovedItem(fn: (record: IterableChangeRecord<V>) => void): void;\r\n    /** Iterate over all removed items. */\r\n    forEachRemovedItem(fn: (record: IterableChangeRecord<V>) => void): void;\r\n    /**\r\n     * Iterate over all items which had their identity (as computed by the `TrackByFunction`)\r\n     * changed.\r\n     */\r\n    forEachIdentityChange(fn: (record: IterableChangeRecord<V>) => void): void;\r\n}\r\n\r\n/**\r\n * A strategy for tracking changes over time to an iterable. Used by {@link NgForOf} to\r\n * respond to changes in an iterable by effecting equivalent changes in the DOM.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface IterableDiffer<V> {\r\n    /**\r\n     * Compute a difference between the previous state and the new `object` state.\r\n     *\r\n     * @param object containing the new value.\r\n     * @returns an object describing the difference. The return value is only valid until the next\r\n     * `diff()` invocation.\r\n     */\r\n    diff(object: NgIterable<V> | undefined | null): IterableChanges<V> | null;\r\n}\r\n\r\n/**\r\n * Provides a factory for {@link IterableDiffer}.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface IterableDifferFactory {\r\n    supports(objects: any): boolean;\r\n    create<V>(trackByFn?: TrackByFunction<V>): IterableDiffer<V>;\r\n}\r\n\r\n/**\r\n * A repository of different iterable diffing strategies used by NgFor, NgClass, and others.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class IterableDiffers {\r\n    /** @nocollapse */\r\n    static ɵprov: unknown;\r\n    /**\r\n     * @deprecated v4.0.0 - Should be private\r\n     */\r\n    factories: IterableDifferFactory[];\r\n    constructor(factories: IterableDifferFactory[]);\r\n    static create(factories: IterableDifferFactory[], parent?: IterableDiffers): IterableDiffers;\r\n    /**\r\n     * Takes an array of {@link IterableDifferFactory} and returns a provider used to extend the\r\n     * inherited {@link IterableDiffers} instance with the provided factories and return a new\r\n     * {@link IterableDiffers} instance.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * The following example shows how to extend an existing list of factories,\r\n     * which will only be applied to the injector for this component and its children.\r\n     * This step is all that's required to make a new {@link IterableDiffer} available.\r\n     *\r\n     * ```\r\n     * @Component({\r\n     *   viewProviders: [\r\n     *     IterableDiffers.extend([new ImmutableListDiffer()])\r\n     *   ]\r\n     * })\r\n     * ```\r\n     */\r\n    static extend(factories: IterableDifferFactory[]): StaticProvider;\r\n    find(iterable: any): IterableDifferFactory;\r\n}\r\n\r\n/**\r\n * `KeyValueArray` is an array where even positions contain keys and odd positions contain values.\r\n *\r\n * `KeyValueArray` provides a very efficient way of iterating over its contents. For small\r\n * sets (~10) the cost of binary searching an `KeyValueArray` has about the same performance\r\n * characteristics that of a `Map` with significantly better memory footprint.\r\n *\r\n * If used as a `Map` the keys are stored in alphabetical order so that they can be binary searched\r\n * for retrieval.\r\n *\r\n * See: `keyValueArraySet`, `keyValueArrayGet`, `keyValueArrayIndexOf`, `keyValueArrayDelete`.\r\n */\r\ndeclare interface KeyValueArray<VALUE> extends Array<VALUE | string> {\r\n    __brand__: 'array-map';\r\n}\r\n\r\n/**\r\n * Record representing the item change information.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface KeyValueChangeRecord<K, V> {\r\n    /**\r\n     * Current key in the Map.\r\n     */\r\n    readonly key: K;\r\n    /**\r\n     * Current value for the key or `null` if removed.\r\n     */\r\n    readonly currentValue: V | null;\r\n    /**\r\n     * Previous value for the key or `null` if added.\r\n     */\r\n    readonly previousValue: V | null;\r\n}\r\n\r\n/**\r\n * An object describing the changes in the `Map` or `{[k:string]: string}` since last time\r\n * `KeyValueDiffer#diff()` was invoked.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface KeyValueChanges<K, V> {\r\n    /**\r\n     * Iterate over all changes. `KeyValueChangeRecord` will contain information about changes\r\n     * to each item.\r\n     */\r\n    forEachItem(fn: (r: KeyValueChangeRecord<K, V>) => void): void;\r\n    /**\r\n     * Iterate over changes in the order of original Map showing where the original items\r\n     * have moved.\r\n     */\r\n    forEachPreviousItem(fn: (r: KeyValueChangeRecord<K, V>) => void): void;\r\n    /**\r\n     * Iterate over all keys for which values have changed.\r\n     */\r\n    forEachChangedItem(fn: (r: KeyValueChangeRecord<K, V>) => void): void;\r\n    /**\r\n     * Iterate over all added items.\r\n     */\r\n    forEachAddedItem(fn: (r: KeyValueChangeRecord<K, V>) => void): void;\r\n    /**\r\n     * Iterate over all removed items.\r\n     */\r\n    forEachRemovedItem(fn: (r: KeyValueChangeRecord<K, V>) => void): void;\r\n}\r\n\r\n/**\r\n * A differ that tracks changes made to an object over time.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface KeyValueDiffer<K, V> {\r\n    /**\r\n     * Compute a difference between the previous state and the new `object` state.\r\n     *\r\n     * @param object containing the new value.\r\n     * @returns an object describing the difference. The return value is only valid until the next\r\n     * `diff()` invocation.\r\n     */\r\n    diff(object: Map<K, V>): KeyValueChanges<K, V> | null;\r\n    /**\r\n     * Compute a difference between the previous state and the new `object` state.\r\n     *\r\n     * @param object containing the new value.\r\n     * @returns an object describing the difference. The return value is only valid until the next\r\n     * `diff()` invocation.\r\n     */\r\n    diff(object: {\r\n        [key: string]: V;\r\n    }): KeyValueChanges<string, V> | null;\r\n}\r\n\r\n/**\r\n * Provides a factory for {@link KeyValueDiffer}.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface KeyValueDifferFactory {\r\n    /**\r\n     * Test to see if the differ knows how to diff this kind of object.\r\n     */\r\n    supports(objects: any): boolean;\r\n    /**\r\n     * Create a `KeyValueDiffer`.\r\n     */\r\n    create<K, V>(): KeyValueDiffer<K, V>;\r\n}\r\n\r\n/**\r\n * A repository of different Map diffing strategies used by NgClass, NgStyle, and others.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class KeyValueDiffers {\r\n    /** @nocollapse */\r\n    static ɵprov: unknown;\r\n    /**\r\n     * @deprecated v4.0.0 - Should be private.\r\n     */\r\n    factories: KeyValueDifferFactory[];\r\n    constructor(factories: KeyValueDifferFactory[]);\r\n    static create<S>(factories: KeyValueDifferFactory[], parent?: KeyValueDiffers): KeyValueDiffers;\r\n    /**\r\n     * Takes an array of {@link KeyValueDifferFactory} and returns a provider used to extend the\r\n     * inherited {@link KeyValueDiffers} instance with the provided factories and return a new\r\n     * {@link KeyValueDiffers} instance.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * The following example shows how to extend an existing list of factories,\r\n     * which will only be applied to the injector for this component and its children.\r\n     * This step is all that's required to make a new {@link KeyValueDiffer} available.\r\n     *\r\n     * ```\r\n     * @Component({\r\n     *   viewProviders: [\r\n     *     KeyValueDiffers.extend([new ImmutableMapDiffer()])\r\n     *   ]\r\n     * })\r\n     * ```\r\n     */\r\n    static extend<S>(factories: KeyValueDifferFactory[]): StaticProvider;\r\n    find(kv: any): KeyValueDifferFactory;\r\n}\r\n\r\n/**\r\n * The state associated with a container.\r\n *\r\n * This is an array so that its structure is closer to LView. This helps\r\n * when traversing the view tree (which is a mix of containers and component\r\n * views), so we can jump to viewOrContainer[NEXT] in the same way regardless\r\n * of type.\r\n */\r\ndeclare interface LContainer extends Array<any> {\r\n    /**\r\n     * The host element of this LContainer.\r\n     *\r\n     * The host could be an LView if this container is on a component node.\r\n     * In that case, the component LView is its HOST.\r\n     */\r\n    readonly [HOST]: RElement | RComment | ɵangular_packages_core_core_ca;\r\n    /**\r\n     * This is a type field which allows us to differentiate `LContainer` from `StylingContext` in an\r\n     * efficient way. The value is always set to `true`\r\n     */\r\n    [TYPE]: true;\r\n    /**\r\n     * Flag to signify that this `LContainer` may have transplanted views which need to be change\r\n     * detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.\r\n     *\r\n     * This flag, once set, is never unset for the `LContainer`.\r\n     */\r\n    [HAS_TRANSPLANTED_VIEWS]: boolean;\r\n    /**\r\n     * Access to the parent view is necessary so we can propagate back\r\n     * up from inside a container to parent[NEXT].\r\n     */\r\n    [PARENT]: ɵangular_packages_core_core_ca;\r\n    /**\r\n     * This allows us to jump from a container to a sibling container or component\r\n     * view with the same parent, so we can remove listeners efficiently.\r\n     */\r\n    [NEXT]: ɵangular_packages_core_core_ca | LContainer | null;\r\n    /**\r\n     * The number of direct transplanted views which need a refresh or have descendants themselves\r\n     * that need a refresh but have not marked their ancestors as Dirty. This tells us that during\r\n     * change detection we should still descend to find those children to refresh, even if the parents\r\n     * are not `Dirty`/`CheckAlways`.\r\n     */\r\n    [TRANSPLANTED_VIEWS_TO_REFRESH]: number;\r\n    /**\r\n     * A collection of views created based on the underlying `<ng-template>` element but inserted into\r\n     * a different `LContainer`. We need to track views created from a given declaration point since\r\n     * queries collect matches from the embedded view declaration point and _not_ the insertion point.\r\n     */\r\n    [MOVED_VIEWS]: ɵangular_packages_core_core_ca[] | null;\r\n    /**\r\n     * Pointer to the `TNode` which represents the host of the container.\r\n     */\r\n    [T_HOST]: TNode;\r\n    /** The comment element that serves as an anchor for this LContainer. */\r\n    readonly [NATIVE]: RComment;\r\n    /**\r\n     * Array of `ViewRef`s used by any `ViewContainerRef`s that point to this container.\r\n     *\r\n     * This is lazily initialized by `ViewContainerRef` when the first view is inserted.\r\n     *\r\n     * NOTE: This is stored as `any[]` because render3 should really not be aware of `ViewRef` and\r\n     * doing so creates circular dependency.\r\n     */\r\n    [VIEW_REFS]: unknown[] | null;\r\n}\r\n\r\n/**\r\n * Human readable version of the `LContainer`\r\n *\r\n * `LContainer` is a data structure used internally to keep track of child views. The `LContainer`\r\n * is designed for efficiency and so at times it is difficult to read or write tests which assert on\r\n * its values. For this reason when `ngDevMode` is true we patch a `LContainer.debug` property which\r\n * points to `LContainerDebug` for easier debugging and test writing. It is the intent of\r\n * `LContainerDebug` to be used in tests.\r\n */\r\ndeclare interface LContainerDebug {\r\n    readonly native: RComment;\r\n    /**\r\n     * Child `LView`s.\r\n     */\r\n    readonly views: LViewDebug[];\r\n    readonly parent: LViewDebug | null;\r\n    readonly movedViews: ɵangular_packages_core_core_ca[] | null;\r\n    readonly host: RElement | RComment | ɵangular_packages_core_core_ca;\r\n    readonly next: LViewDebug | LContainerDebug | null;\r\n    readonly hasTransplantedViews: boolean;\r\n}\r\n\r\n/**\r\n * Provide this token to set the locale of your application.\r\n * It is used for i18n extraction, by i18n pipes (DatePipe, I18nPluralPipe, CurrencyPipe,\r\n * DecimalPipe and PercentPipe) and by ICU expressions.\r\n *\r\n * See the [i18n guide](guide/i18n-common-locale-id) for more information.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```typescript\r\n * import { LOCALE_ID } from '@angular/core';\r\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n * import { AppModule } from './app/app.module';\r\n *\r\n * platformBrowserDynamic().bootstrapModule(AppModule, {\r\n *   providers: [{provide: LOCALE_ID, useValue: 'en-US' }]\r\n * });\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare const LOCALE_ID: InjectionToken<string>;\r\n\r\n/**\r\n * Type for a function that extracts a value for a local refs.\r\n * Example:\r\n * - `<div #nativeDivEl>` - `nativeDivEl` should point to the native `<div>` element;\r\n * - `<ng-template #tplRef>` - `tplRef` should point to the `TemplateRef` instance;\r\n */\r\ndeclare type LocalRefExtractor = (tNode: TNodeWithLocalRefs, currentView: ɵangular_packages_core_core_ca) => any;\r\n\r\n/**\r\n * lQueries represent a collection of individual LQuery objects tracked in a given view.\r\n */\r\ndeclare interface LQueries {\r\n    /**\r\n     * A collection of queries tracked in a given view.\r\n     */\r\n    queries: LQuery<any>[];\r\n    /**\r\n     * A method called when a new embedded view is created. As a result a set of LQueries applicable\r\n     * for a new embedded view is instantiated (cloned) from the declaration view.\r\n     * @param tView\r\n     */\r\n    createEmbeddedView(tView: TView): LQueries | null;\r\n    /**\r\n     * A method called when an embedded view is inserted into a container. As a result all impacted\r\n     * `LQuery` objects (and associated `QueryList`) are marked as dirty.\r\n     * @param tView\r\n     */\r\n    insertView(tView: TView): void;\r\n    /**\r\n     * A method called when an embedded view is detached from a container. As a result all impacted\r\n     * `LQuery` objects (and associated `QueryList`) are marked as dirty.\r\n     * @param tView\r\n     */\r\n    detachView(tView: TView): void;\r\n}\r\n\r\n/**\r\n * An interface that represents query-related information specific to a view instance. Most notably\r\n * it contains:\r\n * - materialized query matches;\r\n * - a pointer to a QueryList where materialized query results should be reported.\r\n */\r\ndeclare interface LQuery<T> {\r\n    /**\r\n     * Materialized query matches for a given view only (!). Results are initialized lazily so the\r\n     * array of matches is set to `null` initially.\r\n     */\r\n    matches: (T | null)[] | null;\r\n    /**\r\n     * A QueryList where materialized query results should be reported.\r\n     */\r\n    queryList: QueryList<T>;\r\n    /**\r\n     * Clones an LQuery for an embedded view. A cloned query shares the same `QueryList` but has a\r\n     * separate collection of materialized matches.\r\n     */\r\n    clone(): LQuery<T>;\r\n    /**\r\n     * Called when an embedded view, impacting results of this query, is inserted or removed.\r\n     */\r\n    setDirty(): void;\r\n}\r\n\r\n/**\r\n * Human readable version of the `LView`.\r\n *\r\n * `LView` is a data structure used internally to keep track of views. The `LView` is designed for\r\n * efficiency and so at times it is difficult to read or write tests which assert on its values. For\r\n * this reason when `ngDevMode` is true we patch a `LView.debug` property which points to\r\n * `LViewDebug` for easier debugging and test writing. It is the intent of `LViewDebug` to be used\r\n * in tests.\r\n */\r\ndeclare interface LViewDebug {\r\n    /**\r\n     * Flags associated with the `LView` unpacked into a more readable state.\r\n     *\r\n     * See `LViewFlags` for the flag meanings.\r\n     */\r\n    readonly flags: {\r\n        initPhaseState: number;\r\n        creationMode: boolean;\r\n        firstViewPass: boolean;\r\n        checkAlways: boolean;\r\n        dirty: boolean;\r\n        attached: boolean;\r\n        destroyed: boolean;\r\n        isRoot: boolean;\r\n        indexWithinInitPhase: number;\r\n    };\r\n    /**\r\n     * Associated TView\r\n     */\r\n    readonly tView: TView;\r\n    /**\r\n     * Parent view (or container)\r\n     */\r\n    readonly parent: LViewDebug | LContainerDebug | null;\r\n    /**\r\n     * Next sibling to the `LView`.\r\n     */\r\n    readonly next: LViewDebug | LContainerDebug | null;\r\n    /**\r\n     * The context used for evaluation of the `LView`\r\n     *\r\n     * (Usually the component)\r\n     */\r\n    readonly context: {} | null;\r\n    /**\r\n     * Hierarchical tree of nodes.\r\n     */\r\n    readonly nodes: DebugNode_2[];\r\n    /**\r\n     * Template structure (no instance data).\r\n     * (Shows how TNodes are connected)\r\n     */\r\n    readonly template: string;\r\n    /**\r\n     * HTML representation of the `LView`.\r\n     *\r\n     * This is only approximate to actual HTML as child `LView`s are removed.\r\n     */\r\n    readonly html: string;\r\n    /**\r\n     * The host element to which this `LView` is attached.\r\n     */\r\n    readonly hostHTML: string | null;\r\n    /**\r\n     * Child `LView`s\r\n     */\r\n    readonly childViews: Array<LViewDebug | LContainerDebug>;\r\n    /**\r\n     * Sub range of `LView` containing decls (DOM elements).\r\n     */\r\n    readonly decls: LViewDebugRange;\r\n    /**\r\n     * Sub range of `LView` containing vars (bindings).\r\n     */\r\n    readonly vars: LViewDebugRange;\r\n    /**\r\n     * Sub range of `LView` containing expando (used by DI).\r\n     */\r\n    readonly expando: LViewDebugRange;\r\n}\r\n\r\n/**\r\n * `LView` is subdivided to ranges where the actual data is stored. Some of these ranges such as\r\n * `decls` and `vars` are known at compile time. Other such as `i18n` and `expando` are runtime only\r\n * concepts.\r\n */\r\ndeclare interface LViewDebugRange {\r\n    /**\r\n     * The starting index in `LView` where the range begins. (Inclusive)\r\n     */\r\n    start: number;\r\n    /**\r\n     * The ending index in `LView` where the range ends. (Exclusive)\r\n     */\r\n    end: number;\r\n    /**\r\n     * The length of the range\r\n     */\r\n    length: number;\r\n    /**\r\n     * The merged content of the range. `t` contains data from `TView.data` and `l` contains `LView`\r\n     * data at an index.\r\n     */\r\n    content: LViewDebugRangeContent[];\r\n}\r\n\r\n/**\r\n * For convenience the static and instance portions of `TView` and `LView` are merged into a single\r\n * object in `LViewRange`.\r\n */\r\ndeclare interface LViewDebugRangeContent {\r\n    /**\r\n     * Index into original `LView` or `TView.data`.\r\n     */\r\n    index: number;\r\n    /**\r\n     * Value from the `TView.data[index]` location.\r\n     */\r\n    t: any;\r\n    /**\r\n     * Value from the `LView[index]` location.\r\n     */\r\n    l: any;\r\n}\r\n\r\n/** Flags associated with an LView (saved in LView[FLAGS]) */\r\ndeclare const enum LViewFlags {\r\n    /** The state of the init phase on the first 2 bits */\r\n    InitPhaseStateIncrementer = 1,\r\n    InitPhaseStateMask = 3,\r\n    /**\r\n     * Whether or not the view is in creationMode.\r\n     *\r\n     * This must be stored in the view rather than using `data` as a marker so that\r\n     * we can properly support embedded views. Otherwise, when exiting a child view\r\n     * back into the parent view, `data` will be defined and `creationMode` will be\r\n     * improperly reported as false.\r\n     */\r\n    CreationMode = 4,\r\n    /**\r\n     * Whether or not this LView instance is on its first processing pass.\r\n     *\r\n     * An LView instance is considered to be on its \"first pass\" until it\r\n     * has completed one creation mode run and one update mode run. At this\r\n     * time, the flag is turned off.\r\n     */\r\n    FirstLViewPass = 8,\r\n    /** Whether this view has default change detection strategy (checks always) or onPush */\r\n    CheckAlways = 16,\r\n    /**\r\n     * Whether or not manual change detection is turned on for onPush components.\r\n     *\r\n     * This is a special mode that only marks components dirty in two cases:\r\n     * 1) There has been a change to an @Input property\r\n     * 2) `markDirty()` has been called manually by the user\r\n     *\r\n     * Note that in this mode, the firing of events does NOT mark components\r\n     * dirty automatically.\r\n     *\r\n     * Manual mode is turned off by default for backwards compatibility, as events\r\n     * automatically mark OnPush components dirty in View Engine.\r\n     *\r\n     * TODO: Add a public API to ChangeDetectionStrategy to turn this mode on\r\n     */\r\n    ManualOnPush = 32,\r\n    /** Whether or not this view is currently dirty (needing check) */\r\n    Dirty = 64,\r\n    /** Whether or not this view is currently attached to change detection tree. */\r\n    Attached = 128,\r\n    /** Whether or not this view is destroyed. */\r\n    Destroyed = 256,\r\n    /** Whether or not this view is the root view */\r\n    IsRoot = 512,\r\n    /**\r\n     * Whether this moved LView was needs to be refreshed at the insertion location because the\r\n     * declaration was dirty.\r\n     */\r\n    RefreshTransplantedView = 1024,\r\n    /**\r\n     * Index of the current init phase on last 21 bits\r\n     */\r\n    IndexWithinInitPhaseIncrementer = 2048,\r\n    IndexWithinInitPhaseShift = 11,\r\n    IndexWithinInitPhaseReset = 2047\r\n}\r\n\r\n/**\r\n * Use this enum at bootstrap as an option of `bootstrapModule` to define the strategy\r\n * that the compiler should use in case of missing translations:\r\n * - Error: throw if you have missing translations.\r\n * - Warning (default): show a warning in the console and/or shell.\r\n * - Ignore: do nothing.\r\n *\r\n * See the [i18n guide](guide/i18n-common-merge#report-missing-translations) for more information.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n * ```typescript\r\n * import { MissingTranslationStrategy } from '@angular/core';\r\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n * import { AppModule } from './app/app.module';\r\n *\r\n * platformBrowserDynamic().bootstrapModule(AppModule, {\r\n *   missingTranslation: MissingTranslationStrategy.Error\r\n * });\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum MissingTranslationStrategy {\r\n    Error = 0,\r\n    Warning = 1,\r\n    Ignore = 2\r\n}\r\n\r\n/**\r\n * Combination of NgModuleFactory and ComponentFactories.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ModuleWithComponentFactories<T> {\r\n    ngModuleFactory: NgModuleFactory<T>;\r\n    componentFactories: ComponentFactory<any>[];\r\n    constructor(ngModuleFactory: NgModuleFactory<T>, componentFactories: ComponentFactory<any>[]);\r\n}\r\n\r\n/**\r\n * A wrapper around an NgModule that associates it with [providers](guide/glossary#provider\r\n * \"Definition\"). Usage without a generic type is deprecated.\r\n *\r\n * @see [Deprecations](guide/deprecations#modulewithproviders-type-without-a-generic)\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ModuleWithProviders<T> {\r\n    ngModule: Type<T>;\r\n    providers?: Provider[];\r\n}\r\n\r\ndeclare const MOVED_VIEWS = 9;\r\n\r\ndeclare const NATIVE = 7;\r\n\r\ndeclare const NEXT = 4;\r\n\r\ndeclare interface NgContentDef {\r\n    /**\r\n     * this index is checked against NodeDef.ngContentIndex to find the nodes\r\n     * that are matched by this ng-content.\r\n     * Note that a NodeDef with an ng-content can be reprojected, i.e.\r\n     * have a ngContentIndex on its own.\r\n     */\r\n    index: number;\r\n}\r\n\r\n/**\r\n * A type describing supported iterable types.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type NgIterable<T> = Array<T> | Iterable<T>;\r\n\r\n/**\r\n * Type of the NgModule metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface NgModule {\r\n    /**\r\n     * The set of injectable objects that are available in the injector\r\n     * of this module.\r\n     *\r\n     * @see [Dependency Injection guide](guide/dependency-injection)\r\n     * @see [NgModule guide](guide/providers)\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * Dependencies whose providers are listed here become available for injection\r\n     * into any component, directive, pipe or service that is a child of this injector.\r\n     * The NgModule used for bootstrapping uses the root injector, and can provide dependencies\r\n     * to any part of the app.\r\n     *\r\n     * A lazy-loaded module has its own injector, typically a child of the app root injector.\r\n     * Lazy-loaded services are scoped to the lazy-loaded module's injector.\r\n     * If a lazy-loaded module also provides the `UserService`, any component created\r\n     * within that module's context (such as by router navigation) gets the local instance\r\n     * of the service, not the instance in the root injector.\r\n     * Components in external modules continue to receive the instance provided by their injectors.\r\n     *\r\n     * ### Example\r\n     *\r\n     * The following example defines a class that is injected in\r\n     * the HelloWorld NgModule:\r\n     *\r\n     * ```\r\n     * class Greeter {\r\n     *    greet(name:string) {\r\n     *      return 'Hello ' + name + '!';\r\n     *    }\r\n     * }\r\n     *\r\n     * @NgModule({\r\n     *   providers: [\r\n     *     Greeter\r\n     *   ]\r\n     * })\r\n     * class HelloWorld {\r\n     *   greeter:Greeter;\r\n     *\r\n     *   constructor(greeter:Greeter) {\r\n     *     this.greeter = greeter;\r\n     *   }\r\n     * }\r\n     * ```\r\n     */\r\n    providers?: Provider[];\r\n    /**\r\n     * The set of components, directives, and pipes ([declarables](guide/glossary#declarable))\r\n     * that belong to this module.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The set of selectors that are available to a template include those declared here, and\r\n     * those that are exported from imported NgModules.\r\n     *\r\n     * Declarables must belong to exactly one module.\r\n     * The compiler emits an error if you try to declare the same class in more than one module.\r\n     * Be careful not to declare a class that is imported from another module.\r\n     *\r\n     * ### Example\r\n     *\r\n     * The following example allows the CommonModule to use the `NgFor`\r\n     * directive.\r\n     *\r\n     * ```javascript\r\n     * @NgModule({\r\n     *   declarations: [NgFor]\r\n     * })\r\n     * class CommonModule {\r\n     * }\r\n     * ```\r\n     */\r\n    declarations?: Array<Type<any> | any[]>;\r\n    /**\r\n     * The set of NgModules whose exported [declarables](guide/glossary#declarable)\r\n     * are available to templates in this module.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * A template can use exported declarables from any\r\n     * imported module, including those from modules that are imported indirectly\r\n     * and re-exported.\r\n     * For example, `ModuleA` imports `ModuleB`, and also exports\r\n     * it, which makes the declarables from `ModuleB` available\r\n     * wherever `ModuleA` is imported.\r\n     *\r\n     * ### Example\r\n     *\r\n     * The following example allows MainModule to use anything exported by\r\n     * `CommonModule`:\r\n     *\r\n     * ```javascript\r\n     * @NgModule({\r\n     *   imports: [CommonModule]\r\n     * })\r\n     * class MainModule {\r\n     * }\r\n     * ```\r\n     *\r\n     */\r\n    imports?: Array<Type<any> | ModuleWithProviders<{}> | any[]>;\r\n    /**\r\n     * The set of components, directives, and pipes declared in this\r\n     * NgModule that can be used in the template of any component that is part of an\r\n     * NgModule that imports this NgModule. Exported declarations are the module's public API.\r\n     *\r\n     * A declarable belongs to one and only one NgModule.\r\n     * A module can list another module among its exports, in which case all of that module's\r\n     * public declaration are exported.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * Declarations are private by default.\r\n     * If this ModuleA does not export UserComponent, then only the components within this\r\n     * ModuleA can use UserComponent.\r\n     *\r\n     * ModuleA can import ModuleB and also export it, making exports from ModuleB\r\n     * available to an NgModule that imports ModuleA.\r\n     *\r\n     * ### Example\r\n     *\r\n     * The following example exports the `NgFor` directive from CommonModule.\r\n     *\r\n     * ```javascript\r\n     * @NgModule({\r\n     *   exports: [NgFor]\r\n     * })\r\n     * class CommonModule {\r\n     * }\r\n     * ```\r\n     */\r\n    exports?: Array<Type<any> | any[]>;\r\n    /**\r\n     * The set of components to compile when this NgModule is defined,\r\n     * so that they can be dynamically loaded into the view.\r\n     *\r\n     * For each component listed here, Angular creates a `ComponentFactory`\r\n     * and stores it in the `ComponentFactoryResolver`.\r\n     *\r\n     * Angular automatically adds components in the module's bootstrap\r\n     * and route definitions into the `entryComponents` list. Use this\r\n     * option to add components that are bootstrapped\r\n     * using one of the imperative techniques, such as `ViewContainerRef.createComponent()`.\r\n     *\r\n     * @see [Entry Components](guide/entry-components)\r\n     * @deprecated\r\n     * Since 9.0.0. With Ivy, this property is no longer necessary.\r\n     * (You may need to keep these if building a library that will be consumed by a View Engine\r\n     * application.)\r\n     */\r\n    entryComponents?: Array<Type<any> | any[]>;\r\n    /**\r\n     * The set of components that are bootstrapped when\r\n     * this module is bootstrapped. The components listed here\r\n     * are automatically added to `entryComponents`.\r\n     */\r\n    bootstrap?: Array<Type<any> | any[]>;\r\n    /**\r\n     * The set of schemas that declare elements to be allowed in the NgModule.\r\n     * Elements and properties that are neither Angular components nor directives\r\n     * must be declared in a schema.\r\n     *\r\n     * Allowed value are `NO_ERRORS_SCHEMA` and `CUSTOM_ELEMENTS_SCHEMA`.\r\n     *\r\n     * @security When using one of `NO_ERRORS_SCHEMA` or `CUSTOM_ELEMENTS_SCHEMA`\r\n     * you must ensure that allowed elements and properties securely escape inputs.\r\n     */\r\n    schemas?: Array<SchemaMetadata | any[]>;\r\n    /**\r\n     * A name or path that uniquely identifies this NgModule in `getModuleFactory`.\r\n     * If left `undefined`, the NgModule is not registered with\r\n     * `getModuleFactory`.\r\n     */\r\n    id?: string;\r\n    /**\r\n     * When present, this module is ignored by the AOT compiler.\r\n     * It remains in distributed code, and the JIT compiler attempts to compile it\r\n     * at run time, in the browser.\r\n     * To ensure the correct behavior, the app must import `@angular/compiler`.\r\n     */\r\n    jit?: true;\r\n}\r\n\r\n/**\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const NgModule: NgModuleDecorator;\r\n\r\n/**\r\n * Type of the NgModule decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface NgModuleDecorator {\r\n    /**\r\n     * Decorator that marks a class as an NgModule and supplies configuration metadata.\r\n     */\r\n    (obj?: NgModule): TypeDecorator;\r\n    new (obj?: NgModule): NgModule;\r\n}\r\n\r\ndeclare interface NgModuleDefinition extends Definition<NgModuleDefinitionFactory> {\r\n    providers: NgModuleProviderDef[];\r\n    providersByKey: {\r\n        [tokenKey: string]: NgModuleProviderDef;\r\n    };\r\n    modules: any[];\r\n    scope: 'root' | 'platform' | null;\r\n}\r\n\r\ndeclare interface NgModuleDefinitionFactory extends DefinitionFactory<NgModuleDefinition> {\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare abstract class NgModuleFactory<T> {\r\n    abstract get moduleType(): Type<T>;\r\n    abstract create(parentInjector: Injector | null): NgModuleRef<T>;\r\n}\r\n\r\n/**\r\n * Used to load ng module factories.\r\n *\r\n * @publicApi\r\n * @deprecated the `string` form of `loadChildren` is deprecated, and `NgModuleFactoryLoader` is\r\n * part of its implementation. See `LoadChildren` for more details.\r\n */\r\nexport declare abstract class NgModuleFactoryLoader {\r\n    abstract load(path: string): Promise<NgModuleFactory<any>>;\r\n}\r\n\r\ndeclare interface NgModuleProviderDef {\r\n    flags: ɵNodeFlags;\r\n    index: number;\r\n    token: any;\r\n    value: any;\r\n    deps: DepDef[];\r\n}\r\n\r\n/**\r\n * Represents an instance of an `NgModule` created by an `NgModuleFactory`.\r\n * Provides access to the `NgModule` instance and related objects.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class NgModuleRef<T> {\r\n    /**\r\n     * The injector that contains all of the providers of the `NgModule`.\r\n     */\r\n    abstract get injector(): Injector;\r\n    /**\r\n     * The resolver that can retrieve the component factories\r\n     * declared in the `entryComponents` property of the module.\r\n     */\r\n    abstract get componentFactoryResolver(): ComponentFactoryResolver;\r\n    /**\r\n     * The `NgModule` instance.\r\n     */\r\n    abstract get instance(): T;\r\n    /**\r\n     * Destroys the module instance and all of the data structures associated with it.\r\n     */\r\n    abstract destroy(): void;\r\n    /**\r\n     * Registers a callback to be executed when the module is destroyed.\r\n     */\r\n    abstract onDestroy(callback: () => void): void;\r\n}\r\n\r\n/**\r\n * A token for third-party components that can register themselves with NgProbe.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgProbeToken {\r\n    name: string;\r\n    token: any;\r\n    constructor(name: string, token: any);\r\n}\r\n\r\n/**\r\n * An injectable service for executing work inside or outside of the Angular zone.\r\n *\r\n * The most common use of this service is to optimize performance when starting a work consisting of\r\n * one or more asynchronous tasks that don't require UI updates or error handling to be handled by\r\n * Angular. Such tasks can be kicked off via {@link #runOutsideAngular} and if needed, these tasks\r\n * can reenter the Angular zone via {@link #run}.\r\n *\r\n * <!-- TODO: add/fix links to:\r\n *   - docs explaining zones and the use of zones in Angular and change-detection\r\n *   - link to runOutsideAngular/run (throughout this file!)\r\n *   -->\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```\r\n * import {Component, NgZone} from '@angular/core';\r\n * import {NgIf} from '@angular/common';\r\n *\r\n * @Component({\r\n *   selector: 'ng-zone-demo',\r\n *   template: `\r\n *     <h2>Demo: NgZone</h2>\r\n *\r\n *     <p>Progress: {{progress}}%</p>\r\n *     <p *ngIf=\"progress >= 100\">Done processing {{label}} of Angular zone!</p>\r\n *\r\n *     <button (click)=\"processWithinAngularZone()\">Process within Angular zone</button>\r\n *     <button (click)=\"processOutsideOfAngularZone()\">Process outside of Angular zone</button>\r\n *   `,\r\n * })\r\n * export class NgZoneDemo {\r\n *   progress: number = 0;\r\n *   label: string;\r\n *\r\n *   constructor(private _ngZone: NgZone) {}\r\n *\r\n *   // Loop inside the Angular zone\r\n *   // so the UI DOES refresh after each setTimeout cycle\r\n *   processWithinAngularZone() {\r\n *     this.label = 'inside';\r\n *     this.progress = 0;\r\n *     this._increaseProgress(() => console.log('Inside Done!'));\r\n *   }\r\n *\r\n *   // Loop outside of the Angular zone\r\n *   // so the UI DOES NOT refresh after each setTimeout cycle\r\n *   processOutsideOfAngularZone() {\r\n *     this.label = 'outside';\r\n *     this.progress = 0;\r\n *     this._ngZone.runOutsideAngular(() => {\r\n *       this._increaseProgress(() => {\r\n *         // reenter the Angular zone and display done\r\n *         this._ngZone.run(() => { console.log('Outside Done!'); });\r\n *       });\r\n *     });\r\n *   }\r\n *\r\n *   _increaseProgress(doneCallback: () => void) {\r\n *     this.progress += 1;\r\n *     console.log(`Current progress: ${this.progress}%`);\r\n *\r\n *     if (this.progress < 100) {\r\n *       window.setTimeout(() => this._increaseProgress(doneCallback), 10);\r\n *     } else {\r\n *       doneCallback();\r\n *     }\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NgZone {\r\n    readonly hasPendingMacrotasks: boolean;\r\n    readonly hasPendingMicrotasks: boolean;\r\n    /**\r\n     * Whether there are no outstanding microtasks or macrotasks.\r\n     */\r\n    readonly isStable: boolean;\r\n    /**\r\n     * Notifies when code enters Angular Zone. This gets fired first on VM Turn.\r\n     */\r\n    readonly onUnstable: EventEmitter<any>;\r\n    /**\r\n     * Notifies when there is no more microtasks enqueued in the current VM Turn.\r\n     * This is a hint for Angular to do change detection, which may enqueue more microtasks.\r\n     * For this reason this event can fire multiple times per VM Turn.\r\n     */\r\n    readonly onMicrotaskEmpty: EventEmitter<any>;\r\n    /**\r\n     * Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which\r\n     * implies we are about to relinquish VM turn.\r\n     * This event gets called just once.\r\n     */\r\n    readonly onStable: EventEmitter<any>;\r\n    /**\r\n     * Notifies that an error has been delivered.\r\n     */\r\n    readonly onError: EventEmitter<any>;\r\n    constructor({ enableLongStackTrace, shouldCoalesceEventChangeDetection, shouldCoalesceRunChangeDetection }: {\r\n        enableLongStackTrace?: boolean | undefined;\r\n        shouldCoalesceEventChangeDetection?: boolean | undefined;\r\n        shouldCoalesceRunChangeDetection?: boolean | undefined;\r\n    });\r\n    static isInAngularZone(): boolean;\r\n    static assertInAngularZone(): void;\r\n    static assertNotInAngularZone(): void;\r\n    /**\r\n     * Executes the `fn` function synchronously within the Angular zone and returns value returned by\r\n     * the function.\r\n     *\r\n     * Running functions via `run` allows you to reenter Angular zone from a task that was executed\r\n     * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\r\n     *\r\n     * Any future tasks or microtasks scheduled from within this function will continue executing from\r\n     * within the Angular zone.\r\n     *\r\n     * If a synchronous error happens it will be rethrown and not reported via `onError`.\r\n     */\r\n    run<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T;\r\n    /**\r\n     * Executes the `fn` function synchronously within the Angular zone as a task and returns value\r\n     * returned by the function.\r\n     *\r\n     * Running functions via `run` allows you to reenter Angular zone from a task that was executed\r\n     * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\r\n     *\r\n     * Any future tasks or microtasks scheduled from within this function will continue executing from\r\n     * within the Angular zone.\r\n     *\r\n     * If a synchronous error happens it will be rethrown and not reported via `onError`.\r\n     */\r\n    runTask<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any[], name?: string): T;\r\n    /**\r\n     * Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not\r\n     * rethrown.\r\n     */\r\n    runGuarded<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T;\r\n    /**\r\n     * Executes the `fn` function synchronously in Angular's parent zone and returns value returned by\r\n     * the function.\r\n     *\r\n     * Running functions via {@link #runOutsideAngular} allows you to escape Angular's zone and do\r\n     * work that\r\n     * doesn't trigger Angular change-detection or is subject to Angular's error handling.\r\n     *\r\n     * Any future tasks or microtasks scheduled from within this function will continue executing from\r\n     * outside of the Angular zone.\r\n     *\r\n     * Use {@link #run} to reenter the Angular zone and do work that updates the application model.\r\n     */\r\n    runOutsideAngular<T>(fn: (...args: any[]) => T): T;\r\n}\r\n\r\n/**\r\n * Defines a schema that allows any property on any element.\r\n *\r\n * This schema allows you to ignore the errors related to any unknown elements or properties in a\r\n * template. The usage of this schema is generally discouraged because it prevents useful validation\r\n * and may hide real errors in your template. Consider using the `CUSTOM_ELEMENTS_SCHEMA` instead.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const NO_ERRORS_SCHEMA: SchemaMetadata;\r\n\r\ndeclare interface NodeCheckFn {\r\n    (view: ViewData, nodeIndex: number, argStyle: ɵArgumentType.Dynamic, values: any[]): any;\r\n    (view: ViewData, nodeIndex: number, argStyle: ɵArgumentType.Inline, v0?: any, v1?: any, v2?: any, v3?: any, v4?: any, v5?: any, v6?: any, v7?: any, v8?: any, v9?: any): any;\r\n}\r\n\r\n/**\r\n * Node instance data.\r\n *\r\n * We have a separate type per NodeType to save memory\r\n * (TextData | ElementData | ProviderData | PureExpressionData | QueryList<any>)\r\n *\r\n * To keep our code monomorphic,\r\n * we prohibit using `NodeData` directly but enforce the use of accessors (`asElementData`, ...).\r\n * This way, no usage site can get a `NodeData` from view.nodes and then use it for different\r\n * purposes.\r\n */\r\ndeclare class NodeData {\r\n    private __brand;\r\n}\r\n\r\n/**\r\n * A node definition in the view.\r\n *\r\n * Note: We use one type for all nodes so that loops that loop over all nodes\r\n * of a ViewDefinition stay monomorphic!\r\n */\r\ndeclare interface NodeDef {\r\n    flags: ɵNodeFlags;\r\n    nodeIndex: number;\r\n    checkIndex: number;\r\n    parent: NodeDef | null;\r\n    renderParent: NodeDef | null;\r\n    /** this is checked against NgContentDef.index to find matched nodes */\r\n    ngContentIndex: number | null;\r\n    /** number of transitive children */\r\n    childCount: number;\r\n    /** aggregated NodeFlags for all transitive children (does not include self) **/\r\n    childFlags: ɵNodeFlags;\r\n    /** aggregated NodeFlags for all direct children (does not include self) **/\r\n    directChildFlags: ɵNodeFlags;\r\n    bindingIndex: number;\r\n    bindings: BindingDef[];\r\n    bindingFlags: ɵBindingFlags;\r\n    outputIndex: number;\r\n    outputs: OutputDef[];\r\n    /**\r\n     * references that the user placed on the element\r\n     */\r\n    references: {\r\n        [refId: string]: ɵQueryValueType;\r\n    };\r\n    /**\r\n     * ids and value types of all queries that are matched by this node.\r\n     */\r\n    matchedQueries: {\r\n        [queryId: number]: ɵQueryValueType;\r\n    };\r\n    /** Binary or of all matched query ids of this node. */\r\n    matchedQueryIds: number;\r\n    /**\r\n     * Binary or of all query ids that are matched by one of the children.\r\n     * This includes query ids from templates as well.\r\n     * Used as a bloom filter.\r\n     */\r\n    childMatchedQueries: number;\r\n    element: ElementDef | null;\r\n    provider: ProviderDef | null;\r\n    text: TextDef | null;\r\n    query: QueryDef | null;\r\n    ngContent: NgContentDef | null;\r\n}\r\n\r\ndeclare interface NodeInjectorDebug {\r\n    /**\r\n     * Instance bloom. Does the current injector have a provider with a given bloom mask.\r\n     */\r\n    bloom: string;\r\n    /**\r\n     * Cumulative bloom. Do any of the above injectors have a provider with a given bloom mask.\r\n     */\r\n    cumulativeBloom: string;\r\n    /**\r\n     * A list of providers associated with this injector.\r\n     */\r\n    providers: (Type<unknown> | ɵDirectiveDef<unknown> | ɵComponentDef<unknown>)[];\r\n    /**\r\n     * A list of providers associated with this injector visible to the view of the component only.\r\n     */\r\n    viewProviders: Type<unknown>[];\r\n    /**\r\n     * Location of the parent `TNode`.\r\n     */\r\n    parentInjectorIndex: number;\r\n}\r\n\r\n/**\r\n * Function to call console.error at the right source location. This is an indirection\r\n * via another function as browser will log the location that actually called\r\n * `console.error`.\r\n */\r\ndeclare interface NodeLogger {\r\n    (): () => void;\r\n}\r\n\r\n/**\r\n * Object Oriented style of API needed to create elements and text nodes.\r\n *\r\n * This is the native browser API style, e.g. operations are methods on individual objects\r\n * like HTMLElement. With this style, no additional code is needed as a facade\r\n * (reducing payload size).\r\n * */\r\ndeclare interface ObjectOrientedRenderer3 {\r\n    createComment(data: string): RComment;\r\n    createElement(tagName: string): RElement;\r\n    createElementNS(namespace: string, tagName: string): RElement;\r\n    createTextNode(data: string): RText;\r\n    querySelector(selectors: string): RElement | null;\r\n}\r\n\r\n/**\r\n * @description\r\n * A lifecycle hook that is called when any data-bound property of a directive changes.\r\n * Define an `ngOnChanges()` method to handle the changes.\r\n *\r\n * @see `DoCheck`\r\n * @see `OnInit`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface to\r\n * define an on-changes handler for an input property.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='OnChanges'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface OnChanges {\r\n    /**\r\n     * A callback method that is invoked immediately after the\r\n     * default change detector has checked data-bound properties\r\n     * if at least one has changed, and before the view and content\r\n     * children are checked.\r\n     * @param changes The changed properties.\r\n     */\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n}\r\n\r\n/**\r\n * A lifecycle hook that is called when a directive, pipe, or service is destroyed.\r\n * Use for any custom cleanup that needs to occur when the\r\n * instance is destroyed.\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface\r\n * to define its own custom clean-up method.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='OnDestroy'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface OnDestroy {\r\n    /**\r\n     * A callback method that performs custom clean-up, invoked immediately\r\n     * before a directive, pipe, or service instance is destroyed.\r\n     */\r\n    ngOnDestroy(): void;\r\n}\r\n\r\n/**\r\n * @description\r\n * A lifecycle hook that is called after Angular has initialized\r\n * all data-bound properties of a directive.\r\n * Define an `ngOnInit()` method to handle any additional initialization tasks.\r\n *\r\n * @see `AfterContentInit`\r\n * @see [Lifecycle hooks guide](guide/lifecycle-hooks)\r\n *\r\n * @usageNotes\r\n * The following snippet shows how a component can implement this interface to\r\n * define its own initialization method.\r\n *\r\n * {@example core/ts/metadata/lifecycle_hooks_spec.ts region='OnInit'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface OnInit {\r\n    /**\r\n     * A callback method that is invoked immediately after the\r\n     * default change detector has checked the directive's\r\n     * data-bound properties for the first time,\r\n     * and before any of the view or content children have been checked.\r\n     * It is invoked only once when the directive is instantiated.\r\n     */\r\n    ngOnInit(): void;\r\n}\r\n\r\ndeclare type OpaqueValue = unknown;\r\n\r\ndeclare interface OpaqueViewState {\r\n    '__brand__': 'Brand for OpaqueViewState that nothing will match';\r\n}\r\n\r\n/**\r\n * Type of the Optional metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Optional {\r\n}\r\n\r\n/**\r\n * Optional decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Optional: OptionalDecorator;\r\n\r\n/**\r\n * Type of the Optional decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface OptionalDecorator {\r\n    /**\r\n     * Parameter decorator to be used on constructor parameters,\r\n     * which marks the parameter as being an optional dependency.\r\n     * The DI framework provides `null` if the dependency is not found.\r\n     *\r\n     * Can be used together with other parameter decorators\r\n     * that modify how dependency injection operates.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The following code allows the possibility of a `null` result:\r\n     *\r\n     * <code-example path=\"core/di/ts/metadata_spec.ts\" region=\"Optional\">\r\n     * </code-example>\r\n     *\r\n     * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n     */\r\n    (): any;\r\n    new (): Optional;\r\n}\r\n\r\n/**\r\n * Type of the Output metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Output {\r\n    /**\r\n     * The name of the DOM property to which the output property is bound.\r\n     */\r\n    bindingPropertyName?: string;\r\n}\r\n\r\n/**\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Output: OutputDecorator;\r\n\r\n/**\r\n * Type of the Output decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface OutputDecorator {\r\n    /**\r\n     * Decorator that marks a class field as an output property and supplies configuration metadata.\r\n     * The DOM property bound to the output property is automatically updated during change detection.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * You can supply an optional name to use in templates when the\r\n     * component is instantiated, that maps to the\r\n     * name of the bound property. By default, the original\r\n     * name of the bound property is used for output binding.\r\n     *\r\n     * See `Input` decorator for an example of providing a binding name.\r\n     *\r\n     * @see [Input and Output properties](guide/inputs-outputs)\r\n     *\r\n     */\r\n    (bindingPropertyName?: string): any;\r\n    new (bindingPropertyName?: string): any;\r\n}\r\n\r\ndeclare interface OutputDef {\r\n    type: OutputType;\r\n    target: 'window' | 'document' | 'body' | 'component' | null;\r\n    eventName: string;\r\n    propName: string | null;\r\n}\r\n\r\ndeclare const enum OutputType {\r\n    ElementOutput = 0,\r\n    DirectiveOutput = 1\r\n}\r\n\r\n/**\r\n * A [DI token](guide/glossary#di-token \"DI token definition\") that indicates the root directory of\r\n * the application\r\n * @publicApi\r\n */\r\nexport declare const PACKAGE_ROOT_URL: InjectionToken<string>;\r\n\r\ndeclare const PARENT = 3;\r\n\r\n/**\r\n * Type of the Pipe metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Pipe {\r\n    /**\r\n     * The pipe name to use in template bindings.\r\n     * Typically uses [lowerCamelCase](guide/glossary#case-types)\r\n     * because the name cannot contain hyphens.\r\n     */\r\n    name: string;\r\n    /**\r\n     * When true, the pipe is pure, meaning that the\r\n     * `transform()` method is invoked only when its input arguments\r\n     * change. Pipes are pure by default.\r\n     *\r\n     * If the pipe has internal state (that is, the result\r\n     * depends on state other than its arguments), set `pure` to false.\r\n     * In this case, the pipe is invoked on each change-detection cycle,\r\n     * even if the arguments have not changed.\r\n     */\r\n    pure?: boolean;\r\n}\r\n\r\n/**\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Pipe: PipeDecorator;\r\n\r\n/**\r\n * Type of the Pipe decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface PipeDecorator {\r\n    /**\r\n     *\r\n     * Decorator that marks a class as pipe and supplies configuration metadata.\r\n     *\r\n     * A pipe class must implement the `PipeTransform` interface.\r\n     * For example, if the name is \"myPipe\", use a template binding expression\r\n     * such as the following:\r\n     *\r\n     * ```\r\n     * {{ exp | myPipe }}\r\n     * ```\r\n     *\r\n     * The result of the expression is passed to the pipe's `transform()` method.\r\n     *\r\n     * A pipe must belong to an NgModule in order for it to be available\r\n     * to a template. To make it a member of an NgModule,\r\n     * list it in the `declarations` field of the `NgModule` metadata.\r\n     *\r\n     * @see [Style Guide: Pipe Names](guide/styleguide#02-09)\r\n     *\r\n     */\r\n    (obj: Pipe): TypeDecorator;\r\n    /**\r\n     * See the `Pipe` decorator.\r\n     */\r\n    new (obj: Pipe): Pipe;\r\n}\r\n\r\ndeclare type PipeDefList = ɵPipeDef<any>[];\r\n\r\n/**\r\n * Type used for PipeDefs on component definition.\r\n *\r\n * The function is necessary to be able to support forward declarations.\r\n */\r\ndeclare type PipeDefListOrFactory = (() => PipeDefList) | PipeDefList;\r\n\r\n\r\n/**\r\n * An interface that is implemented by pipes in order to perform a transformation.\r\n * Angular invokes the `transform` method with the value of a binding\r\n * as the first argument, and any parameters as the second argument in list form.\r\n *\r\n * @usageNotes\r\n *\r\n * In the following example, `TruncatePipe` returns the shortened value with an added ellipses.\r\n *\r\n * <code-example path=\"core/ts/pipes/simple_truncate.ts\" header=\"simple_truncate.ts\"></code-example>\r\n *\r\n * Invoking `{{ 'It was the best of times' | truncate }}` in a template will produce `It was...`.\r\n *\r\n * In the following example, `TruncatePipe` takes parameters that sets the truncated length and the\r\n * string to append with.\r\n *\r\n * <code-example path=\"core/ts/pipes/truncate.ts\" header=\"truncate.ts\"></code-example>\r\n *\r\n * Invoking `{{ 'It was the best of times' | truncate:4:'....' }}` in a template will produce `It\r\n * was the best....`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface PipeTransform {\r\n    transform(value: any, ...args: any[]): any;\r\n}\r\n\r\n/**\r\n * A subclass of `Type` which has a static `ɵpipe`:`PipeDef` field making it\r\n * consumable for rendering.\r\n */\r\ndeclare interface PipeType<T> extends Type<T> {\r\n    ɵpipe: unknown;\r\n}\r\n\r\ndeclare type PipeTypeList = (PipeType<any> | Type<any>)[];\r\n\r\ndeclare type PipeTypesOrFactory = (() => PipeTypeList) | PipeTypeList;\r\n\r\n/**\r\n * A token that indicates an opaque platform ID.\r\n * @publicApi\r\n */\r\nexport declare const PLATFORM_ID: InjectionToken<Object>;\r\n\r\n/**\r\n * A function that is executed when a platform is initialized.\r\n * @publicApi\r\n */\r\nexport declare const PLATFORM_INITIALIZER: InjectionToken<(() => void)[]>;\r\n\r\n/**\r\n * This platform has to be included in any other platform\r\n *\r\n * @publicApi\r\n */\r\nexport declare const platformCore: (extraProviders?: StaticProvider[] | undefined) => PlatformRef;\r\n\r\n/**\r\n * The Angular platform is the entry point for Angular on a web page.\r\n * Each page has exactly one platform. Services (such as reflection) which are common\r\n * to every Angular application running on the page are bound in its scope.\r\n * A page's platform is initialized implicitly when a platform is created using a platform\r\n * factory such as `PlatformBrowser`, or explicitly by calling the `createPlatform()` function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class PlatformRef {\r\n    private _injector;\r\n    private _modules;\r\n    private _destroyListeners;\r\n    private _destroyed;\r\n    /**\r\n     * Creates an instance of an `@NgModule` for the given platform for offline compilation.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * The following example creates the NgModule for a browser platform.\r\n     *\r\n     * ```typescript\r\n     * my_module.ts:\r\n     *\r\n     * @NgModule({\r\n     *   imports: [BrowserModule]\r\n     * })\r\n     * class MyModule {}\r\n     *\r\n     * main.ts:\r\n     * import {MyModuleNgFactory} from './my_module.ngfactory';\r\n     * import {platformBrowser} from '@angular/platform-browser';\r\n     *\r\n     * let moduleRef = platformBrowser().bootstrapModuleFactory(MyModuleNgFactory);\r\n     * ```\r\n     */\r\n    bootstrapModuleFactory<M>(moduleFactory: NgModuleFactory<M>, options?: BootstrapOptions): Promise<NgModuleRef<M>>;\r\n    /**\r\n     * Creates an instance of an `@NgModule` for a given platform using the given runtime compiler.\r\n     *\r\n     * @usageNotes\r\n     * ### Simple Example\r\n     *\r\n     * ```typescript\r\n     * @NgModule({\r\n     *   imports: [BrowserModule]\r\n     * })\r\n     * class MyModule {}\r\n     *\r\n     * let moduleRef = platformBrowser().bootstrapModule(MyModule);\r\n     * ```\r\n     *\r\n     */\r\n    bootstrapModule<M>(moduleType: Type<M>, compilerOptions?: (CompilerOptions & BootstrapOptions) | Array<CompilerOptions & BootstrapOptions>): Promise<NgModuleRef<M>>;\r\n    private _moduleDoBootstrap;\r\n    /**\r\n     * Registers a listener to be called when the platform is destroyed.\r\n     */\r\n    onDestroy(callback: () => void): void;\r\n    /**\r\n     * Retrieves the platform {@link Injector}, which is the parent injector for\r\n     * every Angular application on the page and provides singleton providers.\r\n     */\r\n    get injector(): Injector;\r\n    /**\r\n     * Destroys the current Angular platform and all Angular applications on the page.\r\n     * Destroys all modules and listeners registered with the platform.\r\n     */\r\n    destroy(): void;\r\n    get destroyed(): boolean;\r\n}\r\n\r\ndeclare interface PlatformReflectionCapabilities {\r\n    isReflectionEnabled(): boolean;\r\n    factory(type: Type<any>): Function;\r\n    hasLifecycleHook(type: any, lcProperty: string): boolean;\r\n    guards(type: any): {\r\n        [key: string]: any;\r\n    };\r\n    /**\r\n     * Return a list of annotations/types for constructor parameters\r\n     */\r\n    parameters(type: Type<any>): any[][];\r\n    /**\r\n     * Return a list of annotations declared on the class\r\n     */\r\n    annotations(type: Type<any>): any[];\r\n    /**\r\n     * Return a object literal which describes the annotations on Class fields/properties.\r\n     */\r\n    propMetadata(typeOrFunc: Type<any>): {\r\n        [key: string]: any[];\r\n    };\r\n    getter(name: string): ɵGetterFn;\r\n    setter(name: string): ɵSetterFn;\r\n    method(name: string): ɵMethodFn;\r\n    importUri(type: Type<any>): string;\r\n    resourceUri(type: Type<any>): string;\r\n    resolveIdentifier(name: string, moduleUrl: string, members: string[], runtime: any): any;\r\n    resolveEnum(enumIdentifier: any, name: string): any;\r\n}\r\n\r\n/**\r\n * A boolean-valued function over a value, possibly including context information\r\n * regarding that value's position in an array.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Predicate<T> {\r\n    (value: T): boolean;\r\n}\r\n\r\ndeclare const PREORDER_HOOK_FLAGS = 18;\r\n\r\n/** More flags associated with an LView (saved in LView[PREORDER_HOOK_FLAGS]) */\r\ndeclare const enum PreOrderHookFlags {\r\n    /**\r\n     The index of the next pre-order hook to be called in the hooks array, on the first 16\r\n     bits\r\n     */\r\n    IndexOfTheNextPreOrderHookMaskMask = 65535,\r\n    /**\r\n     * The number of init hooks that have already been called, on the last 16 bits\r\n     */\r\n    NumberOfInitHooksCalledIncrementer = 65536,\r\n    NumberOfInitHooksCalledShift = 16,\r\n    NumberOfInitHooksCalledMask = 4294901760\r\n}\r\n\r\n/**\r\n * Procedural style of API needed to create elements and text nodes.\r\n *\r\n * In non-native browser environments (e.g. platforms such as web-workers), this is the\r\n * facade that enables element manipulation. This also facilitates backwards compatibility\r\n * with Renderer2.\r\n */\r\ndeclare interface ProceduralRenderer3 {\r\n    destroy(): void;\r\n    createComment(value: string): RComment;\r\n    createElement(name: string, namespace?: string | null): RElement;\r\n    createText(value: string): RText;\r\n    /**\r\n     * This property is allowed to be null / undefined,\r\n     * in which case the view engine won't call it.\r\n     * This is used as a performance optimization for production mode.\r\n     */\r\n    destroyNode?: ((node: RNode) => void) | null;\r\n    appendChild(parent: RElement, newChild: RNode): void;\r\n    insertBefore(parent: RNode, newChild: RNode, refChild: RNode | null, isMove?: boolean): void;\r\n    removeChild(parent: RElement, oldChild: RNode, isHostElement?: boolean): void;\r\n    selectRootElement(selectorOrNode: string | any, preserveContent?: boolean): RElement;\r\n    parentNode(node: RNode): RElement | null;\r\n    nextSibling(node: RNode): RNode | null;\r\n    setAttribute(el: RElement, name: string, value: string | TrustedHTML | TrustedScript | TrustedScriptURL, namespace?: string | null): void;\r\n    removeAttribute(el: RElement, name: string, namespace?: string | null): void;\r\n    addClass(el: RElement, name: string): void;\r\n    removeClass(el: RElement, name: string): void;\r\n    setStyle(el: RElement, style: string, value: any, flags?: RendererStyleFlags2 | RendererStyleFlags3): void;\r\n    removeStyle(el: RElement, style: string, flags?: RendererStyleFlags2 | RendererStyleFlags3): void;\r\n    setProperty(el: RElement, name: string, value: any): void;\r\n    setValue(node: RText | RComment, value: string): void;\r\n    listen(target: GlobalTargetName | RNode, eventName: string, callback: (event: any) => boolean | void): () => void;\r\n}\r\n\r\n/**\r\n * Describes a function that is used to process provider lists (such as provider\r\n * overrides).\r\n */\r\ndeclare type ProcessProvidersFunction = (providers: Provider[]) => Provider[];\r\n\r\n/**\r\n * List of slots for a projection. A slot can be either based on a parsed CSS selector\r\n * which will be used to determine nodes which are projected into that slot.\r\n *\r\n * When set to \"*\", the slot is reserved and can be used for multi-slot projection\r\n * using {@link ViewContainerRef#createComponent}. The last slot that specifies the\r\n * wildcard selector will retrieve all projectable nodes which do not match any selector.\r\n */\r\ndeclare type ProjectionSlots = (ɵCssSelectorList | '*')[];\r\n\r\n/**\r\n * This mapping is necessary so we can set input properties and output listeners\r\n * properly at runtime when property names are minified or aliased.\r\n *\r\n * Key: unminified / public input or output name\r\n * Value: array containing minified / internal name and related directive index\r\n *\r\n * The value must be an array to support inputs and outputs with the same name\r\n * on the same node.\r\n */\r\ndeclare type PropertyAliases = {\r\n    [key: string]: PropertyAliasValue;\r\n};\r\n\r\n/**\r\n * Store the runtime input or output names for all the directives.\r\n *\r\n * i+0: directive instance index\r\n * i+1: privateName\r\n *\r\n * e.g. [0, 'change-minified']\r\n */\r\ndeclare type PropertyAliasValue = (number | string)[];\r\n\r\n/**\r\n * Describes how the `Injector` should be configured.\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @see `StaticProvider`\r\n *\r\n * @publicApi\r\n */\r\nexport declare type Provider = TypeProvider | ValueProvider | ClassProvider | ConstructorProvider | ExistingProvider | FactoryProvider | any[];\r\n\r\ndeclare interface ProviderDef {\r\n    token: any;\r\n    value: any;\r\n    deps: DepDef[];\r\n}\r\n\r\ndeclare interface ProviderOverride {\r\n    token: any;\r\n    flags: ɵNodeFlags;\r\n    value: any;\r\n    deps: ([ɵDepFlags, any] | any)[];\r\n    deprecatedBehavior: boolean;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Token that can be used to retrieve an instance from an injector or through a query.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type ProviderToken<T> = Type<T> | AbstractType<T> | InjectionToken<T>;\r\n\r\n/**\r\n * Testability API.\r\n * `declare` keyword causes tsickle to generate externs, so these methods are\r\n * not renamed by Closure Compiler.\r\n * @publicApi\r\n */\r\ndeclare interface PublicTestability {\r\n    isStable(): boolean;\r\n    whenStable(callback: Function, timeout?: number, updateCallback?: Function): void;\r\n    findProviders(using: any, provider: string, exactMatch: boolean): any[];\r\n}\r\n\r\ndeclare const QUERIES = 19;\r\n\r\n/**\r\n * Type of the Query metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Query {\r\n    descendants: boolean;\r\n    emitDistinctChangesOnly: boolean;\r\n    first: boolean;\r\n    read: any;\r\n    isViewQuery: boolean;\r\n    selector: any;\r\n    static?: boolean;\r\n}\r\n\r\n/**\r\n * Base class for query metadata.\r\n *\r\n * @see `ContentChildren`.\r\n * @see `ContentChild`.\r\n * @see `ViewChildren`.\r\n * @see `ViewChild`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class Query {\r\n}\r\n\r\ndeclare interface QueryBindingDef {\r\n    propName: string;\r\n    bindingType: ɵQueryBindingType;\r\n}\r\n\r\ndeclare interface QueryDef {\r\n    id: number;\r\n    filterId: number;\r\n    bindings: QueryBindingDef[];\r\n}\r\n\r\n/**\r\n * A set of flags to be used with Queries.\r\n *\r\n * NOTE: Ensure changes here are reflected in `packages/compiler/src/render3/view/compiler.ts`\r\n */\r\ndeclare const enum QueryFlags {\r\n    /**\r\n     * No flags\r\n     */\r\n    none = 0,\r\n    /**\r\n     * Whether or not the query should descend into children.\r\n     */\r\n    descendants = 1,\r\n    /**\r\n     * The query can be computed statically and hence can be assigned eagerly.\r\n     *\r\n     * NOTE: Backwards compatibility with ViewEngine.\r\n     */\r\n    isStatic = 2,\r\n    /**\r\n     * If the `QueryList` should fire change event only if actual change to query was computed (vs old\r\n     * behavior where the change was fired whenever the query was recomputed, even if the recomputed\r\n     * query resulted in the same list.)\r\n     */\r\n    emitDistinctChangesOnly = 4\r\n}\r\n\r\n/**\r\n * An unmodifiable list of items that Angular keeps up to date when the state\r\n * of the application changes.\r\n *\r\n * The type of object that {@link ViewChildren}, {@link ContentChildren}, and {@link QueryList}\r\n * provide.\r\n *\r\n * Implements an iterable interface, therefore it can be used in both ES6\r\n * javascript `for (var i of items)` loops as well as in Angular templates with\r\n * `*ngFor=\"let i of myList\"`.\r\n *\r\n * Changes can be observed by subscribing to the changes `Observable`.\r\n *\r\n * NOTE: In the future this class will implement an `Observable` interface.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n * ```typescript\r\n * @Component({...})\r\n * class Container {\r\n *   @ViewChildren(Item) items:QueryList<Item>;\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class QueryList<T> implements Iterable<T> {\r\n    private _emitDistinctChangesOnly;\r\n    readonly dirty = true;\r\n    private _results;\r\n    private _changesDetected;\r\n    private _changes;\r\n    readonly length: number;\r\n    readonly first: T;\r\n    readonly last: T;\r\n    /**\r\n     * Returns `Observable` of `QueryList` notifying the subscriber of changes.\r\n     */\r\n    get changes(): Observable<any>;\r\n    /**\r\n     * @param emitDistinctChangesOnly Whether `QueryList.changes` should fire only when actual change\r\n     *     has occurred. Or if it should fire when query is recomputed. (recomputing could resolve in\r\n     *     the same result)\r\n     */\r\n    constructor(_emitDistinctChangesOnly?: boolean);\r\n    /**\r\n     * Returns the QueryList entry at `index`.\r\n     */\r\n    get(index: number): T | undefined;\r\n    /**\r\n     * See\r\n     * [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\r\n     */\r\n    map<U>(fn: (item: T, index: number, array: T[]) => U): U[];\r\n    /**\r\n     * See\r\n     * [Array.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)\r\n     */\r\n    filter(fn: (item: T, index: number, array: T[]) => boolean): T[];\r\n    /**\r\n     * See\r\n     * [Array.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)\r\n     */\r\n    find(fn: (item: T, index: number, array: T[]) => boolean): T | undefined;\r\n    /**\r\n     * See\r\n     * [Array.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\r\n     */\r\n    reduce<U>(fn: (prevValue: U, curValue: T, curIndex: number, array: T[]) => U, init: U): U;\r\n    /**\r\n     * See\r\n     * [Array.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)\r\n     */\r\n    forEach(fn: (item: T, index: number, array: T[]) => void): void;\r\n    /**\r\n     * See\r\n     * [Array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)\r\n     */\r\n    some(fn: (value: T, index: number, array: T[]) => boolean): boolean;\r\n    /**\r\n     * Returns a copy of the internal results list as an Array.\r\n     */\r\n    toArray(): T[];\r\n    toString(): string;\r\n    /**\r\n     * Updates the stored data of the query list, and resets the `dirty` flag to `false`, so that\r\n     * on change detection, it will not notify of changes to the queries, unless a new change\r\n     * occurs.\r\n     *\r\n     * @param resultsTree The query results to store\r\n     * @param identityAccessor Optional function for extracting stable object identity from a value\r\n     *    in the array. This function is executed for each element of the query result list while\r\n     *    comparing current query list with the new one (provided as a first argument of the `reset`\r\n     *    function) to detect if the lists are different. If the function is not provided, elements\r\n     *    are compared as is (without any pre-processing).\r\n     */\r\n    reset(resultsTree: Array<T | any[]>, identityAccessor?: (value: T) => unknown): void;\r\n    /**\r\n     * Triggers a change event by emitting on the `changes` {@link EventEmitter}.\r\n     */\r\n    notifyOnChanges(): void;\r\n    /** internal */\r\n    setDirty(): void;\r\n    /** internal */\r\n    destroy(): void;\r\n    [Symbol.iterator]: () => Iterator<T>;\r\n}\r\n\r\ndeclare interface R3DeclareComponentFacade extends R3DeclareDirectiveFacade {\r\n    template: string;\r\n    isInline?: boolean;\r\n    styles?: string[];\r\n    components?: R3DeclareUsedDirectiveFacade[];\r\n    directives?: R3DeclareUsedDirectiveFacade[];\r\n    pipes?: {\r\n        [pipeName: string]: OpaqueValue | (() => OpaqueValue);\r\n    };\r\n    viewProviders?: OpaqueValue;\r\n    animations?: OpaqueValue;\r\n    changeDetection?: ChangeDetectionStrategy_2;\r\n    encapsulation?: ViewEncapsulation_2;\r\n    interpolation?: [string, string];\r\n    preserveWhitespaces?: boolean;\r\n}\r\n\r\ndeclare interface R3DeclareDependencyMetadataFacade {\r\n    token: OpaqueValue;\r\n    attribute?: boolean;\r\n    host?: boolean;\r\n    optional?: boolean;\r\n    self?: boolean;\r\n    skipSelf?: boolean;\r\n}\r\n\r\ndeclare interface R3DeclareDirectiveFacade {\r\n    selector?: string;\r\n    type: Type_2;\r\n    inputs?: {\r\n        [classPropertyName: string]: string | [string, string];\r\n    };\r\n    outputs?: {\r\n        [classPropertyName: string]: string;\r\n    };\r\n    host?: {\r\n        attributes?: {\r\n            [key: string]: OpaqueValue;\r\n        };\r\n        listeners?: {\r\n            [key: string]: string;\r\n        };\r\n        properties?: {\r\n            [key: string]: string;\r\n        };\r\n        classAttribute?: string;\r\n        styleAttribute?: string;\r\n    };\r\n    queries?: R3DeclareQueryMetadataFacade[];\r\n    viewQueries?: R3DeclareQueryMetadataFacade[];\r\n    providers?: OpaqueValue;\r\n    exportAs?: string[];\r\n    usesInheritance?: boolean;\r\n    usesOnChanges?: boolean;\r\n}\r\n\r\ndeclare interface R3DeclareFactoryFacade {\r\n    type: Type_2;\r\n    deps: R3DeclareDependencyMetadataFacade[] | 'invalid' | null;\r\n    target: ɵɵFactoryTarget;\r\n}\r\n\r\ndeclare interface R3DeclareInjectableFacade {\r\n    type: Type_2;\r\n    providedIn?: Type_2 | 'root' | 'platform' | 'any' | null;\r\n    useClass?: OpaqueValue;\r\n    useFactory?: OpaqueValue;\r\n    useExisting?: OpaqueValue;\r\n    useValue?: OpaqueValue;\r\n    deps?: R3DeclareDependencyMetadataFacade[];\r\n}\r\n\r\ndeclare interface R3DeclareInjectorFacade {\r\n    type: Type_2;\r\n    imports?: OpaqueValue[];\r\n    providers?: OpaqueValue[];\r\n}\r\n\r\ndeclare interface R3DeclareNgModuleFacade {\r\n    type: Type_2;\r\n    bootstrap?: OpaqueValue[] | (() => OpaqueValue[]);\r\n    declarations?: OpaqueValue[] | (() => OpaqueValue[]);\r\n    imports?: OpaqueValue[] | (() => OpaqueValue[]);\r\n    exports?: OpaqueValue[] | (() => OpaqueValue[]);\r\n    schemas?: OpaqueValue[];\r\n    id?: OpaqueValue;\r\n}\r\n\r\ndeclare interface R3DeclarePipeFacade {\r\n    type: Type_2;\r\n    name: string;\r\n    pure?: boolean;\r\n}\r\n\r\ndeclare interface R3DeclareQueryMetadataFacade {\r\n    propertyName: string;\r\n    first?: boolean;\r\n    predicate: OpaqueValue | string[];\r\n    descendants?: boolean;\r\n    read?: OpaqueValue;\r\n    static?: boolean;\r\n    emitDistinctChangesOnly?: boolean;\r\n}\r\n\r\ndeclare interface R3DeclareUsedDirectiveFacade {\r\n    selector: string;\r\n    type: OpaqueValue | (() => OpaqueValue);\r\n    inputs?: string[];\r\n    outputs?: string[];\r\n    exportAs?: string[];\r\n}\r\n\r\ndeclare class R3Injector {\r\n    readonly parent: Injector;\r\n    /**\r\n     * Map of tokens to records which contain the instances of those tokens.\r\n     * - `null` value implies that we don't have the record. Used by tree-shakable injectors\r\n     * to prevent further searches.\r\n     */\r\n    private records;\r\n    /**\r\n     * The transitive set of `InjectorType`s which define this injector.\r\n     */\r\n    private injectorDefTypes;\r\n    /**\r\n     * Set of values instantiated by this injector which contain `ngOnDestroy` lifecycle hooks.\r\n     */\r\n    private onDestroy;\r\n    /**\r\n     * Flag indicating this injector provides the APP_ROOT_SCOPE token, and thus counts as the\r\n     * root scope.\r\n     */\r\n    private readonly scope;\r\n    readonly source: string | null;\r\n    /**\r\n     * Flag indicating that this injector was previously destroyed.\r\n     */\r\n    get destroyed(): boolean;\r\n    private _destroyed;\r\n    constructor(def: InjectorType<any>, additionalProviders: StaticProvider[] | null, parent: Injector, source?: string | null);\r\n    /**\r\n     * Destroy the injector and release references to every instance or provider associated with it.\r\n     *\r\n     * Also calls the `OnDestroy` lifecycle hooks of every instance that was created for which a\r\n     * hook was found.\r\n     */\r\n    destroy(): void;\r\n    get<T>(token: ProviderToken<T>, notFoundValue?: any, flags?: InjectFlags): T;\r\n    toString(): string;\r\n    private assertNotDestroyed;\r\n    /**\r\n     * Add an `InjectorType` or `InjectorTypeWithProviders` and all of its transitive providers\r\n     * to this injector.\r\n     *\r\n     * If an `InjectorTypeWithProviders` that declares providers besides the type is specified,\r\n     * the function will return \"true\" to indicate that the providers of the type definition need\r\n     * to be processed. This allows us to process providers of injector types after all imports of\r\n     * an injector definition are processed. (following View Engine semantics: see FW-1349)\r\n     */\r\n    private processInjectorType;\r\n    /**\r\n     * Process a `SingleProvider` and add it.\r\n     */\r\n    private processProvider;\r\n    private hydrate;\r\n    private injectableDefInScope;\r\n}\r\n\r\ndeclare interface RComment extends RNode {\r\n    textContent: string | null;\r\n}\r\n\r\ndeclare interface RCssStyleDeclaration {\r\n    removeProperty(propertyName: string): string;\r\n    setProperty(propertyName: string, value: string | null, priority?: string): void;\r\n}\r\n\r\ndeclare interface RDomTokenList {\r\n    add(token: string): void;\r\n    remove(token: string): void;\r\n}\r\n\r\n/**\r\n * A ReflectiveDependency injection container used for instantiating objects and resolving\r\n * dependencies.\r\n *\r\n * An `Injector` is a replacement for a `new` operator, which can automatically resolve the\r\n * constructor dependencies.\r\n *\r\n * In typical use, application code asks for the dependencies in the constructor and they are\r\n * resolved by the `Injector`.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * The following example creates an `Injector` configured to create `Engine` and `Car`.\r\n *\r\n * ```typescript\r\n * @Injectable()\r\n * class Engine {\r\n * }\r\n *\r\n * @Injectable()\r\n * class Car {\r\n *   constructor(public engine:Engine) {}\r\n * }\r\n *\r\n * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);\r\n * var car = injector.get(Car);\r\n * expect(car instanceof Car).toBe(true);\r\n * expect(car.engine instanceof Engine).toBe(true);\r\n * ```\r\n *\r\n * Notice, we don't use the `new` operator because we explicitly want to have the `Injector`\r\n * resolve all of the object's dependencies automatically.\r\n *\r\n * @deprecated from v5 - slow and brings in a lot of code, Use `Injector.create` instead.\r\n * @publicApi\r\n */\r\nexport declare abstract class ReflectiveInjector implements Injector {\r\n    /**\r\n     * Turns an array of provider definitions into an array of resolved providers.\r\n     *\r\n     * A resolution is a process of flattening multiple nested arrays and converting individual\r\n     * providers into an array of `ResolvedReflectiveProvider`s.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * @Injectable()\r\n     * class Engine {\r\n     * }\r\n     *\r\n     * @Injectable()\r\n     * class Car {\r\n     *   constructor(public engine:Engine) {}\r\n     * }\r\n     *\r\n     * var providers = ReflectiveInjector.resolve([Car, [[Engine]]]);\r\n     *\r\n     * expect(providers.length).toEqual(2);\r\n     *\r\n     * expect(providers[0] instanceof ResolvedReflectiveProvider).toBe(true);\r\n     * expect(providers[0].key.displayName).toBe(\"Car\");\r\n     * expect(providers[0].dependencies.length).toEqual(1);\r\n     * expect(providers[0].factory).toBeDefined();\r\n     *\r\n     * expect(providers[1].key.displayName).toBe(\"Engine\");\r\n     * });\r\n     * ```\r\n     *\r\n     */\r\n    static resolve(providers: Provider[]): ResolvedReflectiveProvider[];\r\n    /**\r\n     * Resolves an array of providers and creates an injector from those providers.\r\n     *\r\n     * The passed-in providers can be an array of `Type`, `Provider`,\r\n     * or a recursive array of more providers.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * @Injectable()\r\n     * class Engine {\r\n     * }\r\n     *\r\n     * @Injectable()\r\n     * class Car {\r\n     *   constructor(public engine:Engine) {}\r\n     * }\r\n     *\r\n     * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);\r\n     * expect(injector.get(Car) instanceof Car).toBe(true);\r\n     * ```\r\n     */\r\n    static resolveAndCreate(providers: Provider[], parent?: Injector): ReflectiveInjector;\r\n    /**\r\n     * Creates an injector from previously resolved providers.\r\n     *\r\n     * This API is the recommended way to construct injectors in performance-sensitive parts.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * @Injectable()\r\n     * class Engine {\r\n     * }\r\n     *\r\n     * @Injectable()\r\n     * class Car {\r\n     *   constructor(public engine:Engine) {}\r\n     * }\r\n     *\r\n     * var providers = ReflectiveInjector.resolve([Car, Engine]);\r\n     * var injector = ReflectiveInjector.fromResolvedProviders(providers);\r\n     * expect(injector.get(Car) instanceof Car).toBe(true);\r\n     * ```\r\n     */\r\n    static fromResolvedProviders(providers: ResolvedReflectiveProvider[], parent?: Injector): ReflectiveInjector;\r\n    /**\r\n     * Parent of this injector.\r\n     *\r\n     * <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.\r\n     * -->\r\n     */\r\n    abstract get parent(): Injector | null;\r\n    /**\r\n     * Resolves an array of providers and creates a child injector from those providers.\r\n     *\r\n     * <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.\r\n     * -->\r\n     *\r\n     * The passed-in providers can be an array of `Type`, `Provider`,\r\n     * or a recursive array of more providers.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * class ParentProvider {}\r\n     * class ChildProvider {}\r\n     *\r\n     * var parent = ReflectiveInjector.resolveAndCreate([ParentProvider]);\r\n     * var child = parent.resolveAndCreateChild([ChildProvider]);\r\n     *\r\n     * expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true);\r\n     * expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true);\r\n     * expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider));\r\n     * ```\r\n     */\r\n    abstract resolveAndCreateChild(providers: Provider[]): ReflectiveInjector;\r\n    /**\r\n     * Creates a child injector from previously resolved providers.\r\n     *\r\n     * <!-- TODO: Add a link to the section of the user guide talking about hierarchical injection.\r\n     * -->\r\n     *\r\n     * This API is the recommended way to construct injectors in performance-sensitive parts.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * class ParentProvider {}\r\n     * class ChildProvider {}\r\n     *\r\n     * var parentProviders = ReflectiveInjector.resolve([ParentProvider]);\r\n     * var childProviders = ReflectiveInjector.resolve([ChildProvider]);\r\n     *\r\n     * var parent = ReflectiveInjector.fromResolvedProviders(parentProviders);\r\n     * var child = parent.createChildFromResolved(childProviders);\r\n     *\r\n     * expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true);\r\n     * expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true);\r\n     * expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider));\r\n     * ```\r\n     */\r\n    abstract createChildFromResolved(providers: ResolvedReflectiveProvider[]): ReflectiveInjector;\r\n    /**\r\n     * Resolves a provider and instantiates an object in the context of the injector.\r\n     *\r\n     * The created object does not get cached by the injector.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * @Injectable()\r\n     * class Engine {\r\n     * }\r\n     *\r\n     * @Injectable()\r\n     * class Car {\r\n     *   constructor(public engine:Engine) {}\r\n     * }\r\n     *\r\n     * var injector = ReflectiveInjector.resolveAndCreate([Engine]);\r\n     *\r\n     * var car = injector.resolveAndInstantiate(Car);\r\n     * expect(car.engine).toBe(injector.get(Engine));\r\n     * expect(car).not.toBe(injector.resolveAndInstantiate(Car));\r\n     * ```\r\n     */\r\n    abstract resolveAndInstantiate(provider: Provider): any;\r\n    /**\r\n     * Instantiates an object using a resolved provider in the context of the injector.\r\n     *\r\n     * The created object does not get cached by the injector.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * @Injectable()\r\n     * class Engine {\r\n     * }\r\n     *\r\n     * @Injectable()\r\n     * class Car {\r\n     *   constructor(public engine:Engine) {}\r\n     * }\r\n     *\r\n     * var injector = ReflectiveInjector.resolveAndCreate([Engine]);\r\n     * var carProvider = ReflectiveInjector.resolve([Car])[0];\r\n     * var car = injector.instantiateResolved(carProvider);\r\n     * expect(car.engine).toBe(injector.get(Engine));\r\n     * expect(car).not.toBe(injector.instantiateResolved(carProvider));\r\n     * ```\r\n     */\r\n    abstract instantiateResolved(provider: ResolvedReflectiveProvider): any;\r\n    abstract get(token: any, notFoundValue?: any): any;\r\n}\r\n\r\n\r\n/**\r\n * A unique object used for retrieving items from the {@link ReflectiveInjector}.\r\n *\r\n * Keys have:\r\n * - a system-wide unique `id`.\r\n * - a `token`.\r\n *\r\n * `Key` is used internally by {@link ReflectiveInjector} because its system-wide unique `id` allows\r\n * the\r\n * injector to store created objects in a more efficient way.\r\n *\r\n * `Key` should not be created directly. {@link ReflectiveInjector} creates keys automatically when\r\n * resolving\r\n * providers.\r\n *\r\n * @deprecated No replacement\r\n * @publicApi\r\n */\r\nexport declare class ReflectiveKey {\r\n    token: Object;\r\n    id: number;\r\n    readonly displayName: string;\r\n    /**\r\n     * Private\r\n     */\r\n    constructor(token: Object, id: number);\r\n    /**\r\n     * Retrieves a `Key` for a token.\r\n     */\r\n    static get(token: Object): ReflectiveKey;\r\n    /**\r\n     * @returns the number of keys registered in the system.\r\n     */\r\n    static get numberOfKeys(): number;\r\n}\r\n\r\n/**\r\n * Subset of API needed for writing attributes, properties, and setting up\r\n * listeners on Element.\r\n */\r\ndeclare interface RElement extends RNode {\r\n    style: RCssStyleDeclaration;\r\n    classList: RDomTokenList;\r\n    className: string;\r\n    textContent: string | null;\r\n    setAttribute(name: string, value: string | TrustedHTML | TrustedScript | TrustedScriptURL): void;\r\n    removeAttribute(name: string): void;\r\n    setAttributeNS(namespaceURI: string, qualifiedName: string, value: string | TrustedHTML | TrustedScript | TrustedScriptURL): void;\r\n    addEventListener(type: string, listener: EventListener, useCapture?: boolean): void;\r\n    removeEventListener(type: string, listener?: EventListener, options?: boolean): void;\r\n    setProperty?(name: string, value: any): void;\r\n}\r\n\r\n/**\r\n * This is a synthetic lifecycle hook which gets inserted into `TView.preOrderHooks` to simulate\r\n * `ngOnChanges`.\r\n *\r\n * The hook reads the `NgSimpleChangesStore` data from the component instance and if changes are\r\n * found it invokes `ngOnChanges` on the component instance.\r\n *\r\n * @param this Component instance. Because this function gets inserted into `TView.preOrderHooks`,\r\n *     it is guaranteed to be called with component instance.\r\n */\r\ndeclare function rememberChangeHistoryAndInvokeOnChangesHook(this: OnChanges): void;\r\n\r\ndeclare const RENDERER = 11;\r\n\r\n/**\r\n * Extend this base class to implement custom rendering. By default, Angular\r\n * renders a template into DOM. You can use custom rendering to intercept\r\n * rendering calls, or to render to something other than DOM.\r\n *\r\n * Create your custom renderer using `RendererFactory2`.\r\n *\r\n * Use a custom renderer to bypass Angular's templating and\r\n * make custom UI changes that can't be expressed declaratively.\r\n * For example if you need to set a property or an attribute whose name is\r\n * not statically known, use the `setProperty()` or\r\n * `setAttribute()` method.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class Renderer2 {\r\n    /**\r\n     * Use to store arbitrary developer-defined data on a renderer instance,\r\n     * as an object containing key-value pairs.\r\n     * This is useful for renderers that delegate to other renderers.\r\n     */\r\n    abstract get data(): {\r\n        [key: string]: any;\r\n    };\r\n    /**\r\n     * Implement this callback to destroy the renderer or the host element.\r\n     */\r\n    abstract destroy(): void;\r\n    /**\r\n     * Implement this callback to create an instance of the host element.\r\n     * @param name An identifying name for the new element, unique within the namespace.\r\n     * @param namespace The namespace for the new element.\r\n     * @returns The new element.\r\n     */\r\n    abstract createElement(name: string, namespace?: string | null): any;\r\n    /**\r\n     * Implement this callback to add a comment to the DOM of the host element.\r\n     * @param value The comment text.\r\n     * @returns The modified element.\r\n     */\r\n    abstract createComment(value: string): any;\r\n    /**\r\n     * Implement this callback to add text to the DOM of the host element.\r\n     * @param value The text string.\r\n     * @returns The modified element.\r\n     */\r\n    abstract createText(value: string): any;\r\n    /**\r\n     * If null or undefined, the view engine won't call it.\r\n     * This is used as a performance optimization for production mode.\r\n     */\r\n    destroyNode: ((node: any) => void) | null;\r\n    /**\r\n     * Appends a child to a given parent node in the host element DOM.\r\n     * @param parent The parent node.\r\n     * @param newChild The new child node.\r\n     */\r\n    abstract appendChild(parent: any, newChild: any): void;\r\n    /**\r\n     * Implement this callback to insert a child node at a given position in a parent node\r\n     * in the host element DOM.\r\n     * @param parent The parent node.\r\n     * @param newChild The new child nodes.\r\n     * @param refChild The existing child node before which `newChild` is inserted.\r\n     * @param isMove Optional argument which signifies if the current `insertBefore` is a result of a\r\n     *     move. Animation uses this information to trigger move animations. In the past the Animation\r\n     *     would always assume that any `insertBefore` is a move. This is not strictly true because\r\n     *     with runtime i18n it is possible to invoke `insertBefore` as a result of i18n and it should\r\n     *     not trigger an animation move.\r\n     */\r\n    abstract insertBefore(parent: any, newChild: any, refChild: any, isMove?: boolean): void;\r\n    /**\r\n     * Implement this callback to remove a child node from the host element's DOM.\r\n     * @param parent The parent node.\r\n     * @param oldChild The child node to remove.\r\n     * @param isHostElement Optionally signal to the renderer whether this element is a host element\r\n     * or not\r\n     */\r\n    abstract removeChild(parent: any, oldChild: any, isHostElement?: boolean): void;\r\n    /**\r\n     * Implement this callback to prepare an element to be bootstrapped\r\n     * as a root element, and return the element instance.\r\n     * @param selectorOrNode The DOM element.\r\n     * @param preserveContent Whether the contents of the root element\r\n     * should be preserved, or cleared upon bootstrap (default behavior).\r\n     * Use with `ViewEncapsulation.ShadowDom` to allow simple native\r\n     * content projection via `<slot>` elements.\r\n     * @returns The root element.\r\n     */\r\n    abstract selectRootElement(selectorOrNode: string | any, preserveContent?: boolean): any;\r\n    /**\r\n     * Implement this callback to get the parent of a given node\r\n     * in the host element's DOM.\r\n     * @param node The child node to query.\r\n     * @returns The parent node, or null if there is no parent.\r\n     * For WebWorkers, always returns true.\r\n     * This is because the check is synchronous,\r\n     * and the caller can't rely on checking for null.\r\n     */\r\n    abstract parentNode(node: any): any;\r\n    /**\r\n     * Implement this callback to get the next sibling node of a given node\r\n     * in the host element's DOM.\r\n     * @returns The sibling node, or null if there is no sibling.\r\n     * For WebWorkers, always returns a value.\r\n     * This is because the check is synchronous,\r\n     * and the caller can't rely on checking for null.\r\n     */\r\n    abstract nextSibling(node: any): any;\r\n    /**\r\n     * Implement this callback to set an attribute value for an element in the DOM.\r\n     * @param el The element.\r\n     * @param name The attribute name.\r\n     * @param value The new value.\r\n     * @param namespace The namespace.\r\n     */\r\n    abstract setAttribute(el: any, name: string, value: string, namespace?: string | null): void;\r\n    /**\r\n     * Implement this callback to remove an attribute from an element in the DOM.\r\n     * @param el The element.\r\n     * @param name The attribute name.\r\n     * @param namespace The namespace.\r\n     */\r\n    abstract removeAttribute(el: any, name: string, namespace?: string | null): void;\r\n    /**\r\n     * Implement this callback to add a class to an element in the DOM.\r\n     * @param el The element.\r\n     * @param name The class name.\r\n     */\r\n    abstract addClass(el: any, name: string): void;\r\n    /**\r\n     * Implement this callback to remove a class from an element in the DOM.\r\n     * @param el The element.\r\n     * @param name The class name.\r\n     */\r\n    abstract removeClass(el: any, name: string): void;\r\n    /**\r\n     * Implement this callback to set a CSS style for an element in the DOM.\r\n     * @param el The element.\r\n     * @param style The name of the style.\r\n     * @param value The new value.\r\n     * @param flags Flags for style variations. No flags are set by default.\r\n     */\r\n    abstract setStyle(el: any, style: string, value: any, flags?: RendererStyleFlags2): void;\r\n    /**\r\n     * Implement this callback to remove the value from a CSS style for an element in the DOM.\r\n     * @param el The element.\r\n     * @param style The name of the style.\r\n     * @param flags Flags for style variations to remove, if set. ???\r\n     */\r\n    abstract removeStyle(el: any, style: string, flags?: RendererStyleFlags2): void;\r\n    /**\r\n     * Implement this callback to set the value of a property of an element in the DOM.\r\n     * @param el The element.\r\n     * @param name The property name.\r\n     * @param value The new value.\r\n     */\r\n    abstract setProperty(el: any, name: string, value: any): void;\r\n    /**\r\n     * Implement this callback to set the value of a node in the host element.\r\n     * @param node The node.\r\n     * @param value The new value.\r\n     */\r\n    abstract setValue(node: any, value: string): void;\r\n    /**\r\n     * Implement this callback to start an event listener.\r\n     * @param target The context in which to listen for events. Can be\r\n     * the entire window or document, the body of the document, or a specific\r\n     * DOM element.\r\n     * @param eventName The event to listen for.\r\n     * @param callback A handler function to invoke when the event occurs.\r\n     * @returns An \"unlisten\" function for disposing of this handler.\r\n     */\r\n    abstract listen(target: 'window' | 'document' | 'body' | any, eventName: string, callback: (event: any) => boolean | void): () => void;\r\n}\r\n\r\ndeclare type Renderer3 = ObjectOrientedRenderer3 | ProceduralRenderer3;\r\n\r\ndeclare const RENDERER_FACTORY = 10;\r\n\r\n/**\r\n * Creates and initializes a custom renderer that implements the `Renderer2` base class.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class RendererFactory2 {\r\n    /**\r\n     * Creates and initializes a custom renderer for a host DOM element.\r\n     * @param hostElement The element to render.\r\n     * @param type The base class to implement.\r\n     * @returns The new custom renderer instance.\r\n     */\r\n    abstract createRenderer(hostElement: any, type: RendererType2 | null): Renderer2;\r\n    /**\r\n     * A callback invoked when rendering has begun.\r\n     */\r\n    abstract begin?(): void;\r\n    /**\r\n     * A callback invoked when rendering has completed.\r\n     */\r\n    abstract end?(): void;\r\n    /**\r\n     * Use with animations test-only mode. Notifies the test when rendering has completed.\r\n     * @returns The asynchronous result of the developer-defined function.\r\n     */\r\n    abstract whenRenderingDone?(): Promise<any>;\r\n}\r\n\r\ndeclare interface RendererFactory3 {\r\n    createRenderer(hostElement: RElement | null, rendererType: RendererType2 | null): Renderer3;\r\n    begin?(): void;\r\n    end?(): void;\r\n}\r\n\r\n/**\r\n * Flags for renderer-specific style modifiers.\r\n * @publicApi\r\n */\r\nexport declare enum RendererStyleFlags2 {\r\n    /**\r\n     * Marks a style as important.\r\n     */\r\n    Important = 1,\r\n    /**\r\n     * Marks a style as using dash case naming (this-is-dash-case).\r\n     */\r\n    DashCase = 2\r\n}\r\n\r\ndeclare enum RendererStyleFlags3 {\r\n    Important = 1,\r\n    DashCase = 2\r\n}\r\n\r\n/**\r\n * Used by `RendererFactory2` to associate custom rendering data and styles\r\n * with a rendering implementation.\r\n *  @publicApi\r\n */\r\nexport declare interface RendererType2 {\r\n    /**\r\n     * A unique identifying string for the new renderer, used when creating\r\n     * unique styles for encapsulation.\r\n     */\r\n    id: string;\r\n    /**\r\n     * The view encapsulation type, which determines how styles are applied to\r\n     * DOM elements. One of\r\n     * - `Emulated` (default): Emulate native scoping of styles.\r\n     * - `Native`: Use the native encapsulation mechanism of the renderer.\r\n     * - `ShadowDom`: Use modern [Shadow\r\n     * DOM](https://w3c.github.io/webcomponents/spec/shadow/) and\r\n     * create a ShadowRoot for component's host element.\r\n     * - `None`: Do not provide any template or style encapsulation.\r\n     */\r\n    encapsulation: ViewEncapsulation;\r\n    /**\r\n     * Defines CSS styles to be stored on a renderer instance.\r\n     */\r\n    styles: (string | any[])[];\r\n    /**\r\n     * Defines arbitrary developer-defined data to be stored on a renderer instance.\r\n     * This is useful for renderers that delegate to other renderers.\r\n     */\r\n    data: {\r\n        [kind: string]: any;\r\n    };\r\n}\r\n\r\n/**\r\n * An internal resolved representation of a factory function created by resolving `Provider`.\r\n * @publicApi\r\n */\r\nexport declare class ResolvedReflectiveFactory {\r\n    /**\r\n     * Factory function which can return an instance of an object represented by a key.\r\n     */\r\n    factory: Function;\r\n    /**\r\n     * Arguments (dependencies) to the `factory` function.\r\n     */\r\n    dependencies: ɵangular_packages_core_core_e[];\r\n    constructor(\r\n    /**\r\n     * Factory function which can return an instance of an object represented by a key.\r\n     */\r\n    factory: Function, \r\n    /**\r\n     * Arguments (dependencies) to the `factory` function.\r\n     */\r\n    dependencies: ɵangular_packages_core_core_e[]);\r\n}\r\n\r\n/**\r\n * An internal resolved representation of a `Provider` used by the `Injector`.\r\n *\r\n * @usageNotes\r\n * This is usually created automatically by `Injector.resolveAndCreate`.\r\n *\r\n * It can be created manually, as follows:\r\n *\r\n * ### Example\r\n *\r\n * ```typescript\r\n * var resolvedProviders = Injector.resolve([{ provide: 'message', useValue: 'Hello' }]);\r\n * var injector = Injector.fromResolvedProviders(resolvedProviders);\r\n *\r\n * expect(injector.get('message')).toEqual('Hello');\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ResolvedReflectiveProvider {\r\n    /**\r\n     * A key, usually a `Type<any>`.\r\n     */\r\n    key: ReflectiveKey;\r\n    /**\r\n     * Factory function which can return an instance of an object represented by a key.\r\n     */\r\n    resolvedFactories: ResolvedReflectiveFactory[];\r\n    /**\r\n     * Indicates if the provider is a multi-provider or a regular provider.\r\n     */\r\n    multiProvider: boolean;\r\n}\r\n\r\n/**\r\n * Lazily retrieves the reference value from a forwardRef.\r\n *\r\n * Acts as the identity function when given a non-forward-ref value.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}\r\n *\r\n * @see `forwardRef`\r\n * @publicApi\r\n */\r\nexport declare function resolveForwardRef<T>(type: T): T;\r\n\r\n/**\r\n * The goal here is to make sure that the browser DOM API is the Renderer.\r\n * We do this by defining a subset of DOM API to be the renderer and then\r\n * use that at runtime for rendering.\r\n *\r\n * At runtime we can then use the DOM api directly, in server or web-worker\r\n * it will be easy to implement such API.\r\n */\r\n/** Subset of API needed for appending elements and text nodes. */\r\ndeclare interface RNode {\r\n    /**\r\n     * Returns the parent Element, Document, or DocumentFragment\r\n     */\r\n    parentNode: RNode | null;\r\n    /**\r\n     * Returns the parent Element if there is one\r\n     */\r\n    parentElement: RElement | null;\r\n    /**\r\n     * Gets the Node immediately following this one in the parent's childNodes\r\n     */\r\n    nextSibling: RNode | null;\r\n    /**\r\n     * Removes a child from the current node and returns the removed node\r\n     * @param oldChild the child node to remove\r\n     */\r\n    removeChild(oldChild: RNode): RNode;\r\n    /**\r\n     * Insert a child node.\r\n     *\r\n     * Used exclusively for adding View root nodes into ViewAnchor location.\r\n     */\r\n    insertBefore(newChild: RNode, refChild: RNode | null, isViewRoot: boolean): void;\r\n    /**\r\n     * Append a child node.\r\n     *\r\n     * Used exclusively for building up DOM which are static (ie not View roots)\r\n     */\r\n    appendChild(newChild: RNode): RNode;\r\n}\r\n\r\n/**\r\n * RootContext contains information which is shared for all components which\r\n * were bootstrapped with {@link renderComponent}.\r\n */\r\ndeclare interface RootContext {\r\n    /**\r\n     * A function used for scheduling change detection in the future. Usually\r\n     * this is `requestAnimationFrame`.\r\n     */\r\n    scheduler: (workFn: () => void) => void;\r\n    /**\r\n     * A promise which is resolved when all components are considered clean (not dirty).\r\n     *\r\n     * This promise is overwritten every time a first call to {@link markDirty} is invoked.\r\n     */\r\n    clean: Promise<null>;\r\n    /**\r\n     * RootComponents - The components that were instantiated by the call to\r\n     * {@link renderComponent}.\r\n     */\r\n    components: {}[];\r\n    /**\r\n     * The player flushing handler to kick off all animations\r\n     */\r\n    playerHandler: ɵPlayerHandler | null;\r\n    /**\r\n     * What render-related operations to run once a scheduler has been set\r\n     */\r\n    flags: RootContextFlags;\r\n}\r\n\r\ndeclare const enum RootContextFlags {\r\n    Empty = 0,\r\n    DetectChanges = 1,\r\n    FlushPlayers = 2\r\n}\r\n\r\ndeclare interface RootData {\r\n    injector: Injector;\r\n    ngModule: NgModuleRef<any>;\r\n    projectableNodes: any[][];\r\n    selectorOrNode: any;\r\n    renderer: Renderer2;\r\n    rendererFactory: RendererFactory2;\r\n    errorHandler: ErrorHandler;\r\n    sanitizer: Sanitizer;\r\n}\r\n\r\ndeclare interface RText extends RNode {\r\n    textContent: string | null;\r\n}\r\n\r\ndeclare const SANITIZER = 12;\r\n\r\n/**\r\n * Sanitizer is used by the views to sanitize potentially dangerous values.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class Sanitizer {\r\n    abstract sanitize(context: SecurityContext, value: {} | string | null): string | null;\r\n    /** @nocollapse */\r\n    static ɵprov: unknown;\r\n}\r\n\r\n/**\r\n * Function used to sanitize the value before writing it into the renderer.\r\n */\r\ndeclare type SanitizerFn = (value: any, tagName?: string, propName?: string) => string | TrustedHTML | TrustedScript | TrustedScriptURL;\r\n\r\n\r\n/**\r\n * A schema definition associated with an NgModule.\r\n *\r\n * @see `@NgModule`, `CUSTOM_ELEMENTS_SCHEMA`, `NO_ERRORS_SCHEMA`\r\n *\r\n * @param name The name of a defined schema.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SchemaMetadata {\r\n    name: string;\r\n}\r\n\r\n\r\n/**\r\n * A SecurityContext marks a location that has dangerous security implications, e.g. a DOM property\r\n * like `innerHTML` that could cause Cross Site Scripting (XSS) security bugs when improperly\r\n * handled.\r\n *\r\n * See DomSanitizer for more details on security in Angular applications.\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum SecurityContext {\r\n    NONE = 0,\r\n    HTML = 1,\r\n    STYLE = 2,\r\n    SCRIPT = 3,\r\n    URL = 4,\r\n    RESOURCE_URL = 5\r\n}\r\n\r\n/** Flags used to build up CssSelectors */\r\ndeclare const enum SelectorFlags {\r\n    /** Indicates this is the beginning of a new negative selector */\r\n    NOT = 1,\r\n    /** Mode for matching attributes */\r\n    ATTRIBUTE = 2,\r\n    /** Mode for matching tag names */\r\n    ELEMENT = 4,\r\n    /** Mode for matching class names */\r\n    CLASS = 8\r\n}\r\n\r\n/**\r\n * Type of the Self metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Self {\r\n}\r\n\r\n/**\r\n * Self decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const Self: SelfDecorator;\r\n\r\n/**\r\n * Type of the Self decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SelfDecorator {\r\n    /**\r\n     * Parameter decorator to be used on constructor parameters,\r\n     * which tells the DI framework to start dependency resolution from the local injector.\r\n     *\r\n     * Resolution works upward through the injector hierarchy, so the children\r\n     * of this class must configure their own providers or be prepared for a `null` result.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * In the following example, the dependency can be resolved\r\n     * by the local injector when instantiating the class itself, but not\r\n     * when instantiating a child.\r\n     *\r\n     * <code-example path=\"core/di/ts/metadata_spec.ts\" region=\"Self\">\r\n     * </code-example>\r\n     *\r\n     * @see `SkipSelf`\r\n     * @see `Optional`\r\n     *\r\n     */\r\n    (): any;\r\n    new (): Self;\r\n}\r\n\r\n/**\r\n * Set the {@link GetTestability} implementation used by the Angular testing framework.\r\n * @publicApi\r\n */\r\nexport declare function setTestabilityGetter(getter: GetTestability): void;\r\n\r\n\r\n/**\r\n * Represents a basic change from a previous to a new value for a single\r\n * property on a directive instance. Passed as a value in a\r\n * {@link SimpleChanges} object to the `ngOnChanges` hook.\r\n *\r\n * @see `OnChanges`\r\n *\r\n * @publicApi\r\n */\r\nexport declare class SimpleChange {\r\n    previousValue: any;\r\n    currentValue: any;\r\n    firstChange: boolean;\r\n    constructor(previousValue: any, currentValue: any, firstChange: boolean);\r\n    /**\r\n     * Check whether the new value is the first value assigned.\r\n     */\r\n    isFirstChange(): boolean;\r\n}\r\n\r\n/**\r\n * A hashtable of changes represented by {@link SimpleChange} objects stored\r\n * at the declared property name they belong to on a Directive or Component. This is\r\n * the type passed to the `ngOnChanges` hook.\r\n *\r\n * @see `OnChanges`\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SimpleChanges {\r\n    [propName: string]: SimpleChange;\r\n}\r\n\r\n/**\r\n * Type of the `SkipSelf` metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SkipSelf {\r\n}\r\n\r\n/**\r\n * `SkipSelf` decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const SkipSelf: SkipSelfDecorator;\r\n\r\n/**\r\n * Type of the `SkipSelf` decorator / constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SkipSelfDecorator {\r\n    /**\r\n     * Parameter decorator to be used on constructor parameters,\r\n     * which tells the DI framework to start dependency resolution from the parent injector.\r\n     * Resolution works upward through the injector hierarchy, so the local injector\r\n     * is not checked for a provider.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * In the following example, the dependency can be resolved when\r\n     * instantiating a child, but not when instantiating the class itself.\r\n     *\r\n     * <code-example path=\"core/di/ts/metadata_spec.ts\" region=\"SkipSelf\">\r\n     * </code-example>\r\n     *\r\n     * @see [Dependency Injection guide](guide/dependency-injection-in-action#skip).\r\n     * @see `Self`\r\n     * @see `Optional`\r\n     *\r\n     */\r\n    (): any;\r\n    new (): SkipSelf;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return an instance of `useClass` for a token.\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='StaticClassProvider'}\r\n *\r\n * Note that following two providers are not equal:\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='StaticClassProviderDifference'}\r\n *\r\n * ### Multi-value example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface StaticClassProvider extends StaticClassSansProvider {\r\n    /**\r\n     * An injection token. Typically an instance of `Type` or `InjectionToken`, but can be `any`.\r\n     */\r\n    provide: any;\r\n    /**\r\n     * When true, injector returns an array of instances. This is useful to allow multiple\r\n     * providers spread across many files to provide configuration information to a common token.\r\n     */\r\n    multi?: boolean;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return an instance of `useClass` for a token.\r\n * Base for `StaticClassProvider` decorator.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface StaticClassSansProvider {\r\n    /**\r\n     * An optional class to instantiate for the `token`. By default, the `provide`\r\n     * class is instantiated.\r\n     */\r\n    useClass: Type<any>;\r\n    /**\r\n     * A list of `token`s to be resolved by the injector. The list of values is then\r\n     * used as arguments to the `useClass` constructor.\r\n     */\r\n    deps: any[];\r\n}\r\n\r\n/**\r\n * Describes how an `Injector` should be configured as static (that is, without reflection).\r\n * A static provider provides tokens to an injector for various types of dependencies.\r\n *\r\n * @see `Injector.create()`.\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection-providers).\r\n *\r\n * @publicApi\r\n */\r\nexport declare type StaticProvider = ValueProvider | ExistingProvider | StaticClassProvider | ConstructorProvider | FactoryProvider | any[];\r\n\r\n/**\r\n * NgModuleFactoryLoader that uses SystemJS to load NgModuleFactory\r\n * @publicApi\r\n * @deprecated the `string` form of `loadChildren` is deprecated, and `SystemJsNgModuleLoader` is\r\n * part of its implementation. See `LoadChildren` for more details.\r\n */\r\nexport declare class SystemJsNgModuleLoader implements NgModuleFactoryLoader {\r\n    private _compiler;\r\n    private _config;\r\n    constructor(_compiler: Compiler, config?: SystemJsNgModuleLoaderConfig);\r\n    load(path: string): Promise<NgModuleFactory<any>>;\r\n    private loadAndCompile;\r\n    private loadFactory;\r\n}\r\n\r\n/**\r\n * Configuration for SystemJsNgModuleLoader.\r\n * token.\r\n *\r\n * @publicApi\r\n * @deprecated the `string` form of `loadChildren` is deprecated, and `SystemJsNgModuleLoaderConfig`\r\n * is part of its implementation. See `LoadChildren` for more details.\r\n */\r\nexport declare abstract class SystemJsNgModuleLoaderConfig {\r\n    /**\r\n     * Prefix to add when computing the name of the factory module for a given module name.\r\n     */\r\n    factoryPathPrefix: string;\r\n    /**\r\n     * Suffix to add when computing the name of the factory module for a given module name.\r\n     */\r\n    factoryPathSuffix: string;\r\n}\r\n\r\ndeclare const T_HOST = 6;\r\n\r\n/**\r\n * A combination of:\r\n * - Attribute names and values.\r\n * - Special markers acting as flags to alter attributes processing.\r\n * - Parsed ngProjectAs selectors.\r\n */\r\ndeclare type TAttributes = (string | ɵAttributeMarker | CssSelector)[];\r\n\r\n/**\r\n * Constants that are associated with a view. Includes:\r\n * - Attribute arrays.\r\n * - Local definition arrays.\r\n * - Translated messages (i18n).\r\n */\r\ndeclare type TConstants = (TAttributes | string)[];\r\n\r\n/**\r\n * Factory function that returns an array of consts. Consts can be represented as a function in\r\n * case any additional statements are required to define consts in the list. An example is i18n\r\n * where additional i18n calls are generated, which should be executed when consts are requested\r\n * for the first time.\r\n */\r\ndeclare type TConstantsFactory = () => TConstants;\r\n\r\n/**\r\n * TConstants type that describes how the `consts` field is generated on ComponentDef: it can be\r\n * either an array or a factory function that returns that array.\r\n */\r\ndeclare type TConstantsOrFactory = TConstants | TConstantsFactory;\r\n\r\n/** Static data for an LContainer */\r\ndeclare interface TContainerNode extends TNode {\r\n    /**\r\n     * Index in the data[] array.\r\n     *\r\n     * If it's -1, this is a dynamically created container node that isn't stored in\r\n     * data[] (e.g. when you inject ViewContainerRef) .\r\n     */\r\n    index: number;\r\n    child: null;\r\n    /**\r\n     * Container nodes will have parents unless:\r\n     *\r\n     * - They are the first node of a component or embedded view\r\n     * - They are dynamically created\r\n     */\r\n    parent: ɵangular_packages_core_core_bk | TElementContainerNode | null;\r\n    tViews: TView | TView[] | null;\r\n    projection: null;\r\n    value: null;\r\n}\r\n\r\n/**\r\n * Static data that corresponds to the instance-specific data array on an LView.\r\n *\r\n * Each node's static data is stored in tData at the same index that it's stored\r\n * in the data array.  Any nodes that do not have static data store a null value in\r\n * tData to avoid a sparse array.\r\n *\r\n * Each pipe's definition is stored here at the same index as its pipe instance in\r\n * the data array.\r\n *\r\n * Each host property's name is stored here at the same index as its value in the\r\n * data array.\r\n *\r\n * Each property binding name is stored here at the same index as its value in\r\n * the data array. If the binding is an interpolation, the static string values\r\n * are stored parallel to the dynamic values. Example:\r\n *\r\n * id=\"prefix {{ v0 }} a {{ v1 }} b {{ v2 }} suffix\"\r\n *\r\n * LView       |   TView.data\r\n *------------------------\r\n *  v0 value   |   'a'\r\n *  v1 value   |   'b'\r\n *  v2 value   |   id � prefix � suffix\r\n *\r\n * Injector bloom filters are also stored here.\r\n */\r\ndeclare type TData = (TNode | ɵPipeDef<any> | ɵDirectiveDef<any> | ɵComponentDef<any> | number | TStylingRange | TStylingKey | ProviderToken<any> | TI18n | I18nUpdateOpCodes | TIcu | null | string)[];\r\n\r\n/** Static data for an <ng-container> */\r\ndeclare interface TElementContainerNode extends TNode {\r\n    /** Index in the LView[] array. */\r\n    index: number;\r\n    child: ɵangular_packages_core_core_bk | TTextNode | TContainerNode | TElementContainerNode | TProjectionNode | null;\r\n    parent: ɵangular_packages_core_core_bk | TElementContainerNode | null;\r\n    tViews: null;\r\n    projection: null;\r\n}\r\n\r\n/**\r\n * Represents an embedded template that can be used to instantiate embedded views.\r\n * To instantiate embedded views based on a template, use the `ViewContainerRef`\r\n * method `createEmbeddedView()`.\r\n *\r\n * Access a `TemplateRef` instance by placing a directive on an `<ng-template>`\r\n * element (or directive prefixed with `*`). The `TemplateRef` for the embedded view\r\n * is injected into the constructor of the directive,\r\n * using the `TemplateRef` token.\r\n *\r\n * You can also use a `Query` to find a `TemplateRef` associated with\r\n * a component or a directive.\r\n *\r\n * @see `ViewContainerRef`\r\n * @see [Navigate the Component Tree with DI](guide/dependency-injection-navtree)\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class TemplateRef<C> {\r\n    /**\r\n     * The anchor element in the parent view for this embedded view.\r\n     *\r\n     * The data-binding and injection contexts of embedded views created from this `TemplateRef`\r\n     * inherit from the contexts of this location.\r\n     *\r\n     * Typically new embedded views are attached to the view container of this location, but in\r\n     * advanced use-cases, the view can be attached to a different container while keeping the\r\n     * data-binding and injection context from the original location.\r\n     *\r\n     */\r\n    abstract get elementRef(): ElementRef;\r\n    /**\r\n     * Instantiates an embedded view based on this template,\r\n     * and attaches it to the view container.\r\n     * @param context The data-binding context of the embedded view, as declared\r\n     * in the `<ng-template>` usage.\r\n     * @returns The new embedded view object.\r\n     */\r\n    abstract createEmbeddedView(context: C): EmbeddedViewRef<C>;\r\n}\r\n\r\n/**\r\n * The Testability service provides testing hooks that can be accessed from\r\n * the browser. Each bootstrapped Angular application on the page will have\r\n * an instance of Testability.\r\n * @publicApi\r\n */\r\nexport declare class Testability implements PublicTestability {\r\n    private _ngZone;\r\n    private _pendingCount;\r\n    private _isZoneStable;\r\n    private _callbacks;\r\n    private taskTrackingZone;\r\n    constructor(_ngZone: NgZone);\r\n    private _watchAngularEvents;\r\n    /**\r\n     * Increases the number of pending request\r\n     * @deprecated pending requests are now tracked with zones.\r\n     */\r\n    increasePendingRequestCount(): number;\r\n    /**\r\n     * Decreases the number of pending request\r\n     * @deprecated pending requests are now tracked with zones\r\n     */\r\n    decreasePendingRequestCount(): number;\r\n    /**\r\n     * Whether an associated application is stable\r\n     */\r\n    isStable(): boolean;\r\n    private _runCallbacksIfReady;\r\n    private getPendingTasks;\r\n    private addCallback;\r\n    /**\r\n     * Wait for the application to be stable with a timeout. If the timeout is reached before that\r\n     * happens, the callback receives a list of the macro tasks that were pending, otherwise null.\r\n     *\r\n     * @param doneCb The callback to invoke when Angular is stable or the timeout expires\r\n     *    whichever comes first.\r\n     * @param timeout Optional. The maximum time to wait for Angular to become stable. If not\r\n     *    specified, whenStable() will wait forever.\r\n     * @param updateCb Optional. If specified, this callback will be invoked whenever the set of\r\n     *    pending macrotasks changes. If this callback returns true doneCb will not be invoked\r\n     *    and no further updates will be issued.\r\n     */\r\n    whenStable(doneCb: Function, timeout?: number, updateCb?: Function): void;\r\n    /**\r\n     * Get the number of pending requests\r\n     * @deprecated pending requests are now tracked with zones\r\n     */\r\n    getPendingRequestCount(): number;\r\n    /**\r\n     * Find providers by name\r\n     * @param using The root element to search from\r\n     * @param provider The name of binding variable\r\n     * @param exactMatch Whether using exactMatch\r\n     */\r\n    findProviders(using: any, provider: string, exactMatch: boolean): any[];\r\n}\r\n\r\n/**\r\n * A global registry of {@link Testability} instances for specific elements.\r\n * @publicApi\r\n */\r\nexport declare class TestabilityRegistry {\r\n    constructor();\r\n    /**\r\n     * Registers an application with a testability hook so that it can be tracked\r\n     * @param token token of application, root element\r\n     * @param testability Testability hook\r\n     */\r\n    registerApplication(token: any, testability: Testability): void;\r\n    /**\r\n     * Unregisters an application.\r\n     * @param token token of application, root element\r\n     */\r\n    unregisterApplication(token: any): void;\r\n    /**\r\n     * Unregisters all applications\r\n     */\r\n    unregisterAllApplications(): void;\r\n    /**\r\n     * Get a testability hook associated with the application\r\n     * @param elem root element\r\n     */\r\n    getTestability(elem: any): Testability | null;\r\n    /**\r\n     * Get all registered testabilities\r\n     */\r\n    getAllTestabilities(): Testability[];\r\n    /**\r\n     * Get all registered applications(root elements)\r\n     */\r\n    getAllRootElements(): any[];\r\n    /**\r\n     * Find testability of a node in the Tree\r\n     * @param elem node\r\n     * @param findInAncestors whether finding testability in ancestors if testability was not found in\r\n     * current node\r\n     */\r\n    findTestabilityInTree(elem: Node, findInAncestors?: boolean): Testability | null;\r\n}\r\n\r\ndeclare interface TextDef {\r\n    prefix: string;\r\n}\r\n\r\n/**\r\n * Store information for the i18n translation block.\r\n */\r\ndeclare interface TI18n {\r\n    /**\r\n     * A set of OpCodes which will create the Text Nodes and ICU anchors for the translation blocks.\r\n     *\r\n     * NOTE: The ICU anchors are filled in with ICU Update OpCode.\r\n     */\r\n    create: I18nCreateOpCodes;\r\n    /**\r\n     * A set of OpCodes which will be executed on each change detection to determine if any changes to\r\n     * DOM are required.\r\n     */\r\n    update: I18nUpdateOpCodes;\r\n}\r\n\r\ndeclare interface TIcu {\r\n    /**\r\n     * Defines the ICU type of `select` or `plural`\r\n     */\r\n    type: IcuType;\r\n    /**\r\n     * Index in `LView` where the anchor node is stored. `<!-- ICU 0:0 -->`\r\n     */\r\n    anchorIdx: number;\r\n    /**\r\n     * Currently selected ICU case pointer.\r\n     *\r\n     * `lView[currentCaseLViewIndex]` stores the currently selected case. This is needed to know how\r\n     * to clean up the current case when transitioning no the new case.\r\n     *\r\n     * If the value stored is:\r\n     * `null`: No current case selected.\r\n     *   `<0`: A flag which means that the ICU just switched and that `icuUpdate` must be executed\r\n     *         regardless of the `mask`. (After the execution the flag is cleared)\r\n     *   `>=0` A currently selected case index.\r\n     */\r\n    currentCaseLViewIndex: number;\r\n    /**\r\n     * A list of case values which the current ICU will try to match.\r\n     *\r\n     * The last value is `other`\r\n     */\r\n    cases: any[];\r\n    /**\r\n     * A set of OpCodes to apply in order to build up the DOM render tree for the ICU\r\n     */\r\n    create: IcuCreateOpCodes[];\r\n    /**\r\n     * A set of OpCodes to apply in order to destroy the DOM render tree for the ICU.\r\n     */\r\n    remove: I18nRemoveOpCodes[];\r\n    /**\r\n     * A set of OpCodes to apply in order to update the DOM render tree for the ICU bindings.\r\n     */\r\n    update: I18nUpdateOpCodes[];\r\n}\r\n\r\n/**\r\n * Binding data (flyweight) for a particular node that is shared between all templates\r\n * of a specific type.\r\n *\r\n * If a property is:\r\n *    - PropertyAliases: that property's data was generated and this is it\r\n *    - Null: that property's data was already generated and nothing was found.\r\n *    - Undefined: that property's data has not yet been generated\r\n *\r\n * see: https://en.wikipedia.org/wiki/Flyweight_pattern for more on the Flyweight pattern\r\n */\r\ndeclare interface TNode {\r\n    /** The type of the TNode. See TNodeType. */\r\n    type: TNodeType;\r\n    /**\r\n     * Index of the TNode in TView.data and corresponding native element in LView.\r\n     *\r\n     * This is necessary to get from any TNode to its corresponding native element when\r\n     * traversing the node tree.\r\n     *\r\n     * If index is -1, this is a dynamically created container node or embedded view node.\r\n     */\r\n    index: number;\r\n    /**\r\n     * Insert before existing DOM node index.\r\n     *\r\n     * When DOM nodes are being inserted, normally they are being appended as they are created.\r\n     * Under i18n case, the translated text nodes are created ahead of time as part of the\r\n     * `ɵɵi18nStart` instruction which means that this `TNode` can't just be appended and instead\r\n     * needs to be inserted using `insertBeforeIndex` semantics.\r\n     *\r\n     * Additionally sometimes it is necessary to insert new text nodes as a child of this `TNode`. In\r\n     * such a case the value stores an array of text nodes to insert.\r\n     *\r\n     * Example:\r\n     * ```\r\n     * <div i18n>\r\n     *   Hello <span>World</span>!\r\n     * </div>\r\n     * ```\r\n     * In the above example the `ɵɵi18nStart` instruction can create `Hello `, `World` and `!` text\r\n     * nodes. It can also insert `Hello ` and `!` text node as a child of `<div>`, but it can't\r\n     * insert `World` because the `<span>` node has not yet been created. In such a case the\r\n     * `<span>` `TNode` will have an array which will direct the `<span>` to not only insert\r\n     * itself in front of `!` but also to insert the `World` (created by `ɵɵi18nStart`) into\r\n     * `<span>` itself.\r\n     *\r\n     * Pseudo code:\r\n     * ```\r\n     *   if (insertBeforeIndex === null) {\r\n     *     // append as normal\r\n     *   } else if (Array.isArray(insertBeforeIndex)) {\r\n     *     // First insert current `TNode` at correct location\r\n     *     const currentNode = lView[this.index];\r\n     *     parentNode.insertBefore(currentNode, lView[this.insertBeforeIndex[0]]);\r\n     *     // Now append all of the children\r\n     *     for(let i=1; i<this.insertBeforeIndex; i++) {\r\n     *       currentNode.appendChild(lView[this.insertBeforeIndex[i]]);\r\n     *     }\r\n     *   } else {\r\n     *     parentNode.insertBefore(lView[this.index], lView[this.insertBeforeIndex])\r\n     *   }\r\n     * ```\r\n     * - null: Append as normal using `parentNode.appendChild`\r\n     * - `number`: Append using\r\n     *      `parentNode.insertBefore(lView[this.index], lView[this.insertBeforeIndex])`\r\n     *\r\n     * *Initialization*\r\n     *\r\n     * Because `ɵɵi18nStart` executes before nodes are created, on `TView.firstCreatePass` it is not\r\n     * possible for `ɵɵi18nStart` to set the `insertBeforeIndex` value as the corresponding `TNode`\r\n     * has not yet been created. For this reason the `ɵɵi18nStart` creates a `TNodeType.Placeholder`\r\n     * `TNode` at that location. See `TNodeType.Placeholder` for more information.\r\n     */\r\n    insertBeforeIndex: InsertBeforeIndex;\r\n    /**\r\n     * The index of the closest injector in this node's LView.\r\n     *\r\n     * If the index === -1, there is no injector on this node or any ancestor node in this view.\r\n     *\r\n     * If the index !== -1, it is the index of this node's injector OR the index of a parent\r\n     * injector in the same view. We pass the parent injector index down the node tree of a view so\r\n     * it's possible to find the parent injector without walking a potentially deep node tree.\r\n     * Injector indices are not set across view boundaries because there could be multiple component\r\n     * hosts.\r\n     *\r\n     * If tNode.injectorIndex === tNode.parent.injectorIndex, then the index belongs to a parent\r\n     * injector.\r\n     */\r\n    injectorIndex: number;\r\n    /**\r\n     * Stores starting index of the directives.\r\n     *\r\n     * NOTE: The first directive is always component (if present).\r\n     */\r\n    directiveStart: number;\r\n    /**\r\n     * Stores final exclusive index of the directives.\r\n     *\r\n     * The area right behind the `directiveStart-directiveEnd` range is used to allocate the\r\n     * `HostBindingFunction` `vars` (or null if no bindings.) Therefore `directiveEnd` is used to set\r\n     * `LFrame.bindingRootIndex` before `HostBindingFunction` is executed.\r\n     */\r\n    directiveEnd: number;\r\n    /**\r\n     * Stores the last directive which had a styling instruction.\r\n     *\r\n     * Initial value of this is `-1` which means that no `hostBindings` styling instruction has\r\n     * executed. As `hostBindings` instructions execute they set the value to the index of the\r\n     * `DirectiveDef` which contained the last `hostBindings` styling instruction.\r\n     *\r\n     * Valid values are:\r\n     * - `-1` No `hostBindings` instruction has executed.\r\n     * - `directiveStart <= directiveStylingLast < directiveEnd`: Points to the `DirectiveDef` of\r\n     * the last styling instruction which executed in the `hostBindings`.\r\n     *\r\n     * This data is needed so that styling instructions know which static styling data needs to be\r\n     * collected from the `DirectiveDef.hostAttrs`. A styling instruction needs to collect all data\r\n     * since last styling instruction.\r\n     */\r\n    directiveStylingLast: number;\r\n    /**\r\n     * Stores indexes of property bindings. This field is only set in the ngDevMode and holds\r\n     * indexes of property bindings so TestBed can get bound property metadata for a given node.\r\n     */\r\n    propertyBindings: number[] | null;\r\n    /**\r\n     * Stores if Node isComponent, isProjected, hasContentQuery, hasClassInput and hasStyleInput\r\n     * etc.\r\n     */\r\n    flags: TNodeFlags;\r\n    /**\r\n     * This number stores two values using its bits:\r\n     *\r\n     * - the index of the first provider on that node (first 16 bits)\r\n     * - the count of view providers from the component on this node (last 16 bits)\r\n     */\r\n    providerIndexes: TNodeProviderIndexes;\r\n    /**\r\n     * The value name associated with this node.\r\n     * if type:\r\n     *   `TNodeType.Text`: text value\r\n     *   `TNodeType.Element`: tag name\r\n     *   `TNodeType.ICUContainer`: `TIcu`\r\n     */\r\n    value: any;\r\n    /**\r\n     * Attributes associated with an element. We need to store attributes to support various\r\n     * use-cases (attribute injection, content projection with selectors, directives matching).\r\n     * Attributes are stored statically because reading them from the DOM would be way too slow for\r\n     * content projection and queries.\r\n     *\r\n     * Since attrs will always be calculated first, they will never need to be marked undefined by\r\n     * other instructions.\r\n     *\r\n     * For regular attributes a name of an attribute and its value alternate in the array.\r\n     * e.g. ['role', 'checkbox']\r\n     * This array can contain flags that will indicate \"special attributes\" (attributes with\r\n     * namespaces, attributes extracted from bindings and outputs).\r\n     */\r\n    attrs: TAttributes | null;\r\n    /**\r\n     * Same as `TNode.attrs` but contains merged data across all directive host bindings.\r\n     *\r\n     * We need to keep `attrs` as unmerged so that it can be used for attribute selectors.\r\n     * We merge attrs here so that it can be used in a performant way for initial rendering.\r\n     *\r\n     * The `attrs` are merged in first pass in following order:\r\n     * - Component's `hostAttrs`\r\n     * - Directives' `hostAttrs`\r\n     * - Template `TNode.attrs` associated with the current `TNode`.\r\n     */\r\n    mergedAttrs: TAttributes | null;\r\n    /**\r\n     * A set of local names under which a given element is exported in a template and\r\n     * visible to queries. An entry in this array can be created for different reasons:\r\n     * - an element itself is referenced, ex.: `<div #foo>`\r\n     * - a component is referenced, ex.: `<my-cmpt #foo>`\r\n     * - a directive is referenced, ex.: `<my-cmpt #foo=\"directiveExportAs\">`.\r\n     *\r\n     * A given element might have different local names and those names can be associated\r\n     * with a directive. We store local names at even indexes while odd indexes are reserved\r\n     * for directive index in a view (or `-1` if there is no associated directive).\r\n     *\r\n     * Some examples:\r\n     * - `<div #foo>` => `[\"foo\", -1]`\r\n     * - `<my-cmpt #foo>` => `[\"foo\", myCmptIdx]`\r\n     * - `<my-cmpt #foo #bar=\"directiveExportAs\">` => `[\"foo\", myCmptIdx, \"bar\", directiveIdx]`\r\n     * - `<div #foo #bar=\"directiveExportAs\">` => `[\"foo\", -1, \"bar\", directiveIdx]`\r\n     */\r\n    localNames: (string | number)[] | null;\r\n    /** Information about input properties that need to be set once from attribute data. */\r\n    initialInputs: InitialInputData | null | undefined;\r\n    /**\r\n     * Input data for all directives on this node. `null` means that there are no directives with\r\n     * inputs on this node.\r\n     */\r\n    inputs: PropertyAliases | null;\r\n    /**\r\n     * Output data for all directives on this node. `null` means that there are no directives with\r\n     * outputs on this node.\r\n     */\r\n    outputs: PropertyAliases | null;\r\n    /**\r\n     * The TView or TViews attached to this node.\r\n     *\r\n     * If this TNode corresponds to an LContainer with inline views, the container will\r\n     * need to store separate static data for each of its view blocks (TView[]). Otherwise,\r\n     * nodes in inline views with the same index as nodes in their parent views will overwrite\r\n     * each other, as they are in the same template.\r\n     *\r\n     * Each index in this array corresponds to the static data for a certain\r\n     * view. So if you had V(0) and V(1) in a container, you might have:\r\n     *\r\n     * [\r\n     *   [{tagName: 'div', attrs: ...}, null],     // V(0) TView\r\n     *   [{tagName: 'button', attrs ...}, null]    // V(1) TView\r\n     *\r\n     * If this TNode corresponds to an LContainer with a template (e.g. structural\r\n     * directive), the template's TView will be stored here.\r\n     *\r\n     * If this TNode corresponds to an element, tViews will be null .\r\n     */\r\n    tViews: TView | TView[] | null;\r\n    /**\r\n     * The next sibling node. Necessary so we can propagate through the root nodes of a view\r\n     * to insert them or remove them from the DOM.\r\n     */\r\n    next: TNode | null;\r\n    /**\r\n     * The next projected sibling. Since in Angular content projection works on the node-by-node\r\n     * basis the act of projecting nodes might change nodes relationship at the insertion point\r\n     * (target view). At the same time we need to keep initial relationship between nodes as\r\n     * expressed in content view.\r\n     */\r\n    projectionNext: TNode | null;\r\n    /**\r\n     * First child of the current node.\r\n     *\r\n     * For component nodes, the child will always be a ContentChild (in same view).\r\n     * For embedded view nodes, the child will be in their child view.\r\n     */\r\n    child: TNode | null;\r\n    /**\r\n     * Parent node (in the same view only).\r\n     *\r\n     * We need a reference to a node's parent so we can append the node to its parent's native\r\n     * element at the appropriate time.\r\n     *\r\n     * If the parent would be in a different view (e.g. component host), this property will be null.\r\n     * It's important that we don't try to cross component boundaries when retrieving the parent\r\n     * because the parent will change (e.g. index, attrs) depending on where the component was\r\n     * used (and thus shouldn't be stored on TNode). In these cases, we retrieve the parent through\r\n     * LView.node instead (which will be instance-specific).\r\n     *\r\n     * If this is an inline view node (V), the parent will be its container.\r\n     */\r\n    parent: ɵangular_packages_core_core_bk | TContainerNode | null;\r\n    /**\r\n     * List of projected TNodes for a given component host element OR index into the said nodes.\r\n     *\r\n     * For easier discussion assume this example:\r\n     * `<parent>`'s view definition:\r\n     * ```\r\n     * <child id=\"c1\">content1</child>\r\n     * <child id=\"c2\"><span>content2</span></child>\r\n     * ```\r\n     * `<child>`'s view definition:\r\n     * ```\r\n     * <ng-content id=\"cont1\"></ng-content>\r\n     * ```\r\n     *\r\n     * If `Array.isArray(projection)` then `TNode` is a host element:\r\n     * - `projection` stores the content nodes which are to be projected.\r\n     *    - The nodes represent categories defined by the selector: For example:\r\n     *      `<ng-content/><ng-content select=\"abc\"/>` would represent the heads for `<ng-content/>`\r\n     *      and `<ng-content select=\"abc\"/>` respectively.\r\n     *    - The nodes we store in `projection` are heads only, we used `.next` to get their\r\n     *      siblings.\r\n     *    - The nodes `.next` is sorted/rewritten as part of the projection setup.\r\n     *    - `projection` size is equal to the number of projections `<ng-content>`. The size of\r\n     *      `c1` will be `1` because `<child>` has only one `<ng-content>`.\r\n     * - we store `projection` with the host (`c1`, `c2`) rather than the `<ng-content>` (`cont1`)\r\n     *   because the same component (`<child>`) can be used in multiple locations (`c1`, `c2`) and\r\n     * as a result have different set of nodes to project.\r\n     * - without `projection` it would be difficult to efficiently traverse nodes to be projected.\r\n     *\r\n     * If `typeof projection == 'number'` then `TNode` is a `<ng-content>` element:\r\n     * - `projection` is an index of the host's `projection`Nodes.\r\n     *   - This would return the first head node to project:\r\n     *     `getHost(currentTNode).projection[currentTNode.projection]`.\r\n     * - When projecting nodes the parent node retrieved may be a `<ng-content>` node, in which case\r\n     *   the process is recursive in nature.\r\n     *\r\n     * If `projection` is of type `RNode[][]` than we have a collection of native nodes passed as\r\n     * projectable nodes during dynamic component creation.\r\n     */\r\n    projection: (TNode | RNode[])[] | number | null;\r\n    /**\r\n     * A collection of all `style` static values for an element (including from host).\r\n     *\r\n     * This field will be populated if and when:\r\n     *\r\n     * - There are one or more initial `style`s on an element (e.g. `<div style=\"width:200px;\">`)\r\n     * - There are one or more initial `style`s on a directive/component host\r\n     *   (e.g. `@Directive({host: {style: \"width:200px;\" } }`)\r\n     */\r\n    styles: string | null;\r\n    /**\r\n     * A collection of all `style` static values for an element excluding host sources.\r\n     *\r\n     * Populated when there are one or more initial `style`s on an element\r\n     * (e.g. `<div style=\"width:200px;\">`)\r\n     * Must be stored separately from `tNode.styles` to facilitate setting directive\r\n     * inputs that shadow the `style` property. If we used `tNode.styles` as is for shadowed inputs,\r\n     * we would feed host styles back into directives as \"inputs\". If we used `tNode.attrs`, we\r\n     * would have to concatenate the attributes on every template pass. Instead, we process once on\r\n     * first create pass and store here.\r\n     */\r\n    stylesWithoutHost: string | null;\r\n    /**\r\n     * A `KeyValueArray` version of residual `styles`.\r\n     *\r\n     * When there are styling instructions than each instruction stores the static styling\r\n     * which is of lower priority than itself. This means that there may be a higher priority\r\n     * styling than the instruction.\r\n     *\r\n     * Imagine:\r\n     * ```\r\n     * <div style=\"color: highest;\" my-dir>\r\n     *\r\n     * @Directive({\r\n     *   host: {\r\n     *     style: 'color: lowest; ',\r\n     *     '[styles.color]': 'exp' // ɵɵstyleProp('color', ctx.exp);\r\n     *   }\r\n     * })\r\n     * ```\r\n     *\r\n     * In the above case:\r\n     * - `color: lowest` is stored with `ɵɵstyleProp('color', ctx.exp);` instruction\r\n     * -  `color: highest` is the residual and is stored here.\r\n     *\r\n     * - `undefined': not initialized.\r\n     * - `null`: initialized but `styles` is `null`\r\n     * - `KeyValueArray`: parsed version of `styles`.\r\n     */\r\n    residualStyles: KeyValueArray<any> | undefined | null;\r\n    /**\r\n     * A collection of all class static values for an element (including from host).\r\n     *\r\n     * This field will be populated if and when:\r\n     *\r\n     * - There are one or more initial classes on an element (e.g. `<div class=\"one two three\">`)\r\n     * - There are one or more initial classes on an directive/component host\r\n     *   (e.g. `@Directive({host: {class: \"SOME_CLASS\" } }`)\r\n     */\r\n    classes: string | null;\r\n    /**\r\n     * A collection of all class static values for an element excluding host sources.\r\n     *\r\n     * Populated when there are one or more initial classes on an element\r\n     * (e.g. `<div class=\"SOME_CLASS\">`)\r\n     * Must be stored separately from `tNode.classes` to facilitate setting directive\r\n     * inputs that shadow the `class` property. If we used `tNode.classes` as is for shadowed\r\n     * inputs, we would feed host classes back into directives as \"inputs\". If we used\r\n     * `tNode.attrs`, we would have to concatenate the attributes on every template pass. Instead,\r\n     * we process once on first create pass and store here.\r\n     */\r\n    classesWithoutHost: string | null;\r\n    /**\r\n     * A `KeyValueArray` version of residual `classes`.\r\n     *\r\n     * Same as `TNode.residualStyles` but for classes.\r\n     *\r\n     * - `undefined': not initialized.\r\n     * - `null`: initialized but `classes` is `null`\r\n     * - `KeyValueArray`: parsed version of `classes`.\r\n     */\r\n    residualClasses: KeyValueArray<any> | undefined | null;\r\n    /**\r\n     * Stores the head/tail index of the class bindings.\r\n     *\r\n     * - If no bindings, the head and tail will both be 0.\r\n     * - If there are template bindings, stores the head/tail of the class bindings in the template.\r\n     * - If no template bindings but there are host bindings, the head value will point to the last\r\n     *   host binding for \"class\" (not the head of the linked list), tail will be 0.\r\n     *\r\n     * See: `style_binding_list.ts` for details.\r\n     *\r\n     * This is used by `insertTStylingBinding` to know where the next styling binding should be\r\n     * inserted so that they can be sorted in priority order.\r\n     */\r\n    classBindings: TStylingRange;\r\n    /**\r\n     * Stores the head/tail index of the class bindings.\r\n     *\r\n     * - If no bindings, the head and tail will both be 0.\r\n     * - If there are template bindings, stores the head/tail of the style bindings in the template.\r\n     * - If no template bindings but there are host bindings, the head value will point to the last\r\n     *   host binding for \"style\" (not the head of the linked list), tail will be 0.\r\n     *\r\n     * See: `style_binding_list.ts` for details.\r\n     *\r\n     * This is used by `insertTStylingBinding` to know where the next styling binding should be\r\n     * inserted so that they can be sorted in priority order.\r\n     */\r\n    styleBindings: TStylingRange;\r\n}\r\n\r\n/**\r\n * Corresponds to the TNode.flags property.\r\n */\r\ndeclare const enum TNodeFlags {\r\n    /** Bit #1 - This bit is set if the node is a host for any directive (including a component) */\r\n    isDirectiveHost = 1,\r\n    /**\r\n     * Bit #2 - This bit is set if the node is a host for a component.\r\n     *\r\n     * Setting this bit implies that the `isDirectiveHost` bit is set as well.\r\n     * */\r\n    isComponentHost = 2,\r\n    /** Bit #3 - This bit is set if the node has been projected */\r\n    isProjected = 4,\r\n    /** Bit #4 - This bit is set if any directive on this node has content queries */\r\n    hasContentQuery = 8,\r\n    /** Bit #5 - This bit is set if the node has any \"class\" inputs */\r\n    hasClassInput = 16,\r\n    /** Bit #6 - This bit is set if the node has any \"style\" inputs */\r\n    hasStyleInput = 32,\r\n    /** Bit #7 This bit is set if the node has been detached by i18n */\r\n    isDetached = 64,\r\n    /**\r\n     * Bit #8 - This bit is set if the node has directives with host bindings.\r\n     *\r\n     * This flags allows us to guard host-binding logic and invoke it only on nodes\r\n     * that actually have directives with host bindings.\r\n     */\r\n    hasHostBindings = 128\r\n}\r\n\r\n/**\r\n * Corresponds to the TNode.providerIndexes property.\r\n */\r\ndeclare const enum TNodeProviderIndexes {\r\n    /** The index of the first provider on this node is encoded on the least significant bits. */\r\n    ProvidersStartIndexMask = 1048575,\r\n    /**\r\n     * The count of view providers from the component on this node is\r\n     * encoded on the 20 most significant bits.\r\n     */\r\n    CptViewProvidersCountShift = 20,\r\n    CptViewProvidersCountShifter = 1048576\r\n}\r\n\r\n/**\r\n * TNodeType corresponds to the {@link TNode} `type` property.\r\n *\r\n * NOTE: type IDs are such that we use each bit to denote a type. This is done so that we can easily\r\n * check if the `TNode` is of more than one type.\r\n *\r\n * `if (tNode.type === TNodeType.Text || tNode.type === TNode.Element)`\r\n * can be written as:\r\n * `if (tNode.type & (TNodeType.Text | TNodeType.Element))`\r\n *\r\n * However any given `TNode` can only be of one type.\r\n */\r\ndeclare const enum TNodeType {\r\n    /**\r\n     * The TNode contains information about a DOM element aka {@link RText}.\r\n     */\r\n    Text = 1,\r\n    /**\r\n     * The TNode contains information about a DOM element aka {@link RElement}.\r\n     */\r\n    Element = 2,\r\n    /**\r\n     * The TNode contains information about an {@link LContainer} for embedded views.\r\n     */\r\n    Container = 4,\r\n    /**\r\n     * The TNode contains information about an `<ng-container>` element {@link RNode}.\r\n     */\r\n    ElementContainer = 8,\r\n    /**\r\n     * The TNode contains information about an `<ng-content>` projection\r\n     */\r\n    Projection = 16,\r\n    /**\r\n     * The TNode contains information about an ICU comment used in `i18n`.\r\n     */\r\n    Icu = 32,\r\n    /**\r\n     * Special node type representing a placeholder for future `TNode` at this location.\r\n     *\r\n     * I18n translation blocks are created before the element nodes which they contain. (I18n blocks\r\n     * can span over many elements.) Because i18n `TNode`s (representing text) are created first they\r\n     * often may need to point to element `TNode`s which are not yet created. In such a case we create\r\n     * a `Placeholder` `TNode`. This allows the i18n to structurally link the `TNode`s together\r\n     * without knowing any information about the future nodes which will be at that location.\r\n     *\r\n     * On `firstCreatePass` When element instruction executes it will try to create a `TNode` at that\r\n     * location. Seeing a `Placeholder` `TNode` already there tells the system that it should reuse\r\n     * existing `TNode` (rather than create a new one) and just update the missing information.\r\n     */\r\n    Placeholder = 64,\r\n    AnyRNode = 3,\r\n    AnyContainer = 12\r\n}\r\n\r\n/**\r\n * Type representing a set of TNodes that can have local refs (`#foo`) placed on them.\r\n */\r\ndeclare type TNodeWithLocalRefs = TContainerNode | ɵangular_packages_core_core_bk | TElementContainerNode;\r\n\r\n/** Static data for an LProjectionNode  */\r\ndeclare interface TProjectionNode extends TNode {\r\n    /** Index in the data[] array */\r\n    child: null;\r\n    /**\r\n     * Projection nodes will have parents unless they are the first node of a component\r\n     * or embedded view (which means their parent is in a different view and must be\r\n     * retrieved using LView.node).\r\n     */\r\n    parent: ɵangular_packages_core_core_bk | TElementContainerNode | null;\r\n    tViews: null;\r\n    /** Index of the projection node. (See TNode.projection for more info.) */\r\n    projection: number;\r\n    value: null;\r\n}\r\n\r\n/**\r\n * TQueries represent a collection of individual TQuery objects tracked in a given view. Most of the\r\n * methods on this interface are simple proxy methods to the corresponding functionality on TQuery.\r\n */\r\ndeclare interface TQueries {\r\n    /**\r\n     * Adds a new TQuery to a collection of queries tracked in a given view.\r\n     * @param tQuery\r\n     */\r\n    track(tQuery: TQuery): void;\r\n    /**\r\n     * Returns a TQuery instance for at the given index  in the queries array.\r\n     * @param index\r\n     */\r\n    getByIndex(index: number): TQuery;\r\n    /**\r\n     * Returns the number of queries tracked in a given view.\r\n     */\r\n    length: number;\r\n    /**\r\n     * A proxy method that iterates over all the TQueries in a given TView and calls the corresponding\r\n     * `elementStart` on each and every TQuery.\r\n     * @param tView\r\n     * @param tNode\r\n     */\r\n    elementStart(tView: TView, tNode: TNode): void;\r\n    /**\r\n     * A proxy method that iterates over all the TQueries in a given TView and calls the corresponding\r\n     * `elementEnd` on each and every TQuery.\r\n     * @param tNode\r\n     */\r\n    elementEnd(tNode: TNode): void;\r\n    /**\r\n     * A proxy method that iterates over all the TQueries in a given TView and calls the corresponding\r\n     * `template` on each and every TQuery.\r\n     * @param tView\r\n     * @param tNode\r\n     */\r\n    template(tView: TView, tNode: TNode): void;\r\n    /**\r\n     * A proxy method that iterates over all the TQueries in a given TView and calls the corresponding\r\n     * `embeddedTView` on each and every TQuery.\r\n     * @param tNode\r\n     */\r\n    embeddedTView(tNode: TNode): TQueries | null;\r\n}\r\n\r\n/**\r\n * TQuery objects represent all the query-related data that remain the same from one view instance\r\n * to another and can be determined on the very first template pass. Most notably TQuery holds all\r\n * the matches for a given view.\r\n */\r\ndeclare interface TQuery {\r\n    /**\r\n     * Query metadata extracted from query annotations.\r\n     */\r\n    metadata: TQueryMetadata;\r\n    /**\r\n     * Index of a query in a declaration view in case of queries propagated to en embedded view, -1\r\n     * for queries declared in a given view. We are storing this index so we can find a parent query\r\n     * to clone for an embedded view (when an embedded view is created).\r\n     */\r\n    indexInDeclarationView: number;\r\n    /**\r\n     * Matches collected on the first template pass. Each match is a pair of:\r\n     * - TNode index;\r\n     * - match index;\r\n     *\r\n     * A TNode index can be either:\r\n     * - a positive number (the most common case) to indicate a matching TNode;\r\n     * - a negative number to indicate that a given query is crossing a <ng-template> element and\r\n     * results from views created based on TemplateRef should be inserted at this place.\r\n     *\r\n     * A match index is a number used to find an actual value (for a given node) when query results\r\n     * are materialized. This index can have one of the following values:\r\n     * - -2 - indicates that we need to read a special token (TemplateRef, ViewContainerRef etc.);\r\n     * - -1 - indicates that we need to read a default value based on the node type (TemplateRef for\r\n     * ng-template and ElementRef for other elements);\r\n     * - a positive number - index of an injectable to be read from the element injector.\r\n     */\r\n    matches: number[] | null;\r\n    /**\r\n     * A flag indicating if a given query crosses an <ng-template> element. This flag exists for\r\n     * performance reasons: we can notice that queries not crossing any <ng-template> elements will\r\n     * have matches from a given view only (and adapt processing accordingly).\r\n     */\r\n    crossesNgTemplate: boolean;\r\n    /**\r\n     * A method call when a given query is crossing an element (or element container). This is where a\r\n     * given TNode is matched against a query predicate.\r\n     * @param tView\r\n     * @param tNode\r\n     */\r\n    elementStart(tView: TView, tNode: TNode): void;\r\n    /**\r\n     * A method called when processing the elementEnd instruction - this is mostly useful to determine\r\n     * if a given content query should match any nodes past this point.\r\n     * @param tNode\r\n     */\r\n    elementEnd(tNode: TNode): void;\r\n    /**\r\n     * A method called when processing the template instruction. This is where a\r\n     * given TContainerNode is matched against a query predicate.\r\n     * @param tView\r\n     * @param tNode\r\n     */\r\n    template(tView: TView, tNode: TNode): void;\r\n    /**\r\n     * A query-related method called when an embedded TView is created based on the content of a\r\n     * <ng-template> element. We call this method to determine if a given query should be propagated\r\n     * to the embedded view and if so - return a cloned TQuery for this embedded view.\r\n     * @param tNode\r\n     * @param childQueryIndex\r\n     */\r\n    embeddedTView(tNode: TNode, childQueryIndex: number): TQuery | null;\r\n}\r\n\r\n/**\r\n * An object representing query metadata extracted from query annotations.\r\n */\r\ndeclare interface TQueryMetadata {\r\n    predicate: ProviderToken<unknown> | string[];\r\n    read: any;\r\n    flags: QueryFlags;\r\n}\r\n\r\n/**\r\n * A function optionally passed into the `NgForOf` directive to customize how `NgForOf` uniquely\r\n * identifies items in an iterable.\r\n *\r\n * `NgForOf` needs to uniquely identify items in the iterable to correctly perform DOM updates\r\n * when items in the iterable are reordered, new items are added, or existing items are removed.\r\n *\r\n *\r\n * In all of these scenarios it is usually desirable to only update the DOM elements associated\r\n * with the items affected by the change. This behavior is important to:\r\n *\r\n * - preserve any DOM-specific UI state (like cursor position, focus, text selection) when the\r\n *   iterable is modified\r\n * - enable animation of item addition, removal, and iterable reordering\r\n * - preserve the value of the `<select>` element when nested `<option>` elements are dynamically\r\n *   populated using `NgForOf` and the bound iterable is updated\r\n *\r\n * A common use for custom `trackBy` functions is when the model that `NgForOf` iterates over\r\n * contains a property with a unique identifier. For example, given a model:\r\n *\r\n * ```ts\r\n * class User {\r\n *   id: number;\r\n *   name: string;\r\n *   ...\r\n * }\r\n * ```\r\n * a custom `trackBy` function could look like the following:\r\n * ```ts\r\n * function userTrackBy(index, user) {\r\n *   return user.id;\r\n * }\r\n * ```\r\n *\r\n * A custom `trackBy` function must have several properties:\r\n *\r\n * - be [idempotent](https://en.wikipedia.org/wiki/Idempotence) (be without side effects, and always\r\n * return the same value for a given input)\r\n * - return unique value for all unique inputs\r\n * - be fast\r\n *\r\n * @see [`NgForOf#ngForTrackBy`](api/common/NgForOf#ngForTrackBy)\r\n * @publicApi\r\n */\r\nexport declare interface TrackByFunction<T> {\r\n    /**\r\n     * @param index The index of the item within the iterable.\r\n     * @param item The item in the iterable.\r\n     */\r\n    <U extends T>(index: number, item: T & U): any;\r\n}\r\n\r\n/**\r\n * Use this token at bootstrap to provide the content of your translation file (`xtb`,\r\n * `xlf` or `xlf2`) when you want to translate your application in another language.\r\n *\r\n * See the [i18n guide](guide/i18n-common-merge) for more information.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```typescript\r\n * import { TRANSLATIONS } from '@angular/core';\r\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n * import { AppModule } from './app/app.module';\r\n *\r\n * // content of your translation file\r\n * const translations = '....';\r\n *\r\n * platformBrowserDynamic().bootstrapModule(AppModule, {\r\n *   providers: [{provide: TRANSLATIONS, useValue: translations }]\r\n * });\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare const TRANSLATIONS: InjectionToken<string>;\r\n\r\n/**\r\n * Provide this token at bootstrap to set the format of your {@link TRANSLATIONS}: `xtb`,\r\n * `xlf` or `xlf2`.\r\n *\r\n * See the [i18n guide](guide/i18n-common-merge) for more information.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```typescript\r\n * import { TRANSLATIONS_FORMAT } from '@angular/core';\r\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n * import { AppModule } from './app/app.module';\r\n *\r\n * platformBrowserDynamic().bootstrapModule(AppModule, {\r\n *   providers: [{provide: TRANSLATIONS_FORMAT, useValue: 'xlf' }]\r\n * });\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare const TRANSLATIONS_FORMAT: InjectionToken<string>;\r\n\r\ndeclare const TRANSPLANTED_VIEWS_TO_REFRESH = 5;\r\n\r\n\r\n/**\r\n * @fileoverview\r\n * While Angular only uses Trusted Types internally for the time being,\r\n * references to Trusted Types could leak into our core.d.ts, which would force\r\n * anyone compiling against @angular/core to provide the @types/trusted-types\r\n * package in their compilation unit.\r\n *\r\n * Until https://github.com/microsoft/TypeScript/issues/30024 is resolved, we\r\n * will keep Angular's public API surface free of references to Trusted Types.\r\n * For internal and semi-private APIs that need to reference Trusted Types, the\r\n * minimal type definitions for the Trusted Types API provided by this module\r\n * should be used instead. They are marked as \"declare\" to prevent them from\r\n * being renamed by compiler optimization.\r\n *\r\n * Adapted from\r\n * https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/trusted-types/index.d.ts\r\n * but restricted to the API surface used within Angular.\r\n */\r\ndeclare interface TrustedHTML {\r\n    __brand__: 'TrustedHTML';\r\n}\r\n\r\ndeclare interface TrustedScript {\r\n    __brand__: 'TrustedScript';\r\n}\r\n\r\ndeclare interface TrustedScriptURL {\r\n    __brand__: 'TrustedScriptURL';\r\n}\r\n\r\n/**\r\n * Value stored in the `TData` which is needed to re-concatenate the styling.\r\n *\r\n * See: `TStylingKeyPrimitive` and `TStylingStatic`\r\n */\r\ndeclare type TStylingKey = TStylingKeyPrimitive | TStylingStatic;\r\n\r\n/**\r\n * The primitive portion (`TStylingStatic` removed) of the value stored in the `TData` which is\r\n * needed to re-concatenate the styling.\r\n *\r\n * - `string`: Stores the property name. Used with `ɵɵstyleProp`/`ɵɵclassProp` instruction.\r\n * - `null`: Represents map, so there is no name. Used with `ɵɵstyleMap`/`ɵɵclassMap`.\r\n * - `false`: Represents an ignore case. This happens when `ɵɵstyleProp`/`ɵɵclassProp` instruction\r\n *   is combined with directive which shadows its input `@Input('class')`. That way the binding\r\n *   should not participate in the styling resolution.\r\n */\r\ndeclare type TStylingKeyPrimitive = string | null | false;\r\n\r\n/**\r\n * This is a branded number which contains previous and next index.\r\n *\r\n * When we come across styling instructions we need to store the `TStylingKey` in the correct\r\n * order so that we can re-concatenate the styling value in the desired priority.\r\n *\r\n * The insertion can happen either at the:\r\n * - end of template as in the case of coming across additional styling instruction in the template\r\n * - in front of the template in the case of coming across additional instruction in the\r\n *   `hostBindings`.\r\n *\r\n * We use `TStylingRange` to store the previous and next index into the `TData` where the template\r\n * bindings can be found.\r\n *\r\n * - bit 0 is used to mark that the previous index has a duplicate for current value.\r\n * - bit 1 is used to mark that the next index has a duplicate for the current value.\r\n * - bits 2-16 are used to encode the next/tail of the template.\r\n * - bits 17-32 are used to encode the previous/head of template.\r\n *\r\n * NODE: *duplicate* false implies that it is statically known that this binding will not collide\r\n * with other bindings and therefore there is no need to check other bindings. For example the\r\n * bindings in `<div [style.color]=\"exp\" [style.width]=\"exp\">` will never collide and will have\r\n * their bits set accordingly. Previous duplicate means that we may need to check previous if the\r\n * current binding is `null`. Next duplicate means that we may need to check next bindings if the\r\n * current binding is not `null`.\r\n *\r\n * NOTE: `0` has special significance and represents `null` as in no additional pointer.\r\n */\r\ndeclare interface TStylingRange {\r\n    __brand__: 'TStylingRange';\r\n}\r\n\r\n/**\r\n * Store the static values for the styling binding.\r\n *\r\n * The `TStylingStatic` is just `KeyValueArray` where key `\"\"` (stored at location 0) contains the\r\n * `TStylingKey` (stored at location 1). In other words this wraps the `TStylingKey` such that the\r\n * `\"\"` contains the wrapped value.\r\n *\r\n * When instructions are resolving styling they may need to look forward or backwards in the linked\r\n * list to resolve the value. For this reason we have to make sure that he linked list also contains\r\n * the static values. However the list only has space for one item per styling instruction. For this\r\n * reason we store the static values here as part of the `TStylingKey`. This means that the\r\n * resolution function when looking for a value needs to first look at the binding value, and than\r\n * at `TStylingKey` (if it exists).\r\n *\r\n * Imagine we have:\r\n *\r\n * ```\r\n * <div class=\"TEMPLATE\" my-dir>\r\n *\r\n * @Directive({\r\n *   host: {\r\n *     class: 'DIR',\r\n *     '[class.dynamic]': 'exp' // ɵɵclassProp('dynamic', ctx.exp);\r\n *   }\r\n * })\r\n * ```\r\n *\r\n * In the above case the linked list will contain one item:\r\n *\r\n * ```\r\n *   // assume binding location: 10 for `ɵɵclassProp('dynamic', ctx.exp);`\r\n *   tData[10] = <TStylingStatic>[\r\n *     '': 'dynamic', // This is the wrapped value of `TStylingKey`\r\n *     'DIR': true,   // This is the default static value of directive binding.\r\n *   ];\r\n *   tData[10 + 1] = 0; // We don't have prev/next.\r\n *\r\n *   lView[10] = undefined;     // assume `ctx.exp` is `undefined`\r\n *   lView[10 + 1] = undefined; // Just normalized `lView[10]`\r\n * ```\r\n *\r\n * So when the function is resolving styling value, it first needs to look into the linked list\r\n * (there is none) and than into the static `TStylingStatic` too see if there is a default value for\r\n * `dynamic` (there is not). Therefore it is safe to remove it.\r\n *\r\n * If setting `true` case:\r\n * ```\r\n *   lView[10] = true;     // assume `ctx.exp` is `true`\r\n *   lView[10 + 1] = true; // Just normalized `lView[10]`\r\n * ```\r\n * So when the function is resolving styling value, it first needs to look into the linked list\r\n * (there is none) and than into `TNode.residualClass` (TNode.residualStyle) which contains\r\n * ```\r\n *   tNode.residualClass = [\r\n *     'TEMPLATE': true,\r\n *   ];\r\n * ```\r\n *\r\n * This means that it is safe to add class.\r\n */\r\ndeclare interface TStylingStatic extends KeyValueArray<any> {\r\n}\r\n\r\n/** Static data for a text node */\r\ndeclare interface TTextNode extends TNode {\r\n    /** Index in the data[] array */\r\n    index: number;\r\n    child: null;\r\n    /**\r\n     * Text nodes will have parents unless they are the first node of a component or\r\n     * embedded view (which means their parent is in a different view and must be\r\n     * retrieved using LView.node).\r\n     */\r\n    parent: ɵangular_packages_core_core_bk | TElementContainerNode | null;\r\n    tViews: null;\r\n    projection: null;\r\n}\r\n\r\ndeclare const TVIEW = 1;\r\n\r\n/**\r\n * The static data for an LView (shared between all templates of a\r\n * given type).\r\n *\r\n * Stored on the `ComponentDef.tView`.\r\n */\r\ndeclare interface TView {\r\n    /**\r\n     * Type of `TView` (`Root`|`Component`|`Embedded`).\r\n     */\r\n    type: TViewType;\r\n    /**\r\n     * This is a blueprint used to generate LView instances for this TView. Copying this\r\n     * blueprint is faster than creating a new LView from scratch.\r\n     */\r\n    blueprint: ɵangular_packages_core_core_ca;\r\n    /**\r\n     * The template function used to refresh the view of dynamically created views\r\n     * and components. Will be null for inline views.\r\n     */\r\n    template: ComponentTemplate<{}> | null;\r\n    /**\r\n     * A function containing query-related instructions.\r\n     */\r\n    viewQuery: ViewQueriesFunction<{}> | null;\r\n    /**\r\n     * A `TNode` representing the declaration location of this `TView` (not part of this TView).\r\n     */\r\n    declTNode: TNode | null;\r\n    /** Whether or not this template has been processed in creation mode. */\r\n    firstCreatePass: boolean;\r\n    /**\r\n     *  Whether or not this template has been processed in update mode (e.g. change detected)\r\n     *\r\n     * `firstUpdatePass` is used by styling to set up `TData` to contain metadata about the styling\r\n     * instructions. (Mainly to build up a linked list of styling priority order.)\r\n     *\r\n     * Typically this function gets cleared after first execution. If exception is thrown then this\r\n     * flag can remain turned un until there is first successful (no exception) pass. This means that\r\n     * individual styling instructions keep track of if they have already been added to the linked\r\n     * list to prevent double adding.\r\n     */\r\n    firstUpdatePass: boolean;\r\n    /** Static data equivalent of LView.data[]. Contains TNodes, PipeDefInternal or TI18n. */\r\n    data: TData;\r\n    /**\r\n     * The binding start index is the index at which the data array\r\n     * starts to store bindings only. Saving this value ensures that we\r\n     * will begin reading bindings at the correct point in the array when\r\n     * we are in update mode.\r\n     *\r\n     * -1 means that it has not been initialized.\r\n     */\r\n    bindingStartIndex: number;\r\n    /**\r\n     * The index where the \"expando\" section of `LView` begins. The expando\r\n     * section contains injectors, directive instances, and host binding values.\r\n     * Unlike the \"decls\" and \"vars\" sections of `LView`, the length of this\r\n     * section cannot be calculated at compile-time because directives are matched\r\n     * at runtime to preserve locality.\r\n     *\r\n     * We store this start index so we know where to start checking host bindings\r\n     * in `setHostBindings`.\r\n     */\r\n    expandoStartIndex: number;\r\n    /**\r\n     * Whether or not there are any static view queries tracked on this view.\r\n     *\r\n     * We store this so we know whether or not we should do a view query\r\n     * refresh after creation mode to collect static query results.\r\n     */\r\n    staticViewQueries: boolean;\r\n    /**\r\n     * Whether or not there are any static content queries tracked on this view.\r\n     *\r\n     * We store this so we know whether or not we should do a content query\r\n     * refresh after creation mode to collect static query results.\r\n     */\r\n    staticContentQueries: boolean;\r\n    /**\r\n     * A reference to the first child node located in the view.\r\n     */\r\n    firstChild: TNode | null;\r\n    /**\r\n     * Stores the OpCodes to be replayed during change-detection to process the `HostBindings`\r\n     *\r\n     * See `HostBindingOpCodes` for encoding details.\r\n     */\r\n    hostBindingOpCodes: HostBindingOpCodes | null;\r\n    /**\r\n     * Full registry of directives and components that may be found in this view.\r\n     *\r\n     * It's necessary to keep a copy of the full def list on the TView so it's possible\r\n     * to render template functions without a host component.\r\n     */\r\n    directiveRegistry: DirectiveDefList | null;\r\n    /**\r\n     * Full registry of pipes that may be found in this view.\r\n     *\r\n     * The property is either an array of `PipeDefs`s or a function which returns the array of\r\n     * `PipeDefs`s. The function is necessary to be able to support forward declarations.\r\n     *\r\n     * It's necessary to keep a copy of the full def list on the TView so it's possible\r\n     * to render template functions without a host component.\r\n     */\r\n    pipeRegistry: PipeDefList | null;\r\n    /**\r\n     * Array of ngOnInit, ngOnChanges and ngDoCheck hooks that should be executed for this view in\r\n     * creation mode.\r\n     *\r\n     * This array has a flat structure and contains TNode indices, directive indices (where an\r\n     * instance can be found in `LView`) and hook functions. TNode index is followed by the directive\r\n     * index and a hook function. If there are multiple hooks for a given TNode, the TNode index is\r\n     * not repeated and the next lifecycle hook information is stored right after the previous hook\r\n     * function. This is done so that at runtime the system can efficiently iterate over all of the\r\n     * functions to invoke without having to make any decisions/lookups.\r\n     */\r\n    preOrderHooks: HookData | null;\r\n    /**\r\n     * Array of ngOnChanges and ngDoCheck hooks that should be executed for this view in update mode.\r\n     *\r\n     * This array has the same structure as the `preOrderHooks` one.\r\n     */\r\n    preOrderCheckHooks: HookData | null;\r\n    /**\r\n     * Array of ngAfterContentInit and ngAfterContentChecked hooks that should be executed\r\n     * for this view in creation mode.\r\n     *\r\n     * Even indices: Directive index\r\n     * Odd indices: Hook function\r\n     */\r\n    contentHooks: HookData | null;\r\n    /**\r\n     * Array of ngAfterContentChecked hooks that should be executed for this view in update\r\n     * mode.\r\n     *\r\n     * Even indices: Directive index\r\n     * Odd indices: Hook function\r\n     */\r\n    contentCheckHooks: HookData | null;\r\n    /**\r\n     * Array of ngAfterViewInit and ngAfterViewChecked hooks that should be executed for\r\n     * this view in creation mode.\r\n     *\r\n     * Even indices: Directive index\r\n     * Odd indices: Hook function\r\n     */\r\n    viewHooks: HookData | null;\r\n    /**\r\n     * Array of ngAfterViewChecked hooks that should be executed for this view in\r\n     * update mode.\r\n     *\r\n     * Even indices: Directive index\r\n     * Odd indices: Hook function\r\n     */\r\n    viewCheckHooks: HookData | null;\r\n    /**\r\n     * Array of ngOnDestroy hooks that should be executed when this view is destroyed.\r\n     *\r\n     * Even indices: Directive index\r\n     * Odd indices: Hook function\r\n     */\r\n    destroyHooks: DestroyHookData | null;\r\n    /**\r\n     * When a view is destroyed, listeners need to be released and outputs need to be\r\n     * unsubscribed. This cleanup array stores both listener data (in chunks of 4)\r\n     * and output data (in chunks of 2) for a particular view. Combining the arrays\r\n     * saves on memory (70 bytes per array) and on a few bytes of code size (for two\r\n     * separate for loops).\r\n     *\r\n     * If it's a native DOM listener or output subscription being stored:\r\n     * 1st index is: event name  `name = tView.cleanup[i+0]`\r\n     * 2nd index is: index of native element or a function that retrieves global target (window,\r\n     *               document or body) reference based on the native element:\r\n     *    `typeof idxOrTargetGetter === 'function'`: global target getter function\r\n     *    `typeof idxOrTargetGetter === 'number'`: index of native element\r\n     *\r\n     * 3rd index is: index of listener function `listener = lView[CLEANUP][tView.cleanup[i+2]]`\r\n     * 4th index is: `useCaptureOrIndx = tView.cleanup[i+3]`\r\n     *    `typeof useCaptureOrIndx == 'boolean' : useCapture boolean\r\n     *    `typeof useCaptureOrIndx == 'number':\r\n     *         `useCaptureOrIndx >= 0` `removeListener = LView[CLEANUP][useCaptureOrIndx]`\r\n     *         `useCaptureOrIndx <  0` `subscription = LView[CLEANUP][-useCaptureOrIndx]`\r\n     *\r\n     * If it's an output subscription or query list destroy hook:\r\n     * 1st index is: output unsubscribe function / query list destroy function\r\n     * 2nd index is: index of function context in LView.cleanupInstances[]\r\n     *               `tView.cleanup[i+0].call(lView[CLEANUP][tView.cleanup[i+1]])`\r\n     */\r\n    cleanup: any[] | null;\r\n    /**\r\n     * A list of element indices for child components that will need to be\r\n     * refreshed when the current view has finished its check. These indices have\r\n     * already been adjusted for the HEADER_OFFSET.\r\n     *\r\n     */\r\n    components: number[] | null;\r\n    /**\r\n     * A collection of queries tracked in a given view.\r\n     */\r\n    queries: TQueries | null;\r\n    /**\r\n     * An array of indices pointing to directives with content queries alongside with the\r\n     * corresponding query index. Each entry in this array is a tuple of:\r\n     * - index of the first content query index declared by a given directive;\r\n     * - index of a directive.\r\n     *\r\n     * We are storing those indexes so we can refresh content queries as part of a view refresh\r\n     * process.\r\n     */\r\n    contentQueries: number[] | null;\r\n    /**\r\n     * Set of schemas that declare elements to be allowed inside the view.\r\n     */\r\n    schemas: SchemaMetadata[] | null;\r\n    /**\r\n     * Array of constants for the view. Includes attribute arrays, local definition arrays etc.\r\n     * Used for directive matching, attribute bindings, local definitions and more.\r\n     */\r\n    consts: TConstants | null;\r\n    /**\r\n     * Indicates that there was an error before we managed to complete the first create pass of the\r\n     * view. This means that the view is likely corrupted and we should try to recover it.\r\n     */\r\n    incompleteFirstPass: boolean;\r\n}\r\n\r\n/**\r\n * Explicitly marks `TView` as a specific type in `ngDevMode`\r\n *\r\n * It is useful to know conceptually what time of `TView` we are dealing with when\r\n * debugging an application (even if the runtime does not need it.) For this reason\r\n * we store this information in the `ngDevMode` `TView` and than use it for\r\n * better debugging experience.\r\n */\r\ndeclare const enum TViewType {\r\n    /**\r\n     * Root `TView` is the used to bootstrap components into. It is used in conjunction with\r\n     * `LView` which takes an existing DOM node not owned by Angular and wraps it in `TView`/`LView`\r\n     * so that other components can be loaded into it.\r\n     */\r\n    Root = 0,\r\n    /**\r\n     * `TView` associated with a Component. This would be the `TView` directly associated with the\r\n     * component view (as opposed an `Embedded` `TView` which would be a child of `Component` `TView`)\r\n     */\r\n    Component = 1,\r\n    /**\r\n     * `TView` associated with a template. Such as `*ngIf`, `<ng-template>` etc... A `Component`\r\n     * can have zero or more `Embedede` `TView`s.\r\n     */\r\n    Embedded = 2\r\n}\r\n\r\n/**\r\n * Special location which allows easy identification of type. If we have an array which was\r\n * retrieved from the `LView` and that array has `true` at `TYPE` location, we know it is\r\n * `LContainer`.\r\n */\r\ndeclare const TYPE = 1;\r\n\r\n/**\r\n * @description\r\n *\r\n * Represents a type that a Component or other object is instances of.\r\n *\r\n * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is represented by\r\n * the `MyCustomComponent` constructor function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const Type: FunctionConstructor;\r\n\r\nexport declare interface Type<T> extends Function {\r\n    new (...args: any[]): T;\r\n}\r\n\r\ndeclare type Type_2 = Function;\r\n\r\n/**\r\n * An interface implemented by all Angular type decorators, which allows them to be used as\r\n * decorators as well as Angular syntax.\r\n *\r\n * ```\r\n * @ng.Component({...})\r\n * class MyClass {...}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface TypeDecorator {\r\n    /**\r\n     * Invoke as decorator.\r\n     */\r\n    <T extends Type<any>>(type: T): T;\r\n    (target: Object, propertyKey?: string | symbol, parameterIndex?: number): void;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return an instance of `Type` when `Type' is used as the token.\r\n *\r\n * Create an instance by invoking the `new` operator and supplying additional arguments.\r\n * This form is a short form of `TypeProvider`;\r\n *\r\n * For more details, see the [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='TypeProvider'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface TypeProvider extends Type<any> {\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return a value for a token.\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n *\r\n * ### Example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='ValueProvider'}\r\n *\r\n * ### Multi-value example\r\n *\r\n * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ValueProvider extends ValueSansProvider {\r\n    /**\r\n     * An injection token. Typically an instance of `Type` or `InjectionToken`, but can be `any`.\r\n     */\r\n    provide: any;\r\n    /**\r\n     * When true, injector returns an array of instances. This is useful to allow multiple\r\n     * providers spread across many files to provide configuration information to a common token.\r\n     */\r\n    multi?: boolean;\r\n}\r\n\r\n/**\r\n * Configures the `Injector` to return a value for a token.\r\n * Base for `ValueProvider` decorator.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ValueSansProvider {\r\n    /**\r\n     * The value to inject.\r\n     */\r\n    useValue: any;\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 * @description Represents the version of Angular\r\n *\r\n * @publicApi\r\n */\r\nexport declare class Version {\r\n    full: string;\r\n    readonly major: string;\r\n    readonly minor: string;\r\n    readonly patch: string;\r\n    constructor(full: string);\r\n}\r\n\r\ndeclare const VIEW_REFS = 8;\r\n\r\n/**\r\n * Type of the ViewChild metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type ViewChild = Query;\r\n\r\n/**\r\n * ViewChild decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const ViewChild: ViewChildDecorator;\r\n\r\n/**\r\n * Type of the ViewChild decorator / constructor function.\r\n *\r\n * @see `ViewChild`.\r\n * @publicApi\r\n */\r\nexport declare interface ViewChildDecorator {\r\n    /**\r\n     * @description\r\n     * Property decorator that configures a view query.\r\n     * The change detector looks for the first element or the directive matching the selector\r\n     * in the view DOM. If the view DOM changes, and a new child matches the selector,\r\n     * the property is updated.\r\n     *\r\n     * View queries are set before the `ngAfterViewInit` callback is called.\r\n     *\r\n     * **Metadata Properties**:\r\n     *\r\n     * * **selector** - The directive type or the name used for querying.\r\n     * * **read** - Used to read a different token from the queried elements.\r\n     * * **static** - True to resolve query results before change detection runs,\r\n     * false to resolve after change detection. Defaults to false.\r\n     *\r\n     *\r\n     * The following selectors are supported.\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * A template reference variable as a string (e.g. query `<my-component #cmp></my-component>`\r\n     * with `@ViewChild('cmp')`)\r\n     *   * Any provider defined in the child component tree of the current component (e.g.\r\n     * `@ViewChild(SomeService) someService: SomeService`)\r\n     *   * Any provider defined through a string token (e.g. `@ViewChild('someToken') someTokenVal:\r\n     * any`)\r\n     *   * A `TemplateRef` (e.g. query `<ng-template></ng-template>` with `@ViewChild(TemplateRef)\r\n     * template;`)\r\n     *\r\n     * The following values are supported by `read`:\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * Any provider defined on the injector of the component that is matched by the `selector` of\r\n     * this query\r\n     *   * Any provider defined through a string token (e.g. `{provide: 'token', useValue: 'val'}`)\r\n     *   * `TemplateRef`, `ElementRef`, and `ViewContainerRef`\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * {@example core/di/ts/viewChild/view_child_example.ts region='Component'}\r\n     *\r\n     * ### Example 2\r\n     *\r\n     * {@example core/di/ts/viewChild/view_child_howto.ts region='HowTo'}\r\n     *\r\n     * @Annotation\r\n     */\r\n    (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        read?: any;\r\n        static?: boolean;\r\n    }): any;\r\n    new (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        read?: any;\r\n        static?: boolean;\r\n    }): ViewChild;\r\n}\r\n\r\n/**\r\n * Type of the ViewChildren metadata.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type ViewChildren = Query;\r\n\r\n/**\r\n * ViewChildren decorator and metadata.\r\n *\r\n * @Annotation\r\n * @publicApi\r\n */\r\nexport declare const ViewChildren: ViewChildrenDecorator;\r\n\r\n/**\r\n * Type of the ViewChildren decorator / constructor function.\r\n *\r\n * @see `ViewChildren`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ViewChildrenDecorator {\r\n    /**\r\n     * @description\r\n     * Property decorator that configures a view query.\r\n     *\r\n     * Use to get the `QueryList` of elements or directives from the view DOM.\r\n     * Any time a child element is added, removed, or moved, the query list will be updated,\r\n     * and the changes observable of the query list will emit a new value.\r\n     *\r\n     * View queries are set before the `ngAfterViewInit` callback is called.\r\n     *\r\n     * **Metadata Properties**:\r\n     *\r\n     * * **selector** - The directive type or the name used for querying.\r\n     * * **read** - Used to read a different token from the queried elements.\r\n     * * **emitDistinctChangesOnly** - The ` QueryList#changes` observable will emit new values only\r\n     *   if the QueryList result has changed. When `false` the `changes` observable might emit even\r\n     *   if the QueryList has not changed.\r\n     *   ** Note: *** This config option is **deprecated**, it will be permanently set to `true` and\r\n     * removed in future versions of Angular.\r\n     *\r\n     * The following selectors are supported.\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * A template reference variable as a string (e.g. query `<my-component #cmp></my-component>`\r\n     * with `@ViewChildren('cmp')`)\r\n     *   * Any provider defined in the child component tree of the current component (e.g.\r\n     * `@ViewChildren(SomeService) someService!: SomeService`)\r\n     *   * Any provider defined through a string token (e.g. `@ViewChildren('someToken')\r\n     * someTokenVal!: any`)\r\n     *   * A `TemplateRef` (e.g. query `<ng-template></ng-template>` with `@ViewChildren(TemplateRef)\r\n     * template;`)\r\n     *\r\n     * In addition, multiple string selectors can be separated with a comma (e.g.\r\n     * `@ViewChildren('cmp1,cmp2')`)\r\n     *\r\n     * The following values are supported by `read`:\r\n     *   * Any class with the `@Component` or `@Directive` decorator\r\n     *   * Any provider defined on the injector of the component that is matched by the `selector` of\r\n     * this query\r\n     *   * Any provider defined through a string token (e.g. `{provide: 'token', useValue: 'val'}`)\r\n     *   * `TemplateRef`, `ElementRef`, and `ViewContainerRef`\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * {@example core/di/ts/viewChildren/view_children_howto.ts region='HowTo'}\r\n     *\r\n     * ### Another example\r\n     *\r\n     * {@example core/di/ts/viewChildren/view_children_example.ts region='Component'}\r\n     *\r\n     * @Annotation\r\n     */\r\n    (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        read?: any;\r\n        emitDistinctChangesOnly?: boolean;\r\n    }): any;\r\n    new (selector: ProviderToken<unknown> | Function | string, opts?: {\r\n        read?: any;\r\n        emitDistinctChangesOnly?: boolean;\r\n    }): ViewChildren;\r\n}\r\n\r\n/**\r\n * Represents a container where one or more views can be attached to a component.\r\n *\r\n * Can contain *host views* (created by instantiating a\r\n * component with the `createComponent()` method), and *embedded views*\r\n * (created by instantiating a `TemplateRef` with the `createEmbeddedView()` method).\r\n *\r\n * A view container instance can contain other view containers,\r\n * creating a [view hierarchy](guide/glossary#view-tree).\r\n *\r\n * @see `ComponentRef`\r\n * @see `EmbeddedViewRef`\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class ViewContainerRef {\r\n    /**\r\n     * Anchor element that specifies the location of this container in the containing view.\r\n     * Each view container can have only one anchor element, and each anchor element\r\n     * can have only a single view container.\r\n     *\r\n     * Root elements of views attached to this container become siblings of the anchor element in\r\n     * the rendered view.\r\n     *\r\n     * Access the `ViewContainerRef` of an element by placing a `Directive` injected\r\n     * with `ViewContainerRef` on the element, or use a `ViewChild` query.\r\n     *\r\n     * <!-- TODO: rename to anchorElement -->\r\n     */\r\n    abstract get element(): ElementRef;\r\n    /**\r\n     * The [dependency injector](guide/glossary#injector) for this view container.\r\n     */\r\n    abstract get injector(): Injector;\r\n    /** @deprecated No replacement */\r\n    abstract get parentInjector(): Injector;\r\n    /**\r\n     * Destroys all views in this container.\r\n     */\r\n    abstract clear(): void;\r\n    /**\r\n     * Retrieves a view from this container.\r\n     * @param index The 0-based index of the view to retrieve.\r\n     * @returns The `ViewRef` instance, or null if the index is out of range.\r\n     */\r\n    abstract get(index: number): ViewRef | null;\r\n    /**\r\n     * Reports how many views are currently attached to this container.\r\n     * @returns The number of views.\r\n     */\r\n    abstract get length(): number;\r\n    /**\r\n     * Instantiates an embedded view and inserts it\r\n     * into this container.\r\n     * @param templateRef The HTML template that defines the view.\r\n     * @param context The data-binding context of the embedded view, as declared\r\n     * in the `<ng-template>` usage.\r\n     * @param index The 0-based index at which to insert the new view into this container.\r\n     * If not specified, appends the new view as the last entry.\r\n     *\r\n     * @returns The `ViewRef` instance for the newly created view.\r\n     */\r\n    abstract createEmbeddedView<C>(templateRef: TemplateRef<C>, context?: C, index?: number): EmbeddedViewRef<C>;\r\n    /**\r\n     * Instantiates a single component and inserts its host view into this container.\r\n     *\r\n     * @param componentFactory The factory to use.\r\n     * @param index The index at which to insert the new component's host view into this container.\r\n     * If not specified, appends the new view as the last entry.\r\n     * @param injector The injector to use as the parent for the new component.\r\n     * @param projectableNodes\r\n     * @param ngModule\r\n     *\r\n     * @returns The new component instance, containing the host view.\r\n     *\r\n     */\r\n    abstract createComponent<C>(componentFactory: ComponentFactory<C>, index?: number, injector?: Injector, projectableNodes?: any[][], ngModule?: NgModuleRef<any>): ComponentRef<C>;\r\n    /**\r\n     * Inserts a view into this container.\r\n     * @param viewRef The view to insert.\r\n     * @param index The 0-based index at which to insert the view.\r\n     * If not specified, appends the new view as the last entry.\r\n     * @returns The inserted `ViewRef` instance.\r\n     *\r\n     */\r\n    abstract insert(viewRef: ViewRef, index?: number): ViewRef;\r\n    /**\r\n     * Moves a view to a new location in this container.\r\n     * @param viewRef The view to move.\r\n     * @param index The 0-based index of the new location.\r\n     * @returns The moved `ViewRef` instance.\r\n     */\r\n    abstract move(viewRef: ViewRef, currentIndex: number): ViewRef;\r\n    /**\r\n     * Returns the index of a view within the current container.\r\n     * @param viewRef The view to query.\r\n     * @returns The 0-based index of the view's position in this container,\r\n     * or `-1` if this container doesn't contain the view.\r\n     */\r\n    abstract indexOf(viewRef: ViewRef): number;\r\n    /**\r\n     * Destroys a view attached to this container\r\n     * @param index The 0-based index of the view to destroy.\r\n     * If not specified, the last view in the container is removed.\r\n     */\r\n    abstract remove(index?: number): void;\r\n    /**\r\n     * Detaches a view from this container without destroying it.\r\n     * Use along with `insert()` to move a view within the current container.\r\n     * @param index The 0-based index of the view to detach.\r\n     * If not specified, the last view in the container is detached.\r\n     */\r\n    abstract detach(index?: number): ViewRef | null;\r\n}\r\n\r\n/**\r\n * View instance data.\r\n * Attention: Adding fields to this is performance sensitive!\r\n */\r\ndeclare interface ViewData {\r\n    def: ɵViewDefinition;\r\n    root: RootData;\r\n    renderer: Renderer2;\r\n    parentNodeDef: NodeDef | null;\r\n    parent: ViewData | null;\r\n    viewContainerParent: ViewData | null;\r\n    component: any;\r\n    context: any;\r\n    nodes: {\r\n        [key: number]: NodeData;\r\n    };\r\n    state: ViewState;\r\n    oldValues: any[];\r\n    disposables: DisposableFn[] | null;\r\n    initIndex: number;\r\n}\r\n\r\ndeclare interface ViewDefinitionFactory extends DefinitionFactory<ɵViewDefinition> {\r\n}\r\n\r\n\r\n/**\r\n * Defines template and style encapsulation options available for Component's {@link Component}.\r\n *\r\n * See {@link Component#encapsulation encapsulation}.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * {@example core/ts/metadata/encapsulation.ts region='longform'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare enum ViewEncapsulation {\r\n    /**\r\n     * Emulate `Native` scoping of styles by adding an attribute containing surrogate id to the Host\r\n     * Element and pre-processing the style rules provided via {@link Component#styles styles} or\r\n     * {@link Component#styleUrls styleUrls}, and adding the new Host Element attribute to all\r\n     * selectors.\r\n     *\r\n     * This is the default option.\r\n     */\r\n    Emulated = 0,\r\n    /**\r\n     * Don't provide any template or style encapsulation.\r\n     */\r\n    None = 2,\r\n    /**\r\n     * Use Shadow DOM to encapsulate styles.\r\n     *\r\n     * For the DOM this means using modern [Shadow\r\n     * DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM) and\r\n     * creating a ShadowRoot for Component's Host Element.\r\n     */\r\n    ShadowDom = 3\r\n}\r\n\r\ndeclare enum ViewEncapsulation_2 {\r\n    Emulated = 0,\r\n    None = 2,\r\n    ShadowDom = 3\r\n}\r\n\r\ndeclare interface viewEngine_ChangeDetectorRef_interface extends ChangeDetectorRef {\r\n}\r\n\r\ndeclare interface ViewHandleEventFn {\r\n    (view: ViewData, nodeIndex: number, eventName: string, event: any): boolean;\r\n}\r\n\r\n/**\r\n * Definition of what a view queries function should look like.\r\n */\r\ndeclare type ViewQueriesFunction<T> = <U extends T>(rf: ɵRenderFlags, ctx: U) => void;\r\n\r\n/**\r\n * Represents an Angular [view](guide/glossary#view \"Definition\").\r\n *\r\n * @see {@link ChangeDetectorRef#usage-notes Change detection usage}\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class ViewRef extends ChangeDetectorRef {\r\n    /**\r\n     * Destroys this view and all of the data structures associated with it.\r\n     */\r\n    abstract destroy(): void;\r\n    /**\r\n     * Reports whether this view has been destroyed.\r\n     * @returns True after the `destroy()` method has been called, false otherwise.\r\n     */\r\n    abstract get destroyed(): boolean;\r\n    /**\r\n     * A lifecycle hook that provides additional developer-defined cleanup\r\n     * functionality for views.\r\n     * @param callback A handler function that cleans up developer-defined data\r\n     * associated with a view. Called when the `destroy()` method is invoked.\r\n     */\r\n    abstract onDestroy(callback: Function): any /** TODO #9100 */;\r\n}\r\n\r\ndeclare class ViewRef_2<T> implements EmbeddedViewRef<T>, InternalViewRef, viewEngine_ChangeDetectorRef_interface {\r\n    /**\r\n     * This represents the `LView` associated with the point where `ChangeDetectorRef` was\r\n     * requested.\r\n     *\r\n     * This may be different from `_lView` if the `_cdRefInjectingView` is an embedded view.\r\n     */\r\n    private _cdRefInjectingView?;\r\n    private _appRef;\r\n    private _attachedToViewContainer;\r\n    get rootNodes(): any[];\r\n    constructor(\r\n    /**\r\n     * This represents `LView` associated with the component when ViewRef is a ChangeDetectorRef.\r\n     *\r\n     * When ViewRef is created for a dynamic component, this also represents the `LView` for the\r\n     * component.\r\n     *\r\n     * For a \"regular\" ViewRef created for an embedded view, this is the `LView` for the embedded\r\n     * view.\r\n     *\r\n     * @internal\r\n     */\r\n    _lView: ɵangular_packages_core_core_ca, \r\n    /**\r\n     * This represents the `LView` associated with the point where `ChangeDetectorRef` was\r\n     * requested.\r\n     *\r\n     * This may be different from `_lView` if the `_cdRefInjectingView` is an embedded view.\r\n     */\r\n    _cdRefInjectingView?: ɵangular_packages_core_core_ca | undefined);\r\n    get context(): T;\r\n    set context(value: T);\r\n    get destroyed(): boolean;\r\n    destroy(): void;\r\n    onDestroy(callback: Function): void;\r\n    /**\r\n     * Marks a view and all of its ancestors dirty.\r\n     *\r\n     * This can be used to ensure an {@link ChangeDetectionStrategy#OnPush OnPush} component is\r\n     * checked when it needs to be re-rendered but the two normal triggers haven't marked it\r\n     * dirty (i.e. inputs haven't changed and events haven't fired in the view).\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on OnPush components -->\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * ```typescript\r\n     * @Component({\r\n     *   selector: 'app-root',\r\n     *   template: `Number of ticks: {{numberOfTicks}}`\r\n     *   changeDetection: ChangeDetectionStrategy.OnPush,\r\n     * })\r\n     * class AppComponent {\r\n     *   numberOfTicks = 0;\r\n     *\r\n     *   constructor(private ref: ChangeDetectorRef) {\r\n     *     setInterval(() => {\r\n     *       this.numberOfTicks++;\r\n     *       // the following is required, otherwise the view will not be updated\r\n     *       this.ref.markForCheck();\r\n     *     }, 1000);\r\n     *   }\r\n     * }\r\n     * ```\r\n     */\r\n    markForCheck(): void;\r\n    /**\r\n     * Detaches the view from the change detection tree.\r\n     *\r\n     * Detached views will not be checked during change detection runs until they are\r\n     * re-attached, even if they are dirty. `detach` can be used in combination with\r\n     * {@link ChangeDetectorRef#detectChanges detectChanges} to implement local change\r\n     * detection checks.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\r\n     * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * The following example defines a component with a large list of readonly data.\r\n     * Imagine the data changes constantly, many times per second. For performance reasons,\r\n     * we want to check and update the list every five seconds. We can do that by detaching\r\n     * the component's change detector and doing a local check every five seconds.\r\n     *\r\n     * ```typescript\r\n     * class DataProvider {\r\n     *   // in a real application the returned data will be different every time\r\n     *   get data() {\r\n     *     return [1,2,3,4,5];\r\n     *   }\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'giant-list',\r\n     *   template: `\r\n     *     <li *ngFor=\"let d of dataProvider.data\">Data {{d}}</li>\r\n     *   `,\r\n     * })\r\n     * class GiantList {\r\n     *   constructor(private ref: ChangeDetectorRef, private dataProvider: DataProvider) {\r\n     *     ref.detach();\r\n     *     setInterval(() => {\r\n     *       this.ref.detectChanges();\r\n     *     }, 5000);\r\n     *   }\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'app',\r\n     *   providers: [DataProvider],\r\n     *   template: `\r\n     *     <giant-list><giant-list>\r\n     *   `,\r\n     * })\r\n     * class App {\r\n     * }\r\n     * ```\r\n     */\r\n    detach(): void;\r\n    /**\r\n     * Re-attaches a view to the change detection tree.\r\n     *\r\n     * This can be used to re-attach views that were previously detached from the tree\r\n     * using {@link ChangeDetectorRef#detach detach}. Views are attached to the tree by default.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * The following example creates a component displaying `live` data. The component will detach\r\n     * its change detector from the main change detector tree when the component's live property\r\n     * is set to false.\r\n     *\r\n     * ```typescript\r\n     * class DataProvider {\r\n     *   data = 1;\r\n     *\r\n     *   constructor() {\r\n     *     setInterval(() => {\r\n     *       this.data = this.data * 2;\r\n     *     }, 500);\r\n     *   }\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'live-data',\r\n     *   inputs: ['live'],\r\n     *   template: 'Data: {{dataProvider.data}}'\r\n     * })\r\n     * class LiveData {\r\n     *   constructor(private ref: ChangeDetectorRef, private dataProvider: DataProvider) {}\r\n     *\r\n     *   set live(value) {\r\n     *     if (value) {\r\n     *       this.ref.reattach();\r\n     *     } else {\r\n     *       this.ref.detach();\r\n     *     }\r\n     *   }\r\n     * }\r\n     *\r\n     * @Component({\r\n     *   selector: 'app-root',\r\n     *   providers: [DataProvider],\r\n     *   template: `\r\n     *     Live Update: <input type=\"checkbox\" [(ngModel)]=\"live\">\r\n     *     <live-data [live]=\"live\"><live-data>\r\n     *   `,\r\n     * })\r\n     * class AppComponent {\r\n     *   live = true;\r\n     * }\r\n     * ```\r\n     */\r\n    reattach(): void;\r\n    /**\r\n     * Checks the view and its children.\r\n     *\r\n     * This can also be used in combination with {@link ChangeDetectorRef#detach detach} to implement\r\n     * local change detection checks.\r\n     *\r\n     * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->\r\n     * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * The following example defines a component with a large list of readonly data.\r\n     * Imagine, the data changes constantly, many times per second. For performance reasons,\r\n     * we want to check and update the list every five seconds.\r\n     *\r\n     * We can do that by detaching the component's change detector and doing a local change detection\r\n     * check every five seconds.\r\n     *\r\n     * See {@link ChangeDetectorRef#detach detach} for more information.\r\n     */\r\n    detectChanges(): void;\r\n    /**\r\n     * Checks the change detector and its children, and throws if any changes are detected.\r\n     *\r\n     * This is used in development mode to verify that running change detection doesn't\r\n     * introduce other changes.\r\n     */\r\n    checkNoChanges(): void;\r\n    attachToViewContainerRef(): void;\r\n    detachFromAppRef(): void;\r\n    attachToAppRef(appRef: ViewRefTracker): void;\r\n}\r\n\r\n/**\r\n * Interface for tracking root `ViewRef`s in `ApplicationRef`.\r\n *\r\n * NOTE: Importing `ApplicationRef` here directly creates circular dependency, which is why we have\r\n * a subset of the `ApplicationRef` interface `ViewRefTracker` here.\r\n */\r\ndeclare interface ViewRefTracker {\r\n    detachView(viewRef: ViewRef): void;\r\n}\r\n\r\n/**\r\n * Bitmask of states\r\n */\r\ndeclare const enum ViewState {\r\n    BeforeFirstCheck = 1,\r\n    FirstCheck = 2,\r\n    Attached = 4,\r\n    ChecksEnabled = 8,\r\n    IsProjectedView = 16,\r\n    CheckProjectedView = 32,\r\n    CheckProjectedViews = 64,\r\n    Destroyed = 128,\r\n    InitState_Mask = 1792,\r\n    InitState_BeforeInit = 0,\r\n    InitState_CallingOnInit = 256,\r\n    InitState_CallingAfterContentInit = 512,\r\n    InitState_CallingAfterViewInit = 768,\r\n    InitState_AfterInit = 1024,\r\n    CatDetectChanges = 12,\r\n    CatInit = 13\r\n}\r\n\r\ndeclare interface ViewUpdateFn {\r\n    (check: NodeCheckFn, view: ViewData): void;\r\n}\r\n\r\n/**\r\n * Indicates that the result of a {@link Pipe} transformation has changed even though the\r\n * reference has not changed.\r\n *\r\n * Wrapped values are unwrapped automatically during the change detection, and the unwrapped value\r\n * is stored.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * if (this._latestValue === this._latestReturnedValue) {\r\n *    return this._latestReturnedValue;\r\n *  } else {\r\n *    this._latestReturnedValue = this._latestValue;\r\n *    return WrappedValue.wrap(this._latestValue); // this will force update\r\n *  }\r\n * ```\r\n *\r\n * @publicApi\r\n * @deprecated from v10 stop using. (No replacement, deemed unnecessary.)\r\n */\r\nexport declare class WrappedValue {\r\n    /** @deprecated from 5.3, use `unwrap()` instead - will switch to protected */\r\n    wrapped: any;\r\n    constructor(value: any);\r\n    /** Creates a wrapped value. */\r\n    static wrap(value: any): WrappedValue;\r\n    /**\r\n     * Returns the underlying value of a wrapped value.\r\n     * Returns the given `value` when it is not wrapped.\r\n     **/\r\n    static unwrap(value: any): any;\r\n    /** Returns true if `value` is a wrapped value. */\r\n    static isWrapped(value: any): value is WrappedValue;\r\n}\r\n\r\n/**\r\n * Sanitizes the given unsafe, untrusted HTML fragment, and returns HTML text that is safe to add to\r\n * the DOM in a browser environment.\r\n */\r\nexport declare function ɵ_sanitizeHtml(defaultDoc: any, unsafeHtmlInput: string): TrustedHTML | string;\r\n\r\n\r\nexport declare function ɵ_sanitizeUrl(url: string): string;\r\n\r\nexport declare const ɵALLOW_MULTIPLE_PLATFORMS: InjectionToken<boolean>;\r\n\r\nexport declare function ɵallowSanitizationBypassAndThrow(value: any, type: ɵBypassType.Html): value is ɵSafeHtml;\r\n\r\nexport declare function ɵallowSanitizationBypassAndThrow(value: any, type: ɵBypassType.ResourceUrl): value is ɵSafeResourceUrl;\r\n\r\nexport declare function ɵallowSanitizationBypassAndThrow(value: any, type: ɵBypassType.Script): value is ɵSafeScript;\r\n\r\nexport declare function ɵallowSanitizationBypassAndThrow(value: any, type: ɵBypassType.Style): value is ɵSafeStyle;\r\n\r\nexport declare function ɵallowSanitizationBypassAndThrow(value: any, type: ɵBypassType.Url): value is ɵSafeUrl;\r\n\r\nexport declare function ɵallowSanitizationBypassAndThrow(value: any, type: ɵBypassType): boolean;\r\n\r\nexport declare function ɵand(flags: ɵNodeFlags, matchedQueriesDsl: null | [string | number, ɵQueryValueType][], ngContentIndex: null | number, childCount: number, handleEvent?: null | ElementHandleEventFn, templateFactory?: ViewDefinitionFactory): NodeDef;\r\n\r\n/** Checks whether a function is wrapped by a `forwardRef`. */\r\nexport declare function ɵangular_packages_core_core_a(fn: any): fn is () => any;\r\n\r\nexport declare function ɵangular_packages_core_core_b<T>(token: ProviderToken<T>): T;\r\n\r\nexport declare function ɵangular_packages_core_core_b<T>(token: ProviderToken<T>, flags?: InjectFlags): T | null;\r\n\r\n/**\r\n * Schedule work at next available slot.\r\n *\r\n * In Ivy this is just `requestAnimationFrame`. For compatibility reasons when bootstrapped\r\n * using `platformRef.bootstrap` we need to use `NgZone.onStable` as the scheduling mechanism.\r\n * This overrides the scheduling mechanism in Ivy to `NgZone.onStable`.\r\n *\r\n * @param ngZone NgZone to use for scheduling.\r\n */\r\nexport declare function ɵangular_packages_core_core_ba(ngZone: NgZone): (fn: () => void) => void;\r\n\r\n/**\r\n * USD currency code that the application uses by default for CurrencyPipe when no\r\n * DEFAULT_CURRENCY_CODE is provided.\r\n */\r\nexport declare const ɵangular_packages_core_core_bb = \"USD\";\r\n\r\nexport declare function ɵangular_packages_core_core_bc(checkIndex: number, flags: ɵNodeFlags, matchedQueriesDsl: [string | number, ɵQueryValueType][] | null, childCount: number, token: any, value: any, deps: ([ɵDepFlags, any] | any)[], bindings?: BindingDef[], outputs?: OutputDef[]): NodeDef;\r\n\r\nexport declare abstract class ɵangular_packages_core_core_bd {\r\n    abstract get view(): ViewData;\r\n    abstract get nodeIndex(): number | null;\r\n    abstract get injector(): Injector;\r\n    abstract get component(): any;\r\n    abstract get providerTokens(): any[];\r\n    abstract get references(): {\r\n        [key: string]: any;\r\n    };\r\n    abstract get context(): any;\r\n    abstract get componentRenderElement(): any;\r\n    abstract get renderNode(): any;\r\n    abstract logError(console: Console, ...values: any[]): void;\r\n}\r\n\r\nexport declare function ɵangular_packages_core_core_be<T>(definition: ɵDirectiveDef<T>): typeof rememberChangeHistoryAndInvokeOnChangesHook;\r\n\r\n/**\r\n * A change detection scheduler token for {@link RootContext}. This token is the default value used\r\n * for the default `RootContext` found in the {@link ROOT_CONTEXT} token.\r\n */\r\nexport declare const ɵangular_packages_core_core_bf: InjectionToken<(fn: () => void) => void>;\r\n\r\n/**\r\n * Inject static attribute value into directive constructor.\r\n *\r\n * This method is used with `factory` functions which are generated as part of\r\n * `defineDirective` or `defineComponent`. The method retrieves the static value\r\n * of an attribute. (Dynamic attributes are not supported since they are not resolved\r\n *  at the time of injection and can change over time.)\r\n *\r\n * # Example\r\n * Given:\r\n * ```\r\n * @Component(...)\r\n * class MyComponent {\r\n *   constructor(@Attribute('title') title: string) { ... }\r\n * }\r\n * ```\r\n * When instantiated with\r\n * ```\r\n * <my-component title=\"Hello\"></my-component>\r\n * ```\r\n *\r\n * Then factory method generated is:\r\n * ```\r\n * MyComponent.ɵcmp = defineComponent({\r\n *   factory: () => new MyComponent(injectAttribute('title'))\r\n *   ...\r\n * })\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare function ɵangular_packages_core_core_bg(tNode: TNode, attrNameToInject: string): string | null;\r\n\r\n/**\r\n * Return the current `LView`.\r\n */\r\nexport declare function ɵangular_packages_core_core_bh(): ɵangular_packages_core_core_ca;\r\n\r\nexport declare function ɵangular_packages_core_core_bi(): number;\r\n\r\nexport declare function ɵangular_packages_core_core_bj<T = any>(level: number): T;\r\n\r\n/** Static data for an element  */\r\nexport declare interface ɵangular_packages_core_core_bk extends TNode {\r\n    /** Index in the data[] array */\r\n    index: number;\r\n    child: ɵangular_packages_core_core_bk | TTextNode | TElementContainerNode | TContainerNode | TProjectionNode | null;\r\n    /**\r\n     * Element nodes will have parents unless they are the first node of a component or\r\n     * embedded view (which means their parent is in a different view and must be\r\n     * retrieved using viewData[HOST_NODE]).\r\n     */\r\n    parent: ɵangular_packages_core_core_bk | TElementContainerNode | null;\r\n    tViews: null;\r\n    /**\r\n     * If this is a component TNode with projection, this will be an array of projected\r\n     * TNodes or native nodes (see TNode.projection for more info). If it's a regular element node\r\n     * or a component without projection, it will be null.\r\n     */\r\n    projection: (TNode | RNode[])[] | null;\r\n    /**\r\n     * Stores TagName\r\n     */\r\n    value: string;\r\n}\r\n\r\n/**\r\n * If the value of the provided exp has changed, calls the pure function to return\r\n * an updated value. Or if the value has not changed, returns cached value.\r\n *\r\n * @param lView LView in which the function is being executed.\r\n * @param bindingRoot Binding root index.\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn Function that returns an updated value\r\n * @param exp Updated expression value\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n */\r\nexport declare function ɵangular_packages_core_core_bl(lView: ɵangular_packages_core_core_ca, bindingRoot: number, slotOffset: number, pureFn: (v: any) => any, exp: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param lView LView in which the function is being executed.\r\n * @param bindingRoot Binding root index.\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n */\r\nexport declare function ɵangular_packages_core_core_bm(lView: ɵangular_packages_core_core_ca, bindingRoot: number, slotOffset: number, pureFn: (v1: any, v2: any) => any, exp1: any, exp2: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param lView LView in which the function is being executed.\r\n * @param bindingRoot Binding root index.\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n */\r\nexport declare function ɵangular_packages_core_core_bn(lView: ɵangular_packages_core_core_ca, bindingRoot: number, slotOffset: number, pureFn: (v1: any, v2: any, v3: any) => any, exp1: any, exp2: any, exp3: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param lView LView in which the function is being executed.\r\n * @param bindingRoot Binding root index.\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param exp4\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n */\r\nexport declare function ɵangular_packages_core_core_bo(lView: ɵangular_packages_core_core_ca, bindingRoot: number, slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, thisArg?: any): any;\r\n\r\n/**\r\n * pureFunction instruction that can support any number of bindings.\r\n *\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param lView LView in which the function is being executed.\r\n * @param bindingRoot Binding root index.\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn A pure function that takes binding values and builds an object or array\r\n * containing those values.\r\n * @param exps An array of binding values\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n */\r\nexport declare function ɵangular_packages_core_core_bp(lView: ɵangular_packages_core_core_ca, bindingRoot: number, slotOffset: number, pureFn: (...v: any[]) => any, exps: any[], thisArg?: any): any;\r\n\r\n/**\r\n * Detects which sanitizer to use for URL property, based on tag name and prop name.\r\n *\r\n * The rules are based on the RESOURCE_URL context config from\r\n * `packages/compiler/src/schema/dom_security_schema.ts`.\r\n * If tag and prop names don't match Resource URL schema, use URL sanitizer.\r\n */\r\nexport declare function ɵangular_packages_core_core_bq(tag: string, prop: string): typeof ɵɵsanitizeResourceUrl;\r\n\r\nexport declare function ɵangular_packages_core_core_br(name: string, props?: (...args: any[]) => any, parentClass?: any, additionalProcessing?: (target: any, name: string, ...args: any[]) => void): any;\r\n\r\nexport declare function ɵangular_packages_core_core_bs(name: string, props?: (...args: any[]) => any, parentClass?: any): any;\r\n\r\n\r\n/**\r\n * Special flag indicating that a decorator is of type `Inject`. It's used to make `Inject`\r\n * decorator tree-shakable (so we don't have to rely on the `instanceof` checks).\r\n * Note: this flag is not included into the `InjectFlags` since it's an internal-only API.\r\n */\r\nexport declare const enum ɵangular_packages_core_core_bt {\r\n    Inject = -1\r\n}\r\n\r\n/**\r\n * This enum is an exact copy of the `InjectFlags` enum above, but the difference is that this is a\r\n * const enum, so actual enum values would be inlined in generated code. The `InjectFlags` enum can\r\n * be turned into a const enum when ViewEngine is removed (see TODO at the `InjectFlags` enum\r\n * above). The benefit of inlining is that we can use these flags at the top level without affecting\r\n * tree-shaking (see \"no-toplevel-property-access\" tslint rule for more info).\r\n * Keep this enum in sync with `InjectFlags` enum above.\r\n */\r\nexport declare const enum ɵangular_packages_core_core_bu {\r\n    /** Check self and check parent injector if needed */\r\n    Default = 0,\r\n    /**\r\n     * Specifies that an injector should retrieve a dependency from any injector until reaching the\r\n     * host element of the current component. (Only used with Element Injector)\r\n     */\r\n    Host = 1,\r\n    /** Don't ascend to ancestors of the node requesting injection. */\r\n    Self = 2,\r\n    /** Skip the node that is requesting injection. */\r\n    SkipSelf = 4,\r\n    /** Inject `defaultValue` instead if token not found. */\r\n    Optional = 8,\r\n    /**\r\n     * This token is being injected into a pipe.\r\n     *\r\n     * This flag is intentionally not in the public facing `InjectFlags` because it is only added by\r\n     * the compiler and is not a developer applicable flag.\r\n     */\r\n    ForPipe = 16\r\n}\r\n\r\n\r\nexport declare function ɵangular_packages_core_core_bv<T>(objWithPropertyToExtract: T): string;\r\n\r\nexport declare class ɵangular_packages_core_core_bw implements Injector {\r\n    get(token: any, notFoundValue?: any): any;\r\n}\r\n\r\nexport declare function ɵangular_packages_core_core_bx(): (<T>(token: ProviderToken<T>, flags?: InjectFlags | undefined) => T | null) | undefined;\r\n\r\n\r\n/**\r\n * Special markers which can be left on `Type.__NG_ELEMENT_ID__` which are used by the Ivy's\r\n * `NodeInjector`. Usually these markers contain factory functions. But in case of this special\r\n * marker we can't leave behind a function because it would create tree shaking problem.\r\n *\r\n * Currently only `Injector` is special.\r\n *\r\n * NOTE: the numbers here must be negative, because positive numbers are used as IDs for bloom\r\n * filter.\r\n */\r\nexport declare const enum ɵangular_packages_core_core_by {\r\n    /**\r\n     * Marks that the current type is `Injector`\r\n     */\r\n    Injector = -1\r\n}\r\n\r\n/**\r\n * Retrieve an `RNode` for a given `TNode` and `LView`.\r\n *\r\n * This function guarantees in dev mode to retrieve a non-null `RNode`.\r\n *\r\n * @param tNode\r\n * @param lView\r\n */\r\nexport declare function ɵangular_packages_core_core_bz(tNode: TNode, lView: ɵangular_packages_core_core_ca): RNode;\r\n\r\n/**\r\n * Attaches a given InjectFlag to a given decorator using monkey-patching.\r\n * Since DI decorators can be used in providers `deps` array (when provider is configured using\r\n * `useFactory`) without initialization (e.g. `Host`) and as an instance (e.g. `new Host()`), we\r\n * attach the flag to make it available both as a static property and as a field on decorator\r\n * instance.\r\n *\r\n * @param decorator Provided DI decorator.\r\n * @param flag InjectFlag that should be applied.\r\n */\r\nexport declare function ɵangular_packages_core_core_c(decorator: any, flag: ɵangular_packages_core_core_bu | ɵangular_packages_core_core_bt): any;\r\n\r\n/**\r\n * `LView` stores all of the information needed to process the instructions as\r\n * they are invoked from the template. Each embedded view and component view has its\r\n * own `LView`. When processing a particular view, we set the `viewData` to that\r\n * `LView`. When that view is done processing, the `viewData` is set back to\r\n * whatever the original `viewData` was before (the parent `LView`).\r\n *\r\n * Keeping separate state for each view facilities view insertion / deletion, so we\r\n * don't have to edit the data array based on which views are present.\r\n */\r\nexport declare interface ɵangular_packages_core_core_ca extends Array<any> {\r\n    /**\r\n     * Human readable representation of the `LView`.\r\n     *\r\n     * NOTE: This property only exists if `ngDevMode` is set to `true` and it is not present in\r\n     * production. Its presence is purely to help debug issue in development, and should not be relied\r\n     * on in production application.\r\n     */\r\n    debug?: LViewDebug;\r\n    /**\r\n     * The node into which this `LView` is inserted.\r\n     */\r\n    [HOST]: RElement | null;\r\n    /**\r\n     * The static data for this view. We need a reference to this so we can easily walk up the\r\n     * node tree in DI and get the TView.data array associated with a node (where the\r\n     * directive defs are stored).\r\n     */\r\n    readonly [TVIEW]: TView;\r\n    /** Flags for this view. See LViewFlags for more info. */\r\n    [FLAGS]: LViewFlags;\r\n    /**\r\n     * This may store an {@link LView} or {@link LContainer}.\r\n     *\r\n     * `LView` - The parent view. This is needed when we exit the view and must restore the previous\r\n     * LView. Without this, the render method would have to keep a stack of\r\n     * views as it is recursively rendering templates.\r\n     *\r\n     * `LContainer` - The current view is part of a container, and is an embedded view.\r\n     */\r\n    [PARENT]: ɵangular_packages_core_core_ca | LContainer | null;\r\n    /**\r\n     *\r\n     * The next sibling LView or LContainer.\r\n     *\r\n     * Allows us to propagate between sibling view states that aren't in the same\r\n     * container. Embedded views already have a node.next, but it is only set for\r\n     * views in the same container. We need a way to link component views and views\r\n     * across containers as well.\r\n     */\r\n    [NEXT]: ɵangular_packages_core_core_ca | LContainer | null;\r\n    /** Queries active for this view - nodes from a view are reported to those queries. */\r\n    [QUERIES]: LQueries | null;\r\n    /**\r\n     * Store the `TNode` of the location where the current `LView` is inserted into.\r\n     *\r\n     * Given:\r\n     * ```\r\n     * <div>\r\n     *   <ng-template><span></span></ng-template>\r\n     * </div>\r\n     * ```\r\n     *\r\n     * We end up with two `TView`s.\r\n     * - `parent` `TView` which contains `<div><!-- anchor --></div>`\r\n     * - `child` `TView` which contains `<span></span>`\r\n     *\r\n     * Typically the `child` is inserted into the declaration location of the `parent`, but it can be\r\n     * inserted anywhere. Because it can be inserted anywhere it is not possible to store the\r\n     * insertion information in the `TView` and instead we must store it in the `LView[T_HOST]`.\r\n     *\r\n     * So to determine where is our insertion parent we would execute:\r\n     * ```\r\n     * const parentLView = lView[PARENT];\r\n     * const parentTNode = lView[T_HOST];\r\n     * const insertionParent = parentLView[parentTNode.index];\r\n     * ```\r\n     *\r\n     *\r\n     * If `null`, this is the root view of an application (root component is in this view) and it has\r\n     * no parents.\r\n     */\r\n    [T_HOST]: TNode | null;\r\n    /**\r\n     * When a view is destroyed, listeners need to be released and outputs need to be\r\n     * unsubscribed. This context array stores both listener functions wrapped with\r\n     * their context and output subscription instances for a particular view.\r\n     *\r\n     * These change per LView instance, so they cannot be stored on TView. Instead,\r\n     * TView.cleanup saves an index to the necessary context in this array.\r\n     *\r\n     * After `LView` is created it is possible to attach additional instance specific functions at the\r\n     * end of the `lView[CLENUP]` because we know that no more `T` level cleanup functions will be\r\n     * addeded here.\r\n     */\r\n    [CLEANUP]: any[] | null;\r\n    /**\r\n     * - For dynamic views, this is the context with which to render the template (e.g.\r\n     *   `NgForContext`), or `{}` if not defined explicitly.\r\n     * - For root view of the root component the context contains change detection data.\r\n     * - For non-root components, the context is the component instance,\r\n     * - For inline views, the context is null.\r\n     */\r\n    [CONTEXT]: {} | RootContext | null;\r\n    /** An optional Module Injector to be used as fall back after Element Injectors are consulted. */\r\n    readonly [INJECTOR_2]: Injector | null;\r\n    /** Factory to be used for creating Renderer. */\r\n    [RENDERER_FACTORY]: RendererFactory3;\r\n    /** Renderer to be used for this view. */\r\n    [RENDERER]: Renderer3;\r\n    /** An optional custom sanitizer. */\r\n    [SANITIZER]: Sanitizer | null;\r\n    /**\r\n     * Reference to the first LView or LContainer beneath this LView in\r\n     * the hierarchy.\r\n     *\r\n     * Necessary to store this so views can traverse through their nested views\r\n     * to remove listeners and call onDestroy callbacks.\r\n     */\r\n    [CHILD_HEAD]: ɵangular_packages_core_core_ca | LContainer | null;\r\n    /**\r\n     * The last LView or LContainer beneath this LView in the hierarchy.\r\n     *\r\n     * The tail allows us to quickly add a new state to the end of the view list\r\n     * without having to propagate starting from the first child.\r\n     */\r\n    [CHILD_TAIL]: ɵangular_packages_core_core_ca | LContainer | null;\r\n    /**\r\n     * View where this view's template was declared.\r\n     *\r\n     * The template for a dynamically created view may be declared in a different view than\r\n     * it is inserted. We already track the \"insertion view\" (view where the template was\r\n     * inserted) in LView[PARENT], but we also need access to the \"declaration view\"\r\n     * (view where the template was declared). Otherwise, we wouldn't be able to call the\r\n     * view's template function with the proper contexts. Context should be inherited from\r\n     * the declaration view tree, not the insertion view tree.\r\n     *\r\n     * Example (AppComponent template):\r\n     *\r\n     * <ng-template #foo></ng-template>       <-- declared here -->\r\n     * <some-comp [tpl]=\"foo\"></some-comp>    <-- inserted inside this component -->\r\n     *\r\n     * The <ng-template> above is declared in the AppComponent template, but it will be passed into\r\n     * SomeComp and inserted there. In this case, the declaration view would be the AppComponent,\r\n     * but the insertion view would be SomeComp. When we are removing views, we would want to\r\n     * traverse through the insertion view to clean up listeners. When we are calling the\r\n     * template function during change detection, we need the declaration view to get inherited\r\n     * context.\r\n     */\r\n    [DECLARATION_VIEW]: ɵangular_packages_core_core_ca | null;\r\n    /**\r\n     * Points to the declaration component view, used to track transplanted `LView`s.\r\n     *\r\n     * See: `DECLARATION_VIEW` which points to the actual `LView` where it was declared, whereas\r\n     * `DECLARATION_COMPONENT_VIEW` points to the component which may not be same as\r\n     * `DECLARATION_VIEW`.\r\n     *\r\n     * Example:\r\n     * ```\r\n     * <#VIEW #myComp>\r\n     *  <div *ngIf=\"true\">\r\n     *   <ng-template #myTmpl>...</ng-template>\r\n     *  </div>\r\n     * </#VIEW>\r\n     * ```\r\n     * In the above case `DECLARATION_VIEW` for `myTmpl` points to the `LView` of `ngIf` whereas\r\n     * `DECLARATION_COMPONENT_VIEW` points to `LView` of the `myComp` which owns the template.\r\n     *\r\n     * The reason for this is that all embedded views are always check-always whereas the component\r\n     * view can be check-always or on-push. When we have a transplanted view it is important to\r\n     * determine if we have transplanted a view from check-always declaration to on-push insertion\r\n     * point. In such a case the transplanted view needs to be added to the `LContainer` in the\r\n     * declared `LView` and CD during the declared view CD (in addition to the CD at the insertion\r\n     * point.) (Any transplanted views which are intra Component are of no interest because the CD\r\n     * strategy of declaration and insertion will always be the same, because it is the same\r\n     * component.)\r\n     *\r\n     * Queries already track moved views in `LView[DECLARATION_LCONTAINER]` and\r\n     * `LContainer[MOVED_VIEWS]`. However the queries also track `LView`s which moved within the same\r\n     * component `LView`. Transplanted views are a subset of moved views, and we use\r\n     * `DECLARATION_COMPONENT_VIEW` to differentiate them. As in this example.\r\n     *\r\n     * Example showing intra component `LView` movement.\r\n     * ```\r\n     * <#VIEW #myComp>\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     * </#VIEW>\r\n     * ```\r\n     * The `thenBlock` and `elseBlock` is moved but not transplanted.\r\n     *\r\n     * Example showing inter component `LView` movement (transplanted view).\r\n     * ```\r\n     * <#VIEW #myComp>\r\n     *   <ng-template #myTmpl>...</ng-template>\r\n     *   <insertion-component [template]=\"myTmpl\"></insertion-component>\r\n     * </#VIEW>\r\n     * ```\r\n     * In the above example `myTmpl` is passed into a different component. If `insertion-component`\r\n     * instantiates `myTmpl` and `insertion-component` is on-push then the `LContainer` needs to be\r\n     * marked as containing transplanted views and those views need to be CD as part of the\r\n     * declaration CD.\r\n     *\r\n     *\r\n     * When change detection runs, it iterates over `[MOVED_VIEWS]` and CDs any child `LView`s where\r\n     * the `DECLARATION_COMPONENT_VIEW` of the current component and the child `LView` does not match\r\n     * (it has been transplanted across components.)\r\n     *\r\n     * Note: `[DECLARATION_COMPONENT_VIEW]` points to itself if the LView is a component view (the\r\n     *       simplest / most common case).\r\n     *\r\n     * see also:\r\n     *   - https://hackmd.io/@mhevery/rJUJsvv9H write up of the problem\r\n     *   - `LContainer[HAS_TRANSPLANTED_VIEWS]` which marks which `LContainer` has transplanted views.\r\n     *   - `LContainer[TRANSPLANT_HEAD]` and `LContainer[TRANSPLANT_TAIL]` storage for transplanted\r\n     *   - `LView[DECLARATION_LCONTAINER]` similar problem for queries\r\n     *   - `LContainer[MOVED_VIEWS]` similar problem for queries\r\n     */\r\n    [DECLARATION_COMPONENT_VIEW]: ɵangular_packages_core_core_ca;\r\n    /**\r\n     * A declaration point of embedded views (ones instantiated based on the content of a\r\n     * <ng-template>), null for other types of views.\r\n     *\r\n     * We need to track all embedded views created from a given declaration point so we can prepare\r\n     * query matches in a proper order (query matches are ordered based on their declaration point and\r\n     * _not_ the insertion point).\r\n     */\r\n    [DECLARATION_LCONTAINER]: LContainer | null;\r\n    /**\r\n     * More flags for this view. See PreOrderHookFlags for more info.\r\n     */\r\n    [PREORDER_HOOK_FLAGS]: PreOrderHookFlags;\r\n    /**\r\n     * The number of direct transplanted views which need a refresh or have descendants themselves\r\n     * that need a refresh but have not marked their ancestors as Dirty. This tells us that during\r\n     * change detection we should still descend to find those children to refresh, even if the parents\r\n     * are not `Dirty`/`CheckAlways`.\r\n     */\r\n    [TRANSPLANTED_VIEWS_TO_REFRESH]: number;\r\n}\r\n\r\n/**\r\n * Returns the `RootContext` instance that is associated with\r\n * the application where the target is situated. It does this by walking the parent views until it\r\n * gets to the root view, then getting the context off of that.\r\n *\r\n * @param viewOrComponent the `LView` or component to get the root context for.\r\n */\r\nexport declare function ɵangular_packages_core_core_cb(viewOrComponent: ɵangular_packages_core_core_ca | {}): RootContext;\r\n\r\n\r\n/**\r\n * Handles message string post-processing for internationalization.\r\n *\r\n * Handles message string post-processing by transforming it from intermediate\r\n * format (that might contain some markers that we need to replace) to the final\r\n * form, consumable by i18nStart instruction. Post processing steps include:\r\n *\r\n * 1. Resolve all multi-value cases (like [�*1:1��#2:1�|�#4:1�|�5�])\r\n * 2. Replace all ICU vars (like \"VAR_PLURAL\")\r\n * 3. Replace all placeholders used inside ICUs in a form of {PLACEHOLDER}\r\n * 4. Replace all ICU references with corresponding values (like �ICU_EXP_ICU_1�)\r\n *    in case multiple ICUs have the same placeholder name\r\n *\r\n * @param message Raw translation string for post processing\r\n * @param replacements Set of replacements that should be applied\r\n *\r\n * @returns Transformed string that can be consumed by i18nStart instruction\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵangular_packages_core_core_cc(message: string, replacements?: {\r\n    [key: string]: (string | string[]);\r\n}): string;\r\n\r\nexport declare class ɵangular_packages_core_core_d implements ReflectiveInjector {\r\n    private static INJECTOR_KEY;\r\n    readonly parent: Injector | null;\r\n    keyIds: number[];\r\n    objs: any[];\r\n    /**\r\n     * Private\r\n     */\r\n    constructor(_providers: ResolvedReflectiveProvider[], _parent?: Injector);\r\n    get(token: any, notFoundValue?: any): any;\r\n    resolveAndCreateChild(providers: Provider[]): ReflectiveInjector;\r\n    createChildFromResolved(providers: ResolvedReflectiveProvider[]): ReflectiveInjector;\r\n    resolveAndInstantiate(provider: Provider): any;\r\n    instantiateResolved(provider: ResolvedReflectiveProvider): any;\r\n    getProviderAtIndex(index: number): ResolvedReflectiveProvider;\r\n    private _getMaxNumberOfObjects;\r\n    private _instantiateProvider;\r\n    private _instantiate;\r\n    private _getByReflectiveDependency;\r\n    private _getByKey;\r\n    private _getObjByKeyId;\r\n    get displayName(): string;\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * `Dependency` is used by the framework to extend DI.\r\n * This is internal to Angular and should not be used directly.\r\n */\r\nexport declare class ɵangular_packages_core_core_e {\r\n    key: ReflectiveKey;\r\n    optional: boolean;\r\n    visibility: Self | SkipSelf | null;\r\n    constructor(key: ReflectiveKey, optional: boolean, visibility: Self | SkipSelf | null);\r\n    static fromKey(key: ReflectiveKey): ɵangular_packages_core_core_e;\r\n}\r\n\r\n/**\r\n * Resolve a list of Providers.\r\n */\r\nexport declare function ɵangular_packages_core_core_f(providers: Provider[]): ResolvedReflectiveProvider[];\r\n\r\nexport declare function ɵangular_packages_core_core_g(): string;\r\n\r\n/** Injects a Renderer2 for the current component. */\r\nexport declare function ɵangular_packages_core_core_h(): Renderer2;\r\n\r\n/**\r\n * Creates an ElementRef from the most recent node.\r\n *\r\n * @returns The ElementRef instance to use\r\n */\r\nexport declare function ɵangular_packages_core_core_i(): ElementRef;\r\n\r\n/**\r\n * Creates an ElementRef given a node.\r\n *\r\n * @param tNode The node for which you'd like an ElementRef\r\n * @param lView The view to which the node belongs\r\n * @returns The ElementRef instance to use\r\n */\r\nexport declare function ɵangular_packages_core_core_j(tNode: TNode, lView: ɵangular_packages_core_core_ca): ElementRef;\r\n\r\nexport declare function ɵangular_packages_core_core_k(id: string): NgModuleFactory<any>;\r\n\r\n/**\r\n * Creates a TemplateRef given a node.\r\n *\r\n * @returns The TemplateRef instance to use\r\n */\r\nexport declare function ɵangular_packages_core_core_l<T>(): TemplateRef<T> | null;\r\n\r\n/**\r\n * Creates a TemplateRef and stores it on the injector.\r\n *\r\n * @param hostTNode The node on which a TemplateRef is requested\r\n * @param hostLView The `LView` to which the node belongs\r\n * @returns The TemplateRef instance or null if we can't create a TemplateRef on a given node type\r\n */\r\nexport declare function ɵangular_packages_core_core_m<T>(hostTNode: TNode, hostLView: ɵangular_packages_core_core_ca): TemplateRef<T> | null;\r\n\r\n/**\r\n * Creates a ViewContainerRef and stores it on the injector. Or, if the ViewContainerRef\r\n * already exists, retrieves the existing ViewContainerRef.\r\n *\r\n * @returns The ViewContainerRef instance to use\r\n */\r\nexport declare function ɵangular_packages_core_core_n(): ViewContainerRef;\r\n\r\nexport declare class ɵangular_packages_core_core_o {\r\n    readonly listeners: DebugEventListener[];\r\n    readonly parent: DebugElement | null;\r\n    readonly nativeNode: any;\r\n    private readonly _debugContext;\r\n    constructor(nativeNode: any, parent: DebugNode | null, _debugContext: ɵangular_packages_core_core_bd);\r\n    get injector(): Injector;\r\n    get componentInstance(): any;\r\n    get context(): any;\r\n    get references(): {\r\n        [key: string]: any;\r\n    };\r\n    get providerTokens(): any[];\r\n}\r\n\r\nexport declare class ɵangular_packages_core_core_p extends ɵangular_packages_core_core_o implements DebugElement {\r\n    readonly name: string;\r\n    readonly properties: {\r\n        [key: string]: any;\r\n    };\r\n    readonly attributes: {\r\n        [key: string]: string | null;\r\n    };\r\n    readonly classes: {\r\n        [key: string]: boolean;\r\n    };\r\n    readonly styles: {\r\n        [key: string]: string | null;\r\n    };\r\n    readonly childNodes: DebugNode[];\r\n    readonly nativeElement: any;\r\n    constructor(nativeNode: any, parent: any, _debugContext: ɵangular_packages_core_core_bd);\r\n    addChild(child: DebugNode): void;\r\n    removeChild(child: DebugNode): void;\r\n    insertChildrenAfter(child: DebugNode, newChildren: DebugNode[]): void;\r\n    insertBefore(refChild: DebugNode, newChild: DebugNode): void;\r\n    query(predicate: Predicate<DebugElement>): DebugElement;\r\n    queryAll(predicate: Predicate<DebugElement>): DebugElement[];\r\n    queryAllNodes(predicate: Predicate<DebugNode>): DebugNode[];\r\n    get children(): DebugElement[];\r\n    triggerEventHandler(eventName: string, eventObj: any): void;\r\n}\r\n\r\nexport declare function ɵangular_packages_core_core_q(nativeNode: any): DebugNode | null;\r\n\r\n/** Returns a ChangeDetectorRef (a.k.a. a ViewRef) */\r\nexport declare function ɵangular_packages_core_core_r(flags: InjectFlags): ChangeDetectorRef;\r\n\r\nexport declare class ɵangular_packages_core_core_s implements IterableDifferFactory {\r\n    constructor();\r\n    supports(obj: Object | null | undefined): boolean;\r\n    create<V>(trackByFn?: TrackByFunction<V>): DefaultIterableDiffer<V>;\r\n}\r\n\r\nexport declare class ɵangular_packages_core_core_t<K, V> implements KeyValueDifferFactory {\r\n    constructor();\r\n    supports(obj: any): boolean;\r\n    create<K, V>(): KeyValueDiffer<K, V>;\r\n}\r\n\r\nexport declare function ɵangular_packages_core_core_u(): IterableDiffers;\r\n\r\nexport declare function ɵangular_packages_core_core_v(): KeyValueDiffers;\r\n\r\nexport declare function ɵangular_packages_core_core_w(): IterableDiffers;\r\n\r\nexport declare function ɵangular_packages_core_core_x(): KeyValueDiffers;\r\n\r\nexport declare function ɵangular_packages_core_core_y(locale?: string): string;\r\n\r\n/**\r\n * A built-in [dependency injection token](guide/glossary#di-token)\r\n * that is used to configure the root injector for bootstrapping.\r\n */\r\nexport declare const ɵangular_packages_core_core_z: StaticProvider[];\r\n\r\n/**\r\n * Providers that generate a random `APP_ID_TOKEN`.\r\n * @publicApi\r\n */\r\nexport declare const ɵAPP_ID_RANDOM_PROVIDER: {\r\n    provide: InjectionToken<string>;\r\n    useFactory: typeof ɵangular_packages_core_core_g;\r\n    deps: any[];\r\n};\r\n\r\nexport declare const enum ɵArgumentType {\r\n    Inline = 0,\r\n    Dynamic = 1\r\n}\r\n\r\n/**\r\n * A set of marker values to be used in the attributes arrays. These markers indicate that some\r\n * items are not regular attributes and the processing should be adapted accordingly.\r\n */\r\nexport declare const enum ɵAttributeMarker {\r\n    /**\r\n     * An implicit marker which indicates that the value in the array are of `attributeKey`,\r\n     * `attributeValue` format.\r\n     *\r\n     * NOTE: This is implicit as it is the type when no marker is present in array. We indicate that\r\n     * it should not be present at runtime by the negative number.\r\n     */\r\n    ImplicitAttributes = -1,\r\n    /**\r\n     * Marker indicates that the following 3 values in the attributes array are:\r\n     * namespaceUri, attributeName, attributeValue\r\n     * in that order.\r\n     */\r\n    NamespaceURI = 0,\r\n    /**\r\n     * Signals class declaration.\r\n     *\r\n     * Each value following `Classes` designates a class name to include on the element.\r\n     * ## Example:\r\n     *\r\n     * Given:\r\n     * ```\r\n     * <div class=\"foo bar baz\">...<d/vi>\r\n     * ```\r\n     *\r\n     * the generated code is:\r\n     * ```\r\n     * var _c1 = [AttributeMarker.Classes, 'foo', 'bar', 'baz'];\r\n     * ```\r\n     */\r\n    Classes = 1,\r\n    /**\r\n     * Signals style declaration.\r\n     *\r\n     * Each pair of values following `Styles` designates a style name and value to include on the\r\n     * element.\r\n     * ## Example:\r\n     *\r\n     * Given:\r\n     * ```\r\n     * <div style=\"width:100px; height:200px; color:red\">...</div>\r\n     * ```\r\n     *\r\n     * the generated code is:\r\n     * ```\r\n     * var _c1 = [AttributeMarker.Styles, 'width', '100px', 'height'. '200px', 'color', 'red'];\r\n     * ```\r\n     */\r\n    Styles = 2,\r\n    /**\r\n     * Signals that the following attribute names were extracted from input or output bindings.\r\n     *\r\n     * For example, given the following HTML:\r\n     *\r\n     * ```\r\n     * <div moo=\"car\" [foo]=\"exp\" (bar)=\"doSth()\">\r\n     * ```\r\n     *\r\n     * the generated code is:\r\n     *\r\n     * ```\r\n     * var _c1 = ['moo', 'car', AttributeMarker.Bindings, 'foo', 'bar'];\r\n     * ```\r\n     */\r\n    Bindings = 3,\r\n    /**\r\n     * Signals that the following attribute names were hoisted from an inline-template declaration.\r\n     *\r\n     * For example, given the following HTML:\r\n     *\r\n     * ```\r\n     * <div *ngFor=\"let value of values; trackBy:trackBy\" dirA [dirB]=\"value\">\r\n     * ```\r\n     *\r\n     * the generated code for the `template()` instruction would include:\r\n     *\r\n     * ```\r\n     * ['dirA', '', AttributeMarker.Bindings, 'dirB', AttributeMarker.Template, 'ngFor', 'ngForOf',\r\n     * 'ngForTrackBy', 'let-value']\r\n     * ```\r\n     *\r\n     * while the generated code for the `element()` instruction inside the template function would\r\n     * include:\r\n     *\r\n     * ```\r\n     * ['dirA', '', AttributeMarker.Bindings, 'dirB']\r\n     * ```\r\n     */\r\n    Template = 4,\r\n    /**\r\n     * Signals that the following attribute is `ngProjectAs` and its value is a parsed\r\n     * `CssSelector`.\r\n     *\r\n     * For example, given the following HTML:\r\n     *\r\n     * ```\r\n     * <h1 attr=\"value\" ngProjectAs=\"[title]\">\r\n     * ```\r\n     *\r\n     * the generated code for the `element()` instruction would include:\r\n     *\r\n     * ```\r\n     * ['attr', 'value', AttributeMarker.ProjectAs, ['', 'title', '']]\r\n     * ```\r\n     */\r\n    ProjectAs = 5,\r\n    /**\r\n     * Signals that the following attribute will be translated by runtime i18n\r\n     *\r\n     * For example, given the following HTML:\r\n     *\r\n     * ```\r\n     * <div moo=\"car\" foo=\"value\" i18n-foo [bar]=\"binding\" i18n-bar>\r\n     * ```\r\n     *\r\n     * the generated code is:\r\n     *\r\n     * ```\r\n     * var _c1 = ['moo', 'car', AttributeMarker.I18n, 'foo', 'bar'];\r\n     */\r\n    I18n = 6\r\n}\r\n\r\nexport declare const enum ɵBindingFlags {\r\n    TypeElementAttribute = 1,\r\n    TypeElementClass = 2,\r\n    TypeElementStyle = 4,\r\n    TypeProperty = 8,\r\n    SyntheticProperty = 16,\r\n    SyntheticHostProperty = 32,\r\n    CatSyntheticProperty = 48,\r\n    Types = 15\r\n}\r\n\r\n/**\r\n * Mark `html` string as trusted.\r\n *\r\n * This function wraps the trusted string in `String` and brands it in a way which makes it\r\n * recognizable to {@link htmlSanitizer} to be trusted implicitly.\r\n *\r\n * @param trustedHtml `html` string which needs to be implicitly trusted.\r\n * @returns a `html` which has been branded to be implicitly trusted.\r\n */\r\nexport declare function ɵbypassSanitizationTrustHtml(trustedHtml: string): ɵSafeHtml;\r\n\r\n/**\r\n * Mark `url` string as trusted.\r\n *\r\n * This function wraps the trusted string in `String` and brands it in a way which makes it\r\n * recognizable to {@link resourceUrlSanitizer} to be trusted implicitly.\r\n *\r\n * @param trustedResourceUrl `url` string which needs to be implicitly trusted.\r\n * @returns a `url` which has been branded to be implicitly trusted.\r\n */\r\nexport declare function ɵbypassSanitizationTrustResourceUrl(trustedResourceUrl: string): ɵSafeResourceUrl;\r\n\r\n/**\r\n * Mark `script` string as trusted.\r\n *\r\n * This function wraps the trusted string in `String` and brands it in a way which makes it\r\n * recognizable to {@link scriptSanitizer} to be trusted implicitly.\r\n *\r\n * @param trustedScript `script` string which needs to be implicitly trusted.\r\n * @returns a `script` which has been branded to be implicitly trusted.\r\n */\r\nexport declare function ɵbypassSanitizationTrustScript(trustedScript: string): ɵSafeScript;\r\n\r\n/**\r\n * Mark `style` string as trusted.\r\n *\r\n * This function wraps the trusted string in `String` and brands it in a way which makes it\r\n * recognizable to {@link styleSanitizer} to be trusted implicitly.\r\n *\r\n * @param trustedStyle `style` string which needs to be implicitly trusted.\r\n * @returns a `style` hich has been branded to be implicitly trusted.\r\n */\r\nexport declare function ɵbypassSanitizationTrustStyle(trustedStyle: string): ɵSafeStyle;\r\n\r\n/**\r\n * Mark `url` string as trusted.\r\n *\r\n * This function wraps the trusted string in `String` and brands it in a way which makes it\r\n * recognizable to {@link urlSanitizer} to be trusted implicitly.\r\n *\r\n * @param trustedUrl `url` string which needs to be implicitly trusted.\r\n * @returns a `url`  which has been branded to be implicitly trusted.\r\n */\r\nexport declare function ɵbypassSanitizationTrustUrl(trustedUrl: string): ɵSafeUrl;\r\n\r\n\r\nexport declare const enum ɵBypassType {\r\n    Url = \"URL\",\r\n    Html = \"HTML\",\r\n    ResourceUrl = \"ResourceURL\",\r\n    Script = \"Script\",\r\n    Style = \"Style\"\r\n}\r\n\r\nexport declare function ɵccf(selector: string, componentType: Type<any>, viewDefFactory: ViewDefinitionFactory, inputs: {\r\n    [propName: string]: string;\r\n} | null, outputs: {\r\n    [propName: string]: string;\r\n}, ngContentSelectors: string[]): ComponentFactory<any>;\r\n\r\n/**\r\n * Defines the possible states of the default change detector.\r\n * @see `ChangeDetectorRef`\r\n */\r\nexport declare enum ɵChangeDetectorStatus {\r\n    /**\r\n     * A state in which, after calling `detectChanges()`, the change detector\r\n     * state becomes `Checked`, and must be explicitly invoked or reactivated.\r\n     */\r\n    CheckOnce = 0,\r\n    /**\r\n     * A state in which change detection is skipped until the change detector mode\r\n     * becomes `CheckOnce`.\r\n     */\r\n    Checked = 1,\r\n    /**\r\n     * A state in which change detection continues automatically until explicitly\r\n     * deactivated.\r\n     */\r\n    CheckAlways = 2,\r\n    /**\r\n     * A state in which a change detector sub tree is not a part of the main tree and\r\n     * should be skipped.\r\n     */\r\n    Detached = 3,\r\n    /**\r\n     * Indicates that the change detector encountered an error checking a binding\r\n     * or calling a directive lifecycle method and is now in an inconsistent state. Change\r\n     * detectors in this state do not detect changes.\r\n     */\r\n    Errored = 4,\r\n    /**\r\n     * Indicates that the change detector has been destroyed.\r\n     */\r\n    Destroyed = 5\r\n}\r\n\r\nexport declare function ɵclearOverrides(): void;\r\n\r\nexport declare function ɵclearResolutionOfComponentResourcesQueue(): Map<Type<any>, Component>;\r\n\r\nexport declare function ɵcmf(ngModuleType: Type<any>, bootstrapComponents: Type<any>[], defFactory: NgModuleDefinitionFactory): NgModuleFactory<any>;\r\n\r\nexport declare class ɵCodegenComponentFactoryResolver implements ComponentFactoryResolver {\r\n    private _parent;\r\n    private _ngModule;\r\n    private _factories;\r\n    constructor(factories: ComponentFactory<any>[], _parent: ComponentFactoryResolver, _ngModule: NgModuleRef<any>);\r\n    resolveComponentFactory<T>(component: {\r\n        new (...args: any[]): T;\r\n    }): ComponentFactory<T>;\r\n}\r\n\r\n/**\r\n * Compile an Angular component according to its decorator metadata, and patch the resulting\r\n * component def (ɵcmp) onto the component type.\r\n *\r\n * Compilation may be asynchronous (due to the need to resolve URLs for the component template or\r\n * other resources, for example). In the event that compilation is not immediate, `compileComponent`\r\n * will enqueue resource resolution into a global queue and will fail to return the `ɵcmp`\r\n * until the global queue has been resolved with a call to `resolveComponentResources`.\r\n */\r\nexport declare function ɵcompileComponent(type: Type<any>, metadata: Component): void;\r\n\r\n/**\r\n * Compile an Angular directive according to its decorator metadata, and patch the resulting\r\n * directive def onto the component type.\r\n *\r\n * In the event that compilation is not immediate, `compileDirective` will return a `Promise` which\r\n * will resolve when compilation completes and the directive becomes usable.\r\n */\r\nexport declare function ɵcompileDirective(type: Type<any>, directive: Directive | null): void;\r\n\r\n/**\r\n * Compiles a module in JIT mode.\r\n *\r\n * This function automatically gets called when a class has a `@NgModule` decorator.\r\n */\r\nexport declare function ɵcompileNgModule(moduleType: Type<any>, ngModule?: NgModule): void;\r\n\r\n/**\r\n * Compiles and adds the `ɵmod`, `ɵfac` and `ɵinj` properties to the module class.\r\n *\r\n * It's possible to compile a module via this API which will allow duplicate declarations in its\r\n * root.\r\n */\r\nexport declare function ɵcompileNgModuleDefs(moduleType: ɵNgModuleType, ngModule: NgModule, allowDuplicateDeclarationsInRoot?: boolean): void;\r\n\r\nexport declare function ɵcompileNgModuleFactory__POST_R3__<M>(injector: Injector, options: CompilerOptions, moduleType: Type<M>): Promise<NgModuleFactory<M>>;\r\n\r\nexport declare function ɵcompilePipe(type: Type<any>, meta: Pipe): void;\r\n\r\nexport declare const ɵCompiler_compileModuleAndAllComponentsAsync__POST_R3__: <T>(moduleType: Type<T>) => Promise<ModuleWithComponentFactories<T>>;\r\n\r\nexport declare const ɵCompiler_compileModuleAndAllComponentsSync__POST_R3__: <T>(moduleType: Type<T>) => ModuleWithComponentFactories<T>;\r\n\r\nexport declare const ɵCompiler_compileModuleAsync__POST_R3__: <T>(moduleType: Type<T>) => Promise<NgModuleFactory<T>>;\r\n\r\nexport declare const ɵCompiler_compileModuleSync__POST_R3__: <T>(moduleType: Type<T>) => NgModuleFactory<T>;\r\n\r\n/**\r\n * Runtime link information for Components.\r\n *\r\n * This is an internal data structure used by the render to link\r\n * components into templates.\r\n *\r\n * NOTE: Always use `defineComponent` function to create this object,\r\n * never create the object directly since the shape of this object\r\n * can change between versions.\r\n *\r\n * See: {@link defineComponent}\r\n */\r\nexport declare interface ɵComponentDef<T> extends ɵDirectiveDef<T> {\r\n    /**\r\n     * Runtime unique component ID.\r\n     */\r\n    readonly id: string;\r\n    /**\r\n     * The View template of the component.\r\n     */\r\n    readonly template: ComponentTemplate<T>;\r\n    /** Constants associated with the component's view. */\r\n    readonly consts: TConstantsOrFactory | null;\r\n    /**\r\n     * An array of `ngContent[selector]` values that were found in the template.\r\n     */\r\n    readonly ngContentSelectors?: string[];\r\n    /**\r\n     * A set of styles that the component needs to be present for component to render correctly.\r\n     */\r\n    readonly styles: string[];\r\n    /**\r\n     * The number of nodes, local refs, and pipes in this component template.\r\n     *\r\n     * Used to calculate the length of the component's LView array, so we\r\n     * can pre-fill the array and set the binding start index.\r\n     */\r\n    readonly decls: number;\r\n    /**\r\n     * The number of bindings in this component template (including pure fn bindings).\r\n     *\r\n     * Used to calculate the length of the component's LView array, so we\r\n     * can pre-fill the array and set the host binding start index.\r\n     */\r\n    readonly vars: number;\r\n    /**\r\n     * Query-related instructions for a component.\r\n     */\r\n    viewQuery: ViewQueriesFunction<T> | null;\r\n    /**\r\n     * The view encapsulation type, which determines how styles are applied to\r\n     * DOM elements. One of\r\n     * - `Emulated` (default): Emulate native scoping of styles.\r\n     * - `Native`: Use the native encapsulation mechanism of the renderer.\r\n     * - `ShadowDom`: Use modern [ShadowDOM](https://w3c.github.io/webcomponents/spec/shadow/) and\r\n     *   create a ShadowRoot for component's host element.\r\n     * - `None`: Do not provide any template or style encapsulation.\r\n     */\r\n    readonly encapsulation: ViewEncapsulation;\r\n    /**\r\n     * Defines arbitrary developer-defined data to be stored on a renderer instance.\r\n     * This is useful for renderers that delegate to other renderers.\r\n     */\r\n    readonly data: {\r\n        [kind: string]: any;\r\n    };\r\n    /** Whether or not this component's ChangeDetectionStrategy is OnPush */\r\n    readonly onPush: boolean;\r\n    /**\r\n     * Registry of directives and components that may be found in this view.\r\n     *\r\n     * The property is either an array of `DirectiveDef`s or a function which returns the array of\r\n     * `DirectiveDef`s. The function is necessary to be able to support forward declarations.\r\n     */\r\n    directiveDefs: DirectiveDefListOrFactory | null;\r\n    /**\r\n     * Registry of pipes that may be found in this view.\r\n     *\r\n     * The property is either an array of `PipeDefs`s or a function which returns the array of\r\n     * `PipeDefs`s. The function is necessary to be able to support forward declarations.\r\n     */\r\n    pipeDefs: PipeDefListOrFactory | null;\r\n    /**\r\n     * The set of schemas that declare elements to be allowed in the component's template.\r\n     */\r\n    schemas: SchemaMetadata[] | null;\r\n    /**\r\n     * Ivy runtime uses this place to store the computed tView for the component. This gets filled on\r\n     * the first run of component.\r\n     */\r\n    tView: TView | null;\r\n    /**\r\n     * Used to store the result of `noSideEffects` function so that it is not removed by closure\r\n     * compiler. The property should never be read.\r\n     */\r\n    readonly _?: unknown;\r\n}\r\n\r\n/**\r\n * A subclass of `Type` which has a static `ɵcmp`:`ComponentDef` field making it\r\n * consumable for rendering.\r\n */\r\nexport declare interface ɵComponentType<T> extends Type<T> {\r\n    ɵcmp: unknown;\r\n}\r\n\r\n\r\nexport declare class ɵConsole {\r\n    log(message: string): void;\r\n    warn(message: string): void;\r\n}\r\n\r\nexport declare function ɵCREATE_ATTRIBUTE_DECORATOR__POST_R3__(): AttributeDecorator;\r\n\r\n/**\r\n * Create a new `Injector` which is configured using a `defType` of `InjectorType<any>`s.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function ɵcreateInjector(defType: any, parent?: Injector | null, additionalProviders?: StaticProvider[] | null, name?: string): Injector;\r\n\r\nexport declare function ɵcrt(values: {\r\n    styles: (string | any[])[];\r\n    encapsulation: ViewEncapsulation;\r\n    data: {\r\n        [kind: string]: any[];\r\n    };\r\n}): RendererType2;\r\n\r\n/**\r\n * A list of CssSelectors.\r\n *\r\n * A directive or component can have multiple selectors. This type is used for\r\n * directive defs so any of the selectors in the list will match that directive.\r\n *\r\n * Original: 'form, [ngForm]'\r\n * Parsed: [['form'], ['', 'ngForm', '']]\r\n */\r\nexport declare type ɵCssSelectorList = CssSelector[];\r\n\r\n/**\r\n * Index of each value in currency data (used to describe CURRENCIES_EN in currencies.ts)\r\n */\r\nexport declare const enum ɵCurrencyIndex {\r\n    Symbol = 0,\r\n    SymbolNarrow = 1,\r\n    NbOfDigits = 2\r\n}\r\n\r\n/**\r\n * The locale id that the application is using by default (for translations and ICU expressions).\r\n */\r\nexport declare const ɵDEFAULT_LOCALE_ID = \"en-US\";\r\n\r\nexport declare const ɵdefaultIterableDiffers: IterableDiffers;\r\n\r\nexport declare const ɵdefaultKeyValueDiffers: KeyValueDiffers;\r\n\r\n/**\r\n * Bitmask for DI flags\r\n */\r\nexport declare const enum ɵDepFlags {\r\n    None = 0,\r\n    SkipSelf = 1,\r\n    Optional = 2,\r\n    Self = 4,\r\n    Value = 8\r\n}\r\n\r\n\r\n/**\r\n * Synchronously perform change detection on a component (and possibly its sub-components).\r\n *\r\n * This function triggers change detection in a synchronous way on a component.\r\n *\r\n * @param component The component which the change detection should be performed on.\r\n */\r\nexport declare function ɵdetectChanges(component: {}): void;\r\n\r\n\r\nexport declare function ɵdevModeEqual(a: any, b: any): boolean;\r\n\r\nexport declare function ɵdid(checkIndex: number, flags: ɵNodeFlags, matchedQueries: null | [string | number, ɵQueryValueType][], childCount: number, ctor: any, deps: ([ɵDepFlags, any] | any)[], props?: null | {\r\n    [name: string]: [number, string];\r\n}, outputs?: null | {\r\n    [name: string]: string;\r\n}): NodeDef;\r\n\r\n/**\r\n * Runtime link information for Directives.\r\n *\r\n * This is an internal data structure used by the render to link\r\n * directives into templates.\r\n *\r\n * NOTE: Always use `defineDirective` function to create this object,\r\n * never create the object directly since the shape of this object\r\n * can change between versions.\r\n *\r\n * @param Selector type metadata specifying the selector of the directive or component\r\n *\r\n * See: {@link defineDirective}\r\n */\r\nexport declare interface ɵDirectiveDef<T> {\r\n    /**\r\n     * A dictionary mapping the inputs' minified property names to their public API names, which\r\n     * are their aliases if any, or their original unminified property names\r\n     * (as in `@Input('alias') propertyName: any;`).\r\n     */\r\n    readonly inputs: {\r\n        [P in keyof T]: string;\r\n    };\r\n    /**\r\n     * @deprecated This is only here because `NgOnChanges` incorrectly uses declared name instead of\r\n     * public or minified name.\r\n     */\r\n    readonly declaredInputs: {\r\n        [P in keyof T]: string;\r\n    };\r\n    /**\r\n     * A dictionary mapping the outputs' minified property names to their public API names, which\r\n     * are their aliases if any, or their original unminified property names\r\n     * (as in `@Output('alias') propertyName: any;`).\r\n     */\r\n    readonly outputs: {\r\n        [P in keyof T]: string;\r\n    };\r\n    /**\r\n     * Function to create and refresh content queries associated with a given directive.\r\n     */\r\n    contentQueries: ContentQueriesFunction<T> | null;\r\n    /**\r\n     * Query-related instructions for a directive. Note that while directives don't have a\r\n     * view and as such view queries won't necessarily do anything, there might be\r\n     * components that extend the directive.\r\n     */\r\n    viewQuery: ViewQueriesFunction<T> | null;\r\n    /**\r\n     * Refreshes host bindings on the associated directive.\r\n     */\r\n    readonly hostBindings: HostBindingsFunction<T> | null;\r\n    /**\r\n     * The number of bindings in this directive `hostBindings` (including pure fn bindings).\r\n     *\r\n     * Used to calculate the length of the component's LView array, so we\r\n     * can pre-fill the array and set the host binding start index.\r\n     */\r\n    readonly hostVars: number;\r\n    /**\r\n     * Assign static attribute values to a host element.\r\n     *\r\n     * This property will assign static attribute values as well as class and style\r\n     * values to a host element. Since attribute values can consist of different types of values, the\r\n     * `hostAttrs` array must include the values in the following format:\r\n     *\r\n     * attrs = [\r\n     *   // static attributes (like `title`, `name`, `id`...)\r\n     *   attr1, value1, attr2, value,\r\n     *\r\n     *   // a single namespace value (like `x:id`)\r\n     *   NAMESPACE_MARKER, namespaceUri1, name1, value1,\r\n     *\r\n     *   // another single namespace value (like `x:name`)\r\n     *   NAMESPACE_MARKER, namespaceUri2, name2, value2,\r\n     *\r\n     *   // a series of CSS classes that will be applied to the element (no spaces)\r\n     *   CLASSES_MARKER, class1, class2, class3,\r\n     *\r\n     *   // a series of CSS styles (property + value) that will be applied to the element\r\n     *   STYLES_MARKER, prop1, value1, prop2, value2\r\n     * ]\r\n     *\r\n     * All non-class and non-style attributes must be defined at the start of the list\r\n     * first before all class and style values are set. When there is a change in value\r\n     * type (like when classes and styles are introduced) a marker must be used to separate\r\n     * the entries. The marker values themselves are set via entries found in the\r\n     * [AttributeMarker] enum.\r\n     */\r\n    readonly hostAttrs: TAttributes | null;\r\n    /** Token representing the directive. Used by DI. */\r\n    readonly type: Type<T>;\r\n    /** Function that resolves providers and publishes them into the DI system. */\r\n    providersResolver: (<U extends T>(def: ɵDirectiveDef<U>, processProvidersFn?: ProcessProvidersFunction) => void) | null;\r\n    /** The selectors that will be used to match nodes to this directive. */\r\n    readonly selectors: ɵCssSelectorList;\r\n    /**\r\n     * Name under which the directive is exported (for use with local references in template)\r\n     */\r\n    readonly exportAs: string[] | null;\r\n    /**\r\n     * Factory function used to create a new directive instance. Will be null initially.\r\n     * Populated when the factory is first requested by directive instantiation logic.\r\n     */\r\n    readonly factory: FactoryFn<T> | null;\r\n    /**\r\n     * The features applied to this directive\r\n     */\r\n    readonly features: DirectiveDefFeature[] | null;\r\n    setInput: (<U extends T>(this: ɵDirectiveDef<U>, instance: U, value: any, publicName: string, privateName: string) => void) | null;\r\n}\r\n\r\n/**\r\n * A subclass of `Type` which has a static `ɵdir`:`DirectiveDef` field making it\r\n * consumable for rendering.\r\n */\r\nexport declare interface ɵDirectiveType<T> extends Type<T> {\r\n    ɵdir: unknown;\r\n    ɵfac: unknown;\r\n}\r\n\r\nexport declare function ɵeld(checkIndex: number, flags: ɵNodeFlags, matchedQueriesDsl: null | [string | number, ɵQueryValueType][], ngContentIndex: null | number, childCount: number, namespaceAndName: string | null, fixedAttrs?: null | [string, string][], bindings?: null | [ɵBindingFlags, string, string | SecurityContext | null][], outputs?: null | ([string, string])[], handleEvent?: null | ElementHandleEventFn, componentView?: null | ViewDefinitionFactory, componentRendererType?: RendererType2 | null): NodeDef;\r\n\r\nexport declare const ɵEMPTY_ARRAY: any[];\r\n\r\nexport declare const ɵEMPTY_MAP: {\r\n    [key: string]: any;\r\n};\r\n\r\n/**\r\n * Index of each type of locale data from the extra locale data array\r\n */\r\nexport declare const enum ɵExtraLocaleDataIndex {\r\n    ExtraDayPeriodFormats = 0,\r\n    ExtraDayPeriodStandalone = 1,\r\n    ExtraDayPeriodsRules = 2\r\n}\r\n\r\n/**\r\n * Finds the locale data for a given locale.\r\n *\r\n * @param locale The locale code.\r\n * @returns The locale data.\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n */\r\nexport declare function ɵfindLocaleData(locale: string): any;\r\n\r\n/**\r\n * Loops over queued module definitions, if a given module definition has all of its\r\n * declarations resolved, it dequeues that module definition and sets the scope on\r\n * its declarations.\r\n */\r\nexport declare function ɵflushModuleScopingQueueAsMuchAsPossible(): void;\r\n\r\nexport declare function ɵgetComponentViewDefinitionFactory(componentFactory: ComponentFactory<any>): ViewDefinitionFactory;\r\n\r\nexport declare function ɵgetDebugNode__POST_R3__(nativeNode: Element): DebugElement__POST_R3__;\r\n\r\nexport declare function ɵgetDebugNode__POST_R3__(nativeNode: Node): DebugNode__POST_R3__;\r\n\r\nexport declare function ɵgetDebugNode__POST_R3__(nativeNode: null): null;\r\n\r\nexport declare const ɵgetDebugNodeR2: (nativeNode: any) => DebugNode | null;\r\n\r\n/**\r\n * Retrieves directive instances associated with a given DOM node. Does not include\r\n * component instances.\r\n *\r\n * @usageNotes\r\n * Given the following DOM structure:\r\n *\r\n * ```html\r\n * <app-root>\r\n *   <button my-button></button>\r\n *   <my-comp></my-comp>\r\n * </app-root>\r\n * ```\r\n *\r\n * Calling `getDirectives` on `<button>` will return an array with an instance of the `MyButton`\r\n * directive that is associated with the DOM node.\r\n *\r\n * Calling `getDirectives` on `<my-comp>` will return an empty array.\r\n *\r\n * @param node DOM node for which to get the directives.\r\n * @returns Array of directives associated with the node.\r\n *\r\n * @publicApi\r\n * @globalApi ng\r\n */\r\nexport declare function ɵgetDirectives(node: Node): {}[];\r\n\r\n/**\r\n * Retrieves the host element of a component or directive instance.\r\n * The host element is the DOM element that matched the selector of the directive.\r\n *\r\n * @param componentOrDirective Component or directive instance for which the host\r\n *     element should be retrieved.\r\n * @returns Host element of the target.\r\n *\r\n * @publicApi\r\n * @globalApi ng\r\n */\r\nexport declare function ɵgetHostElement(componentOrDirective: {}): Element;\r\n\r\n/**\r\n * Read the injectable def (`ɵprov`) for `type` in a way which is immune to accidentally reading\r\n * inherited value.\r\n *\r\n * @param type A type which may have its own (non-inherited) `ɵprov`.\r\n */\r\nexport declare function ɵgetInjectableDef<T>(type: any): ɵɵInjectableDeclaration<T> | null;\r\n\r\n/**\r\n * Returns the matching `LContext` data for a given DOM node, directive or component instance.\r\n *\r\n * This function will examine the provided DOM element, component, or directive instance\\'s\r\n * monkey-patched property to derive the `LContext` data. Once called then the monkey-patched\r\n * value will be that of the newly created `LContext`.\r\n *\r\n * If the monkey-patched value is the `LView` instance then the context value for that\r\n * target will be created and the monkey-patch reference will be updated. Therefore when this\r\n * function is called it may mutate the provided element\\'s, component\\'s or any of the associated\r\n * directive\\'s monkey-patch values.\r\n *\r\n * If the monkey-patch value is not detected then the code will walk up the DOM until an element\r\n * is found which contains a monkey-patch reference. When that occurs then the provided element\r\n * will be updated with a new context (which is then returned). If the monkey-patch value is not\r\n * detected for a component/directive instance then it will throw an error (all components and\r\n * directives should be automatically monkey-patched by ivy).\r\n *\r\n * @param target Component, Directive or DOM Node.\r\n */\r\nexport declare function ɵgetLContext(target: any): ɵLContext | null;\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 */\r\nexport declare function ɵgetLocaleCurrencyCode(locale: string): string | null;\r\n\r\n/**\r\n * Retrieves the plural function used by ICU expressions to determine the plural case to use\r\n * for a given locale.\r\n * @param locale A locale code for the locale format rules to use.\r\n * @returns The plural function for the locale.\r\n * @see `NgPlural`\r\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\r\n */\r\nexport declare function ɵgetLocalePluralCase(locale: string): (value: number) => number;\r\n\r\nexport declare function ɵgetModuleFactory__POST_R3__(id: string): NgModuleFactory<any>;\r\n\r\nexport declare function ɵgetSanitizationBypassType(value: any): ɵBypassType | null;\r\n\r\nexport declare type ɵGetterFn = (obj: any) => any;\r\n\r\n\r\nexport declare const ɵglobal: any;\r\n\r\nexport declare function ɵinitServicesIfNeeded(): void;\r\n\r\nexport declare function ɵINJECTOR_IMPL__POST_R3__(providers: StaticProvider[], parent: Injector | undefined, name: string): Injector;\r\n\r\n/**\r\n * An internal token whose presence in an injector indicates that the injector should treat itself\r\n * as a root scoped injector when processing requests for unknown tokens which may indicate\r\n * they are provided in the root scope.\r\n */\r\nexport declare const ɵINJECTOR_SCOPE: InjectionToken<\"root\" | \"platform\" | null>;\r\n\r\nexport declare function ɵinlineInterpolate(valueCount: number, c0: string, a1: any, c1: string, a2?: any, c2?: string, a3?: any, c3?: string, a4?: any, c4?: string, a5?: any, c5?: string, a6?: any, c6?: string, a7?: any, c7?: string, a8?: any, c8?: string, a9?: any, c9?: string): string;\r\n\r\nexport declare function ɵinterpolate(valueCount: number, constAndInterp: string[]): string;\r\n\r\nexport declare function ɵisBoundToModule__POST_R3__<C>(cf: ComponentFactory<C>): boolean;\r\n\r\n/**\r\n * Reports whether a given strategy is currently the default for change detection.\r\n * @param changeDetectionStrategy The strategy to check.\r\n * @returns True if the given strategy is the current default, false otherwise.\r\n * @see `ChangeDetectorStatus`\r\n * @see `ChangeDetectorRef`\r\n */\r\nexport declare function ɵisDefaultChangeDetectionStrategy(changeDetectionStrategy: ChangeDetectionStrategy): boolean;\r\n\r\nexport declare function ɵisListLikeIterable(obj: any): boolean;\r\n\r\n/**\r\n * Determine if the argument is an Observable\r\n *\r\n * Strictly this tests that the `obj` is `Subscribable`, since `Observable`\r\n * types need additional methods, such as `lift()`. But it is adequate for our\r\n * needs since within the Angular framework code we only ever need to use the\r\n * `subscribe()` method, and RxJS has mechanisms to wrap `Subscribable` objects\r\n * into `Observable` as needed.\r\n */\r\nexport declare const ɵisObservable: (obj: any | Observable<any>) => obj is Observable<any>;\r\n\r\n/**\r\n * Determine if the argument is shaped like a Promise\r\n */\r\nexport declare function ɵisPromise<T = any>(obj: any): obj is Promise<T>;\r\n\r\n/**\r\n * Determine if the argument is a Subscribable\r\n */\r\nexport declare function ɵisSubscribable(obj: any | Subscribable<any>): obj is Subscribable<any>;\r\n\r\nexport declare const ɵivyEnabled = false;\r\n\r\n/**\r\n * The internal view context which is specific to a given DOM element, directive or\r\n * component instance. Each value in here (besides the LView and element node details)\r\n * can be present, null or undefined. If undefined then it implies the value has not been\r\n * looked up yet, otherwise, if null, then a lookup was executed and nothing was found.\r\n *\r\n * Each value will get filled when the respective value is examined within the getContext\r\n * function. The component, element and each directive instance will share the same instance\r\n * of the context.\r\n */\r\nexport declare interface ɵLContext {\r\n    /**\r\n     * The component's parent view data.\r\n     */\r\n    lView: ɵangular_packages_core_core_ca;\r\n    /**\r\n     * The index instance of the node.\r\n     */\r\n    nodeIndex: number;\r\n    /**\r\n     * The instance of the DOM node that is attached to the lNode.\r\n     */\r\n    native: RNode;\r\n    /**\r\n     * The instance of the Component node.\r\n     */\r\n    component: {} | null | undefined;\r\n    /**\r\n     * The list of active directives that exist on this element.\r\n     */\r\n    directives: any[] | null | undefined;\r\n    /**\r\n     * The map of local references (local reference name => element or directive instance) that exist\r\n     * on this element.\r\n     */\r\n    localRefs: {\r\n        [key: string]: any;\r\n    } | null | undefined;\r\n}\r\n\r\n/**\r\n * Used to enable lifecycle hooks on the root component.\r\n *\r\n * Include this feature when calling `renderComponent` if the root component\r\n * you are rendering has lifecycle hooks defined. Otherwise, the hooks won't\r\n * be called properly.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * renderComponent(AppComponent, {hostFeatures: [LifecycleHooksFeature]});\r\n * ```\r\n */\r\nexport declare function ɵLifecycleHooksFeature(component: any, def: ɵComponentDef<any>): void;\r\n\r\n/**\r\n * Index of each type of locale data from the locale data array\r\n */\r\nexport declare enum ɵLocaleDataIndex {\r\n    LocaleId = 0,\r\n    DayPeriodsFormat = 1,\r\n    DayPeriodsStandalone = 2,\r\n    DaysFormat = 3,\r\n    DaysStandalone = 4,\r\n    MonthsFormat = 5,\r\n    MonthsStandalone = 6,\r\n    Eras = 7,\r\n    FirstDayOfWeek = 8,\r\n    WeekendRange = 9,\r\n    DateFormat = 10,\r\n    TimeFormat = 11,\r\n    DateTimeFormat = 12,\r\n    NumberSymbols = 13,\r\n    NumberFormats = 14,\r\n    CurrencyCode = 15,\r\n    CurrencySymbol = 16,\r\n    CurrencyName = 17,\r\n    Currencies = 18,\r\n    Directionality = 19,\r\n    PluralCase = 20,\r\n    ExtraData = 21\r\n}\r\n\r\n/**\r\n * @suppress {globalThis}\r\n */\r\nexport declare function ɵmakeDecorator<T>(name: string, props?: (...args: any[]) => any, parentClass?: any, additionalProcessing?: (type: Type<T>) => void, typeFn?: (type: Type<T>, ...args: any[]) => void): {\r\n    new (...args: any[]): any;\r\n    (...args: any[]): any;\r\n    (...args: any[]): (cls: any) => any;\r\n};\r\n\r\n/**\r\n * Marks the component as dirty (needing change detection). Marking a component dirty will\r\n * schedule a change detection on it at some point in the future.\r\n *\r\n * Marking an already dirty component as dirty won't do anything. Only one outstanding change\r\n * detection can be scheduled per component tree.\r\n *\r\n * @param component Component to mark as dirty.\r\n */\r\nexport declare function ɵmarkDirty(component: {}): void;\r\n\r\nexport declare type ɵMethodFn = (obj: any, args: any[]) => any;\r\n\r\nexport declare function ɵmod(providers: NgModuleProviderDef[]): NgModuleDefinition;\r\n\r\nexport declare function ɵmpd(flags: ɵNodeFlags, token: any, value: any, deps: ([ɵDepFlags, any] | any)[]): NgModuleProviderDef;\r\n\r\nexport declare function ɵncd(ngContentIndex: null | number, index: number): NodeDef;\r\n\r\n\r\nexport declare const ɵNG_COMP_DEF: string;\r\n\r\nexport declare const ɵNG_DIR_DEF: string;\r\n\r\n/**\r\n * If a directive is diPublic, bloomAdd sets a property on the type with this constant as\r\n * the key and the directive's unique ID as the value. This allows us to map directives to their\r\n * bloom filter bit for DI.\r\n */\r\nexport declare const ɵNG_ELEMENT_ID: string;\r\n\r\nexport declare const ɵNG_INJ_DEF: string;\r\n\r\nexport declare const ɵNG_MOD_DEF: string;\r\n\r\nexport declare const ɵNG_PIPE_DEF: string;\r\n\r\nexport declare const ɵNG_PROV_DEF: string;\r\n\r\n/**\r\n * Runtime link information for NgModules.\r\n *\r\n * This is the internal data structure used by the runtime to assemble components, directives,\r\n * pipes, and injectors.\r\n *\r\n * NOTE: Always use `ɵɵdefineNgModule` function to create this object,\r\n * never create the object directly since the shape of this object\r\n * can change between versions.\r\n */\r\nexport declare interface ɵNgModuleDef<T> {\r\n    /** Token representing the module. Used by DI. */\r\n    type: T;\r\n    /** List of components to bootstrap. */\r\n    bootstrap: Type<any>[] | (() => Type<any>[]);\r\n    /** List of components, directives, and pipes declared by this module. */\r\n    declarations: Type<any>[] | (() => Type<any>[]);\r\n    /** List of modules or `ModuleWithProviders` imported by this module. */\r\n    imports: Type<any>[] | (() => Type<any>[]);\r\n    /**\r\n     * List of modules, `ModuleWithProviders`, components, directives, or pipes exported by this\r\n     * module.\r\n     */\r\n    exports: Type<any>[] | (() => Type<any>[]);\r\n    /**\r\n     * Cached value of computed `transitiveCompileScopes` for this module.\r\n     *\r\n     * This should never be read directly, but accessed via `transitiveScopesFor`.\r\n     */\r\n    transitiveCompileScopes: ɵNgModuleTransitiveScopes | null;\r\n    /** The set of schemas that declare elements to be allowed in the NgModule. */\r\n    schemas: SchemaMetadata[] | null;\r\n    /** Unique ID for the module with which it should be registered.  */\r\n    id: string | null;\r\n}\r\n\r\nexport declare class ɵNgModuleFactory<T> extends NgModuleFactory<T> {\r\n    moduleType: Type<T>;\r\n    constructor(moduleType: Type<T>);\r\n    create(parentInjector: Injector | null): NgModuleRef<T>;\r\n}\r\n\r\n/**\r\n * Represents the expansion of an `NgModule` into its scopes.\r\n *\r\n * A scope is a set of directives and pipes that are visible in a particular context. Each\r\n * `NgModule` has two scopes. The `compilation` scope is the set of directives and pipes that will\r\n * be recognized in the templates of components declared by the module. The `exported` scope is the\r\n * set of directives and pipes exported by a module (that is, module B's exported scope gets added\r\n * to module A's compilation scope when module A imports B).\r\n */\r\nexport declare interface ɵNgModuleTransitiveScopes {\r\n    compilation: {\r\n        directives: Set<any>;\r\n        pipes: Set<any>;\r\n    };\r\n    exported: {\r\n        directives: Set<any>;\r\n        pipes: Set<any>;\r\n    };\r\n    schemas: SchemaMetadata[] | null;\r\n}\r\n\r\nexport declare interface ɵNgModuleType<T = any> extends Type<T> {\r\n    ɵmod: ɵNgModuleDef<T>;\r\n}\r\n\r\n\r\nexport declare interface ɵNO_CHANGE {\r\n    __brand__: 'NO_CHANGE';\r\n}\r\n\r\n/** A special value which designates that a value has not changed. */\r\nexport declare const ɵNO_CHANGE: ɵNO_CHANGE;\r\n\r\n/**\r\n * Bitmask for NodeDef.flags.\r\n * Naming convention:\r\n * - `Type...`: flags that are mutually exclusive\r\n * - `Cat...`: union of multiple `Type...` (short for category).\r\n */\r\nexport declare const enum ɵNodeFlags {\r\n    None = 0,\r\n    TypeElement = 1,\r\n    TypeText = 2,\r\n    ProjectedTemplate = 4,\r\n    CatRenderNode = 3,\r\n    TypeNgContent = 8,\r\n    TypePipe = 16,\r\n    TypePureArray = 32,\r\n    TypePureObject = 64,\r\n    TypePurePipe = 128,\r\n    CatPureExpression = 224,\r\n    TypeValueProvider = 256,\r\n    TypeClassProvider = 512,\r\n    TypeFactoryProvider = 1024,\r\n    TypeUseExistingProvider = 2048,\r\n    LazyProvider = 4096,\r\n    PrivateProvider = 8192,\r\n    TypeDirective = 16384,\r\n    Component = 32768,\r\n    CatProviderNoDirective = 3840,\r\n    CatProvider = 20224,\r\n    OnInit = 65536,\r\n    OnDestroy = 131072,\r\n    DoCheck = 262144,\r\n    OnChanges = 524288,\r\n    AfterContentInit = 1048576,\r\n    AfterContentChecked = 2097152,\r\n    AfterViewInit = 4194304,\r\n    AfterViewChecked = 8388608,\r\n    EmbeddedViews = 16777216,\r\n    ComponentView = 33554432,\r\n    TypeContentQuery = 67108864,\r\n    TypeViewQuery = 134217728,\r\n    StaticQuery = 268435456,\r\n    DynamicQuery = 536870912,\r\n    TypeNgModule = 1073741824,\r\n    EmitDistinctChangesOnly = -2147483648,\r\n    CatQuery = 201326592,\r\n    Types = 201347067\r\n}\r\n\r\n/**\r\n * Provides a noop implementation of `NgZone` which does nothing. This zone requires explicit calls\r\n * to framework to perform rendering.\r\n */\r\nexport declare class ɵNoopNgZone implements NgZone {\r\n    readonly hasPendingMicrotasks: boolean;\r\n    readonly hasPendingMacrotasks: boolean;\r\n    readonly isStable: boolean;\r\n    readonly onUnstable: EventEmitter<any>;\r\n    readonly onMicrotaskEmpty: EventEmitter<any>;\r\n    readonly onStable: EventEmitter<any>;\r\n    readonly onError: EventEmitter<any>;\r\n    run<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any): T;\r\n    runGuarded<T>(fn: (...args: any[]) => any, applyThis?: any, applyArgs?: any): T;\r\n    runOutsideAngular<T>(fn: (...args: any[]) => T): T;\r\n    runTask<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any, name?: string): T;\r\n}\r\n\r\n\r\n/**\r\n * Convince closure compiler that the wrapped function has no side-effects.\r\n *\r\n * Closure compiler always assumes that `toString` has no side-effects. We use this quirk to\r\n * allow us to execute a function but have closure compiler mark the call as no-side-effects.\r\n * It is important that the return value for the `noSideEffects` function be assigned\r\n * to something which is retained otherwise the call to `noSideEffects` will be removed by closure\r\n * compiler.\r\n */\r\nexport declare function ɵnoSideEffects<T>(fn: () => T): T;\r\n\r\nexport declare const ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR: {};\r\n\r\nexport declare function ɵnov(view: ViewData, index: number): any;\r\n\r\nexport declare function ɵoverrideComponentView(comp: Type<any>, componentFactory: ComponentFactory<any>): void;\r\n\r\nexport declare function ɵoverrideProvider(override: ProviderOverride): void;\r\n\r\nexport declare function ɵpad(checkIndex: number, argCount: number): NodeDef;\r\n\r\n/**\r\n * Patch the definition of a component with directives and pipes from the compilation scope of\r\n * a given module.\r\n */\r\nexport declare function ɵpatchComponentDefWithScope<C>(componentDef: ɵComponentDef<C>, transitiveScopes: ɵNgModuleTransitiveScopes): void;\r\n\r\nexport declare function ɵpid(flags: ɵNodeFlags, ctor: any, deps: ([ɵDepFlags, any] | any)[]): NodeDef;\r\n\r\n/**\r\n * Runtime link information for Pipes.\r\n *\r\n * This is an internal data structure used by the renderer to link\r\n * pipes into templates.\r\n *\r\n * NOTE: Always use `definePipe` function to create this object,\r\n * never create the object directly since the shape of this object\r\n * can change between versions.\r\n *\r\n * See: {@link definePipe}\r\n */\r\nexport declare interface ɵPipeDef<T> {\r\n    /** Token representing the pipe. */\r\n    type: Type<T>;\r\n    /**\r\n     * Pipe name.\r\n     *\r\n     * Used to resolve pipe in templates.\r\n     */\r\n    readonly name: string;\r\n    /**\r\n     * Factory function used to create a new pipe instance. Will be null initially.\r\n     * Populated when the factory is first requested by pipe instantiation logic.\r\n     */\r\n    factory: FactoryFn<T> | null;\r\n    /**\r\n     * Whether or not the pipe is pure.\r\n     *\r\n     * Pure pipes result only depends on the pipe input and not on internal\r\n     * state of the pipe.\r\n     */\r\n    readonly pure: boolean;\r\n    onDestroy: (() => void) | null;\r\n}\r\n\r\n\r\n/**\r\n * A shared interface which contains an animation player\r\n */\r\nexport declare interface ɵPlayer {\r\n    parent?: ɵPlayer | null;\r\n    state: ɵPlayState;\r\n    play(): void;\r\n    pause(): void;\r\n    finish(): void;\r\n    destroy(): void;\r\n    addEventListener(state: ɵPlayState | string, cb: (data?: any) => any): void;\r\n}\r\n\r\n/**\r\n * Used as a reference to build a player from a styling template binding\r\n * (`[style]` and `[class]`).\r\n *\r\n * The `fn` function will be called once any styling-related changes are\r\n * evaluated on an element and is expected to return a player that will\r\n * be then run on the element.\r\n *\r\n * `[style]`, `[style.prop]`, `[class]` and `[class.name]` template bindings\r\n * all accept a `PlayerFactory` as input and this player factories.\r\n */\r\nexport declare interface ɵPlayerFactory {\r\n    '__brand__': 'Brand for PlayerFactory that nothing will match';\r\n}\r\n\r\n/**\r\n * Designed to be used as an injection service to capture all animation players.\r\n *\r\n * When present all animation players will be passed into the flush method below.\r\n * This feature is designed to service application-wide animation testing, live\r\n * debugging as well as custom animation choreographing tools.\r\n */\r\nexport declare interface ɵPlayerHandler {\r\n    /**\r\n     * Designed to kick off the player at the end of change detection\r\n     */\r\n    flushPlayers(): void;\r\n    /**\r\n     * @param player The player that has been scheduled to run within the application.\r\n     * @param context The context as to where the player was bound to\r\n     */\r\n    queuePlayer(player: ɵPlayer, context: ComponentInstance | DirectiveInstance | HTMLElement): void;\r\n}\r\n\r\n/**\r\n * The state of a given player\r\n *\r\n * Do not change the increasing nature of the numbers since the player\r\n * code may compare state by checking if a number is higher or lower than\r\n * a certain numeric value.\r\n */\r\nexport declare const enum ɵPlayState {\r\n    Pending = 0,\r\n    Running = 1,\r\n    Paused = 2,\r\n    Finished = 100,\r\n    Destroyed = 200\r\n}\r\n\r\nexport declare function ɵpod(checkIndex: number, propToIndex: {\r\n    [p: string]: number;\r\n}): NodeDef;\r\n\r\nexport declare function ɵppd(checkIndex: number, argCount: number): NodeDef;\r\n\r\nexport declare function ɵprd(flags: ɵNodeFlags, matchedQueries: null | [string | number, ɵQueryValueType][], token: any, value: any, deps: ([ɵDepFlags, any] | any)[]): NodeDef;\r\n\r\n/**\r\n * Profiler function which the runtime will invoke before and after user code.\r\n */\r\nexport declare interface ɵProfiler {\r\n    (event: ɵProfilerEvent, instance: {} | null, hookOrListener?: (e?: any) => any): void;\r\n}\r\n\r\n\r\n/**\r\n * Profiler events is an enum used by the profiler to distinguish between different calls of user\r\n * code invoked throughout the application lifecycle.\r\n */\r\nexport declare const enum ɵProfilerEvent {\r\n    /**\r\n     * Corresponds to the point in time before the runtime has called the template function of a\r\n     * component with `RenderFlags.Create`.\r\n     */\r\n    TemplateCreateStart = 0,\r\n    /**\r\n     * Corresponds to the point in time after the runtime has called the template function of a\r\n     * component with `RenderFlags.Create`.\r\n     */\r\n    TemplateCreateEnd = 1,\r\n    /**\r\n     * Corresponds to the point in time before the runtime has called the template function of a\r\n     * component with `RenderFlags.Update`.\r\n     */\r\n    TemplateUpdateStart = 2,\r\n    /**\r\n     * Corresponds to the point in time after the runtime has called the template function of a\r\n     * component with `RenderFlags.Update`.\r\n     */\r\n    TemplateUpdateEnd = 3,\r\n    /**\r\n     * Corresponds to the point in time before the runtime has called a lifecycle hook of a component\r\n     * or directive.\r\n     */\r\n    LifecycleHookStart = 4,\r\n    /**\r\n     * Corresponds to the point in time after the runtime has called a lifecycle hook of a component\r\n     * or directive.\r\n     */\r\n    LifecycleHookEnd = 5,\r\n    /**\r\n     * Corresponds to the point in time before the runtime has evaluated an expression associated with\r\n     * an event or an output.\r\n     */\r\n    OutputStart = 6,\r\n    /**\r\n     * Corresponds to the point in time after the runtime has evaluated an expression associated with\r\n     * an event or an output.\r\n     */\r\n    OutputEnd = 7\r\n}\r\n\r\n/**\r\n * Publishes a collection of default debug tools onto`window.ng`.\r\n *\r\n * These functions are available globally when Angular is in development\r\n * mode and are automatically stripped away from prod mode is on.\r\n */\r\nexport declare function ɵpublishDefaultGlobalUtils(): void;\r\n\r\n/**\r\n * Publishes the given function to `window.ng` so that it can be\r\n * used from the browser console when an application is not in production.\r\n */\r\nexport declare function ɵpublishGlobalUtil(name: string, fn: Function): void;\r\n\r\nexport declare function ɵqud(flags: ɵNodeFlags, id: number, bindings: {\r\n    [propName: string]: ɵQueryBindingType;\r\n}): NodeDef;\r\n\r\nexport declare const enum ɵQueryBindingType {\r\n    First = 0,\r\n    All = 1\r\n}\r\n\r\nexport declare const enum ɵQueryValueType {\r\n    ElementRef = 0,\r\n    RenderElement = 1,\r\n    TemplateRef = 2,\r\n    ViewContainerRef = 3,\r\n    Provider = 4\r\n}\r\n\r\nexport declare class ɵReflectionCapabilities implements PlatformReflectionCapabilities {\r\n    private _reflect;\r\n    constructor(reflect?: any);\r\n    isReflectionEnabled(): boolean;\r\n    factory<T>(t: Type<T>): (args: any[]) => T;\r\n    private _ownParameters;\r\n    parameters(type: Type<any>): any[][];\r\n    private _ownAnnotations;\r\n    annotations(typeOrFunc: Type<any>): any[];\r\n    private _ownPropMetadata;\r\n    propMetadata(typeOrFunc: any): {\r\n        [key: string]: any[];\r\n    };\r\n    ownPropMetadata(typeOrFunc: any): {\r\n        [key: string]: any[];\r\n    };\r\n    hasLifecycleHook(type: any, lcProperty: string): boolean;\r\n    guards(type: any): {\r\n        [key: string]: any;\r\n    };\r\n    getter(name: string): ɵGetterFn;\r\n    setter(name: string): ɵSetterFn;\r\n    method(name: string): ɵMethodFn;\r\n    importUri(type: any): string;\r\n    resourceUri(type: any): string;\r\n    resolveIdentifier(name: string, moduleUrl: string, members: string[], runtime: any): any;\r\n    resolveEnum(enumIdentifier: any, name: string): any;\r\n}\r\n\r\n/**\r\n * Register locale 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\nexport declare function ɵregisterLocaleData(data: any, localeId?: string | any, extraData?: any): void;\r\n\r\n/**\r\n * Registers a loaded module. Should only be called from generated NgModuleFactory code.\r\n * @publicApi\r\n */\r\nexport declare function ɵregisterModuleFactory(id: string, factory: NgModuleFactory<any>): void;\r\n\r\nexport declare function ɵregisterNgModuleType(ngModuleType: ɵNgModuleType): void;\r\n\r\n/**\r\n * Render3 implementation of {@link viewEngine_ComponentFactory}.\r\n */\r\nexport declare class ɵRender3ComponentFactory<T> extends ComponentFactory<T> {\r\n    private componentDef;\r\n    private ngModule?;\r\n    selector: string;\r\n    componentType: Type<any>;\r\n    ngContentSelectors: string[];\r\n    isBoundToModule: boolean;\r\n    get inputs(): {\r\n        propName: string;\r\n        templateName: string;\r\n    }[];\r\n    get outputs(): {\r\n        propName: string;\r\n        templateName: string;\r\n    }[];\r\n    /**\r\n     * @param componentDef The component definition.\r\n     * @param ngModule The NgModuleRef to which the factory is bound.\r\n     */\r\n    constructor(componentDef: ɵComponentDef<any>, ngModule?: NgModuleRef<any> | undefined);\r\n    create(injector: Injector, projectableNodes?: any[][] | undefined, rootSelectorOrNode?: any, ngModule?: NgModuleRef<any> | undefined): ComponentRef<T>;\r\n}\r\n\r\n/**\r\n * Represents an instance of a Component created via a {@link ComponentFactory}.\r\n *\r\n * `ComponentRef` provides access to the Component Instance as well other objects related to this\r\n * Component Instance and allows you to destroy the Component Instance via the {@link #destroy}\r\n * method.\r\n *\r\n */\r\nexport declare class ɵRender3ComponentRef<T> extends ComponentRef<T> {\r\n    location: ElementRef;\r\n    private _rootLView;\r\n    private _tNode;\r\n    instance: T;\r\n    hostView: ViewRef_2<T>;\r\n    changeDetectorRef: ChangeDetectorRef;\r\n    componentType: Type<T>;\r\n    constructor(componentType: Type<T>, instance: T, location: ElementRef, _rootLView: ɵangular_packages_core_core_ca, _tNode: ɵangular_packages_core_core_bk | TContainerNode | TElementContainerNode);\r\n    get injector(): Injector;\r\n    destroy(): void;\r\n    onDestroy(callback: () => void): void;\r\n}\r\n\r\nexport declare class ɵRender3NgModuleRef<T> extends NgModuleRef<T> implements InternalNgModuleRef<T> {\r\n    _parent: Injector | null;\r\n    _bootstrapComponents: Type<any>[];\r\n    _r3Injector: R3Injector;\r\n    injector: Injector;\r\n    instance: T;\r\n    destroyCbs: (() => void)[] | null;\r\n    readonly componentFactoryResolver: ComponentFactoryResolver_2;\r\n    constructor(ngModuleType: Type<T>, _parent: Injector | null);\r\n    get(token: any, notFoundValue?: any, injectFlags?: InjectFlags): any;\r\n    destroy(): void;\r\n    onDestroy(callback: () => void): void;\r\n}\r\n\r\n/**\r\n * Bootstraps a Component into an existing host element and returns an instance\r\n * of the component.\r\n *\r\n * Use this function to bootstrap a component into the DOM tree. Each invocation\r\n * of this function will create a separate tree of components, injectors and\r\n * change detection cycles and lifetimes. To dynamically insert a new component\r\n * into an existing tree such that it shares the same injection, change detection\r\n * and object lifetime, use {@link ViewContainer#createComponent}.\r\n *\r\n * @param componentType Component to bootstrap\r\n * @param options Optional parameters which control bootstrapping\r\n */\r\nexport declare function ɵrenderComponent<T>(componentType: ɵComponentType<T> | Type<T>, opts?: CreateComponentOptions): T;\r\n\r\n/**\r\n * Flags passed into template functions to determine which blocks (i.e. creation, update)\r\n * should be executed.\r\n *\r\n * Typically, a template runs both the creation block and the update block on initialization and\r\n * subsequent runs only execute the update block. However, dynamically created views require that\r\n * the creation block be executed separately from the update block (for backwards compat).\r\n */\r\nexport declare const enum ɵRenderFlags {\r\n    Create = 1,\r\n    Update = 2\r\n}\r\n\r\nexport declare function ɵresetCompiledComponents(): void;\r\n\r\nexport declare function ɵresetJitOptions(): void;\r\n\r\n/**\r\n * Used to resolve resource URLs on `@Component` when used with JIT compilation.\r\n *\r\n * Example:\r\n * ```\r\n * @Component({\r\n *   selector: 'my-comp',\r\n *   templateUrl: 'my-comp.html', // This requires asynchronous resolution\r\n * })\r\n * class MyComponent{\r\n * }\r\n *\r\n * // Calling `renderComponent` will fail because `renderComponent` is a synchronous process\r\n * // and `MyComponent`'s `@Component.templateUrl` needs to be resolved asynchronously.\r\n *\r\n * // Calling `resolveComponentResources()` will resolve `@Component.templateUrl` into\r\n * // `@Component.template`, which allows `renderComponent` to proceed in a synchronous manner.\r\n *\r\n * // Use browser's `fetch()` function as the default resource resolution strategy.\r\n * resolveComponentResources(fetch).then(() => {\r\n *   // After resolution all URLs have been converted into `template` strings.\r\n *   renderComponent(MyComponent);\r\n * });\r\n *\r\n * ```\r\n *\r\n * NOTE: In AOT the resolution happens during compilation, and so there should be no need\r\n * to call this method outside JIT mode.\r\n *\r\n * @param resourceResolver a function which is responsible for returning a `Promise` to the\r\n * contents of the resolved URL. Browser's `fetch()` method is a good default implementation.\r\n */\r\nexport declare function ɵresolveComponentResources(resourceResolver: (url: string) => (Promise<string | {\r\n    text(): Promise<string>;\r\n}>)): Promise<void>;\r\n\r\nexport declare class ɵRuntimeError extends Error {\r\n    code: ɵRuntimeErrorCode;\r\n    constructor(code: ɵRuntimeErrorCode, message: string);\r\n}\r\n\r\n\r\nexport declare const enum ɵRuntimeErrorCode {\r\n    EXPRESSION_CHANGED_AFTER_CHECKED = \"100\",\r\n    CYCLIC_DI_DEPENDENCY = \"200\",\r\n    PROVIDER_NOT_FOUND = \"201\",\r\n    MULTIPLE_COMPONENTS_MATCH = \"300\",\r\n    EXPORT_NOT_FOUND = \"301\",\r\n    PIPE_NOT_FOUND = \"302\",\r\n    UNKNOWN_BINDING = \"303\",\r\n    UNKNOWN_ELEMENT = \"304\",\r\n    TEMPLATE_STRUCTURE_ERROR = \"305\"\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as HTML.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵSafeHtml extends ɵSafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as a URL to load executable code from.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵSafeResourceUrl extends ɵSafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as JavaScript.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵSafeScript extends ɵSafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as style (CSS).\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵSafeStyle extends ɵSafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as a URL linking to a document.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵSafeUrl extends ɵSafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use in a particular context.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵSafeValue {\r\n}\r\n\r\n/**\r\n * Adds decorator, constructor, and property metadata to a given type via static metadata fields\r\n * on the type.\r\n *\r\n * These metadata fields can later be read with Angular's `ReflectionCapabilities` API.\r\n *\r\n * Calls to `setClassMetadata` can be guarded by ngDevMode, resulting in the metadata assignments\r\n * being tree-shaken away during production builds.\r\n */\r\nexport declare function ɵsetClassMetadata(type: Type<any>, decorators: any[] | null, ctorParameters: (() => any[]) | null, propDecorators: {\r\n    [field: string]: any;\r\n} | null): void;\r\n\r\nexport declare function ɵsetCurrentInjector(injector: Injector | null | undefined): Injector | undefined | null;\r\n\r\n\r\n/**\r\n * Tell ivy what the `document` is for this platform.\r\n *\r\n * It is only necessary to call this if the current platform is not a browser.\r\n *\r\n * @param document The object representing the global `document` in this environment.\r\n */\r\nexport declare function ɵsetDocument(document: Document | undefined): void;\r\n\r\n\r\n/**\r\n * Sets the locale id that will be used for translations and ICU expressions.\r\n * This is the ivy version of `LOCALE_ID` that was defined as an injection token for the view engine\r\n * but is now defined as a global value.\r\n *\r\n * @param localeId\r\n */\r\nexport declare function ɵsetLocaleId(localeId: string): void;\r\n\r\n\r\nexport declare type ɵSetterFn = (obj: any, value: any) => void;\r\n\r\n/** Store a value in the `data` at a given `index`. */\r\nexport declare function ɵstore<T>(tView: TView, lView: ɵangular_packages_core_core_ca, index: number, value: T): void;\r\n\r\n\r\nexport declare function ɵstringify(token: any): string;\r\n\r\nexport declare const ɵSWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__: typeof ɵangular_packages_core_core_r;\r\n\r\nexport declare const ɵSWITCH_COMPILE_COMPONENT__POST_R3__: typeof ɵcompileComponent;\r\n\r\nexport declare const ɵSWITCH_COMPILE_DIRECTIVE__POST_R3__: typeof ɵcompileDirective;\r\n\r\nexport declare const ɵSWITCH_COMPILE_INJECTABLE__POST_R3__: typeof compileInjectable;\r\n\r\nexport declare const ɵSWITCH_COMPILE_NGMODULE__POST_R3__: typeof ɵcompileNgModule;\r\n\r\nexport declare const ɵSWITCH_COMPILE_PIPE__POST_R3__: typeof ɵcompilePipe;\r\n\r\nexport declare const ɵSWITCH_ELEMENT_REF_FACTORY__POST_R3__: typeof ɵangular_packages_core_core_i;\r\n\r\n\r\nexport declare const ɵSWITCH_IVY_ENABLED__POST_R3__ = true;\r\n\r\nexport declare const ɵSWITCH_RENDERER2_FACTORY__POST_R3__: typeof ɵangular_packages_core_core_h;\r\n\r\nexport declare const ɵSWITCH_TEMPLATE_REF_FACTORY__POST_R3__: typeof ɵangular_packages_core_core_l;\r\n\r\nexport declare const ɵSWITCH_VIEW_CONTAINER_REF_FACTORY__POST_R3__: typeof ɵangular_packages_core_core_n;\r\n\r\nexport declare function ɵted(checkIndex: number, ngContentIndex: number | null, staticText: string[]): NodeDef;\r\n\r\n/**\r\n * Compute the pair of transitive scopes (compilation scope and exported scope) for a given module.\r\n *\r\n * This operation is memoized and the result is cached on the module's definition. This function can\r\n * be called on modules with components that have not fully compiled yet, but the result should not\r\n * be used until they have.\r\n *\r\n * @param moduleType module that transitive scope should be calculated for.\r\n */\r\nexport declare function ɵtransitiveScopesFor<T>(moduleType: Type<T>): ɵNgModuleTransitiveScopes;\r\n\r\n/**\r\n * Helper function to remove all the locale data from `LOCALE_DATA`.\r\n */\r\nexport declare function ɵunregisterLocaleData(): void;\r\n\r\nexport declare function ɵunv(view: ViewData, nodeIdx: number, bindingIdx: number, value: any): any;\r\n\r\nexport declare function ɵunwrapSafeValue(value: ɵSafeValue): string;\r\n\r\nexport declare function ɵunwrapSafeValue<T>(value: T): T;\r\n\r\nexport declare function ɵvid(flags: ɵViewFlags, nodes: NodeDef[], updateDirectives?: null | ViewUpdateFn, updateRenderer?: null | ViewUpdateFn): ɵViewDefinition;\r\n\r\nexport declare interface ɵViewDefinition extends Definition<ViewDefinitionFactory> {\r\n    flags: ɵViewFlags;\r\n    updateDirectives: ViewUpdateFn;\r\n    updateRenderer: ViewUpdateFn;\r\n    handleEvent: ViewHandleEventFn;\r\n    /**\r\n     * Order: Depth first.\r\n     * Especially providers are before elements / anchors.\r\n     */\r\n    nodes: NodeDef[];\r\n    /** aggregated NodeFlags for all nodes **/\r\n    nodeFlags: ɵNodeFlags;\r\n    rootNodeFlags: ɵNodeFlags;\r\n    lastRenderRootNode: NodeDef | null;\r\n    bindingCount: number;\r\n    outputCount: number;\r\n    /**\r\n     * Binary or of all query ids that are matched by one of the nodes.\r\n     * This includes query ids from templates as well.\r\n     * Used as a bloom filter.\r\n     */\r\n    nodeMatchedQueries: number;\r\n}\r\n\r\n/**\r\n * Bitmask for ViewDefinition.flags.\r\n */\r\nexport declare const enum ɵViewFlags {\r\n    None = 0,\r\n    OnPush = 2\r\n}\r\n\r\n/**\r\n * Wait on component until it is rendered.\r\n *\r\n * This function returns a `Promise` which is resolved when the component's\r\n * change detection is executed. This is determined by finding the scheduler\r\n * associated with the `component`'s render tree and waiting until the scheduler\r\n * flushes. If nothing is scheduled, the function returns a resolved promise.\r\n *\r\n * Example:\r\n * ```\r\n * await whenRendered(myComponent);\r\n * ```\r\n *\r\n * @param component Component to wait upon\r\n * @returns Promise which resolves when the component is rendered.\r\n */\r\nexport declare function ɵwhenRendered(component: any): Promise<null>;\r\n\r\n/**\r\n * Advances to an element for later binding instructions.\r\n *\r\n * Used in conjunction with instructions like {@link property} to act on elements with specified\r\n * indices, for example those created with {@link element} or {@link elementStart}.\r\n *\r\n * ```ts\r\n * (rf: RenderFlags, ctx: any) => {\r\n *   if (rf & 1) {\r\n *     text(0, 'Hello');\r\n *     text(1, 'Goodbye')\r\n *     element(2, 'div');\r\n *   }\r\n *   if (rf & 2) {\r\n *     advance(2); // Advance twice to the <div>.\r\n *     property('title', 'test');\r\n *   }\r\n *  }\r\n * ```\r\n * @param delta Number of elements to advance forwards by.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵadvance(delta: number): void;\r\n\r\n/**\r\n * Updates the value of or removes a bound attribute on an Element.\r\n *\r\n * Used in the case of `[attr.title]=\"value\"`\r\n *\r\n * @param name name The name of the attribute.\r\n * @param value value The attribute is removed when value is `null` or `undefined`.\r\n *                  Otherwise the attribute value is set to the stringified value.\r\n * @param sanitizer An optional function used to sanitize the value.\r\n * @param namespace Optional namespace to use when setting the attribute.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattribute(name: string, value: any, sanitizer?: SanitizerFn | null, namespace?: string): typeof ɵɵattribute;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with single bound value surrounded by text.\r\n *\r\n * Used when the value passed to a property has 1 interpolated value in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate1('title', 'prefix', v0, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate1(attrName: string, prefix: string, v0: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate1;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 2 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 2 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate2('title', 'prefix', v0, '-', v1, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate2(attrName: string, prefix: string, v0: any, i0: string, v1: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate2;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 3 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 3 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate3(\r\n * 'title', 'prefix', v0, '-', v1, '-', v2, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate3(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate3;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 4 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 4 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate4(\r\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate4(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate4;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 5 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 5 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate5(\r\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate5(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate5;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 6 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 6 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate6(\r\n *    'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate6(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate6;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 7 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 7 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate7(\r\n *    'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate7(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate7;\r\n\r\n/**\r\n *\r\n * Update an interpolated attribute on an element with 8 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 8 interpolated values in it:\r\n *\r\n * ```html\r\n * <div attr.title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolate8(\r\n *  'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param i6 Static value used for concatenation only.\r\n * @param v7 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolate8(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolate8;\r\n\r\n/**\r\n * Update an interpolated attribute on an element with 9 or more bound values surrounded by text.\r\n *\r\n * Used when the number of interpolated values exceeds 8.\r\n *\r\n * ```html\r\n * <div\r\n *  title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵattributeInterpolateV(\r\n *  'title', ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\r\n *  'suffix']);\r\n * ```\r\n *\r\n * @param attrName The name of the attribute to update.\r\n * @param values The collection of values and the strings in-between those values, beginning with\r\n * a string prefix and ending with a string suffix.\r\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵattributeInterpolateV(attrName: string, values: any[], sanitizer?: SanitizerFn, namespace?: string): typeof ɵɵattributeInterpolateV;\r\n\r\n/**\r\n * Update class bindings using an object literal or class-string on an element.\r\n *\r\n * This instruction is meant to apply styling via the `[class]=\"exp\"` template bindings.\r\n * When classes are applied to the element they will then be updated with\r\n * respect to any styles/classes set via `classProp`. If any\r\n * classes are set to falsy then they will be removed from the element.\r\n *\r\n * Note that the styling instruction will not be applied until `stylingApply` is called.\r\n * Note that this will the provided classMap value to the host element if this function is called\r\n * within a host binding.\r\n *\r\n * @param classes A key/value map or string of CSS classes that will be added to the\r\n *        given element. Any missing classes (that have already been applied to the element\r\n *        beforehand) will be removed (unset) from the element's list of CSS classes.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMap(classes: {\r\n    [className: string]: boolean | undefined | null;\r\n} | string | undefined | null): void;\r\n\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with single bound value surrounded by text.\r\n *\r\n * Used when the value passed to a property has 1 interpolated value in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate1('prefix', v0, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate1(prefix: string, v0: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 2 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 2 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate2('prefix', v0, '-', v1, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate2(prefix: string, v0: any, i0: string, v1: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 3 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 3 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate3(\r\n * 'prefix', v0, '-', v1, '-', v2, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate3(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 4 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 4 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate4(\r\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate4(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 5 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 5 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate5(\r\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate5(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 6 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 6 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate6(\r\n *    'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate6(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 7 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 7 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate7(\r\n *    'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate7(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated class on an element with 8 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 8 interpolated values in it:\r\n *\r\n * ```html\r\n * <div class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolate8(\r\n *  'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param i6 Static value used for concatenation only.\r\n * @param v7 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolate8(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string): void;\r\n\r\n/**\r\n * Update an interpolated class on an element with 9 or more bound values surrounded by text.\r\n *\r\n * Used when the number of interpolated values exceeds 8.\r\n *\r\n * ```html\r\n * <div\r\n *  class=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵclassMapInterpolateV(\r\n *  ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\r\n *  'suffix']);\r\n * ```\r\n *.\r\n * @param values The collection of values and the strings in-between those values, beginning with\r\n * a string prefix and ending with a string suffix.\r\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassMapInterpolateV(values: any[]): void;\r\n\r\n/**\r\n * Update a class binding on an element with the provided value.\r\n *\r\n * This instruction is meant to handle the `[class.foo]=\"exp\"` case and,\r\n * therefore, the class binding itself must already be allocated using\r\n * `styling` within the creation block.\r\n *\r\n * @param prop A valid CSS class (only one).\r\n * @param value A true/false value which will turn the class on or off.\r\n *\r\n * Note that this will apply the provided class value to the host element if this function\r\n * is called within a host binding function.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵclassProp(className: string, value: boolean | undefined | null): typeof ɵɵclassProp;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare type ɵɵComponentDeclaration<T, Selector extends String, ExportAs extends string[], InputMap extends {\r\n    [key: string]: string;\r\n}, OutputMap extends {\r\n    [key: string]: string;\r\n}, QueryFields extends string[], NgContentSelectors extends string[]> = unknown;\r\n\r\n/**\r\n * Registers a QueryList, associated with a content query, for later refresh (part of a view\r\n * refresh).\r\n *\r\n * @param directiveIndex Current directive index\r\n * @param predicate The type for which the query will search\r\n * @param flags Flags associated with the query\r\n * @param read What to save in the query\r\n * @returns QueryList<T>\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵcontentQuery<T>(directiveIndex: number, predicate: ProviderToken<unknown> | string[], flags: QueryFlags, read?: any): void;\r\n\r\n/**\r\n * Copies the fields not handled by the `ɵɵInheritDefinitionFeature` from the supertype of a\r\n * definition.\r\n *\r\n * This exists primarily to support ngcc migration of an existing View Engine pattern, where an\r\n * entire decorator is inherited from a parent to a child class. When ngcc detects this case, it\r\n * generates a skeleton definition on the child class, and applies this feature.\r\n *\r\n * The `ɵɵCopyDefinitionFeature` then copies any needed fields from the parent class' definition,\r\n * including things like the component template function.\r\n *\r\n * @param definition The definition of a child class which inherits from a parent class with its\r\n * own definition.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵCopyDefinitionFeature(definition: ɵDirectiveDef<any> | ɵComponentDef<any>): void;\r\n\r\n/**\r\n * Create a component definition object.\r\n *\r\n *\r\n * # Example\r\n * ```\r\n * class MyDirective {\r\n *   // Generated by Angular Template Compiler\r\n *   // [Symbol] syntax will not be supported by TypeScript until v2.7\r\n *   static ɵcmp = defineComponent({\r\n *     ...\r\n *   });\r\n * }\r\n * ```\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵdefineComponent<T>(componentDefinition: {\r\n    /**\r\n     * Directive type, needed to configure the injector.\r\n     */\r\n    type: Type<T>;\r\n    /** The selectors that will be used to match nodes to this component. */\r\n    selectors?: ɵCssSelectorList;\r\n    /**\r\n     * The number of nodes, local refs, and pipes in this component template.\r\n     *\r\n     * Used to calculate the length of this component's LView array, so we\r\n     * can pre-fill the array and set the binding start index.\r\n     */\r\n    decls: number;\r\n    /**\r\n     * The number of bindings in this component template (including pure fn bindings).\r\n     *\r\n     * Used to calculate the length of this component's LView array, so we\r\n     * can pre-fill the array and set the host binding start index.\r\n     */\r\n    vars: number;\r\n    /**\r\n     * A map of input names.\r\n     *\r\n     * The format is in: `{[actualPropertyName: string]:(string|[string, string])}`.\r\n     *\r\n     * Given:\r\n     * ```\r\n     * class MyComponent {\r\n     *   @Input()\r\n     *   publicInput1: string;\r\n     *\r\n     *   @Input('publicInput2')\r\n     *   declaredInput2: string;\r\n     * }\r\n     * ```\r\n     *\r\n     * is described as:\r\n     * ```\r\n     * {\r\n     *   publicInput1: 'publicInput1',\r\n     *   declaredInput2: ['publicInput2', 'declaredInput2'],\r\n     * }\r\n     * ```\r\n     *\r\n     * Which the minifier may translate to:\r\n     * ```\r\n     * {\r\n     *   minifiedPublicInput1: 'publicInput1',\r\n     *   minifiedDeclaredInput2: ['publicInput2', 'declaredInput2'],\r\n     * }\r\n     * ```\r\n     *\r\n     * This allows the render to re-construct the minified, public, and declared names\r\n     * of properties.\r\n     *\r\n     * NOTE:\r\n     *  - Because declared and public name are usually same we only generate the array\r\n     *    `['public', 'declared']` format when they differ.\r\n     *  - The reason why this API and `outputs` API is not the same is that `NgOnChanges` has\r\n     *    inconsistent behavior in that it uses declared names rather than minified or public. For\r\n     *    this reason `NgOnChanges` will be deprecated and removed in future version and this\r\n     *    API will be simplified to be consistent with `output`.\r\n     */\r\n    inputs?: {\r\n        [P in keyof T]?: string | [string, string];\r\n    };\r\n    /**\r\n     * A map of output names.\r\n     *\r\n     * The format is in: `{[actualPropertyName: string]:string}`.\r\n     *\r\n     * Which the minifier may translate to: `{[minifiedPropertyName: string]:string}`.\r\n     *\r\n     * This allows the render to re-construct the minified and non-minified names\r\n     * of properties.\r\n     */\r\n    outputs?: {\r\n        [P in keyof T]?: string;\r\n    };\r\n    /**\r\n     * Function executed by the parent template to allow child directive to apply host bindings.\r\n     */\r\n    hostBindings?: HostBindingsFunction<T>;\r\n    /**\r\n     * The number of bindings in this directive `hostBindings` (including pure fn bindings).\r\n     *\r\n     * Used to calculate the length of the component's LView array, so we\r\n     * can pre-fill the array and set the host binding start index.\r\n     */\r\n    hostVars?: number;\r\n    /**\r\n     * Assign static attribute values to a host element.\r\n     *\r\n     * This property will assign static attribute values as well as class and style\r\n     * values to a host element. Since attribute values can consist of different types of values, the\r\n     * `hostAttrs` array must include the values in the following format:\r\n     *\r\n     * attrs = [\r\n     *   // static attributes (like `title`, `name`, `id`...)\r\n     *   attr1, value1, attr2, value,\r\n     *\r\n     *   // a single namespace value (like `x:id`)\r\n     *   NAMESPACE_MARKER, namespaceUri1, name1, value1,\r\n     *\r\n     *   // another single namespace value (like `x:name`)\r\n     *   NAMESPACE_MARKER, namespaceUri2, name2, value2,\r\n     *\r\n     *   // a series of CSS classes that will be applied to the element (no spaces)\r\n     *   CLASSES_MARKER, class1, class2, class3,\r\n     *\r\n     *   // a series of CSS styles (property + value) that will be applied to the element\r\n     *   STYLES_MARKER, prop1, value1, prop2, value2\r\n     * ]\r\n     *\r\n     * All non-class and non-style attributes must be defined at the start of the list\r\n     * first before all class and style values are set. When there is a change in value\r\n     * type (like when classes and styles are introduced) a marker must be used to separate\r\n     * the entries. The marker values themselves are set via entries found in the\r\n     * [AttributeMarker] enum.\r\n     */\r\n    hostAttrs?: TAttributes;\r\n    /**\r\n     * Function to create instances of content queries associated with a given directive.\r\n     */\r\n    contentQueries?: ContentQueriesFunction<T>;\r\n    /**\r\n     * Defines the name that can be used in the template to assign this directive to a variable.\r\n     *\r\n     * See: {@link Directive.exportAs}\r\n     */\r\n    exportAs?: string[];\r\n    /**\r\n     * Template function use for rendering DOM.\r\n     *\r\n     * This function has following structure.\r\n     *\r\n     * ```\r\n     * function Template<T>(ctx:T, creationMode: boolean) {\r\n     *   if (creationMode) {\r\n     *     // Contains creation mode instructions.\r\n     *   }\r\n     *   // Contains binding update instructions\r\n     * }\r\n     * ```\r\n     *\r\n     * Common instructions are:\r\n     * Creation mode instructions:\r\n     *  - `elementStart`, `elementEnd`\r\n     *  - `text`\r\n     *  - `container`\r\n     *  - `listener`\r\n     *\r\n     * Binding update instructions:\r\n     * - `bind`\r\n     * - `elementAttribute`\r\n     * - `elementProperty`\r\n     * - `elementClass`\r\n     * - `elementStyle`\r\n     *\r\n     */\r\n    template: ComponentTemplate<T>;\r\n    /**\r\n     * Constants for the nodes in the component's view.\r\n     * Includes attribute arrays, local definition arrays etc.\r\n     */\r\n    consts?: TConstantsOrFactory;\r\n    /**\r\n     * An array of `ngContent[selector]` values that were found in the template.\r\n     */\r\n    ngContentSelectors?: string[];\r\n    /**\r\n     * Additional set of instructions specific to view query processing. This could be seen as a\r\n     * set of instruction to be inserted into the template function.\r\n     *\r\n     * Query-related instructions need to be pulled out to a specific function as a timing of\r\n     * execution is different as compared to all other instructions (after change detection hooks but\r\n     * before view hooks).\r\n     */\r\n    viewQuery?: ViewQueriesFunction<T> | null;\r\n    /**\r\n     * A list of optional features to apply.\r\n     *\r\n     * See: {@link NgOnChangesFeature}, {@link ProvidersFeature}\r\n     */\r\n    features?: ComponentDefFeature[];\r\n    /**\r\n     * Defines template and style encapsulation options available for Component's {@link Component}.\r\n     */\r\n    encapsulation?: ViewEncapsulation;\r\n    /**\r\n     * Defines arbitrary developer-defined data to be stored on a renderer instance.\r\n     * This is useful for renderers that delegate to other renderers.\r\n     *\r\n     * see: animation\r\n     */\r\n    data?: {\r\n        [kind: string]: any;\r\n    };\r\n    /**\r\n     * A set of styles that the component needs to be present for component to render correctly.\r\n     */\r\n    styles?: string[];\r\n    /**\r\n     * The strategy that the default change detector uses to detect changes.\r\n     * When set, takes effect the next time change detection is triggered.\r\n     */\r\n    changeDetection?: ChangeDetectionStrategy;\r\n    /**\r\n     * Registry of directives and components that may be found in this component's view.\r\n     *\r\n     * The property is either an array of `DirectiveDef`s or a function which returns the array of\r\n     * `DirectiveDef`s. The function is necessary to be able to support forward declarations.\r\n     */\r\n    directives?: DirectiveTypesOrFactory | null;\r\n    /**\r\n     * Registry of pipes that may be found in this component's view.\r\n     *\r\n     * The property is either an array of `PipeDefs`s or a function which returns the array of\r\n     * `PipeDefs`s. The function is necessary to be able to support forward declarations.\r\n     */\r\n    pipes?: PipeTypesOrFactory | null;\r\n    /**\r\n     * The set of schemas that declare elements to be allowed in the component's template.\r\n     */\r\n    schemas?: SchemaMetadata[] | null;\r\n}): unknown;\r\n\r\n/**\r\n * Create a directive definition object.\r\n *\r\n * # Example\r\n * ```ts\r\n * class MyDirective {\r\n *   // Generated by Angular Template Compiler\r\n *   // [Symbol] syntax will not be supported by TypeScript until v2.7\r\n *   static ɵdir = ɵɵdefineDirective({\r\n *     ...\r\n *   });\r\n * }\r\n * ```\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare const ɵɵdefineDirective: <T>(directiveDefinition: {\r\n    /**\r\n     * Directive type, needed to configure the injector.\r\n     */\r\n    type: Type<T>;\r\n    /** The selectors that will be used to match nodes to this directive. */\r\n    selectors?: ɵCssSelectorList | undefined;\r\n    /**\r\n     * A map of input names.\r\n     *\r\n     * The format is in: `{[actualPropertyName: string]:(string|[string, string])}`.\r\n     *\r\n     * Given:\r\n     * ```\r\n     * class MyComponent {\r\n     *   @Input()\r\n     *   publicInput1: string;\r\n     *\r\n     *   @Input('publicInput2')\r\n     *   declaredInput2: string;\r\n     * }\r\n     * ```\r\n     *\r\n     * is described as:\r\n     * ```\r\n     * {\r\n     *   publicInput1: 'publicInput1',\r\n     *   declaredInput2: ['declaredInput2', 'publicInput2'],\r\n     * }\r\n     * ```\r\n     *\r\n     * Which the minifier may translate to:\r\n     * ```\r\n     * {\r\n     *   minifiedPublicInput1: 'publicInput1',\r\n     *   minifiedDeclaredInput2: [ 'publicInput2', 'declaredInput2'],\r\n     * }\r\n     * ```\r\n     *\r\n     * This allows the render to re-construct the minified, public, and declared names\r\n     * of properties.\r\n     *\r\n     * NOTE:\r\n     *  - Because declared and public name are usually same we only generate the array\r\n     *    `['declared', 'public']` format when they differ.\r\n     *  - The reason why this API and `outputs` API is not the same is that `NgOnChanges` has\r\n     *    inconsistent behavior in that it uses declared names rather than minified or public. For\r\n     *    this reason `NgOnChanges` will be deprecated and removed in future version and this\r\n     *    API will be simplified to be consistent with `output`.\r\n     */\r\n    inputs?: { [P in keyof T]?: string | [string, string] | undefined; } | undefined;\r\n    /**\r\n     * A map of output names.\r\n     *\r\n     * The format is in: `{[actualPropertyName: string]:string}`.\r\n     *\r\n     * Which the minifier may translate to: `{[minifiedPropertyName: string]:string}`.\r\n     *\r\n     * This allows the render to re-construct the minified and non-minified names\r\n     * of properties.\r\n     */\r\n    outputs?: { [P_1 in keyof T]?: string | undefined; } | undefined;\r\n    /**\r\n     * A list of optional features to apply.\r\n     *\r\n     * See: {@link NgOnChangesFeature}, {@link ProvidersFeature}, {@link InheritDefinitionFeature}\r\n     */\r\n    features?: DirectiveDefFeature[] | undefined;\r\n    /**\r\n     * Function executed by the parent template to allow child directive to apply host bindings.\r\n     */\r\n    hostBindings?: HostBindingsFunction<T> | undefined;\r\n    /**\r\n     * The number of bindings in this directive `hostBindings` (including pure fn bindings).\r\n     *\r\n     * Used to calculate the length of the component's LView array, so we\r\n     * can pre-fill the array and set the host binding start index.\r\n     */\r\n    hostVars?: number | undefined;\r\n    /**\r\n     * Assign static attribute values to a host element.\r\n     *\r\n     * This property will assign static attribute values as well as class and style\r\n     * values to a host element. Since attribute values can consist of different types of values,\r\n     * the `hostAttrs` array must include the values in the following format:\r\n     *\r\n     * attrs = [\r\n     *   // static attributes (like `title`, `name`, `id`...)\r\n     *   attr1, value1, attr2, value,\r\n     *\r\n     *   // a single namespace value (like `x:id`)\r\n     *   NAMESPACE_MARKER, namespaceUri1, name1, value1,\r\n     *\r\n     *   // another single namespace value (like `x:name`)\r\n     *   NAMESPACE_MARKER, namespaceUri2, name2, value2,\r\n     *\r\n     *   // a series of CSS classes that will be applied to the element (no spaces)\r\n     *   CLASSES_MARKER, class1, class2, class3,\r\n     *\r\n     *   // a series of CSS styles (property + value) that will be applied to the element\r\n     *   STYLES_MARKER, prop1, value1, prop2, value2\r\n     * ]\r\n     *\r\n     * All non-class and non-style attributes must be defined at the start of the list\r\n     * first before all class and style values are set. When there is a change in value\r\n     * type (like when classes and styles are introduced) a marker must be used to separate\r\n     * the entries. The marker values themselves are set via entries found in the\r\n     * [AttributeMarker] enum.\r\n     */\r\n    hostAttrs?: TAttributes | undefined;\r\n    /**\r\n     * Function to create instances of content queries associated with a given directive.\r\n     */\r\n    contentQueries?: ContentQueriesFunction<T> | undefined;\r\n    /**\r\n     * Additional set of instructions specific to view query processing. This could be seen as a\r\n     * set of instructions to be inserted into the template function.\r\n     */\r\n    viewQuery?: ViewQueriesFunction<T> | null | undefined;\r\n    /**\r\n     * Defines the name that can be used in the template to assign this directive to a variable.\r\n     *\r\n     * See: {@link Directive.exportAs}\r\n     */\r\n    exportAs?: string[] | undefined;\r\n}) => never;\r\n\r\n/**\r\n * Construct an injectable definition which defines how a token will be constructed by the DI\r\n * system, and in which injectors (if any) it will be available.\r\n *\r\n * This should be assigned to a static `ɵprov` field on a type, which will then be an\r\n * `InjectableType`.\r\n *\r\n * Options:\r\n * * `providedIn` determines which injectors will include the injectable, by either associating it\r\n *   with an `@NgModule` or other `InjectorType`, or by specifying that this injectable should be\r\n *   provided in the `'root'` injector, which will be the application-level injector in most apps.\r\n * * `factory` gives the zero argument function which will create an instance of the injectable.\r\n *   The factory can call `inject` to access the `Injector` and request injection of dependencies.\r\n *\r\n * @codeGenApi\r\n * @publicApi This instruction has been emitted by ViewEngine for some time and is deployed to npm.\r\n */\r\nexport declare function ɵɵdefineInjectable<T>(opts: {\r\n    token: unknown;\r\n    providedIn?: Type<any> | 'root' | 'platform' | 'any' | null;\r\n    factory: () => T;\r\n}): unknown;\r\n\r\n/**\r\n * Construct an `InjectorDef` which configures an injector.\r\n *\r\n * This should be assigned to a static injector def (`ɵinj`) field on a type, which will then be an\r\n * `InjectorType`.\r\n *\r\n * Options:\r\n *\r\n * * `providers`: an optional array of providers to add to the injector. Each provider must\r\n *   either have a factory or point to a type which has a `ɵprov` static property (the\r\n *   type must be an `InjectableType`).\r\n * * `imports`: an optional array of imports of other `InjectorType`s or `InjectorTypeWithModule`s\r\n *   whose providers will also be added to the injector. Locally provided types will override\r\n *   providers from imports.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵdefineInjector(options: {\r\n    providers?: any[];\r\n    imports?: any[];\r\n}): unknown;\r\n\r\n/**\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵdefineNgModule<T>(def: {\r\n    /** Token representing the module. Used by DI. */\r\n    type: T;\r\n    /** List of components to bootstrap. */\r\n    bootstrap?: Type<any>[] | (() => Type<any>[]);\r\n    /** List of components, directives, and pipes declared by this module. */\r\n    declarations?: Type<any>[] | (() => Type<any>[]);\r\n    /** List of modules or `ModuleWithProviders` imported by this module. */\r\n    imports?: Type<any>[] | (() => Type<any>[]);\r\n    /**\r\n     * List of modules, `ModuleWithProviders`, components, directives, or pipes exported by this\r\n     * module.\r\n     */\r\n    exports?: Type<any>[] | (() => Type<any>[]);\r\n    /** The set of schemas that declare elements to be allowed in the NgModule. */\r\n    schemas?: SchemaMetadata[] | null;\r\n    /** Unique ID for the module that is used with `getModuleFactory`. */\r\n    id?: string | null;\r\n}): unknown;\r\n\r\n/**\r\n * Create a pipe definition object.\r\n *\r\n * # Example\r\n * ```\r\n * class MyPipe implements PipeTransform {\r\n *   // Generated by Angular Template Compiler\r\n *   static ɵpipe = definePipe({\r\n *     ...\r\n *   });\r\n * }\r\n * ```\r\n * @param pipeDef Pipe definition generated by the compiler\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵdefinePipe<T>(pipeDef: {\r\n    /** Name of the pipe. Used for matching pipes in template to pipe defs. */\r\n    name: string;\r\n    /** Pipe class reference. Needed to extract pipe lifecycle hooks. */\r\n    type: Type<T>;\r\n    /** Whether the pipe is pure. */\r\n    pure?: boolean;\r\n}): unknown;\r\n\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare type ɵɵDirectiveDeclaration<T, Selector extends string, ExportAs extends string[], InputMap extends {\r\n    [key: string]: string;\r\n}, OutputMap extends {\r\n    [key: string]: string;\r\n}, QueryFields extends string[]> = unknown;\r\n\r\n/**\r\n * Returns the value associated to the given token from the injectors.\r\n *\r\n * `directiveInject` is intended to be used for directive, component and pipe factories.\r\n *  All other injection use `inject` which does not walk the node injector tree.\r\n *\r\n * Usage example (in factory function):\r\n *\r\n * ```ts\r\n * class SomeDirective {\r\n *   constructor(directive: DirectiveA) {}\r\n *\r\n *   static ɵdir = ɵɵdefineDirective({\r\n *     type: SomeDirective,\r\n *     factory: () => new SomeDirective(ɵɵdirectiveInject(DirectiveA))\r\n *   });\r\n * }\r\n * ```\r\n * @param token the type or token to inject\r\n * @param flags Injection flags\r\n * @returns the value from the injector or `null` when not found\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵdirectiveInject<T>(token: ProviderToken<T>): T;\r\n\r\nexport declare function ɵɵdirectiveInject<T>(token: ProviderToken<T>, flags: InjectFlags): T;\r\n\r\n/**\r\n * Disables directive matching on element.\r\n *\r\n *  * Example:\r\n * ```\r\n * <my-comp my-directive>\r\n *   Should match component / directive.\r\n * </my-comp>\r\n * <div ngNonBindable>\r\n *   <!-- ɵɵdisableBindings() -->\r\n *   <my-comp my-directive>\r\n *     Should not match component / directive because we are in ngNonBindable.\r\n *   </my-comp>\r\n *   <!-- ɵɵenableBindings() -->\r\n * </div>\r\n * ```\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵdisableBindings(): void;\r\n\r\n/**\r\n * Creates an empty element using {@link elementStart} and {@link elementEnd}\r\n *\r\n * @param index Index of the element in the data array\r\n * @param name Name of the DOM Node\r\n * @param attrsIndex Index of the element's attributes in the `consts` array.\r\n * @param localRefsIndex Index of the element's local references in the `consts` array.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelement(index: number, name: string, attrsIndex?: number | null, localRefsIndex?: number): void;\r\n\r\n/**\r\n * Creates an empty logical container using {@link elementContainerStart}\r\n * and {@link elementContainerEnd}\r\n *\r\n * @param index Index of the element in the LView array\r\n * @param attrsIndex Index of the container attributes in the `consts` array.\r\n * @param localRefsIndex Index of the container's local references in the `consts` array.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelementContainer(index: number, attrsIndex?: number | null, localRefsIndex?: number): void;\r\n\r\n/**\r\n * Mark the end of the <ng-container>.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelementContainerEnd(): void;\r\n\r\n/**\r\n * Creates a logical container for other nodes (<ng-container>) backed by a comment node in the DOM.\r\n * The instruction must later be followed by `elementContainerEnd()` call.\r\n *\r\n * @param index Index of the element in the LView array\r\n * @param attrsIndex Index of the container attributes in the `consts` array.\r\n * @param localRefsIndex Index of the container's local references in the `consts` array.\r\n *\r\n * Even if this instruction accepts a set of attributes no actual attribute values are propagated to\r\n * the DOM (as a comment node can't have attributes). Attributes are here only for directive\r\n * matching purposes and setting initial inputs of directives.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelementContainerStart(index: number, attrsIndex?: number | null, localRefsIndex?: number): void;\r\n\r\n/**\r\n * Mark the end of the element.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelementEnd(): void;\r\n\r\n\r\n/**\r\n * Create DOM element. The instruction must later be followed by `elementEnd()` call.\r\n *\r\n * @param index Index of the element in the LView array\r\n * @param name Name of the DOM Node\r\n * @param attrsIndex Index of the element's attributes in the `consts` array.\r\n * @param localRefsIndex Index of the element's local references in the `consts` array.\r\n *\r\n * Attributes and localRefs are passed as an array of strings where elements with an even index\r\n * hold an attribute name and elements with an odd index hold an attribute value, ex.:\r\n * ['id', 'warning5', 'class', 'alert']\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelementStart(index: number, name: string, attrsIndex?: number | null, localRefsIndex?: number): void;\r\n\r\n/**\r\n * Enables directive matching on elements.\r\n *\r\n *  * Example:\r\n * ```\r\n * <my-comp my-directive>\r\n *   Should match component / directive.\r\n * </my-comp>\r\n * <div ngNonBindable>\r\n *   <!-- ɵɵdisableBindings() -->\r\n *   <my-comp my-directive>\r\n *     Should not match component / directive because we are in ngNonBindable.\r\n *   </my-comp>\r\n *   <!-- ɵɵenableBindings() -->\r\n * </div>\r\n * ```\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵenableBindings(): void;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare type ɵɵFactoryDeclaration<T, CtorDependencies extends CtorDependency[]> = unknown;\r\n\r\nexport declare enum ɵɵFactoryTarget {\r\n    Directive = 0,\r\n    Component = 1,\r\n    Injectable = 2,\r\n    Pipe = 3,\r\n    NgModule = 4\r\n}\r\n\r\n/**\r\n * Returns the current OpaqueViewState instance.\r\n *\r\n * Used in conjunction with the restoreView() instruction to save a snapshot\r\n * of the current view and restore it when listeners are invoked. This allows\r\n * walking the declaration view tree in listeners to get vars from parent views.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵgetCurrentView(): OpaqueViewState;\r\n\r\n/**\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵgetInheritedFactory<T>(type: Type<any>): (type: Type<T>) => T;\r\n\r\n/**\r\n * Update a property on a host element. Only applies to native node properties, not inputs.\r\n *\r\n * Operates on the element selected by index via the {@link select} instruction.\r\n *\r\n * @param propName Name of property. Because it is going to DOM, this is not subject to\r\n *        renaming as part of minification.\r\n * @param value New value to write.\r\n * @param sanitizer An optional function used to sanitize the value.\r\n * @returns This function returns itself so that it may be chained\r\n * (e.g. `property('name', ctx.name)('title', ctx.title)`)\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵhostProperty<T>(propName: string, value: T, sanitizer?: SanitizerFn | null): typeof ɵɵhostProperty;\r\n\r\n/**\r\n *\r\n * Use this instruction to create a translation block that doesn't contain any placeholder.\r\n * It calls both {@link i18nStart} and {@link i18nEnd} in one instruction.\r\n *\r\n * The translation `message` is the value which is locale specific. The translation string may\r\n * contain placeholders which associate inner elements and sub-templates within the translation.\r\n *\r\n * The translation `message` placeholders are:\r\n * - `�{index}(:{block})�`: *Binding Placeholder*: Marks a location where an expression will be\r\n *   interpolated into. The placeholder `index` points to the expression binding index. An optional\r\n *   `block` that matches the sub-template in which it was declared.\r\n * - `�#{index}(:{block})�`/`�/#{index}(:{block})�`: *Element Placeholder*:  Marks the beginning\r\n *   and end of DOM element that were embedded in the original translation block. The placeholder\r\n *   `index` points to the element index in the template instructions set. An optional `block` that\r\n *   matches the sub-template in which it was declared.\r\n * - `�*{index}:{block}�`/`�/*{index}:{block}�`: *Sub-template Placeholder*: Sub-templates must be\r\n *   split up and translated separately in each angular template function. The `index` points to the\r\n *   `template` instruction index. A `block` that matches the sub-template in which it was declared.\r\n *\r\n * @param index A unique index of the translation in the static block.\r\n * @param messageIndex An index of the translation message from the `def.consts` array.\r\n * @param subTemplateIndex Optional sub-template index in the `message`.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18n(index: number, messageIndex: number, subTemplateIndex?: number): void;\r\n\r\n/**\r\n * Updates a translation block or an i18n attribute when the bindings have changed.\r\n *\r\n * @param index Index of either {@link i18nStart} (translation block) or {@link i18nAttributes}\r\n * (i18n attribute) on which it should update the content.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18nApply(index: number): void;\r\n\r\n/**\r\n * Marks a list of attributes as translatable.\r\n *\r\n * @param index A unique index in the static block\r\n * @param values\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18nAttributes(index: number, attrsIndex: number): void;\r\n\r\n/**\r\n * Translates a translation block marked by `i18nStart` and `i18nEnd`. It inserts the text/ICU nodes\r\n * into the render tree, moves the placeholder nodes and removes the deleted nodes.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18nEnd(): void;\r\n\r\n/**\r\n * Stores the values of the bindings during each update cycle in order to determine if we need to\r\n * update the translated nodes.\r\n *\r\n * @param value The binding's value\r\n * @returns This function returns itself so that it may be chained\r\n * (e.g. `i18nExp(ctx.name)(ctx.title)`)\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18nExp<T>(value: T): typeof ɵɵi18nExp;\r\n\r\n/**\r\n * Handles message string post-processing for internationalization.\r\n *\r\n * Handles message string post-processing by transforming it from intermediate\r\n * format (that might contain some markers that we need to replace) to the final\r\n * form, consumable by i18nStart instruction. Post processing steps include:\r\n *\r\n * 1. Resolve all multi-value cases (like [�*1:1��#2:1�|�#4:1�|�5�])\r\n * 2. Replace all ICU vars (like \"VAR_PLURAL\")\r\n * 3. Replace all placeholders used inside ICUs in a form of {PLACEHOLDER}\r\n * 4. Replace all ICU references with corresponding values (like �ICU_EXP_ICU_1�)\r\n *    in case multiple ICUs have the same placeholder name\r\n *\r\n * @param message Raw translation string for post processing\r\n * @param replacements Set of replacements that should be applied\r\n *\r\n * @returns Transformed string that can be consumed by i18nStart instruction\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18nPostprocess(message: string, replacements?: {\r\n    [key: string]: (string | string[]);\r\n}): string;\r\n\r\n/**\r\n * Marks a block of text as translatable.\r\n *\r\n * The instructions `i18nStart` and `i18nEnd` mark the translation block in the template.\r\n * The translation `message` is the value which is locale specific. The translation string may\r\n * contain placeholders which associate inner elements and sub-templates within the translation.\r\n *\r\n * The translation `message` placeholders are:\r\n * - `�{index}(:{block})�`: *Binding Placeholder*: Marks a location where an expression will be\r\n *   interpolated into. The placeholder `index` points to the expression binding index. An optional\r\n *   `block` that matches the sub-template in which it was declared.\r\n * - `�#{index}(:{block})�`/`�/#{index}(:{block})�`: *Element Placeholder*:  Marks the beginning\r\n *   and end of DOM element that were embedded in the original translation block. The placeholder\r\n *   `index` points to the element index in the template instructions set. An optional `block` that\r\n *   matches the sub-template in which it was declared.\r\n * - `�*{index}:{block}�`/`�/*{index}:{block}�`: *Sub-template Placeholder*: Sub-templates must be\r\n *   split up and translated separately in each angular template function. The `index` points to the\r\n *   `template` instruction index. A `block` that matches the sub-template in which it was declared.\r\n *\r\n * @param index A unique index of the translation in the static block.\r\n * @param messageIndex An index of the translation message from the `def.consts` array.\r\n * @param subTemplateIndex Optional sub-template index in the `message`.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵi18nStart(index: number, messageIndex: number, subTemplateIndex?: number): void;\r\n\r\n/**\r\n * Merges the definition from a super class to a sub class.\r\n * @param definition The definition that is a SubClass of another directive of component\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵInheritDefinitionFeature(definition: ɵDirectiveDef<any> | ɵComponentDef<any>): void;\r\n\r\n/**\r\n * Generated instruction: Injects a token from the currently active injector.\r\n *\r\n * Must be used in the context of a factory function such as one defined for an\r\n * `InjectionToken`. Throws an error if not called from such a context.\r\n *\r\n * (Additional documentation moved to `inject`, as it is the public API, and an alias for this\r\n * instruction)\r\n *\r\n * @see inject\r\n * @codeGenApi\r\n * @publicApi This instruction has been emitted by ViewEngine for some time and is deployed to npm.\r\n */\r\nexport declare function ɵɵinject<T>(token: ProviderToken<T>): T;\r\n\r\nexport declare function ɵɵinject<T>(token: ProviderToken<T>, flags?: InjectFlags): T | null;\r\n\r\n/**\r\n * Information about how a type or `InjectionToken` interfaces with the DI system.\r\n *\r\n * At a minimum, this includes a `factory` which defines how to create the given type `T`, possibly\r\n * requesting injection of other types if necessary.\r\n *\r\n * Optionally, a `providedIn` parameter specifies that the given type belongs to a particular\r\n * `Injector`, `NgModule`, or a special scope (e.g. `'root'`). A value of `null` indicates\r\n * that the injectable does not belong to any scope.\r\n *\r\n * @codeGenApi\r\n * @publicApi The ViewEngine compiler emits code with this type for injectables. This code is\r\n *   deployed to npm, and should be treated as public api.\r\n\r\n */\r\nexport declare interface ɵɵInjectableDeclaration<T> {\r\n    /**\r\n     * Specifies that the given type belongs to a particular injector:\r\n     * - `InjectorType` such as `NgModule`,\r\n     * - `'root'` the root injector\r\n     * - `'any'` all injectors.\r\n     * - `null`, does not belong to any injector. Must be explicitly listed in the injector\r\n     *   `providers`.\r\n     */\r\n    providedIn: InjectorType<any> | 'root' | 'platform' | 'any' | null;\r\n    /**\r\n     * The token to which this definition belongs.\r\n     *\r\n     * Note that this may not be the same as the type that the `factory` will create.\r\n     */\r\n    token: unknown;\r\n    /**\r\n     * Factory method to execute to create an instance of the injectable.\r\n     */\r\n    factory: (t?: Type<any>) => T;\r\n    /**\r\n     * In a case of no explicit injector, a location where the instance of the injectable is stored.\r\n     */\r\n    value: T | undefined;\r\n}\r\n\r\n/**\r\n * Facade for the attribute injection from DI.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵinjectAttribute(attrNameToInject: string): string | null;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare type ɵɵInjectorDeclaration<T> = unknown;\r\n\r\n/**\r\n * Information about the providers to be included in an `Injector` as well as how the given type\r\n * which carries the information should be created by the DI system.\r\n *\r\n * An `InjectorDef` can import other types which have `InjectorDefs`, forming a deep nested\r\n * structure of providers with a defined priority (identically to how `NgModule`s also have\r\n * an import/dependency structure).\r\n *\r\n * NOTE: This is a private type and should not be exported\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare interface ɵɵInjectorDef<T> {\r\n    providers: (Type<any> | ValueProvider | ExistingProvider | FactoryProvider | ConstructorProvider | StaticClassProvider | ClassProvider | any[])[];\r\n    imports: (InjectorType<any> | InjectorTypeWithProviders<any>)[];\r\n}\r\n\r\n/**\r\n * Throws an error indicating that a factory function could not be generated by the compiler for a\r\n * particular class.\r\n *\r\n * This instruction allows the actual error message to be optimized away when ngDevMode is turned\r\n * off, saving bytes of generated code while still providing a good experience in dev mode.\r\n *\r\n * The name of the class is not mentioned here, but will be in the generated factory function name\r\n * and thus in the stack trace.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵinvalidFactory(): never;\r\n\r\n/**\r\n * Throws an error indicating that a factory function could not be generated by the compiler for a\r\n * particular class.\r\n *\r\n * This instruction allows the actual error message to be optimized away when ngDevMode is turned\r\n * off, saving bytes of generated code while still providing a good experience in dev mode.\r\n *\r\n * The name of the class is not mentioned here, but will be in the generated factory function name\r\n * and thus in the stack trace.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵinvalidFactoryDep(index: number): never;\r\n\r\n/**\r\n * Adds an event listener to the current node.\r\n *\r\n * If an output exists on one of the node's directives, it also subscribes to the output\r\n * and saves the subscription for later cleanup.\r\n *\r\n * @param eventName Name of the event\r\n * @param listenerFn The function to be called when event emits\r\n * @param useCapture Whether or not to use capture in event listener\r\n * @param eventTargetResolver Function that returns global target information in case this listener\r\n * should be attached to a global object like window, document or body\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵlistener(eventName: string, listenerFn: (e?: any) => any, useCapture?: boolean, eventTargetResolver?: GlobalTargetResolver): typeof ɵɵlistener;\r\n\r\n/**\r\n * Loads a QueryList corresponding to the current view or content query.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵloadQuery<T>(): QueryList<T>;\r\n\r\n/**\r\n * Sets the namespace used to create elements to `null`, which forces element creation to use\r\n * `createElement` rather than `createElementNS`.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵnamespaceHTML(): void;\r\n\r\n/**\r\n * Sets the namespace used to create elements to `'http://www.w3.org/1998/MathML/'` in global state.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵnamespaceMathML(): void;\r\n\r\n/**\r\n * Sets the namespace used to create elements to `'http://www.w3.org/2000/svg'` in global state.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵnamespaceSVG(): void;\r\n\r\n/**\r\n * Retrieves a context at the level specified and saves it as the global, contextViewData.\r\n * Will get the next level up if level is not specified.\r\n *\r\n * This is used to save contexts of parent views so they can be bound in embedded views, or\r\n * in conjunction with reference() to bind a ref from a parent view.\r\n *\r\n * @param level The relative level of the view from which to grab context compared to contextVewData\r\n * @returns context\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵnextContext<T = any>(level?: number): T;\r\n\r\n/**\r\n * Evaluates the class metadata declaration.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareClassMetadata(decl: {\r\n    type: Type<any>;\r\n    decorators: any[];\r\n    ctorParameters?: () => any[];\r\n    propDecorators?: {\r\n        [field: string]: any;\r\n    };\r\n}): void;\r\n\r\n/**\r\n * Compiles a partial component declaration object into a full component definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareComponent(decl: R3DeclareComponentFacade): unknown;\r\n\r\n/**\r\n * Compiles a partial directive declaration object into a full directive definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareDirective(decl: R3DeclareDirectiveFacade): unknown;\r\n\r\n/**\r\n * Compiles a partial pipe declaration object into a full pipe definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareFactory(decl: R3DeclareFactoryFacade): unknown;\r\n\r\n/**\r\n * Compiles a partial injectable declaration object into a full injectable definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareInjectable(decl: R3DeclareInjectableFacade): unknown;\r\n\r\n/**\r\n * Compiles a partial injector declaration object into a full injector definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareInjector(decl: R3DeclareInjectorFacade): unknown;\r\n\r\n/**\r\n * Compiles a partial NgModule declaration object into a full NgModule definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclareNgModule(decl: R3DeclareNgModuleFacade): unknown;\r\n\r\n/**\r\n * Compiles a partial pipe declaration object into a full pipe definition object.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵngDeclarePipe(decl: R3DeclarePipeFacade): unknown;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare type ɵɵNgModuleDeclaration<T, Declarations, Imports, Exports> = unknown;\r\n\r\n/**\r\n * The NgOnChangesFeature decorates a component with support for the ngOnChanges\r\n * lifecycle hook, so it should be included in any component that implements\r\n * that hook.\r\n *\r\n * If the component or directive uses inheritance, the NgOnChangesFeature MUST\r\n * be included as a feature AFTER {@link InheritDefinitionFeature}, otherwise\r\n * inherited properties will not be propagated to the ngOnChanges lifecycle\r\n * hook.\r\n *\r\n * Example usage:\r\n *\r\n * ```\r\n * static ɵcmp = defineComponent({\r\n *   ...\r\n *   inputs: {name: 'publicName'},\r\n *   features: [NgOnChangesFeature]\r\n * });\r\n * ```\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵNgOnChangesFeature<T>(): DirectiveDefFeature;\r\n\r\n\r\n/**\r\n * Create a pipe.\r\n *\r\n * @param index Pipe index where the pipe will be stored.\r\n * @param pipeName The name of the pipe\r\n * @returns T the instance of the pipe.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpipe(index: number, pipeName: string): any;\r\n\r\n/**\r\n * Invokes a pipe with 1 arguments.\r\n *\r\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\r\n * the pipe only when an input to the pipe changes.\r\n *\r\n * @param index Pipe index where the pipe was stored on creation.\r\n * @param slotOffset the offset in the reserved slot space\r\n * @param v1 1st argument to {@link PipeTransform#transform}.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpipeBind1(index: number, slotOffset: number, v1: any): any;\r\n\r\n/**\r\n * Invokes a pipe with 2 arguments.\r\n *\r\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\r\n * the pipe only when an input to the pipe changes.\r\n *\r\n * @param index Pipe index where the pipe was stored on creation.\r\n * @param slotOffset the offset in the reserved slot space\r\n * @param v1 1st argument to {@link PipeTransform#transform}.\r\n * @param v2 2nd argument to {@link PipeTransform#transform}.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpipeBind2(index: number, slotOffset: number, v1: any, v2: any): any;\r\n\r\n/**\r\n * Invokes a pipe with 3 arguments.\r\n *\r\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\r\n * the pipe only when an input to the pipe changes.\r\n *\r\n * @param index Pipe index where the pipe was stored on creation.\r\n * @param slotOffset the offset in the reserved slot space\r\n * @param v1 1st argument to {@link PipeTransform#transform}.\r\n * @param v2 2nd argument to {@link PipeTransform#transform}.\r\n * @param v3 4rd argument to {@link PipeTransform#transform}.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpipeBind3(index: number, slotOffset: number, v1: any, v2: any, v3: any): any;\r\n\r\n/**\r\n * Invokes a pipe with 4 arguments.\r\n *\r\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\r\n * the pipe only when an input to the pipe changes.\r\n *\r\n * @param index Pipe index where the pipe was stored on creation.\r\n * @param slotOffset the offset in the reserved slot space\r\n * @param v1 1st argument to {@link PipeTransform#transform}.\r\n * @param v2 2nd argument to {@link PipeTransform#transform}.\r\n * @param v3 3rd argument to {@link PipeTransform#transform}.\r\n * @param v4 4th argument to {@link PipeTransform#transform}.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpipeBind4(index: number, slotOffset: number, v1: any, v2: any, v3: any, v4: any): any;\r\n\r\n/**\r\n * Invokes a pipe with variable number of arguments.\r\n *\r\n * This instruction acts as a guard to {@link PipeTransform#transform} invoking\r\n * the pipe only when an input to the pipe changes.\r\n *\r\n * @param index Pipe index where the pipe was stored on creation.\r\n * @param slotOffset the offset in the reserved slot space\r\n * @param values Array of arguments to pass to {@link PipeTransform#transform} method.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpipeBindV(index: number, slotOffset: number, values: [any, ...any[]]): any;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare type ɵɵPipeDeclaration<T, Name extends string> = unknown;\r\n\r\n/**\r\n * Inserts previously re-distributed projected nodes. This instruction must be preceded by a call\r\n * to the projectionDef instruction.\r\n *\r\n * @param nodeIndex\r\n * @param selectorIndex:\r\n *        - 0 when the selector is `*` (or unspecified as this is the default value),\r\n *        - 1 based index of the selector from the {@link projectionDef}\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵprojection(nodeIndex: number, selectorIndex?: number, attrs?: TAttributes): void;\r\n\r\n/**\r\n * Instruction to distribute projectable nodes among <ng-content> occurrences in a given template.\r\n * It takes all the selectors from the entire component's template and decides where\r\n * each projected node belongs (it re-distributes nodes among \"buckets\" where each \"bucket\" is\r\n * backed by a selector).\r\n *\r\n * This function requires CSS selectors to be provided in 2 forms: parsed (by a compiler) and text,\r\n * un-parsed form.\r\n *\r\n * The parsed form is needed for efficient matching of a node against a given CSS selector.\r\n * The un-parsed, textual form is needed for support of the ngProjectAs attribute.\r\n *\r\n * Having a CSS selector in 2 different formats is not ideal, but alternatives have even more\r\n * drawbacks:\r\n * - having only a textual form would require runtime parsing of CSS selectors;\r\n * - we can't have only a parsed as we can't re-construct textual form from it (as entered by a\r\n * template author).\r\n *\r\n * @param projectionSlots? A collection of projection slots. A projection slot can be based\r\n *        on a parsed CSS selectors or set to the wildcard selector (\"*\") in order to match\r\n *        all nodes which do not match any selector. If not specified, a single wildcard\r\n *        selector projection slot will be defined.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵprojectionDef(projectionSlots?: ProjectionSlots): void;\r\n\r\n/**\r\n * Update a property on a selected element.\r\n *\r\n * Operates on the element selected by index via the {@link select} instruction.\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled\r\n *\r\n * @param propName Name of property. Because it is going to DOM, this is not subject to\r\n *        renaming as part of minification.\r\n * @param value New value to write.\r\n * @param sanitizer An optional function used to sanitize the value.\r\n * @returns This function returns itself so that it may be chained\r\n * (e.g. `property('name', ctx.name)('title', ctx.title)`)\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵproperty<T>(propName: string, value: T, sanitizer?: SanitizerFn | null): typeof ɵɵproperty;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with a lone bound value\r\n *\r\n * Used when the value passed to a property has 1 interpolated value in it, an no additional text\r\n * surrounds that interpolated value:\r\n *\r\n * ```html\r\n * <div title=\"{{v0}}\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate('title', v0);\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate(propName: string, v0: any, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with single bound value surrounded by text.\r\n *\r\n * Used when the value passed to a property has 1 interpolated value in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate1('title', 'prefix', v0, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate1(propName: string, prefix: string, v0: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate1;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 2 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 2 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate2('title', 'prefix', v0, '-', v1, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate2(propName: string, prefix: string, v0: any, i0: string, v1: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate2;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 3 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 3 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate3(\r\n * 'title', 'prefix', v0, '-', v1, '-', v2, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate3(propName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate3;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 4 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 4 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate4(\r\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate4(propName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate4;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 5 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 5 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate5(\r\n * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate5(propName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate5;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 6 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 6 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate6(\r\n *    'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate6(propName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate6;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 7 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 7 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate7(\r\n *    'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate7(propName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate7;\r\n\r\n/**\r\n *\r\n * Update an interpolated property on an element with 8 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 8 interpolated values in it:\r\n *\r\n * ```html\r\n * <div title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolate8(\r\n *  'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param i6 Static value used for concatenation only.\r\n * @param v7 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolate8(propName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string, sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolate8;\r\n\r\n/**\r\n * Update an interpolated property on an element with 9 or more bound values surrounded by text.\r\n *\r\n * Used when the number of interpolated values exceeds 8.\r\n *\r\n * ```html\r\n * <div\r\n *  title=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is::\r\n *\r\n * ```ts\r\n * ɵɵpropertyInterpolateV(\r\n *  'title', ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\r\n *  'suffix']);\r\n * ```\r\n *\r\n * If the property name also exists as an input property on one of the element's directives,\r\n * the component property will be set instead of the element property. This check must\r\n * be conducted at runtime so child components that add new `@Inputs` don't have to be re-compiled.\r\n *\r\n * @param propName The name of the property to update.\r\n * @param values The collection of values and the strings inbetween those values, beginning with a\r\n * string prefix and ending with a string suffix.\r\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\r\n * @param sanitizer An optional sanitizer function\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpropertyInterpolateV(propName: string, values: any[], sanitizer?: SanitizerFn): typeof ɵɵpropertyInterpolateV;\r\n\r\n/**\r\n * This feature resolves the providers of a directive (or component),\r\n * and publish them into the DI system, making it visible to others for injection.\r\n *\r\n * For example:\r\n * ```ts\r\n * class ComponentWithProviders {\r\n *   constructor(private greeter: GreeterDE) {}\r\n *\r\n *   static ɵcmp = defineComponent({\r\n *     type: ComponentWithProviders,\r\n *     selectors: [['component-with-providers']],\r\n *    factory: () => new ComponentWithProviders(directiveInject(GreeterDE as any)),\r\n *    decls: 1,\r\n *    vars: 1,\r\n *    template: function(fs: RenderFlags, ctx: ComponentWithProviders) {\r\n *      if (fs & RenderFlags.Create) {\r\n *        ɵɵtext(0);\r\n *      }\r\n *      if (fs & RenderFlags.Update) {\r\n *        ɵɵtextInterpolate(ctx.greeter.greet());\r\n *      }\r\n *    },\r\n *    features: [ɵɵProvidersFeature([GreeterDE])]\r\n *  });\r\n * }\r\n * ```\r\n *\r\n * @param definition\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵProvidersFeature<T>(providers: Provider[], viewProviders?: Provider[]): (definition: ɵDirectiveDef<T>) => void;\r\n\r\n/**\r\n * Bindings for pure functions are stored after regular bindings.\r\n *\r\n * |-------decls------|---------vars---------|                 |----- hostVars (dir1) ------|\r\n * ------------------------------------------------------------------------------------------\r\n * | nodes/refs/pipes | bindings | fn slots  | injector | dir1 | host bindings | host slots |\r\n * ------------------------------------------------------------------------------------------\r\n *                    ^                      ^\r\n *      TView.bindingStartIndex      TView.expandoStartIndex\r\n *\r\n * Pure function instructions are given an offset from the binding root. Adding the offset to the\r\n * binding root gives the first index where the bindings are stored. In component views, the binding\r\n * root is the bindingStartIndex. In host bindings, the binding root is the expandoStartIndex +\r\n * any directive instances + any hostVars in directives evaluated before it.\r\n *\r\n * See VIEW_DATA.md for more information about host binding resolution.\r\n */\r\n/**\r\n * If the value hasn't been saved, calls the pure function to store and return the\r\n * value. If it has been saved, returns the saved value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn Function that returns a value\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction0<T>(slotOffset: number, pureFn: () => T, thisArg?: any): T;\r\n\r\n/**\r\n * If the value of the provided exp has changed, calls the pure function to return\r\n * an updated value. Or if the value has not changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn Function that returns an updated value\r\n * @param exp Updated expression value\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction1(slotOffset: number, pureFn: (v: any) => any, exp: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction2(slotOffset: number, pureFn: (v1: any, v2: any) => any, exp1: any, exp2: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction3(slotOffset: number, pureFn: (v1: any, v2: any, v3: any) => any, exp1: any, exp2: any, exp3: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param exp4\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction4(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param exp4\r\n * @param exp5\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction5(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param exp4\r\n * @param exp5\r\n * @param exp6\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction6(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param exp4\r\n * @param exp5\r\n * @param exp6\r\n * @param exp7\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction7(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, v7: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, exp7: any, thisArg?: any): any;\r\n\r\n/**\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn\r\n * @param exp1\r\n * @param exp2\r\n * @param exp3\r\n * @param exp4\r\n * @param exp5\r\n * @param exp6\r\n * @param exp7\r\n * @param exp8\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunction8(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, v7: any, v8: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, exp7: any, exp8: any, thisArg?: any): any;\r\n\r\n/**\r\n * pureFunction instruction that can support any number of bindings.\r\n *\r\n * If the value of any provided exp has changed, calls the pure function to return\r\n * an updated value. Or if no values have changed, returns cached value.\r\n *\r\n * @param slotOffset the offset from binding root to the reserved slot\r\n * @param pureFn A pure function that takes binding values and builds an object or array\r\n * containing those values.\r\n * @param exps An array of binding values\r\n * @param thisArg Optional calling context of pureFn\r\n * @returns Updated or cached value\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵpureFunctionV(slotOffset: number, pureFn: (...v: any[]) => any, exps: any[], thisArg?: any): any;\r\n\r\n/**\r\n * Refreshes a query by combining matches from all active views and removing matches from deleted\r\n * views.\r\n *\r\n * @returns `true` if a query got dirty during change detection or if this is a static query\r\n * resolving in creation mode, `false` otherwise.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵqueryRefresh(queryList: QueryList<any>): boolean;\r\n\r\n/**\r\n * Retrieves a local reference from the current contextViewData.\r\n *\r\n * If the reference to retrieve is in a parent view, this instruction is used in conjunction\r\n * with a nextContext() call, which walks up the tree and updates the contextViewData instance.\r\n *\r\n * @param index The index of the local ref in contextViewData.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵreference<T>(index: number): T;\r\n\r\n/**\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵresolveBody(element: RElement & {\r\n    ownerDocument: Document;\r\n}): HTMLElement;\r\n\r\n/**\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵresolveDocument(element: RElement & {\r\n    ownerDocument: Document;\r\n}): Document;\r\n\r\n/**\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵresolveWindow(element: RElement & {\r\n    ownerDocument: Document;\r\n}): (Window & typeof globalThis) | null;\r\n\r\n/**\r\n * Restores `contextViewData` to the given OpaqueViewState instance.\r\n *\r\n * Used in conjunction with the getCurrentView() instruction to save a snapshot\r\n * of the current view and restore it when listeners are invoked. This allows\r\n * walking the declaration view tree in listeners to get vars from parent views.\r\n *\r\n * @param viewToRestore The OpaqueViewState instance to restore.\r\n * @returns Context of the restored OpaqueViewState instance.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵrestoreView<T = any>(viewToRestore: OpaqueViewState): T;\r\n\r\n/**\r\n * An `html` sanitizer which converts untrusted `html` **string** into trusted string by removing\r\n * dangerous content.\r\n *\r\n * This method parses the `html` and locates potentially dangerous content (such as urls and\r\n * javascript) and removes it.\r\n *\r\n * It is possible to mark a string as trusted by calling {@link bypassSanitizationTrustHtml}.\r\n *\r\n * @param unsafeHtml untrusted `html`, typically from the user.\r\n * @returns `html` string which is safe to display to user, because all of the dangerous javascript\r\n * and urls have been removed.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsanitizeHtml(unsafeHtml: any): TrustedHTML | string;\r\n\r\n/**\r\n * A `url` sanitizer which only lets trusted `url`s through.\r\n *\r\n * This passes only `url`s marked trusted by calling {@link bypassSanitizationTrustResourceUrl}.\r\n *\r\n * @param unsafeResourceUrl untrusted `url`, typically from the user.\r\n * @returns `url` string which is safe to bind to the `src` properties such as `<img src>`, because\r\n * only trusted `url`s have been allowed to pass.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsanitizeResourceUrl(unsafeResourceUrl: any): TrustedScriptURL | string;\r\n\r\n/**\r\n * A `script` sanitizer which only lets trusted javascript through.\r\n *\r\n * This passes only `script`s marked trusted by calling {@link\r\n * bypassSanitizationTrustScript}.\r\n *\r\n * @param unsafeScript untrusted `script`, typically from the user.\r\n * @returns `url` string which is safe to bind to the `<script>` element such as `<img src>`,\r\n * because only trusted `scripts` have been allowed to pass.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsanitizeScript(unsafeScript: any): TrustedScript | string;\r\n\r\n/**\r\n * A `style` sanitizer which converts untrusted `style` **string** into trusted string by removing\r\n * dangerous content.\r\n *\r\n * It is possible to mark a string as trusted by calling {@link bypassSanitizationTrustStyle}.\r\n *\r\n * @param unsafeStyle untrusted `style`, typically from the user.\r\n * @returns `style` string which is safe to bind to the `style` properties.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsanitizeStyle(unsafeStyle: any): string;\r\n\r\n/**\r\n * A `url` sanitizer which converts untrusted `url` **string** into trusted string by removing\r\n * dangerous\r\n * content.\r\n *\r\n * This method parses the `url` and locates potentially dangerous content (such as javascript) and\r\n * removes it.\r\n *\r\n * It is possible to mark a string as trusted by calling {@link bypassSanitizationTrustUrl}.\r\n *\r\n * @param unsafeUrl untrusted `url`, typically from the user.\r\n * @returns `url` string which is safe to bind to the `src` properties such as `<img src>`, because\r\n * all of the dangerous javascript has been removed.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsanitizeUrl(unsafeUrl: any): string;\r\n\r\n/**\r\n * Sanitizes URL, selecting sanitizer function based on tag and property names.\r\n *\r\n * This function is used in case we can't define security context at compile time, when only prop\r\n * name is available. This happens when we generate host bindings for Directives/Components. The\r\n * host element is unknown at compile time, so we defer calculation of specific sanitizer to\r\n * runtime.\r\n *\r\n * @param unsafeUrl untrusted `url`, typically from the user.\r\n * @param tag target element tag name.\r\n * @param prop name of the property that contains the value.\r\n * @returns `url` string which is safe to bind.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsanitizeUrlOrResourceUrl(unsafeUrl: any, tag: string, prop: string): any;\r\n\r\n/**\r\n * Generated next to NgModules to monkey-patch directive and pipe references onto a component's\r\n * definition, when generating a direct reference in the component file would otherwise create an\r\n * import cycle.\r\n *\r\n * See [this explanation](https://hackmd.io/Odw80D0pR6yfsOjg_7XCJg?view) for more details.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsetComponentScope(type: ɵComponentType<any>, directives: Type<any>[], pipes: Type<any>[]): void;\r\n\r\n/**\r\n * Adds the module metadata that is necessary to compute the module's transitive scope to an\r\n * existing module definition.\r\n *\r\n * Scope metadata of modules is not used in production builds, so calls to this function can be\r\n * marked pure to tree-shake it from the bundle, allowing for all referenced declarations\r\n * to become eligible for tree-shaking as well.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsetNgModuleScope(type: any, scope: {\r\n    /** List of components, directives, and pipes declared by this module. */\r\n    declarations?: Type<any>[] | (() => Type<any>[]);\r\n    /** List of modules or `ModuleWithProviders` imported by this module. */\r\n    imports?: Type<any>[] | (() => Type<any>[]);\r\n    /**\r\n     * List of modules, `ModuleWithProviders`, components, directives, or pipes exported by this\r\n     * module.\r\n     */\r\n    exports?: Type<any>[] | (() => Type<any>[]);\r\n}): unknown;\r\n\r\n/**\r\n * Update style bindings using an object literal on an element.\r\n *\r\n * This instruction is meant to apply styling via the `[style]=\"exp\"` template bindings.\r\n * When styles are applied to the element they will then be updated with respect to\r\n * any styles/classes set via `styleProp`. If any styles are set to falsy\r\n * then they will be removed from the element.\r\n *\r\n * Note that the styling instruction will not be applied until `stylingApply` is called.\r\n *\r\n * @param styles A key/value style map of the styles that will be applied to the given element.\r\n *        Any missing styles (that have already been applied to the element beforehand) will be\r\n *        removed (unset) from the element's styling.\r\n *\r\n * Note that this will apply the provided styleMap value to the host element if this function\r\n * is called within a host binding.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMap(styles: {\r\n    [styleName: string]: any;\r\n} | string | undefined | null): void;\r\n\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with single bound value surrounded by text.\r\n *\r\n * Used when the value passed to a property has 1 interpolated value in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate1('key: ', v0, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate1(prefix: string, v0: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 2 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 2 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key1: {{v1}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate2('key: ', v0, '; key1: ', v1, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate2(prefix: string, v0: any, i0: string, v1: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 3 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 3 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key2: {{v1}}; key2: {{v2}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate3(\r\n *     'key: ', v0, '; key1: ', v1, '; key2: ', v2, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate3(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 4 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 4 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate4(\r\n *     'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate4(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 5 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 5 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate5(\r\n *     'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate5(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 6 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 6 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}};\r\n *             key5: {{v5}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate6(\r\n *    'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, '; key5: ', v5,\r\n *    'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate6(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 7 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 7 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}}; key5: {{v5}};\r\n *             key6: {{v6}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate7(\r\n *    'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, '; key5: ', v5,\r\n *    '; key6: ', v6, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate7(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string): void;\r\n\r\n/**\r\n *\r\n * Update an interpolated style on an element with 8 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 8 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}}; key5: {{v5}};\r\n *             key6: {{v6}}; key7: {{v7}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolate8(\r\n *    'key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, '; key5: ', v5,\r\n *    '; key6: ', v6, '; key7: ', v7, 'suffix');\r\n * ```\r\n *\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param i6 Static value used for concatenation only.\r\n * @param v7 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolate8(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string): void;\r\n\r\n/**\r\n * Update an interpolated style on an element with 9 or more bound values surrounded by text.\r\n *\r\n * Used when the number of interpolated values exceeds 8.\r\n *\r\n * ```html\r\n * <div\r\n *  class=\"key: {{v0}}; key1: {{v1}}; key2: {{v2}}; key3: {{v3}}; key4: {{v4}}; key5: {{v5}};\r\n *         key6: {{v6}}; key7: {{v7}}; key8: {{v8}}; key9: {{v9}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstyleMapInterpolateV(\r\n *    ['key: ', v0, '; key1: ', v1, '; key2: ', v2, '; key3: ', v3, '; key4: ', v4, '; key5: ', v5,\r\n *     '; key6: ', v6, '; key7: ', v7, '; key8: ', v8, '; key9: ', v9, 'suffix']);\r\n * ```\r\n *.\r\n * @param values The collection of values and the strings in-between those values, beginning with\r\n * a string prefix and ending with a string suffix.\r\n * (e.g. `['prefix', value0, '; key2: ', value1, '; key2: ', value2, ..., value99, 'suffix']`)\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleMapInterpolateV(values: any[]): void;\r\n\r\n/**\r\n * Update a style binding on an element with the provided value.\r\n *\r\n * If the style value is falsy then it will be removed from the element\r\n * (or assigned a different value depending if there are any styles placed\r\n * on the element with `styleMap` or any static styles that are\r\n * present from when the element was created with `styling`).\r\n *\r\n * Note that the styling element is updated as part of `stylingApply`.\r\n *\r\n * @param prop A valid CSS property.\r\n * @param value New value to write (`null` or an empty string to remove).\r\n * @param suffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n *\r\n * Note that this will apply the provided style value to the host element if this function is called\r\n * within a host binding function.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleProp(prop: string, value: string | number | ɵSafeValue | undefined | null, suffix?: string | null): typeof ɵɵstyleProp;\r\n\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with single bound value surrounded by text.\r\n *\r\n * Used when the value passed to a property has 1 interpolated value in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate1(0, 'prefix', v0, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate1(prop: string, prefix: string, v0: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate1;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 2 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 2 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate2(0, 'prefix', v0, '-', v1, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate2(prop: string, prefix: string, v0: any, i0: string, v1: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate2;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 3 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 3 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate3(0, 'prefix', v0, '-', v1, '-', v2, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate3(prop: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate3;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 4 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 4 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate4(0, 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate4(prop: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate4;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 5 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 5 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate5(0, 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate5(prop: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate5;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 6 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 6 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate6(0, 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate6(prop: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate6;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 7 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 7 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate7(\r\n *    0, 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate7(prop: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate7;\r\n\r\n/**\r\n *\r\n * Update an interpolated style property on an element with 8 bound values surrounded by text.\r\n *\r\n * Used when the value passed to a property has 8 interpolated values in it:\r\n *\r\n * ```html\r\n * <div style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix\"></div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolate8(0, 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6,\r\n * '-', v7, 'suffix');\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`.\r\n * @param prefix Static value used for concatenation only.\r\n * @param v0 Value checked for change.\r\n * @param i0 Static value used for concatenation only.\r\n * @param v1 Value checked for change.\r\n * @param i1 Static value used for concatenation only.\r\n * @param v2 Value checked for change.\r\n * @param i2 Static value used for concatenation only.\r\n * @param v3 Value checked for change.\r\n * @param i3 Static value used for concatenation only.\r\n * @param v4 Value checked for change.\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change.\r\n * @param i5 Static value used for concatenation only.\r\n * @param v6 Value checked for change.\r\n * @param i6 Static value used for concatenation only.\r\n * @param v7 Value checked for change.\r\n * @param suffix Static value used for concatenation only.\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolate8(prop: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string, valueSuffix?: string | null): typeof ɵɵstylePropInterpolate8;\r\n\r\n/**\r\n * Update an interpolated style property on an element with 9 or more bound values surrounded by\r\n * text.\r\n *\r\n * Used when the number of interpolated values exceeds 8.\r\n *\r\n * ```html\r\n * <div\r\n *  style.color=\"prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix\">\r\n * </div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵstylePropInterpolateV(\r\n *  0, ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\r\n *  'suffix']);\r\n * ```\r\n *\r\n * @param styleIndex Index of style to update. This index value refers to the\r\n *        index of the style in the style bindings array that was passed into\r\n *        `styling`..\r\n * @param values The collection of values and the strings in-between those values, beginning with\r\n * a string prefix and ending with a string suffix.\r\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\r\n * @param valueSuffix Optional suffix. Used with scalar values to add unit such as `px`.\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstylePropInterpolateV(prop: string, values: any[], valueSuffix?: string | null): typeof ɵɵstylePropInterpolateV;\r\n\r\n/**\r\n * Registers a synthetic host listener (e.g. `(@foo.start)`) on a component or directive.\r\n *\r\n * This instruction is for compatibility purposes and is designed to ensure that a\r\n * synthetic host listener (e.g. `@HostListener('@foo.start')`) properly gets rendered\r\n * in the component's renderer. Normally all host listeners are evaluated with the\r\n * parent component's renderer, but, in the case of animation @triggers, they need\r\n * to be evaluated with the sub component's renderer (because that's where the\r\n * animation triggers are defined).\r\n *\r\n * Do not use this instruction as a replacement for `listener`. This instruction\r\n * only exists to ensure compatibility with the ViewEngine's host binding behavior.\r\n *\r\n * @param eventName Name of the event\r\n * @param listenerFn The function to be called when event emits\r\n * @param useCapture Whether or not to use capture in event listener\r\n * @param eventTargetResolver Function that returns global target information in case this listener\r\n * should be attached to a global object like window, document or body\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsyntheticHostListener(eventName: string, listenerFn: (e?: any) => any): typeof ɵɵsyntheticHostListener;\r\n\r\n/**\r\n * Updates a synthetic host binding (e.g. `[@foo]`) on a component or directive.\r\n *\r\n * This instruction is for compatibility purposes and is designed to ensure that a\r\n * synthetic host binding (e.g. `@HostBinding('@foo')`) properly gets rendered in\r\n * the component's renderer. Normally all host bindings are evaluated with the parent\r\n * component's renderer, but, in the case of animation @triggers, they need to be\r\n * evaluated with the sub component's renderer (because that's where the animation\r\n * triggers are defined).\r\n *\r\n * Do not use this instruction as a replacement for `elementProperty`. This instruction\r\n * only exists to ensure compatibility with the ViewEngine's host binding behavior.\r\n *\r\n * @param index The index of the element to update in the data array\r\n * @param propName Name of property. Because it is going to DOM, this is not subject to\r\n *        renaming as part of minification.\r\n * @param value New value to write.\r\n * @param sanitizer An optional function used to sanitize the value.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵsyntheticHostProperty<T>(propName: string, value: T | ɵNO_CHANGE, sanitizer?: SanitizerFn | null): typeof ɵɵsyntheticHostProperty;\r\n\r\n/**\r\n * Creates an LContainer for an ng-template (dynamically-inserted view), e.g.\r\n *\r\n * <ng-template #foo>\r\n *    <div></div>\r\n * </ng-template>\r\n *\r\n * @param index The index of the container in the data array\r\n * @param templateFn Inline template\r\n * @param decls The number of nodes, local refs, and pipes for this template\r\n * @param vars The number of bindings for this template\r\n * @param tagName The name of the container element, if applicable\r\n * @param attrsIndex Index of template attributes in the `consts` array.\r\n * @param localRefs Index of the local references in the `consts` array.\r\n * @param localRefExtractor A function which extracts local-refs values from the template.\r\n *        Defaults to the current element associated with the local-ref.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtemplate(index: number, templateFn: ComponentTemplate<any> | null, decls: number, vars: number, tagName?: string | null, attrsIndex?: number | null, localRefsIndex?: number | null, localRefExtractor?: LocalRefExtractor): void;\r\n\r\n/**\r\n * Retrieves `TemplateRef` instance from `Injector` when a local reference is placed on the\r\n * `<ng-template>` element.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtemplateRefExtractor(tNode: TNode, lView: ɵangular_packages_core_core_ca): TemplateRef<any> | null;\r\n\r\n/**\r\n * Create static text node\r\n *\r\n * @param index Index of the node in the data array\r\n * @param value Static string value to write.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtext(index: number, value?: string): void;\r\n\r\n/**\r\n *\r\n * Update text content with a lone bound value\r\n *\r\n * Used when a text node has 1 interpolated value in it, an no additional text\r\n * surrounds that interpolated value:\r\n *\r\n * ```html\r\n * <div>{{v0}}</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate(v0);\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate(v0: any): typeof ɵɵtextInterpolate;\r\n\r\n/**\r\n *\r\n * Update text content with single bound value surrounded by other text.\r\n *\r\n * Used when a text node has 1 interpolated value in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate1('prefix', v0, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate1(prefix: string, v0: any, suffix: string): typeof ɵɵtextInterpolate1;\r\n\r\n/**\r\n *\r\n * Update text content with 2 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 2 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate2('prefix', v0, '-', v1, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate2(prefix: string, v0: any, i0: string, v1: any, suffix: string): typeof ɵɵtextInterpolate2;\r\n\r\n/**\r\n *\r\n * Update text content with 3 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 3 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate3(\r\n * 'prefix', v0, '-', v1, '-', v2, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate3(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string): typeof ɵɵtextInterpolate3;\r\n\r\n/**\r\n *\r\n * Update text content with 4 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 4 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate4(\r\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see ɵɵtextInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate4(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string): typeof ɵɵtextInterpolate4;\r\n\r\n/**\r\n *\r\n * Update text content with 5 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 5 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate5(\r\n * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate5(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string): typeof ɵɵtextInterpolate5;\r\n\r\n/**\r\n *\r\n * Update text content with 6 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 6 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate6(\r\n *    'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');\r\n * ```\r\n *\r\n * @param i4 Static value used for concatenation only.\r\n * @param v5 Value checked for change. @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate6(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string): typeof ɵɵtextInterpolate6;\r\n\r\n/**\r\n *\r\n * Update text content with 7 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 7 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate7(\r\n *    'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate7(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string): typeof ɵɵtextInterpolate7;\r\n\r\n/**\r\n *\r\n * Update text content with 8 bound values surrounded by other text.\r\n *\r\n * Used when a text node has 8 interpolated values in it:\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolate8(\r\n *  'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');\r\n * ```\r\n * @returns itself, so that it may be chained.\r\n * @see textInterpolateV\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolate8(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string): typeof ɵɵtextInterpolate8;\r\n\r\n/**\r\n * Update text content with 9 or more bound values other surrounded by text.\r\n *\r\n * Used when the number of interpolated values exceeds 8.\r\n *\r\n * ```html\r\n * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix</div>\r\n * ```\r\n *\r\n * Its compiled representation is:\r\n *\r\n * ```ts\r\n * ɵɵtextInterpolateV(\r\n *  ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,\r\n *  'suffix']);\r\n * ```\r\n *.\r\n * @param values The collection of values and the strings in between those values, beginning with\r\n * a string prefix and ending with a string suffix.\r\n * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)\r\n *\r\n * @returns itself, so that it may be chained.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtextInterpolateV(values: any[]): typeof ɵɵtextInterpolateV;\r\n\r\n/**\r\n * A template tag function for promoting the associated constant literal to a\r\n * TrustedHTML. Interpolation is explicitly not allowed.\r\n *\r\n * @param html constant template literal containing trusted HTML.\r\n * @returns TrustedHTML wrapping `html`.\r\n *\r\n * @security This is a security-sensitive function and should only be used to\r\n * convert constant values of attributes and properties found in\r\n * application-provided Angular templates to TrustedHTML.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtrustConstantHtml(html: TemplateStringsArray): TrustedHTML | string;\r\n\r\n/**\r\n * A template tag function for promoting the associated constant literal to a\r\n * TrustedScriptURL. Interpolation is explicitly not allowed.\r\n *\r\n * @param url constant template literal containing a trusted script URL.\r\n * @returns TrustedScriptURL wrapping `url`.\r\n *\r\n * @security This is a security-sensitive function and should only be used to\r\n * convert constant values of attributes and properties found in\r\n * application-provided Angular templates to TrustedScriptURL.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵtrustConstantResourceUrl(url: TemplateStringsArray): TrustedScriptURL | string;\r\n\r\n/**\r\n * Creates new QueryList, stores the reference in LView and returns QueryList.\r\n *\r\n * @param predicate The type for which the query will search\r\n * @param flags Flags associated with the query\r\n * @param read What to save in the query\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵviewQuery<T>(predicate: ProviderToken<unknown> | string[], flags: QueryFlags, read?: any): void;\r\n\r\nexport { }\r\n"]}
Note: See TracChangeset for help on using the changeset viewer.