{"version":3,"file":"forms.d.ts","sources":["forms.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","sourcesContent":["/**\n * @license Angular v12.2.9\n * (c) 2010-2021 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { AfterViewInit } from '@angular/core';\r\nimport { ElementRef } from '@angular/core';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { Injector } from '@angular/core';\r\nimport { ModuleWithProviders } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { OnChanges } from '@angular/core';\r\nimport { OnDestroy } from '@angular/core';\r\nimport { OnInit } from '@angular/core';\r\nimport { Renderer2 } from '@angular/core';\r\nimport { SimpleChanges } from '@angular/core';\r\nimport { StaticProvider } from '@angular/core';\r\nimport { Type } from '@angular/core';\r\nimport { Version } from '@angular/core';\r\n\r\n/**\r\n * This is the base class for `FormControl`, `FormGroup`, and `FormArray`.\r\n *\r\n * It provides some of the shared behavior that all controls and groups of controls have, like\r\n * running validators, calculating status, and resetting state. It also defines the properties\r\n * that are shared between all sub-classes, like `value`, `valid`, and `dirty`. It shouldn't be\r\n * instantiated directly.\r\n *\r\n * @see [Forms Guide](/guide/forms)\r\n * @see [Reactive Forms Guide](/guide/reactive-forms)\r\n * @see [Dynamic Forms Guide](/guide/dynamic-form)\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class AbstractControl {\r\n private _parent;\r\n private _asyncValidationSubscription;\r\n /**\r\n * The current value of the control.\r\n *\r\n * * For a `FormControl`, the current value.\r\n * * For an enabled `FormGroup`, the values of enabled controls as an object\r\n * with a key-value pair for each member of the group.\r\n * * For a disabled `FormGroup`, the values of all controls as an object\r\n * with a key-value pair for each member of the group.\r\n * * For a `FormArray`, the values of enabled controls as an array.\r\n *\r\n */\r\n readonly value: any;\r\n /**\r\n * Initialize the AbstractControl instance.\r\n *\r\n * @param validators The function or array of functions that is used to determine the validity of\r\n * this control synchronously.\r\n * @param asyncValidators The function or array of functions that is used to determine validity of\r\n * this control asynchronously.\r\n */\r\n constructor(validators: ValidatorFn | ValidatorFn[] | null, asyncValidators: AsyncValidatorFn | AsyncValidatorFn[] | null);\r\n /**\r\n * Returns the function that is used to determine the validity of this control synchronously.\r\n * If multiple validators have been added, this will be a single composed function.\r\n * See `Validators.compose()` for additional information.\r\n */\r\n get validator(): ValidatorFn | null;\r\n set validator(validatorFn: ValidatorFn | null);\r\n /**\r\n * Returns the function that is used to determine the validity of this control asynchronously.\r\n * If multiple validators have been added, this will be a single composed function.\r\n * See `Validators.compose()` for additional information.\r\n */\r\n get asyncValidator(): AsyncValidatorFn | null;\r\n set asyncValidator(asyncValidatorFn: AsyncValidatorFn | null);\r\n /**\r\n * The parent control.\r\n */\r\n get parent(): FormGroup | FormArray | null;\r\n /**\r\n * The validation status of the control. There are four possible\r\n * validation status values:\r\n *\r\n * * **VALID**: This control has passed all validation checks.\r\n * * **INVALID**: This control has failed at least one validation check.\r\n * * **PENDING**: This control is in the midst of conducting a validation check.\r\n * * **DISABLED**: This control is exempt from validation checks.\r\n *\r\n * These status values are mutually exclusive, so a control cannot be\r\n * both valid AND invalid or invalid AND disabled.\r\n */\r\n readonly status: string;\r\n /**\r\n * A control is `valid` when its `status` is `VALID`.\r\n *\r\n * @see {@link AbstractControl.status}\r\n *\r\n * @returns True if the control has passed all of its validation tests,\r\n * false otherwise.\r\n */\r\n get valid(): boolean;\r\n /**\r\n * A control is `invalid` when its `status` is `INVALID`.\r\n *\r\n * @see {@link AbstractControl.status}\r\n *\r\n * @returns True if this control has failed one or more of its validation checks,\r\n * false otherwise.\r\n */\r\n get invalid(): boolean;\r\n /**\r\n * A control is `pending` when its `status` is `PENDING`.\r\n *\r\n * @see {@link AbstractControl.status}\r\n *\r\n * @returns True if this control is in the process of conducting a validation check,\r\n * false otherwise.\r\n */\r\n get pending(): boolean;\r\n /**\r\n * A control is `disabled` when its `status` is `DISABLED`.\r\n *\r\n * Disabled controls are exempt from validation checks and\r\n * are not included in the aggregate value of their ancestor\r\n * controls.\r\n *\r\n * @see {@link AbstractControl.status}\r\n *\r\n * @returns True if the control is disabled, false otherwise.\r\n */\r\n get disabled(): boolean;\r\n /**\r\n * A control is `enabled` as long as its `status` is not `DISABLED`.\r\n *\r\n * @returns True if the control has any status other than 'DISABLED',\r\n * false if the status is 'DISABLED'.\r\n *\r\n * @see {@link AbstractControl.status}\r\n *\r\n */\r\n get enabled(): boolean;\r\n /**\r\n * An object containing any errors generated by failing validation,\r\n * or null if there are no errors.\r\n */\r\n readonly errors: ValidationErrors | null;\r\n /**\r\n * A control is `pristine` if the user has not yet changed\r\n * the value in the UI.\r\n *\r\n * @returns True if the user has not yet changed the value in the UI; compare `dirty`.\r\n * Programmatic changes to a control's value do not mark it dirty.\r\n */\r\n readonly pristine: boolean;\r\n /**\r\n * A control is `dirty` if the user has changed the value\r\n * in the UI.\r\n *\r\n * @returns True if the user has changed the value of this control in the UI; compare `pristine`.\r\n * Programmatic changes to a control's value do not mark it dirty.\r\n */\r\n get dirty(): boolean;\r\n /**\r\n * True if the control is marked as `touched`.\r\n *\r\n * A control is marked `touched` once the user has triggered\r\n * a `blur` event on it.\r\n */\r\n readonly touched: boolean;\r\n /**\r\n * True if the control has not been marked as touched\r\n *\r\n * A control is `untouched` if the user has not yet triggered\r\n * a `blur` event on it.\r\n */\r\n get untouched(): boolean;\r\n /**\r\n * A multicasting observable that emits an event every time the value of the control changes, in\r\n * the UI or programmatically. It also emits an event each time you call enable() or disable()\r\n * without passing along {emitEvent: false} as a function argument.\r\n */\r\n readonly valueChanges: Observable;\r\n /**\r\n * A multicasting observable that emits an event every time the validation `status` of the control\r\n * recalculates.\r\n *\r\n * @see {@link AbstractControl.status}\r\n *\r\n */\r\n readonly statusChanges: Observable;\r\n /**\r\n * Reports the update strategy of the `AbstractControl` (meaning\r\n * the event on which the control updates itself).\r\n * Possible values: `'change'` | `'blur'` | `'submit'`\r\n * Default value: `'change'`\r\n */\r\n get updateOn(): FormHooks;\r\n /**\r\n * Sets the synchronous validators that are active on this control. Calling\r\n * this overwrites any existing synchronous validators.\r\n *\r\n * When you add or remove a validator at run time, you must call\r\n * `updateValueAndValidity()` for the new validation to take effect.\r\n *\r\n * If you want to add a new validator without affecting existing ones, consider\r\n * using `addValidators()` method instead.\r\n */\r\n setValidators(validators: ValidatorFn | ValidatorFn[] | null): void;\r\n /**\r\n * Sets the asynchronous validators that are active on this control. Calling this\r\n * overwrites any existing asynchronous validators.\r\n *\r\n * When you add or remove a validator at run time, you must call\r\n * `updateValueAndValidity()` for the new validation to take effect.\r\n *\r\n * If you want to add a new validator without affecting existing ones, consider\r\n * using `addAsyncValidators()` method instead.\r\n */\r\n setAsyncValidators(validators: AsyncValidatorFn | AsyncValidatorFn[] | null): void;\r\n /**\r\n * Add a synchronous validator or validators to this control, without affecting other validators.\r\n *\r\n * When you add or remove a validator at run time, you must call\r\n * `updateValueAndValidity()` for the new validation to take effect.\r\n *\r\n * Adding a validator that already exists will have no effect. If duplicate validator functions\r\n * are present in the `validators` array, only the first instance would be added to a form\r\n * control.\r\n *\r\n * @param validators The new validator function or functions to add to this control.\r\n */\r\n addValidators(validators: ValidatorFn | ValidatorFn[]): void;\r\n /**\r\n * Add an asynchronous validator or validators to this control, without affecting other\r\n * validators.\r\n *\r\n * When you add or remove a validator at run time, you must call\r\n * `updateValueAndValidity()` for the new validation to take effect.\r\n *\r\n * Adding a validator that already exists will have no effect.\r\n *\r\n * @param validators The new asynchronous validator function or functions to add to this control.\r\n */\r\n addAsyncValidators(validators: AsyncValidatorFn | AsyncValidatorFn[]): void;\r\n /**\r\n * Remove a synchronous validator from this control, without affecting other validators.\r\n * Validators are compared by function reference; you must pass a reference to the exact same\r\n * validator function as the one that was originally set. If a provided validator is not found,\r\n * it is ignored.\r\n *\r\n * When you add or remove a validator at run time, you must call\r\n * `updateValueAndValidity()` for the new validation to take effect.\r\n *\r\n * @param validators The validator or validators to remove.\r\n */\r\n removeValidators(validators: ValidatorFn | ValidatorFn[]): void;\r\n /**\r\n * Remove an asynchronous validator from this control, without affecting other validators.\r\n * Validators are compared by function reference; you must pass a reference to the exact same\r\n * validator function as the one that was originally set. If a provided validator is not found, it\r\n * is ignored.\r\n *\r\n * When you add or remove a validator at run time, you must call\r\n * `updateValueAndValidity()` for the new validation to take effect.\r\n *\r\n * @param validators The asynchronous validator or validators to remove.\r\n */\r\n removeAsyncValidators(validators: AsyncValidatorFn | AsyncValidatorFn[]): void;\r\n /**\r\n * Check whether a synchronous validator function is present on this control. The provided\r\n * validator must be a reference to the exact same function that was provided.\r\n *\r\n * @param validator The validator to check for presence. Compared by function reference.\r\n * @returns Whether the provided validator was found on this control.\r\n */\r\n hasValidator(validator: ValidatorFn): boolean;\r\n /**\r\n * Check whether an asynchronous validator function is present on this control. The provided\r\n * validator must be a reference to the exact same function that was provided.\r\n *\r\n * @param validator The asynchronous validator to check for presence. Compared by function\r\n * reference.\r\n * @returns Whether the provided asynchronous validator was found on this control.\r\n */\r\n hasAsyncValidator(validator: AsyncValidatorFn): boolean;\r\n /**\r\n * Empties out the synchronous validator list.\r\n *\r\n * When you add or remove a validator at run time, you must call\r\n * `updateValueAndValidity()` for the new validation to take effect.\r\n *\r\n */\r\n clearValidators(): void;\r\n /**\r\n * Empties out the async validator list.\r\n *\r\n * When you add or remove a validator at run time, you must call\r\n * `updateValueAndValidity()` for the new validation to take effect.\r\n *\r\n */\r\n clearAsyncValidators(): void;\r\n /**\r\n * Marks the control as `touched`. A control is touched by focus and\r\n * blur events that do not change the value.\r\n *\r\n * @see `markAsUntouched()`\r\n * @see `markAsDirty()`\r\n * @see `markAsPristine()`\r\n *\r\n * @param opts Configuration options that determine how the control propagates changes\r\n * and emits events after marking is applied.\r\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\r\n * marks all direct ancestors. Default is false.\r\n */\r\n markAsTouched(opts?: {\r\n onlySelf?: boolean;\r\n }): void;\r\n /**\r\n * Marks the control and all its descendant controls as `touched`.\r\n * @see `markAsTouched()`\r\n */\r\n markAllAsTouched(): void;\r\n /**\r\n * Marks the control as `untouched`.\r\n *\r\n * If the control has any children, also marks all children as `untouched`\r\n * and recalculates the `touched` status of all parent controls.\r\n *\r\n * @see `markAsTouched()`\r\n * @see `markAsDirty()`\r\n * @see `markAsPristine()`\r\n *\r\n * @param opts Configuration options that determine how the control propagates changes\r\n * and emits events after the marking is applied.\r\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\r\n * marks all direct ancestors. Default is false.\r\n */\r\n markAsUntouched(opts?: {\r\n onlySelf?: boolean;\r\n }): void;\r\n /**\r\n * Marks the control as `dirty`. A control becomes dirty when\r\n * the control's value is changed through the UI; compare `markAsTouched`.\r\n *\r\n * @see `markAsTouched()`\r\n * @see `markAsUntouched()`\r\n * @see `markAsPristine()`\r\n *\r\n * @param opts Configuration options that determine how the control propagates changes\r\n * and emits events after marking is applied.\r\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\r\n * marks all direct ancestors. Default is false.\r\n */\r\n markAsDirty(opts?: {\r\n onlySelf?: boolean;\r\n }): void;\r\n /**\r\n * Marks the control as `pristine`.\r\n *\r\n * If the control has any children, marks all children as `pristine`,\r\n * and recalculates the `pristine` status of all parent\r\n * controls.\r\n *\r\n * @see `markAsTouched()`\r\n * @see `markAsUntouched()`\r\n * @see `markAsDirty()`\r\n *\r\n * @param opts Configuration options that determine how the control emits events after\r\n * marking is applied.\r\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\r\n * marks all direct ancestors. Default is false.\r\n */\r\n markAsPristine(opts?: {\r\n onlySelf?: boolean;\r\n }): void;\r\n /**\r\n * Marks the control as `pending`.\r\n *\r\n * A control is pending while the control performs async validation.\r\n *\r\n * @see {@link AbstractControl.status}\r\n *\r\n * @param opts Configuration options that determine how the control propagates changes and\r\n * emits events after marking is applied.\r\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\r\n * marks all direct ancestors. Default is false.\r\n * * `emitEvent`: When true or not supplied (the default), the `statusChanges`\r\n * observable emits an event with the latest status the control is marked pending.\r\n * When false, no events are emitted.\r\n *\r\n */\r\n markAsPending(opts?: {\r\n onlySelf?: boolean;\r\n emitEvent?: boolean;\r\n }): void;\r\n /**\r\n * Disables the control. This means the control is exempt from validation checks and\r\n * excluded from the aggregate value of any parent. Its status is `DISABLED`.\r\n *\r\n * If the control has children, all children are also disabled.\r\n *\r\n * @see {@link AbstractControl.status}\r\n *\r\n * @param opts Configuration options that determine how the control propagates\r\n * changes and emits events after the control is disabled.\r\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\r\n * marks all direct ancestors. Default is false.\r\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\r\n * `valueChanges`\r\n * observables emit events with the latest status and value when the control is disabled.\r\n * When false, no events are emitted.\r\n */\r\n disable(opts?: {\r\n onlySelf?: boolean;\r\n emitEvent?: boolean;\r\n }): void;\r\n /**\r\n * Enables the control. This means the control is included in validation checks and\r\n * the aggregate value of its parent. Its status recalculates based on its value and\r\n * its validators.\r\n *\r\n * By default, if the control has children, all children are enabled.\r\n *\r\n * @see {@link AbstractControl.status}\r\n *\r\n * @param opts Configure options that control how the control propagates changes and\r\n * emits events when marked as untouched\r\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\r\n * marks all direct ancestors. Default is false.\r\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\r\n * `valueChanges`\r\n * observables emit events with the latest status and value when the control is enabled.\r\n * When false, no events are emitted.\r\n */\r\n enable(opts?: {\r\n onlySelf?: boolean;\r\n emitEvent?: boolean;\r\n }): void;\r\n private _updateAncestors;\r\n /**\r\n * @param parent Sets the parent of the control\r\n */\r\n setParent(parent: FormGroup | FormArray): void;\r\n /**\r\n * Sets the value of the control. Abstract method (implemented in sub-classes).\r\n */\r\n abstract setValue(value: any, options?: Object): void;\r\n /**\r\n * Patches the value of the control. Abstract method (implemented in sub-classes).\r\n */\r\n abstract patchValue(value: any, options?: Object): void;\r\n /**\r\n * Resets the control. Abstract method (implemented in sub-classes).\r\n */\r\n abstract reset(value?: any, options?: Object): void;\r\n /**\r\n * Recalculates the value and validation status of the control.\r\n *\r\n * By default, it also updates the value and validity of its ancestors.\r\n *\r\n * @param opts Configuration options determine how the control propagates changes and emits events\r\n * after updates and validity checks are applied.\r\n * * `onlySelf`: When true, only update this control. When false or not supplied,\r\n * update all direct ancestors. Default is false.\r\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\r\n * `valueChanges`\r\n * observables emit events with the latest status and value when the control is updated.\r\n * When false, no events are emitted.\r\n */\r\n updateValueAndValidity(opts?: {\r\n onlySelf?: boolean;\r\n emitEvent?: boolean;\r\n }): void;\r\n private _setInitialStatus;\r\n private _runValidator;\r\n private _runAsyncValidator;\r\n private _cancelExistingSubscription;\r\n /**\r\n * Sets errors on a form control when running validations manually, rather than automatically.\r\n *\r\n * Calling `setErrors` also updates the validity of the parent control.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Manually set the errors for a control\r\n *\r\n * ```\r\n * const login = new FormControl('someLogin');\r\n * login.setErrors({\r\n * notUnique: true\r\n * });\r\n *\r\n * expect(login.valid).toEqual(false);\r\n * expect(login.errors).toEqual({ notUnique: true });\r\n *\r\n * login.setValue('someOtherLogin');\r\n *\r\n * expect(login.valid).toEqual(true);\r\n * ```\r\n */\r\n setErrors(errors: ValidationErrors | null, opts?: {\r\n emitEvent?: boolean;\r\n }): void;\r\n /**\r\n * Retrieves a child control given the control's name or path.\r\n *\r\n * @param path A dot-delimited string or array of string/number values that define the path to the\r\n * control.\r\n *\r\n * @usageNotes\r\n * ### Retrieve a nested control\r\n *\r\n * For example, to get a `name` control nested within a `person` sub-group:\r\n *\r\n * * `this.form.get('person.name');`\r\n *\r\n * -OR-\r\n *\r\n * * `this.form.get(['person', 'name']);`\r\n *\r\n * ### Retrieve a control in a FormArray\r\n *\r\n * When accessing an element inside a FormArray, you can use an element index.\r\n * For example, to get a `price` control from the first element in an `items` array you can use:\r\n *\r\n * * `this.form.get('items.0.price');`\r\n *\r\n * -OR-\r\n *\r\n * * `this.form.get(['items', 0, 'price']);`\r\n */\r\n get(path: Array | string): AbstractControl | null;\r\n /**\r\n * @description\r\n * Reports error data for the control with the given path.\r\n *\r\n * @param errorCode The code of the error to check\r\n * @param path A list of control names that designates how to move from the current control\r\n * to the control that should be queried for errors.\r\n *\r\n * @usageNotes\r\n * For example, for the following `FormGroup`:\r\n *\r\n * ```\r\n * form = new FormGroup({\r\n * address: new FormGroup({ street: new FormControl() })\r\n * });\r\n * ```\r\n *\r\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\r\n *\r\n * It can be provided to this method in one of two formats:\r\n *\r\n * 1. An array of string control names, e.g. `['address', 'street']`\r\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\r\n *\r\n * @returns error data for that particular error. If the control or error is not present,\r\n * null is returned.\r\n */\r\n getError(errorCode: string, path?: Array | string): any;\r\n /**\r\n * @description\r\n * Reports whether the control with the given path has the error specified.\r\n *\r\n * @param errorCode The code of the error to check\r\n * @param path A list of control names that designates how to move from the current control\r\n * to the control that should be queried for errors.\r\n *\r\n * @usageNotes\r\n * For example, for the following `FormGroup`:\r\n *\r\n * ```\r\n * form = new FormGroup({\r\n * address: new FormGroup({ street: new FormControl() })\r\n * });\r\n * ```\r\n *\r\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\r\n *\r\n * It can be provided to this method in one of two formats:\r\n *\r\n * 1. An array of string control names, e.g. `['address', 'street']`\r\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\r\n *\r\n * If no path is given, this method checks for the error on the current control.\r\n *\r\n * @returns whether the given error is present in the control at the given path.\r\n *\r\n * If the control is not present, false is returned.\r\n */\r\n hasError(errorCode: string, path?: Array | string): boolean;\r\n /**\r\n * Retrieves the top-level ancestor of this control.\r\n */\r\n get root(): AbstractControl;\r\n private _calculateStatus;\r\n}\r\n\r\n/**\r\n * @description\r\n * Base class for control directives.\r\n *\r\n * This class is only used internally in the `ReactiveFormsModule` and the `FormsModule`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class AbstractControlDirective {\r\n /**\r\n * @description\r\n * A reference to the underlying control.\r\n *\r\n * @returns the control that backs this directive. Most properties fall through to that instance.\r\n */\r\n abstract get control(): AbstractControl | null;\r\n /**\r\n * @description\r\n * Reports the value of the control if it is present, otherwise null.\r\n */\r\n get value(): any;\r\n /**\r\n * @description\r\n * Reports whether the control is valid. A control is considered valid if no\r\n * validation errors exist with the current value.\r\n * If the control is not present, null is returned.\r\n */\r\n get valid(): boolean | null;\r\n /**\r\n * @description\r\n * Reports whether the control is invalid, meaning that an error exists in the input value.\r\n * If the control is not present, null is returned.\r\n */\r\n get invalid(): boolean | null;\r\n /**\r\n * @description\r\n * Reports whether a control is pending, meaning that that async validation is occurring and\r\n * errors are not yet available for the input value. If the control is not present, null is\r\n * returned.\r\n */\r\n get pending(): boolean | null;\r\n /**\r\n * @description\r\n * Reports whether the control is disabled, meaning that the control is disabled\r\n * in the UI and is exempt from validation checks and excluded from aggregate\r\n * values of ancestor controls. If the control is not present, null is returned.\r\n */\r\n get disabled(): boolean | null;\r\n /**\r\n * @description\r\n * Reports whether the control is enabled, meaning that the control is included in ancestor\r\n * calculations of validity or value. If the control is not present, null is returned.\r\n */\r\n get enabled(): boolean | null;\r\n /**\r\n * @description\r\n * Reports the control's validation errors. If the control is not present, null is returned.\r\n */\r\n get errors(): ValidationErrors | null;\r\n /**\r\n * @description\r\n * Reports whether the control is pristine, meaning that the user has not yet changed\r\n * the value in the UI. If the control is not present, null is returned.\r\n */\r\n get pristine(): boolean | null;\r\n /**\r\n * @description\r\n * Reports whether the control is dirty, meaning that the user has changed\r\n * the value in the UI. If the control is not present, null is returned.\r\n */\r\n get dirty(): boolean | null;\r\n /**\r\n * @description\r\n * Reports whether the control is touched, meaning that the user has triggered\r\n * a `blur` event on it. If the control is not present, null is returned.\r\n */\r\n get touched(): boolean | null;\r\n /**\r\n * @description\r\n * Reports the validation status of the control. Possible values include:\r\n * 'VALID', 'INVALID', 'DISABLED', and 'PENDING'.\r\n * If the control is not present, null is returned.\r\n */\r\n get status(): string | null;\r\n /**\r\n * @description\r\n * Reports whether the control is untouched, meaning that the user has not yet triggered\r\n * a `blur` event on it. If the control is not present, null is returned.\r\n */\r\n get untouched(): boolean | null;\r\n /**\r\n * @description\r\n * Returns a multicasting observable that emits a validation status whenever it is\r\n * calculated for the control. If the control is not present, null is returned.\r\n */\r\n get statusChanges(): Observable | null;\r\n /**\r\n * @description\r\n * Returns a multicasting observable of value changes for the control that emits every time the\r\n * value of the control changes in the UI or programmatically.\r\n * If the control is not present, null is returned.\r\n */\r\n get valueChanges(): Observable | null;\r\n /**\r\n * @description\r\n * Returns an array that represents the path from the top-level form to this control.\r\n * Each index is the string name of the control on that level.\r\n */\r\n get path(): string[] | null;\r\n /**\r\n * Contains the result of merging synchronous validators into a single validator function\r\n * (combined using `Validators.compose`).\r\n */\r\n private _composedValidatorFn;\r\n /**\r\n * Contains the result of merging asynchronous validators into a single validator function\r\n * (combined using `Validators.composeAsync`).\r\n */\r\n private _composedAsyncValidatorFn;\r\n /**\r\n * @description\r\n * Synchronous validator function composed of all the synchronous validators registered with this\r\n * directive.\r\n */\r\n get validator(): ValidatorFn | null;\r\n /**\r\n * @description\r\n * Asynchronous validator function composed of all the asynchronous validators registered with\r\n * this directive.\r\n */\r\n get asyncValidator(): AsyncValidatorFn | null;\r\n private _onDestroyCallbacks;\r\n /**\r\n * @description\r\n * Resets the control with the provided value if the control is present.\r\n */\r\n reset(value?: any): void;\r\n /**\r\n * @description\r\n * Reports whether the control with the given path has the error specified.\r\n *\r\n * @param errorCode The code of the error to check\r\n * @param path A list of control names that designates how to move from the current control\r\n * to the control that should be queried for errors.\r\n *\r\n * @usageNotes\r\n * For example, for the following `FormGroup`:\r\n *\r\n * ```\r\n * form = new FormGroup({\r\n * address: new FormGroup({ street: new FormControl() })\r\n * });\r\n * ```\r\n *\r\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\r\n *\r\n * It can be provided to this method in one of two formats:\r\n *\r\n * 1. An array of string control names, e.g. `['address', 'street']`\r\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\r\n *\r\n * If no path is given, this method checks for the error on the current control.\r\n *\r\n * @returns whether the given error is present in the control at the given path.\r\n *\r\n * If the control is not present, false is returned.\r\n */\r\n hasError(errorCode: string, path?: Array | string): boolean;\r\n /**\r\n * @description\r\n * Reports error data for the control with the given path.\r\n *\r\n * @param errorCode The code of the error to check\r\n * @param path A list of control names that designates how to move from the current control\r\n * to the control that should be queried for errors.\r\n *\r\n * @usageNotes\r\n * For example, for the following `FormGroup`:\r\n *\r\n * ```\r\n * form = new FormGroup({\r\n * address: new FormGroup({ street: new FormControl() })\r\n * });\r\n * ```\r\n *\r\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\r\n *\r\n * It can be provided to this method in one of two formats:\r\n *\r\n * 1. An array of string control names, e.g. `['address', 'street']`\r\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\r\n *\r\n * @returns error data for that particular error. If the control or error is not present,\r\n * null is returned.\r\n */\r\n getError(errorCode: string, path?: Array | string): any;\r\n}\r\n\r\n/**\r\n * Interface for options provided to an `AbstractControl`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AbstractControlOptions {\r\n /**\r\n * @description\r\n * The list of validators applied to a control.\r\n */\r\n validators?: ValidatorFn | ValidatorFn[] | null;\r\n /**\r\n * @description\r\n * The list of async validators applied to control.\r\n */\r\n asyncValidators?: AsyncValidatorFn | AsyncValidatorFn[] | null;\r\n /**\r\n * @description\r\n * The event name for control to update upon.\r\n */\r\n updateOn?: 'change' | 'blur' | 'submit';\r\n}\r\n\r\n/**\r\n * @description\r\n * A base class for code shared between the `NgModelGroup` and `FormGroupName` directives.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class AbstractFormGroupDirective extends ControlContainer implements OnInit, OnDestroy {\r\n /** @nodoc */\r\n ngOnInit(): void;\r\n /** @nodoc */\r\n ngOnDestroy(): void;\r\n /**\r\n * @description\r\n * The `FormGroup` bound to this directive.\r\n */\r\n get control(): FormGroup;\r\n /**\r\n * @description\r\n * The path to this group from the top-level directive.\r\n */\r\n get path(): string[];\r\n /**\r\n * @description\r\n * The top-level directive for this group if present, otherwise null.\r\n */\r\n get formDirective(): Form | null;\r\n}\r\n\r\n/**\r\n * A base class for Validator-based Directives. The class contains common logic shared across such\r\n * Directives.\r\n *\r\n * For internal use only, this class is not intended for use outside of the Forms package.\r\n */\r\ndeclare abstract class AbstractValidatorDirective implements Validator {\r\n private _validator;\r\n private _onChange;\r\n /**\r\n * Helper function invoked from child classes to process changes (from `ngOnChanges` hook).\r\n * @nodoc\r\n */\r\n handleChanges(changes: SimpleChanges): void;\r\n /** @nodoc */\r\n validate(control: AbstractControl): ValidationErrors | null;\r\n /** @nodoc */\r\n registerOnValidatorChange(fn: () => void): void;\r\n}\r\n\r\ndeclare type AnyControlStatus = 'untouched' | 'touched' | 'pristine' | 'dirty' | 'valid' | 'invalid' | 'pending' | 'submitted';\r\n\r\n/**\r\n * @description\r\n * An interface implemented by classes that perform asynchronous validation.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Provide a custom async validator directive\r\n *\r\n * The following example implements the `AsyncValidator` interface to create an\r\n * async validator directive with a custom error key.\r\n *\r\n * ```typescript\r\n * import { of } from 'rxjs';\r\n *\r\n * @Directive({\r\n * selector: '[customAsyncValidator]',\r\n * providers: [{provide: NG_ASYNC_VALIDATORS, useExisting: CustomAsyncValidatorDirective, multi:\r\n * true}]\r\n * })\r\n * class CustomAsyncValidatorDirective implements AsyncValidator {\r\n * validate(control: AbstractControl): Observable {\r\n * return of({'custom': true});\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AsyncValidator extends Validator {\r\n /**\r\n * @description\r\n * Method that performs async validation against the provided control.\r\n *\r\n * @param control The control to validate against.\r\n *\r\n * @returns A promise or observable that resolves a map of validation errors\r\n * if validation fails, otherwise null.\r\n */\r\n validate(control: AbstractControl): Promise | Observable;\r\n}\r\n\r\n/**\r\n * @description\r\n * A function that receives a control and returns a Promise or observable\r\n * that emits validation errors if present, otherwise null.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface AsyncValidatorFn {\r\n (control: AbstractControl): Promise | Observable;\r\n}\r\n\r\n/**\r\n * @description\r\n * A `ControlValueAccessor` for writing a value and listening to changes on a checkbox input\r\n * element.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Using a checkbox with a reactive form.\r\n *\r\n * The following example shows how to use a checkbox with a reactive form.\r\n *\r\n * ```ts\r\n * const rememberLoginControl = new FormControl();\r\n * ```\r\n *\r\n * ```\r\n * \r\n * ```\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class CheckboxControlValueAccessor extends ɵangular_packages_forms_forms_g implements ControlValueAccessor {\r\n /**\r\n * Sets the \"checked\" property on the input element.\r\n * @nodoc\r\n */\r\n writeValue(value: any): void;\r\n}\r\n\r\n/**\r\n * A Directive that adds the `required` validator to checkbox controls marked with the\r\n * `required` attribute. The directive is provided with the `NG_VALIDATORS` multi-provider list.\r\n *\r\n * @see [Form Validation](guide/form-validation)\r\n *\r\n * @usageNotes\r\n *\r\n * ### Adding a required checkbox validator using template-driven forms\r\n *\r\n * The following example shows how to add a checkbox required validator to an input attached to an\r\n * ngModel binding.\r\n *\r\n * ```\r\n * \r\n * ```\r\n *\r\n * @publicApi\r\n * @ngModule FormsModule\r\n * @ngModule ReactiveFormsModule\r\n */\r\nexport declare class CheckboxRequiredValidator extends RequiredValidator {\r\n /**\r\n * Method that validates whether or not the checkbox has been checked.\r\n * Returns the validation result if enabled, otherwise null.\r\n * @nodoc\r\n */\r\n validate(control: AbstractControl): ValidationErrors | null;\r\n}\r\n\r\n/**\r\n * @description\r\n * Provide this token to control if form directives buffer IME input until\r\n * the \"compositionend\" event occurs.\r\n * @publicApi\r\n */\r\nexport declare const COMPOSITION_BUFFER_MODE: InjectionToken;\r\n\r\n/**\r\n * @description\r\n * A base class for directives that contain multiple registered instances of `NgControl`.\r\n * Only used by the forms module.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class ControlContainer extends AbstractControlDirective {\r\n /**\r\n * @description\r\n * The name for the control\r\n */\r\n name: string | number | null;\r\n /**\r\n * @description\r\n * The top-level form directive for the control.\r\n */\r\n get formDirective(): Form | null;\r\n /**\r\n * @description\r\n * The path to this group.\r\n */\r\n get path(): string[] | null;\r\n}\r\n\r\n/**\r\n * @description\r\n * Defines an interface that acts as a bridge between the Angular forms API and a\r\n * native element in the DOM.\r\n *\r\n * Implement this interface to create a custom form control directive\r\n * that integrates with Angular forms.\r\n *\r\n * @see DefaultValueAccessor\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ControlValueAccessor {\r\n /**\r\n * @description\r\n * Writes a new value to the element.\r\n *\r\n * This method is called by the forms API to write to the view when programmatic\r\n * changes from model to view are requested.\r\n *\r\n * @usageNotes\r\n * ### Write a value to the element\r\n *\r\n * The following example writes a value to the native DOM element.\r\n *\r\n * ```ts\r\n * writeValue(value: any): void {\r\n * this._renderer.setProperty(this._elementRef.nativeElement, 'value', value);\r\n * }\r\n * ```\r\n *\r\n * @param obj The new value for the element\r\n */\r\n writeValue(obj: any): void;\r\n /**\r\n * @description\r\n * Registers a callback function that is called when the control's value\r\n * changes in the UI.\r\n *\r\n * This method is called by the forms API on initialization to update the form\r\n * model when values propagate from the view to the model.\r\n *\r\n * When implementing the `registerOnChange` method in your own value accessor,\r\n * save the given function so your class calls it at the appropriate time.\r\n *\r\n * @usageNotes\r\n * ### Store the change function\r\n *\r\n * The following example stores the provided function as an internal method.\r\n *\r\n * ```ts\r\n * registerOnChange(fn: (_: any) => void): void {\r\n * this._onChange = fn;\r\n * }\r\n * ```\r\n *\r\n * When the value changes in the UI, call the registered\r\n * function to allow the forms API to update itself:\r\n *\r\n * ```ts\r\n * host: {\r\n * '(change)': '_onChange($event.target.value)'\r\n * }\r\n * ```\r\n *\r\n * @param fn The callback function to register\r\n */\r\n registerOnChange(fn: any): void;\r\n /**\r\n * @description\r\n * Registers a callback function that is called by the forms API on initialization\r\n * to update the form model on blur.\r\n *\r\n * When implementing `registerOnTouched` in your own value accessor, save the given\r\n * function so your class calls it when the control should be considered\r\n * blurred or \"touched\".\r\n *\r\n * @usageNotes\r\n * ### Store the callback function\r\n *\r\n * The following example stores the provided function as an internal method.\r\n *\r\n * ```ts\r\n * registerOnTouched(fn: any): void {\r\n * this._onTouched = fn;\r\n * }\r\n * ```\r\n *\r\n * On blur (or equivalent), your class should call the registered function to allow\r\n * the forms API to update itself:\r\n *\r\n * ```ts\r\n * host: {\r\n * '(blur)': '_onTouched()'\r\n * }\r\n * ```\r\n *\r\n * @param fn The callback function to register\r\n */\r\n registerOnTouched(fn: any): void;\r\n /**\r\n * @description\r\n * Function that is called by the forms API when the control status changes to\r\n * or from 'DISABLED'. Depending on the status, it enables or disables the\r\n * appropriate DOM element.\r\n *\r\n * @usageNotes\r\n * The following is an example of writing the disabled property to a native DOM element:\r\n *\r\n * ```ts\r\n * setDisabledState(isDisabled: boolean): void {\r\n * this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\r\n * }\r\n * ```\r\n *\r\n * @param isDisabled The disabled status to set on the element\r\n */\r\n setDisabledState?(isDisabled: boolean): void;\r\n}\r\n\r\n/**\r\n * The default `ControlValueAccessor` for writing a value and listening to changes on input\r\n * elements. The accessor is used by the `FormControlDirective`, `FormControlName`, and\r\n * `NgModel` directives.\r\n *\r\n * {@searchKeywords ngDefaultControl}\r\n *\r\n * @usageNotes\r\n *\r\n * ### Using the default value accessor\r\n *\r\n * The following example shows how to use an input element that activates the default value accessor\r\n * (in this case, a text field).\r\n *\r\n * ```ts\r\n * const firstNameControl = new FormControl();\r\n * ```\r\n *\r\n * ```\r\n * \r\n * ```\r\n *\r\n * This value accessor is used by default for `` and `