nycJSorg/angular-presentation

View on GitHub
libs/code-demos/assets/runner/ng-dts/files.txt

Summary

Maintainability
Test Coverage
[
  {
    "paths": [
      "node_modules/@angular/core/core.d.ts",
      "node_modules/@angular/core/index.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { Observable } from 'rxjs';\r\nimport { Subject } 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 * instantiatable.\r\n *\r\n * @publicApi\r\n */\r\nimport * as ɵngcc0 from './src/r3_symbols';\nexport declare interface AbstractType<T> extends Function {\r\n    prototype: T;\r\n}\r\n\r\n/**\r\n * Below are constants for LContainer indices to help us look up LContainer members\r\n * without having to remember the specific indices.\r\n * Uglify will inline these when minifying so there shouldn't be a cost.\r\n */\r\ndeclare const ACTIVE_INDEX = 2;\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/lifecycle-hooks#onchanges) guide\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/lifecycle-hooks#onchanges) guide\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/lifecycle-hooks#onchanges) guide\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/lifecycle-hooks#onchanges) guide\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 */\r\nexport declare const ANALYZE_FOR_ENTRY_COMPONENTS: InjectionToken<any>;\r\n\r\n/**\r\n * All callbacks provided via this token will be called for every component that is bootstrapped.\r\n * Signature of the callback:\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 representing a unique string id assigned to the application by Angular and 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 * If you need to avoid randomly generated value to be used as an application id, you can provide\r\n * a custom value via a DI provider <!-- TODO: provider --> configuring the root {@link Injector}\r\n * using this token.\r\n * @publicApi\r\n */\r\nexport declare const APP_ID: InjectionToken<string>;\r\n\r\n/**\r\n * A function that will be executed when an application is initialized.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const APP_INITIALIZER: InjectionToken<(() => void)[]>;\r\n\r\n/**\r\n * A class that reflects the state of running {@link APP_INITIALIZER}s.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ApplicationInitStatus {\r\n    private 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: (() => any)[]);\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<ApplicationInitStatus>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<ApplicationInitStatus>;\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    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<ApplicationModule, never, never, never>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<ApplicationModule>;\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 _console;\r\n    private _injector;\r\n    private _exceptionHandler;\r\n    private _componentFactoryResolver;\r\n    private _initStatus;\r\n    private _bootstrapListeners;\r\n    private _views;\r\n    private _runningTick;\r\n    private _enforceNoNewChanges;\r\n    private _stable;\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 new component at the root level of the application.\r\n     *\r\n     * @usageNotes\r\n     * ### Bootstrap process\r\n     *\r\n     * When bootstrapping a new root component into an application, Angular mounts the\r\n     * specified application component onto DOM elements identified by the componentType's\r\n     * selector and kicks off automatic change detection to finish initializing the component.\r\n     *\r\n     * Optionally, a component can be mounted onto a DOM element that does not match the\r\n     * componentType's selector.\r\n     *\r\n     * ### Example\r\n     * {@example core/ts/platform/platform.ts region='longform'}\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    private _unloadComponent;\r\n    /**\r\n     * Returns the number of attached views.\r\n     */\r\n    readonly viewCount: number;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<ApplicationRef>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<ApplicationRef>;\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 currently is a platform which 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 * 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`.\r\n     *\r\n     * {@example core/ts/metadata/metadata.ts region='attributeMetadata'}\r\n     *\r\n     * ### Example as TypeScript Decorator\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 const BINDING_INDEX = 7;\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\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 * @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\n/**\r\n * Base class for Angular Views, 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 rerendered.\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](http://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 = 14;\r\n\r\ndeclare const CHILD_TAIL = 15;\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 = 8;\r\n\r\n/**\r\n * @deprecated v4.0.0 - Use IterableChangeRecord instead.\r\n * @publicApi\r\n */\r\nexport declare interface CollectionChangeRecord<V> extends IterableChangeRecord<V> {\r\n}\r\n\r\n/**\r\n * Marks that the next string is for comment.\r\n *\r\n * See `I18nMutateOpCodes` documentation.\r\n */\r\ndeclare const COMMENT_MARKER: COMMENT_MARKER;\r\n\r\ndeclare interface COMMENT_MARKER {\r\n    marker: 'comment';\r\n}\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>, srcMeta?: 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    static ɵfac: ɵngcc0.ɵɵFactoryDef<Compiler>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<Compiler>;\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.Native`: Deprecated. Use `ViewEncapsulation.ShadowDom` instead.\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 encapsulation 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     */\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 per an element in a 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>Spaces</a> <a>between</a> <a>links.</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 readonly selector: string;\r\n    /**\r\n     * The type of component the factory will create.\r\n     */\r\n    abstract readonly componentType: Type<any>;\r\n    /**\r\n     * Selector for all <ng-content> elements in the component.\r\n     */\r\n    abstract readonly ngContentSelectors: string[];\r\n    /**\r\n     * The inputs of the component.\r\n     */\r\n    abstract readonly 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 readonly 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 * @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 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 readonly location: ElementRef;\r\n    /**\r\n     * The [dependency injector](guide/glossary#injector) for this component instance.\r\n     */\r\n    abstract readonly injector: Injector;\r\n    /**\r\n     * This component instance.\r\n     */\r\n    abstract readonly 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 readonly hostView: ViewRef;\r\n    /**\r\n     * The change detector for this component instance.\r\n     */\r\n    abstract readonly changeDetectorRef: ChangeDetectorRef;\r\n    /**\r\n     * The type of this component (as created by a `ComponentFactory` class).\r\n     */\r\n    abstract readonly 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     * Parameter 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** - True 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     * @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: Type<any> | Function | string, opts?: {\r\n        read?: any;\r\n        static?: boolean;\r\n    }): any;\r\n    new (selector: Type<any> | 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     * Parameter 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** - True to include all descendants, otherwise include only direct children.\r\n     * * **read** - True to read a different token from the queried elements.\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: Type<any> | Function | string, opts?: {\r\n        descendants?: boolean;\r\n        read?: any;\r\n    }): any;\r\n    new (selector: Type<any> | Function | string, opts?: {\r\n        descendants?: 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 = 9;\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 have to be eagerly created via 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\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 * 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\nexport declare interface DebugElement extends DebugNode {\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    readonly 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 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    readonly nativeElement: Element | null;\r\n    readonly 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    readonly properties: {\r\n        [key: string]: any;\r\n    };\r\n    readonly attributes: {\r\n        [key: string]: string | null;\r\n    };\r\n    readonly styles: {\r\n        [key: string]: string | null;\r\n    };\r\n    private _classesProxy;\r\n    readonly classes: {\r\n        [key: string]: boolean;\r\n    };\r\n    readonly childNodes: DebugNode[];\r\n    readonly 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    readonly listeners: DebugEventListener[];\r\n    readonly parent: DebugElement | null;\r\n    readonly nativeNode: any;\r\n    readonly injector: Injector;\r\n    readonly componentInstance: any;\r\n    readonly context: any;\r\n    readonly references: {\r\n        [key: string]: any;\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\ndeclare class DebugNode__POST_R3__ implements DebugNode {\r\n    readonly nativeNode: Node;\r\n    constructor(nativeNode: Node);\r\n    readonly parent: DebugElement | null;\r\n    readonly injector: Injector;\r\n    readonly componentInstance: any;\r\n    readonly context: any;\r\n    readonly listeners: DebugEventListener[];\r\n    readonly references: {\r\n        [key: string]: any;\r\n    };\r\n    readonly providerTokens: any[];\r\n}\r\n\r\ndeclare const DECLARATION_LCONTAINER = 17;\r\n\r\ndeclare const DECLARATION_VIEW = 16;\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    readonly 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 be 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 * Destroy the existing 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     * If true, this directive/component will be skipped by the AOT compiler and so will always be\r\n     * compiled using JIT.\r\n     *\r\n     * This exists to support future Ivy work and has no effect currently.\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.\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 * ```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/lifecycle-hooks#onchanges) guide\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 * @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 for element.\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](http://g.co/ng/security).\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ElementRef<T extends any = 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 readonly context: C;\r\n    /**\r\n     * The root nodes for this embedded view.\r\n     */\r\n    abstract readonly 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 class EventEmitter<T extends any> 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 When true, deliver events asynchronously.\r\n     *\r\n     */\r\n    constructor(isAsync?: boolean);\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 generatorOrNext When supplied, a custom handler for emitted events.\r\n     * @param error When supplied, a custom handler for an error notification\r\n     * from this emitter.\r\n     * @param complete When supplied, a custom handler for a completion\r\n     * notification from this emitter.\r\n     */\r\n    subscribe(generatorOrNext?: any, error?: any, complete?: any): Subscription;\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 * Set of instructions used to process host bindings efficiently.\r\n *\r\n * See VIEW_DATA.md for more information.\r\n */\r\ndeclare interface ExpandoInstructions extends Array<number | HostBindingsFunction<any> | null> {\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) => {\r\n    name: GlobalTargetName;\r\n    target: EventTarget;\r\n};\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 = (number | (() => 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\ndeclare type HostBindingsFunction<T> = <U extends T>(rf: ɵRenderFlags, ctx: U, elementIndex: number) => 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     * For an extended example, see\r\n     * [\"Dependency Injection Guide\"](guide/dependency-injection-in-action#optional).\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    (): 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 * @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    (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` 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 *   //   const node = lView[index++] = document.createTextNode('abc');\r\n *   //   lView[1].insertBefore(node, lView[2]);\r\n *   'abc', 1 << SHIFT_PARENT | 2 << SHIFT_REF | InsertBefore,\r\n *\r\n *   // Equivalent to:\r\n *   //   const node = lView[index++] = document.createTextNode('xyz');\r\n *   //   lView[1].appendChild(node);\r\n *   'xyz', 1 << SHIFT_PARENT | AppendChild,\r\n *\r\n *   // For adding element nodes\r\n *   // ---------------------\r\n *   // Equivalent to:\r\n *   //   const node = lView[index++] = document.createElement('div');\r\n *   //   lView[1].insertBefore(node, lView[2]);\r\n *   ELEMENT_MARKER, 'div', 1 << SHIFT_PARENT | 2 << SHIFT_REF | InsertBefore,\r\n *\r\n *   // Equivalent to:\r\n *   //   const node = lView[index++] = document.createElement('div');\r\n *   //   lView[1].appendChild(node);\r\n *   ELEMENT_MARKER, 'div', 1 << SHIFT_PARENT | AppendChild,\r\n *\r\n *   // For adding comment nodes\r\n *   // ---------------------\r\n *   // Equivalent to:\r\n *   //   const node = lView[index++] = document.createComment('');\r\n *   //   lView[1].insertBefore(node, lView[2]);\r\n *   COMMENT_MARKER, '', 1 << SHIFT_PARENT | 2 << SHIFT_REF | InsertBefore,\r\n *\r\n *   // Equivalent to:\r\n *   //   const node = lView[index++] = document.createComment('');\r\n *   //   lView[1].appendChild(node);\r\n *   COMMENT_MARKER, '', 1 << SHIFT_PARENT | 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].insertBefore(node, lView[3]);\r\n *   1 << SHIFT_REF | Select, 2 << SHIFT_PARENT | 3 << SHIFT_REF | InsertBefore,\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 | 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 | Select, 'attr', 'value'\r\n *            // NOTE: Select followed by two string (vs select followed by OpCode)\r\n * ];\r\n * ```\r\n * NOTE:\r\n *   - `index` is initial location where the extra nodes should be stored in the EXPANDO section of\r\n * `LVIewData`.\r\n *\r\n * See: `applyI18nCreateOpCodes`;\r\n */\r\ndeclare interface I18nMutateOpCodes extends Array<number | string | ELEMENT_MARKER | COMMENT_MARKER | null> {\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 * 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 `7` values and start processing next OpCodes.\r\n *   0b11, 7,\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 `4` values and start processing next OpCodes.\r\n *   0b1000, 4,\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> {\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 True 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     * by either associating it with an @NgModule or other `InjectorType`,\r\n     * or by specifying that this injectable should be provided in the:\r\n     * - 'root' injector, which will be the application-level injector in most apps.\r\n     * - 'platform' injector, which would be the special singleton platform injector shared by all\r\n     * applications on the page.\r\n     * - 'any' injector, which would be the injector which receives the resolution. (Note this only\r\n     * works on NgModule Injectors and not on Element Injector)\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 an `InjectableDef` static field.\r\n *\r\n * `InjectableDefType`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: never;\r\n}\r\n\r\n/** Returns a ChangeDetectorRef (a.k.a. a ViewRef) */\r\ndeclare function injectChangeDetectorRef(isPipe?: boolean): ChangeDetectorRef;\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     * Learn more in the [\"Dependency Injection Guide\"](guide/dependency-injection).\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    (token: any): any;\r\n    new (token: any): Inject;\r\n}\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\ndeclare function injectElementRef(ElementRefToken: typeof ElementRef): ElementRef;\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: never | undefined;\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.\r\n *\r\n * For more details, see the [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n * ### 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: Object;\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: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n    /**\r\n     * @deprecated from v4.0.0 use Type<T> or InjectionToken<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    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: never;\r\n}\r\n\r\ndeclare const INJECTOR_2 = 10;\r\n\r\n/**\r\n * A type which has an `InjectorDef` static field.\r\n *\r\n * `InjectorDefTypes` can be used to configure a `StaticInjector`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface InjectorType<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    ɵinj: never;\r\n}\r\n\r\n/**\r\n * Describes the `InjectorDef` equivalent of a `ModuleWithProviders`, an `InjectorDefType` 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/** Injects a Renderer2 for the current component. */\r\ndeclare function injectRenderer2(): Renderer2;\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\ndeclare function injectTemplateRef<T>(TemplateRefToken: typeof TemplateRef, ElementRefToken: typeof ElementRef): 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\ndeclare function injectViewContainerRef(ViewContainerRefToken: typeof ViewContainerRef, ElementRefToken: typeof ElementRef): ViewContainerRef;\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/template-syntax#input-and-output-properties)\r\n    */\r\n    (bindingPropertyName?: string): any;\r\n    new (bindingPropertyName?: string): any;\r\n}\r\n\r\n/**\r\n * All implicit instruction state is stored here.\r\n *\r\n * It is useful to have a single object where all of the state is stored as a mental model\r\n * (rather it being spread across many different variables.)\r\n *\r\n * PERF NOTE: Turns out that writing to a true global variable is slower than\r\n * having an intermediate object with properties.\r\n */\r\ndeclare interface InstructionState {\r\n    /**\r\n     * State of the current view being processed.\r\n     *\r\n     * An array of nodes (text, element, container, etc), pipes, their bindings, and\r\n     * any local variables that need to be stored between invocations.\r\n     */\r\n    lView: ɵangular_packages_core_core_bm;\r\n    /**\r\n     * Used to set the parent property when nodes are created and track query results.\r\n     *\r\n     * This is used in conjection with `isParent`.\r\n     */\r\n    previousOrParentTNode: TNode;\r\n    /**\r\n     * If `isParent` is:\r\n     *  - `true`: then `previousOrParentTNode` points to a parent node.\r\n     *  - `false`: then `previousOrParentTNode` points to previous node (sibling).\r\n     */\r\n    isParent: boolean;\r\n    /**\r\n     * Index of currently selected element in LView.\r\n     *\r\n     * Used by binding instructions. Updated as part of advance instruction.\r\n     */\r\n    selectedIndex: number;\r\n    /**\r\n     * The last viewData retrieved by nextContext().\r\n     * Allows building nextContext() and reference() calls.\r\n     *\r\n     * e.g. const inner = x().$implicit; const outer = x().$implicit;\r\n     */\r\n    contextLView: ɵangular_packages_core_core_bm;\r\n    /**\r\n     * In this mode, any changes in bindings will throw an ExpressionChangedAfterChecked error.\r\n     *\r\n     * Necessary to support ChangeDetectorRef.checkNoChanges().\r\n     */\r\n    checkNoChangesMode: boolean;\r\n    /**\r\n     * Store the element depth count. This is used to identify the root elements of the template\r\n     * so that we can then attach `LView` to only those elements.\r\n     */\r\n    elementDepthCount: number;\r\n    /**\r\n     * Stores whether directives should be matched to elements.\r\n     *\r\n     * When template contains `ngNonBindable` then we need to prevent the runtime form matching\r\n     * directives on children of that 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     *   <my-comp my-directive>\r\n     *     Should not match component / directive because we are in ngNonBindable.\r\n     *   </my-comp>\r\n     * </div>\r\n     * ```\r\n     */\r\n    bindingsEnabled: boolean;\r\n    /**\r\n     * Current namespace to be used when creating elements\r\n     */\r\n    currentNamespace: string | null;\r\n    /**\r\n     * Current sanitizer\r\n     */\r\n    currentSanitizer: StyleSanitizeFn | null;\r\n    /**\r\n     * Used when processing host bindings.\r\n     */\r\n    currentDirectiveDef: ɵDirectiveDef<any> | ɵComponentDef<any> | null;\r\n    /**\r\n     * Used as the starting directive id value.\r\n     *\r\n     * All subsequent directives are incremented from this value onwards.\r\n     * The reason why this value is `1` instead of `0` is because the `0`\r\n     * value is reserved for the template.\r\n     */\r\n    activeDirectiveId: number;\r\n    /**\r\n     * The root index from which pure function instructions should calculate their binding\r\n     * indices. In component views, this is TView.bindingStartIndex. In a host binding\r\n     * context, this is the TView.expandoStartIndex + any dirs/hostVars before the given dir.\r\n     */\r\n    bindingRootIndex: number;\r\n    /**\r\n     * Current index of a View or Content Query which needs to be processed next.\r\n     * We iterate over the list of Queries and increment current query index at every step.\r\n     */\r\n    currentQueryIndex: number;\r\n    /**\r\n     * Function to be called when the element is exited.\r\n     *\r\n     * NOTE: The function is here for tree shakable purposes since it is only needed by styling.\r\n     */\r\n    elementExitFn: (() => void) | null;\r\n}\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: ApplicationRef): 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    /** Iterate over all items which had their identity (as computed by the `TrackByFunction`)\r\n     * changed. */\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: never;\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 * 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: never;\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_bm;\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     * The next active index in the views array to read or write to. This helps us\r\n     * keep track of where we are in the views array.\r\n     * In the case the LContainer is created for a ViewContainerRef,\r\n     * it is set to null to identify this scenario, as indices are \"absolute\" in that case,\r\n     * i.e. provided directly by the user of the ViewContainerRef API.\r\n     */\r\n    [ACTIVE_INDEX]: number;\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_bm;\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_bm | LContainer | null;\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_bm[] | 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    [VIEW_REFS]: ViewRef[] | null;\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#setting-up-locale) 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_bm) => 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/** 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     * Index of the current init phase on last 22 bits\r\n     */\r\n    IndexWithinInitPhaseIncrementer = 1024,\r\n    IndexWithinInitPhaseShift = 10,\r\n    IndexWithinInitPhaseReset = 1023\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#missing-translation) 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 ComponentFactorys.\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 the providers.\r\n *\r\n * @param T the module type. In Ivy applications, this must be explicitly\r\n * provided.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ModuleWithProviders<T = any /** TODO(alxhub): remove default when callers pass explicit type param */> {\r\n    ngModule: Type<T>;\r\n    providers?: Provider[];\r\n}\r\n\r\ndeclare const MOVED_VIEWS = 5;\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     */\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     * If true, this module will be skipped by the AOT compiler and so will always be compiled\r\n     * using JIT.\r\n     *\r\n     * This exists to support future Ivy work and has no effect currently.\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 readonly 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 via a {@link NgModuleFactory}.\r\n *\r\n * `NgModuleRef` provides access to the NgModule Instance as well other objects related to this\r\n * NgModule Instance.\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 readonly injector: Injector;\r\n    /**\r\n     * The ComponentFactoryResolver to get hold of the ComponentFactories\r\n     * declared in the `entryComponents` property of the module.\r\n     */\r\n    abstract readonly componentFactoryResolver: ComponentFactoryResolver;\r\n    /**\r\n     * The NgModule instance.\r\n     */\r\n    abstract readonly 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     * Allows to register a callback that will be called 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 hasPendingMicrotasks: boolean;\r\n    readonly hasPendingMacrotasks: 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 }: {\r\n        enableLongStackTrace?: 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 * @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\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/lifecycle-hooks#onchanges) guide\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/lifecycle-hooks#onchanges) guide\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     * after 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/lifecycle-hooks#onchanges) guide\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 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     * Learn more in the [\"Dependency Injection Guide\"](guide/dependency-injection).\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     */\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/template-syntax#input-and-output-properties)\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 token which indicates the root directory of 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, `RepeatPipe` repeats a given value a given number of times.\r\n *\r\n * ```ts\r\n * import {Pipe, PipeTransform} from '@angular/core';\r\n *\r\n * @Pipe({name: 'repeat'})\r\n * export class RepeatPipe implements PipeTransform {\r\n *   transform(value: any, times: number) {\r\n *     return value.repeat(times);\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * Invoking `{{ 'ok' | repeat:3 }}` in a template produces `okokok`.\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: never;\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 will be 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. Each page\r\n * has exactly one platform, and services (such as reflection) which are common\r\n * to every Angular application running on the page are bound in its scope.\r\n *\r\n * A page's platform is initialized implicitly when a platform is created via a platform factory\r\n * (e.g. {@link platformBrowser}), or explicitly by calling the {@link 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\r\n     * for offline compilation.\r\n     *\r\n     * @usageNotes\r\n     * ### Simple Example\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     * Register a listener to be called when the platform is disposed.\r\n     */\r\n    onDestroy(callback: () => void): void;\r\n    /**\r\n     * Retrieve 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    readonly injector: Injector;\r\n    /**\r\n     * Destroy the Angular platform and all Angular applications on the page.\r\n     */\r\n    destroy(): void;\r\n    readonly destroyed: boolean;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<PlatformRef>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<PlatformRef>;\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[FLAGS_MORE]) */\r\ndeclare const enum PreOrderHookFlags {\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    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): void;\r\n    removeChild(parent: RElement, oldChild: RNode, isHostElement?: boolean): void;\r\n    selectRootElement(selectorOrNode: string | any): RElement;\r\n    parentNode(node: RNode): RElement | null;\r\n    nextSibling(node: RNode): RNode | null;\r\n    setAttribute(el: RElement, name: string, value: string, 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: publicName\r\n * i+2: privateName\r\n *\r\n * e.g. [0, 'change', '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 * 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 = 5;\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    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 * 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> {\r\n    readonly dirty = true;\r\n    private _results;\r\n    readonly changes: Observable<any>;\r\n    readonly length: number;\r\n    readonly first: T;\r\n    readonly last: T;\r\n    constructor();\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     */\r\n    reset(resultsTree: Array<T | any[]>): 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}\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    readonly 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: Type<T> | InjectionToken<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 Range {\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 readonly 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 readonly 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    setAttribute(name: string, value: string): void;\r\n    removeAttribute(name: string): void;\r\n    setAttributeNS(namespaceURI: string, qualifiedName: string, value: string): 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\ndeclare const RENDERER = 12;\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 readonly 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 that should precede the new node.\r\n     */\r\n    abstract insertBefore(parent: any, newChild: any, refChild: any): 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 = 11;\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/** 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 = 13;\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: never;\r\n}\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;\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\ndeclare interface Scope {\r\n    (...args: any[] /** TODO #9100 */): any;\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     *\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     * Learn more in the\r\n     * [Dependency Injection guide](guide/dependency-injection-in-action#skip).\r\n     *\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 the `Injector` should be configured as static (that is, without reflection).\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @publicApi\r\n */\r\nexport declare type StaticProvider = ValueProvider | ExistingProvider | StaticClassProvider | ConstructorProvider | FactoryProvider | any[];\r\n\r\n/**\r\n * Used to intercept and sanitize style values before they are written to the renderer.\r\n *\r\n * This function is designed to be called in two modes. When a value is not provided\r\n * then the function will return a boolean whether a property will be sanitized later.\r\n * If a value is provided then the sanitized version of that will be returned.\r\n */\r\ndeclare interface StyleSanitizeFn {\r\n    (prop: string, value: string | ɵSafeValue | null, mode?: StyleSanitizeMode): any;\r\n}\r\n\r\n/**\r\n * A series of flags to instruct a style sanitizer to either validate\r\n * or sanitize a value.\r\n *\r\n * Because sanitization is dependent on the style property (i.e. style\r\n * sanitization for `width` is much different than for `background-image`)\r\n * the sanitization function (e.g. `StyleSanitizerFn`) needs to check a\r\n * property value first before it actually sanitizes any values.\r\n *\r\n * This enum exist to allow a style sanitization function to either only\r\n * do validation (check the property to see whether a value will be\r\n * sanitized or not) or to sanitize the value (or both).\r\n *\r\n * @publicApi\r\n */\r\ndeclare const enum StyleSanitizeMode {\r\n    /** Just check to see if the property is required to be sanitized or not */\r\n    ValidateProperty = 1,\r\n    /** Skip checking the property; just sanitize the value */\r\n    SanitizeOnly = 2,\r\n    /** Check the property and (if true) then sanitize the value */\r\n    ValidateAndSanitize = 3\r\n}\r\n\r\n/**\r\n * Array-based representation of a key/value array.\r\n *\r\n * The format of the array is \"property\", \"value\", \"property2\",\r\n * \"value2\", etc...\r\n *\r\n * The first value in the array is reserved to store the instance\r\n * of the key/value array that was used to populate the property/\r\n * value entries that take place in the remainder of the array.\r\n */\r\ndeclare interface StylingMapArray extends Array<{} | string | number | null | undefined> {\r\n    /**\r\n     * The last raw value used to generate the entries in the map.\r\n     */\r\n    [StylingMapArrayIndex.RawValuePosition]: {} | string | number | null | undefined;\r\n}\r\n\r\n/**\r\n * An index of position and offset points for any data stored within a `StylingMapArray` instance.\r\n */\r\ndeclare const enum StylingMapArrayIndex {\r\n    /** Where the values start in the array */\r\n    ValuesStartPosition = 1,\r\n    /** The location of the raw key/value map instance used last to populate the array entries */\r\n    RawValuePosition = 0,\r\n    /** The size of each property/value entry */\r\n    TupleSize = 2,\r\n    /** The offset for the property entry in the tuple */\r\n    PropOffset = 0,\r\n    /** The offset for the value entry in the tuple */\r\n    ValueOffset = 1\r\n}\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    static ɵfac: ɵngcc0.ɵɵFactoryDef<SystemJsNgModuleLoader>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<SystemJsNgModuleLoader>;\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/** 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_bh | TElementContainerNode | null;\r\n    tViews: TView | TView[] | null;\r\n    projection: 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 | Type<any> | InjectionToken<any> | TI18n | I18nUpdateOpCodes | 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_bh | TTextNode | TContainerNode | TElementContainerNode | TProjectionNode | null;\r\n    parent: ɵangular_packages_core_core_bh | 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 readonly 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 and by services such as Protractor. Each bootstrapped Angular\r\n * application on the page will have 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    static ɵfac: ɵngcc0.ɵɵFactoryDef<Testability>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<Testability>;\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    static ɵfac: ɵngcc0.ɵɵFactoryDef<TestabilityRegistry>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<TestabilityRegistry>;\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     * Number of slots to allocate in expando.\r\n     *\r\n     * This is the max number of DOM elements which will be created by this i18n + ICU blocks. When\r\n     * the DOM elements are being created they are stored in the EXPANDO, so that update OpCodes can\r\n     * write into them.\r\n     */\r\n    vars: number;\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: I18nMutateOpCodes;\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     * A list of ICUs in a translation block (or `null` if block has no ICUs).\r\n     *\r\n     * Example:\r\n     * Given: `<div i18n>You have {count, plural, ...} and {state, switch, ...}</div>`\r\n     * There would be 2 ICUs in this array.\r\n     *   1. `{count, plural, ...}`\r\n     *   2. `{state, switch, ...}`\r\n     */\r\n    icus: TIcu[] | null;\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     * Number of slots to allocate in expando for each case.\r\n     *\r\n     * This is the max number of DOM elements which will be created by this i18n + ICU blocks. When\r\n     * the DOM elements are being created they are stored in the EXPANDO, so that update OpCodes can\r\n     * write into them.\r\n     */\r\n    vars: number[];\r\n    /**\r\n     * An optional array of child/sub ICUs.\r\n     *\r\n     * In case of nested ICUs such as:\r\n     * ```\r\n     * {�0�, plural,\r\n     *   =0 {zero}\r\n     *   other {�0� {�1�, select,\r\n     *                     cat {cats}\r\n     *                     dog {dogs}\r\n     *                     other {animals}\r\n     *                   }!\r\n     *   }\r\n     * }\r\n     * ```\r\n     * When the parent ICU is changing it must clean up child ICUs as well. For this reason it needs\r\n     * to know which child ICUs to run clean up for as well.\r\n     *\r\n     * In the above example this would be:\r\n     * ```ts\r\n     * [\r\n     *   [],   // `=0` has no sub ICUs\r\n     *   [1],  // `other` has one subICU at `1`st index.\r\n     * ]\r\n     * ```\r\n     *\r\n     * The reason why it is Array of Arrays is because first array represents the case, and second\r\n     * represents the child ICUs to clean up. There may be more than one child ICUs per case.\r\n     */\r\n    childIcus: 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: I18nMutateOpCodes[];\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: I18nMutateOpCodes[];\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     * 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 injector\r\n     * in the same view. We pass the parent injector index down the node tree of a view so it's\r\n     * possible to find the parent injector without walking a potentially deep node tree. Injector\r\n     * indices are not set across view boundaries because there could be multiple component 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    directiveStart: number;\r\n    /**\r\n     * Stores final exclusive index of the directives.\r\n     */\r\n    directiveEnd: number;\r\n    /**\r\n     * Stores indexes of property bindings. This field is only set in the ngDevMode and holds indexes\r\n     * 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 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    /** The tag name associated with this node. */\r\n    tagName: string | null;\r\n    /**\r\n     * Attributes associated with an element. We need to store attributes to support various use-cases\r\n     * (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     * 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.\r\n     *\r\n     * - `undefined` means that the prop has not been initialized yet,\r\n     * - `null` means that the prop has been initialized but no inputs have been found.\r\n     */\r\n    inputs: PropertyAliases | null | undefined;\r\n    /**\r\n     * Output data for all directives on this node.\r\n     *\r\n     * - `undefined` means that the prop has not been initialized yet,\r\n     * - `null` means that the prop has been initialized but no outputs have been found.\r\n     */\r\n    outputs: PropertyAliases | null | undefined;\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 basis\r\n     * the act of projecting nodes might change nodes relationship at the insertion point (target\r\n     * view). At the same time we need to keep initial relationship between nodes as expressed in\r\n     * 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_bh | 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 as\r\n     *   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 bindings and/or static style values for an element.\r\n     *\r\n     * This field will be populated if and when:\r\n     *\r\n     * - There are one or more initial styles on an element (e.g. `<div style=\"width:200px\">`)\r\n     * - There are one or more style bindings on an element (e.g. `<div [style.width]=\"w\">`)\r\n     *\r\n     * If and when there are only initial styles (no bindings) then an instance of `StylingMapArray`\r\n     * will be used here. Otherwise an instance of `TStylingContext` will be created when there\r\n     * are one or more style bindings on an element.\r\n     *\r\n     * During element creation this value is likely to be populated with an instance of\r\n     * `StylingMapArray` and only when the bindings are evaluated (which happens during\r\n     * update mode) then it will be converted to a `TStylingContext` if any style bindings\r\n     * are encountered. If and when this happens then the existing `StylingMapArray` value\r\n     * will be placed into the initial styling slot in the newly created `TStylingContext`.\r\n     */\r\n    styles: StylingMapArray | TStylingContext | null;\r\n    /**\r\n     * A collection of all class bindings and/or static class values for an element.\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 class bindings on an element (e.g. `<div [class.foo]=\"f\">`)\r\n     *\r\n     * If and when there are only initial classes (no bindings) then an instance of `StylingMapArray`\r\n     * will be used here. Otherwise an instance of `TStylingContext` will be created when there\r\n     * are one or more class bindings on an element.\r\n     *\r\n     * During element creation this value is likely to be populated with an instance of\r\n     * `StylingMapArray` and only when the bindings are evaluated (which happens during\r\n     * update mode) then it will be converted to a `TStylingContext` if any class bindings\r\n     * are encountered. If and when this happens then the existing `StylingMapArray` value\r\n     * will be placed into the initial styling slot in the newly created `TStylingContext`.\r\n     */\r\n    classes: StylingMapArray | TStylingContext | null;\r\n}\r\n\r\n/**\r\n * Corresponds to the TNode.flags property.\r\n */\r\ndeclare const enum TNodeFlags {\r\n    /** This bit is set if the node is a host for any directive (including a component) */\r\n    isDirectiveHost = 1,\r\n    /**\r\n     * This bit is set if the node is a host for a component. Setting this bit implies that the\r\n     * isDirectiveHost bit is set as well. */\r\n    isComponentHost = 2,\r\n    /** This bit is set if the node has been projected */\r\n    isProjected = 4,\r\n    /** This bit is set if any directive on this node has content queries */\r\n    hasContentQuery = 8,\r\n    /** This bit is set if the node has any \"class\" inputs */\r\n    hasClassInput = 16,\r\n    /** This bit is set if the node has any \"style\" inputs */\r\n    hasStyleInput = 32,\r\n    /** This bit is set if the node has initial styling */\r\n    hasInitialStyling = 64,\r\n    /** This bit is set if the node has been detached by i18n */\r\n    isDetached = 128,\r\n    /**\r\n     * This bit is set if the node has directives with host bindings. This flags allows us to guard\r\n     * host-binding logic and invoke it only on nodes that actually have directives with host\r\n     * bindings.\r\n     */\r\n    hasHostBindings = 256\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 = 65535,\r\n    /** The count of view providers from the component on this node is encoded on the 16 most\r\n       significant bits */\r\n    CptViewProvidersCountShift = 16,\r\n    CptViewProvidersCountShifter = 65536\r\n}\r\n\r\n/**\r\n * TNodeType corresponds to the {@link TNode} `type` property.\r\n */\r\ndeclare const enum TNodeType {\r\n    /**\r\n     * The TNode contains information about an {@link LContainer} for embedded views.\r\n     */\r\n    Container = 0,\r\n    /**\r\n     * The TNode contains information about an `<ng-content>` projection\r\n     */\r\n    Projection = 1,\r\n    /**\r\n     * The TNode contains information about an {@link LView}\r\n     */\r\n    View = 2,\r\n    /**\r\n     * The TNode contains information about a DOM element aka {@link RNode}.\r\n     */\r\n    Element = 3,\r\n    /**\r\n     * The TNode contains information about an `<ng-container>` element {@link RNode}.\r\n     */\r\n    ElementContainer = 4,\r\n    /**\r\n     * The TNode contains information about an ICU comment used in `i18n`.\r\n     */\r\n    IcuContainer = 5\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_bh | 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_bh | 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}\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: Type<any> | string[];\r\n    descendants: boolean;\r\n    read: any;\r\n    isStatic: boolean;\r\n}\r\n\r\n/**\r\n * An optional function passed into the `NgForOf` directive that defines how to track\r\n * changes for items in an iterable.\r\n * The function takes the iteration index and item ID.\r\n * When supplied, Angular tracks changes by the return value of the function.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface TrackByFunction<T> {\r\n    (index: number, item: T): 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#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#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\n/**\r\n * Tsickle has a bug where it creates an infinite loop for a function returning itself.\r\n * This is a temporary type that will be removed when the issue is resolved.\r\n * https://github.com/angular/tsickle/issues/1009)\r\n */\r\ndeclare type TsickleIssue1009 = any;\r\n\r\n/**\r\n * A series of flags used to configure the config value present within an instance of\r\n * `TStylingContext`.\r\n */\r\ndeclare const enum TStylingConfig {\r\n    /**\r\n     * The initial state of the styling context config.\r\n     */\r\n    Initial = 0,\r\n    /**\r\n     * Whether or not there are any directives on this element.\r\n     *\r\n     * This is used so that certain performance optimizations can\r\n     * take place (e.g. direct style/class binding application).\r\n     *\r\n     * Note that the presence of this flag doesn't guarantee the\r\n     * presence of host-level style or class bindings within any\r\n     * of the active directives on the element.\r\n     *\r\n     * Examples include:\r\n     * 1. `<div dir-one>`\r\n     * 2. `<div dir-one [dir-two]=\"x\">`\r\n     * 3. `<comp>`\r\n     * 4. `<comp dir-one>`\r\n     */\r\n    HasDirectives = 1,\r\n    /**\r\n     * Whether or not there are prop-based bindings present.\r\n     *\r\n     * Examples include:\r\n     * 1. `<div [style.prop]=\"x\">`\r\n     * 2. `<div [class.prop]=\"x\">`\r\n     * 3. `@HostBinding('style.prop') x`\r\n     * 4. `@HostBinding('class.prop') x`\r\n     */\r\n    HasPropBindings = 2,\r\n    /**\r\n     * Whether or not there are map-based bindings present.\r\n     *\r\n     * Examples include:\r\n     * 1. `<div [style]=\"x\">`\r\n     * 2. `<div [class]=\"x\">`\r\n     * 3. `@HostBinding('style') x`\r\n     * 4. `@HostBinding('class') x`\r\n     */\r\n    HasMapBindings = 4,\r\n    /**\r\n     * Whether or not there are map-based and prop-based bindings present.\r\n     *\r\n     * Examples include:\r\n     * 1. `<div [style]=\"x\" [style.prop]=\"y\">`\r\n     * 2. `<div [class]=\"x\" [style.prop]=\"y\">`\r\n     * 3. `<div [style]=\"x\" dir-that-sets-some-prop>`\r\n     * 4. `<div [class]=\"x\" dir-that-sets-some-class>`\r\n     */\r\n    HasPropAndMapBindings = 6,\r\n    /**\r\n     * Whether or not there are two or more sources for a single property in the context.\r\n     *\r\n     * Examples include:\r\n     * 1. prop + prop: `<div [style.width]=\"x\" dir-that-sets-width>`\r\n     * 2. map + prop: `<div [style]=\"x\" [style.prop]>`\r\n     * 3. map + map: `<div [style]=\"x\" dir-that-sets-style>`\r\n     */\r\n    HasCollisions = 8,\r\n    /**\r\n     * Whether or not the context contains initial styling values.\r\n     *\r\n     * Examples include:\r\n     * 1. `<div style=\"width:200px\">`\r\n     * 2. `<div class=\"one two three\">`\r\n     * 3. `@Directive({ host: { 'style': 'width:200px' } })`\r\n     * 4. `@Directive({ host: { 'class': 'one two three' } })`\r\n     */\r\n    HasInitialStyling = 16,\r\n    /**\r\n     * Whether or not the context contains one or more template bindings.\r\n     *\r\n     * Examples include:\r\n     * 1. `<div [style]=\"x\">`\r\n     * 2. `<div [style.width]=\"x\">`\r\n     * 3. `<div [class]=\"x\">`\r\n     * 4. `<div [class.name]=\"x\">`\r\n     */\r\n    HasTemplateBindings = 32,\r\n    /**\r\n     * Whether or not the context contains one or more host bindings.\r\n     *\r\n     * Examples include:\r\n     * 1. `@HostBinding('style') x`\r\n     * 2. `@HostBinding('style.width') x`\r\n     * 3. `@HostBinding('class') x`\r\n     * 4. `@HostBinding('class.name') x`\r\n     */\r\n    HasHostBindings = 64,\r\n    /**\r\n     * Whether or not the template bindings are allowed to be registered in the context.\r\n     *\r\n     * This flag is after one or more template-based style/class bindings were\r\n     * set and processed for an element. Once the bindings are processed then a call\r\n     * to stylingApply is issued and the lock will be put into place.\r\n     *\r\n     * Note that this is only set once.\r\n     */\r\n    TemplateBindingsLocked = 128,\r\n    /**\r\n     * Whether or not the host bindings are allowed to be registered in the context.\r\n     *\r\n     * This flag is after one or more host-based style/class bindings were\r\n     * set and processed for an element. Once the bindings are processed then a call\r\n     * to stylingApply is issued and the lock will be put into place.\r\n     *\r\n     * Note that this is only set once.\r\n     */\r\n    HostBindingsLocked = 256,\r\n    /** A Mask of all the configurations */\r\n    Mask = 511,\r\n    /** Total amount of configuration bits used */\r\n    TotalBits = 9\r\n}\r\n\r\n/**\r\n * --------\r\n *\r\n * This file contains the core interfaces for styling in Angular.\r\n *\r\n * To learn more about the algorithm see `TStylingContext`.\r\n *\r\n * --------\r\n */\r\n/**\r\n * A static-level representation of all style or class bindings/values\r\n * associated with a `TNode`.\r\n *\r\n * The `TStylingContext` unites all template styling bindings (i.e.\r\n * `[class]` and `[style]` bindings) as well as all host-level\r\n * styling bindings (for components and directives) together into\r\n * a single manifest\r\n *\r\n * The styling context is stored on a `TNode` on and there are\r\n * two instances of it: one for classes and another for styles.\r\n *\r\n * ```typescript\r\n * tNode.styles = [ ... a context only for styles ... ];\r\n * tNode.classes = [ ... a context only for classes ... ];\r\n * ```\r\n *\r\n * The styling context is created each time there are one or more\r\n * styling bindings (style or class bindings) present for an element,\r\n * but is only created once per `TNode`.\r\n *\r\n * `tNode.styles` and `tNode.classes` can be an instance of the following:\r\n *\r\n * ```typescript\r\n * tNode.styles = null; // no static styling or styling bindings active\r\n * tNode.styles = StylingMapArray; // only static values present (e.g. `<div style=\"width:200\">`)\r\n * tNode.styles = TStylingContext; // one or more styling bindings present (e.g. `<div\r\n * [style.width]>`)\r\n * ```\r\n *\r\n * Both `tNode.styles` and `tNode.classes` are instantiated when anything\r\n * styling-related is active on an element. They are first created from\r\n * from the any of the element-level instructions (e.g. `element`,\r\n * `elementStart`, `elementHostAttrs`). When any static style/class\r\n * values are encountered they are registered on the `tNode.styles`\r\n * and `tNode.classes` data-structures. By default (when any static\r\n * values are encountered) the `tNode.styles` or `tNode.classes` values\r\n * are instances of a `StylingMapArray`. Only when style/class bindings\r\n * are detected then that styling map is converted into an instance of\r\n * `TStylingContext`.\r\n *\r\n * Due to the fact the the `TStylingContext` is stored on a `TNode`\r\n * this means that all data within the context is static. Instead of\r\n * storing actual styling binding values, the lView binding index values\r\n * are stored within the context. (static nature means it is more compact.)\r\n *\r\n * The code below shows a breakdown of two instances of `TStylingContext`\r\n * (one for `tNode.styles` and another for `tNode.classes`):\r\n *\r\n * ```typescript\r\n * // <div [class.active]=\"c\"  // lView binding index = 20\r\n * //      [style.width]=\"x\"   // lView binding index = 21\r\n * //      [style.height]=\"y\"> // lView binding index = 22\r\n * //  ...\r\n * // </div>\r\n * tNode.styles = [\r\n *   0,         // the context config value (see `TStylingContextConfig`)\r\n *   1,         // the total amount of sources present (only `1` b/c there are only template\r\n * bindings)\r\n *   [null],    // initial values array (an instance of `StylingMapArray`)\r\n *\r\n *   0,         // config entry for the property (see `TStylingContextPropConfigFlags`)\r\n *   0b010,     // template guard mask for height\r\n *   0,         // host bindings guard mask for height\r\n *   'height',  // the property name\r\n *   22,        // the binding location for the \"y\" binding in the lView\r\n *   null,      // the default value for height\r\n *\r\n *   0,         // config entry for the property (see `TStylingContextPropConfigFlags`)\r\n *   0b001,     // template guard mask for width\r\n *   0,         // host bindings guard mask for width\r\n *   'width',   // the property name\r\n *   21,        // the binding location for the \"x\" binding in the lView\r\n *   null,      // the default value for width\r\n * ];\r\n *\r\n * tNode.classes = [\r\n *   0,         // the context config value (see `TStylingContextConfig`)\r\n *   1,         // the total amount of sources present (only `1` b/c there are only template\r\n * bindings)\r\n *   [null],    // initial values array (an instance of `StylingMapArray`)\r\n *\r\n *   0,         // config entry for the property (see `TStylingContextPropConfigFlags`)\r\n *   0b001,     // template guard mask for width\r\n *   0,         // host bindings guard mask for width\r\n *   'active',  // the property name\r\n *   20,        // the binding location for the \"c\" binding in the lView\r\n *   null,      // the default value for the `active` class\r\n * ];\r\n * ```\r\n *\r\n * Entry value present in an entry (called a tuple) within the\r\n * styling context is as follows:\r\n *\r\n * ```typescript\r\n * context = [\r\n *   //...\r\n *   configValue,\r\n *   templateGuardMask,\r\n *   hostBindingsGuardMask,\r\n *   propName,\r\n *   ...bindingIndices...,\r\n *   defaultValue\r\n *   //...\r\n * ];\r\n * ```\r\n *\r\n * Below is a breakdown of each value:\r\n *\r\n * - **configValue**:\r\n *   Property-specific configuration values. The only config setting\r\n *   that is implemented right now is whether or not to sanitize the\r\n *   value.\r\n *\r\n * - **templateGuardMask**:\r\n *   A numeric value where each bit represents a binding index\r\n *   location. Each binding index location is assigned based on\r\n *   a local counter value that increments each time an instruction\r\n *   is called:\r\n *\r\n * ```\r\n * <div [style.width]=\"x\"   // binding index = 21 (counter index = 0)\r\n *      [style.height]=\"y\"> // binding index = 22 (counter index = 1)\r\n * ```\r\n *\r\n *   In the example code above, if the `width` value where to change\r\n *   then the first bit in the local bit mask value would be flipped\r\n *   (and the second bit for when `height`).\r\n *\r\n *   If and when there are more than 32 binding sources in the context\r\n *   (more than 32 `[style/class]` bindings) then the bit masking will\r\n *   overflow and we are left with a situation where a `-1` value will\r\n *   represent the bit mask. Due to the way that JavaScript handles\r\n *   negative values, when the bit mask is `-1` then all bits within\r\n *   that value will be automatically flipped (this is a quick and\r\n *   efficient way to flip all bits on the mask when a special kind\r\n *   of caching scenario occurs or when there are more than 32 bindings).\r\n *\r\n * - **hostBindingsGuardMask**:\r\n *   Another instance of a guard mask that is specific to host bindings.\r\n *   This behaves exactly the same way as does the `templateGuardMask`,\r\n *   but will not contain any binding information processed in the template.\r\n *   The reason why there are two instances of guard masks (one for the\r\n *   template and another for host bindings) is because the template bindings\r\n *   are processed before host bindings and the state information is not\r\n *   carried over into the host bindings code. As soon as host bindings are\r\n *   processed for an element the counter and state-based bit mask values are\r\n *   set to `0`.\r\n *\r\n * ```\r\n * <div [style.width]=\"x\"   // binding index = 21 (counter index = 0)\r\n *      [style.height]=\"y\"  // binding index = 22 (counter index = 1)\r\n *      dir-that-sets-width  // binding index = 30 (counter index = 0)\r\n *      dir-that-sets-width> // binding index = 31 (counter index = 1)\r\n * ```\r\n *\r\n * - **propName**:\r\n *   The CSS property name or class name (e.g `width` or `active`).\r\n *\r\n * - **bindingIndices...**:\r\n *   A series of numeric binding values that reflect where in the\r\n *   lView to find the style/class values associated with the property.\r\n *   Each value is in order in terms of priority (templates are first,\r\n *   then directives and then components). When the context is flushed\r\n *   and the style/class values are applied to the element (this happens\r\n *   inside of the `stylingApply` instruction) then the flushing code\r\n *   will keep checking each binding index against the associated lView\r\n *   to find the first style/class value that is non-null.\r\n *\r\n * - **defaultValue**:\r\n *   This is the default that will always be applied to the element if\r\n *   and when all other binding sources return a result that is null.\r\n *   Usually this value is `null` but it can also be a static value that\r\n *   is intercepted when the tNode is first constructured (e.g.\r\n *   `<div style=\"width:200px\">` has a default value of `200px` for\r\n *   the `width` property).\r\n *\r\n * Each time a new binding is encountered it is registered into the\r\n * context. The context then is continually updated until the first\r\n * styling apply call has been called (which is automatically scheduled\r\n * to be called once an element exits during change detection). Note that\r\n * each entry in the context is stored in alphabetical order.\r\n *\r\n * Once styling has been flushed for the first time for an element the\r\n * context will set as locked (this prevents bindings from being added\r\n * to the context later on).\r\n *\r\n * # How Styles/Classes are Rendered\r\n * Each time a styling instruction (e.g. `[class.name]`, `[style.prop]`,\r\n * etc...) is executed, the associated `lView` for the view is updated\r\n * at the current binding location. Also, when this happens, a local\r\n * counter value is incremented. If the binding value has changed then\r\n * a local `bitMask` variable is updated with the specific bit based\r\n * on the counter value.\r\n *\r\n * Below is a lightweight example of what happens when a single style\r\n * property is updated (i.e. `<div [style.prop]=\"val\">`):\r\n *\r\n * ```typescript\r\n * function updateStyleProp(prop: string, value: string) {\r\n *   const lView = getLView();\r\n *   const bindingIndex = BINDING_INDEX++;\r\n *\r\n *   // update the local counter value\r\n *   const indexForStyle = stylingState.stylesCount++;\r\n *   if (lView[bindingIndex] !== value) {\r\n *     lView[bindingIndex] = value;\r\n *\r\n *     // tell the local state that we have updated a style value\r\n *     // by updating the bit mask\r\n *     stylingState.bitMaskForStyles |= 1 << indexForStyle;\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * Once all the bindings have updated a `bitMask` value will be populated.\r\n * This `bitMask` value is used in the apply algorithm (which is called\r\n * context resolution).\r\n *\r\n * ## The Apply Algorithm (Context Resolution)\r\n * As explained above, each time a binding updates its value, the resulting\r\n * value is stored in the `lView` array. These styling values have yet to\r\n * be flushed to the element.\r\n *\r\n * Once all the styling instructions have been evaluated, then the styling\r\n * context(s) are flushed to the element. When this happens, the context will\r\n * be iterated over (property by property) and each binding source will be\r\n * examined and the first non-null value will be applied to the element.\r\n *\r\n * Let's say that we the following template code:\r\n *\r\n * ```html\r\n * <div [style.width]=\"w1\" dir-that-set-width=\"w2\"></div>\r\n * ```\r\n *\r\n * There are two styling bindings in the code above and they both write\r\n * to the `width` property. When styling is flushed on the element, the\r\n * algorithm will try and figure out which one of these values to write\r\n * to the element.\r\n *\r\n * In order to figure out which value to apply, the following\r\n * binding prioritization is adhered to:\r\n *\r\n *   1. First template-level styling bindings are applied (if present).\r\n *      This includes things like `[style.width]` and `[class.active]`.\r\n *\r\n *   2. Second are styling-level host bindings present in directives.\r\n *      (if there are sub/super directives present then the sub directives\r\n *      are applied first).\r\n *\r\n *   3. Third are styling-level host bindings present in components.\r\n *      (if there are sub/super components present then the sub directives\r\n *      are applied first).\r\n *\r\n * This means that in the code above the styling binding present in the\r\n * template is applied first and, only if its falsy, then the directive\r\n * styling binding for width will be applied.\r\n *\r\n * ### What about map-based styling bindings?\r\n * Map-based styling bindings are activated when there are one or more\r\n * `[style]` and/or `[class]` bindings present on an element. When this\r\n * code is activated, the apply algorithm will iterate over each map\r\n * entry and apply each styling value to the element with the same\r\n * prioritization rules as above.\r\n *\r\n * For the algorithm to apply styling values efficiently, the\r\n * styling map entries must be applied in sync (property by property)\r\n * with prop-based bindings. (The map-based algorithm is described\r\n * more inside of the `render3/styling/map_based_bindings.ts` file.)\r\n *\r\n * ## Sanitization\r\n * Sanitization is used to prevent invalid style values from being applied to\r\n * the element.\r\n *\r\n * It is enabled in two cases:\r\n *\r\n *   1. The `styleSanitizer(sanitizerFn)` instruction was called (just before any other\r\n *      styling instructions are run).\r\n *\r\n *   2. The component/directive `LView` instance has a sanitizer object attached to it\r\n *      (this happens when `renderComponent` is executed with a `sanitizer` value or\r\n *      if the ngModule contains a sanitizer provider attached to it).\r\n *\r\n * If and when sanitization is active then all property/value entries will be evaluated\r\n * through the active sanitizer before they are applied to the element (or the styling\r\n * debug handler).\r\n *\r\n * If a `Sanitizer` object is used (via the `LView[SANITIZER]` value) then that object\r\n * will be used for every property.\r\n *\r\n * If a `StyleSanitizerFn` function is used (via the `styleSanitizer`) then it will be\r\n * called in two ways:\r\n *\r\n *   1. property validation mode: this will be called early to mark whether a property\r\n *      should be sanitized or not at during the flushing stage.\r\n *\r\n *   2. value sanitization mode: this will be called during the flushing stage and will\r\n *      run the sanitizer function against the value before applying it to the element.\r\n *\r\n * If sanitization returns an empty value then that empty value will be applied\r\n * to the element.\r\n */\r\ndeclare interface TStylingContext extends Array<number | string | number | boolean | null | StylingMapArray | {}> {\r\n    /** Configuration data for the context */\r\n    [TStylingContextIndex.ConfigPosition]: TStylingConfig;\r\n    /** The total amount of sources present in the context */\r\n    [TStylingContextIndex.TotalSourcesPosition]: number;\r\n    /** Initial value position for static styles */\r\n    [TStylingContextIndex.InitialStylingValuePosition]: StylingMapArray;\r\n}\r\n\r\n/**\r\n * An index of position and offset values used to navigate the `TStylingContext`.\r\n */\r\ndeclare const enum TStylingContextIndex {\r\n    ConfigPosition = 0,\r\n    TotalSourcesPosition = 1,\r\n    InitialStylingValuePosition = 2,\r\n    ValuesStartPosition = 3,\r\n    ConfigOffset = 0,\r\n    TemplateBitGuardOffset = 1,\r\n    HostBindingsBitGuardOffset = 2,\r\n    PropOffset = 3,\r\n    BindingsStartOffset = 4\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_bh | 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     * ID for inline views to determine whether a view is the same as the previous view\r\n     * in a certain position. If it's not, we know the new view needs to be inserted\r\n     * and the one that exists needs to be removed (e.g. if/else statements)\r\n     *\r\n     * If this is -1, then this is a component view or a dynamically created view.\r\n     */\r\n    readonly id: number;\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_bm;\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     * Pointer to the host `TNode` (not part of this TView).\r\n     *\r\n     * If this is a `TViewNode` for an `LViewNode`, this is an embedded view of a container.\r\n     * We need this pointer to be able to efficiently find this node when inserting the view\r\n     * into an anchor.\r\n     *\r\n     * If this is a `TElementNode`, this is the view of a root component. It has exactly one\r\n     * root TNode.\r\n     *\r\n     * If this is null, this is the view of a component that is not at root. We do not store\r\n     * the host TNodes for child component views because they can potentially have several\r\n     * different host TNodes, depending on where the component is being used. These host\r\n     * TNodes cannot be shared (due to different indices, etc).\r\n     */\r\n    node: TViewNode | ɵangular_packages_core_core_bh | null;\r\n    /** Whether or not this template has been processed. */\r\n    firstTemplatePass: 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    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     * Set of instructions used to process host bindings efficiently.\r\n     *\r\n     * See VIEW_DATA.md for more information.\r\n     */\r\n    expandoInstructions: ExpandoInstructions | 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     * Even indices: Directive index\r\n     * Odd indices: Hook function\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     * Even indices: Directive index\r\n     * Odd indices: Hook function\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: HookData | 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\r\n     * 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 attributes for all of the elements in the view. Used\r\n     * for directive matching and attribute bindings.\r\n     */\r\n    consts: TAttributes[] | null;\r\n}\r\n\r\n/** Static data for a view  */\r\ndeclare interface TViewNode extends TNode {\r\n    /** If -1, it's a dynamically created view. Otherwise, it is the view block ID. */\r\n    index: number;\r\n    child: ɵangular_packages_core_core_bh | TTextNode | TElementContainerNode | TContainerNode | TProjectionNode | null;\r\n    parent: TContainerNode | null;\r\n    tViews: null;\r\n    projection: null;\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 be 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\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** - True 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     * @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: Type<any> | Function | string, opts?: {\r\n        read?: any;\r\n        static?: boolean;\r\n    }): any;\r\n    new (selector: Type<any> | 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     * Parameter 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** - True to read a different token from the queried elements.\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: Type<any> | Function | string, opts?: {\r\n        read?: any;\r\n    }): any;\r\n    new (selector: Type<any> | Function | string, opts?: {\r\n        read?: any;\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 readonly element: ElementRef;\r\n    /**\r\n     * The [dependency injector](guide/glossary#injector) for this view container.\r\n     */\r\n    abstract readonly injector: Injector;\r\n    /** @deprecated No replacement */\r\n    abstract readonly 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 readonly 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 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     * @deprecated v6.1.0 - use {ViewEncapsulation.ShadowDom} instead.\r\n     * Use the native encapsulation mechanism of the renderer.\r\n     *\r\n     * For the DOM this means using the deprecated [Shadow DOM\r\n     * v0](https://w3c.github.io/webcomponents/spec/shadow/) and\r\n     * creating a ShadowRoot for Component's Host Element.\r\n     */\r\n    Native = 1,\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://w3c.github.io/webcomponents/spec/shadow/) and\r\n     * creating a ShadowRoot for Component's Host Element.\r\n     */\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),\r\n * specifically the [host view](guide/glossary#view-tree) that is defined by a component.\r\n * Also serves as the base class\r\n * that adds destroy methods for [embedded views](guide/glossary#view-tree).\r\n *\r\n * @see `EmbeddedViewRef`\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 readonly 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    private _context;\r\n    private _componentIndex;\r\n    private _appRef;\r\n    private _viewContainerRef;\r\n    readonly rootNodes: any[];\r\n    constructor(_lView: ɵangular_packages_core_core_bm, _context: T | null, _componentIndex: number);\r\n    readonly context: T;\r\n    readonly 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     * It also triggers change detection by calling `scheduleTick` internally, which coalesces\r\n     * multiple `markForCheck` calls to into one change detection run.\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: 'my-app',\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: 'my-app',\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(vcRef: ViewContainerRef): void;\r\n    detachFromAppRef(): void;\r\n    attachToAppRef(appRef: ApplicationRef): void;\r\n    private _lookUpContext;\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 */\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 * Create trace scope.\r\n *\r\n * Scopes must be strictly nested and are analogous to stack frames, but\r\n * do not have to follow the stack frames. Instead it is recommended that they follow logical\r\n * nesting. You may want to use\r\n * [Event\r\n * Signatures](http://google.github.io/tracing-framework/instrumenting-code.html#custom-events)\r\n * as they are defined in WTF.\r\n *\r\n * Used to mark scope entry. The return value is used to leave the scope.\r\n *\r\n *     var myScope = wtfCreateScope('MyClass#myMethod(ascii someVal)');\r\n *\r\n *     someMethod() {\r\n *        var s = myScope('Foo'); // 'Foo' gets stored in tracing UI\r\n *        // DO SOME WORK HERE\r\n *        return wtfLeave(s, 123); // Return value 123\r\n *     }\r\n *\r\n * Note, adding try-finally block around the work to ensure that `wtfLeave` gets called can\r\n * negatively impact the performance of your application. For this reason we recommend that\r\n * you don't add them to ensure that `wtfLeave` gets called. In production `wtfLeave` is a noop and\r\n * so try-finally block has no value. When debugging perf issues, skipping `wtfLeave`, do to\r\n * exception, will produce incorrect trace, but presence of exception signifies logic error which\r\n * needs to be fixed before the app should be profiled. Add try-finally only when you expect that\r\n * an exception is expected during normal execution while profiling.\r\n *\r\n * @publicApi\r\n * @deprecated the Web Tracing Framework is no longer supported in Angular\r\n */\r\nexport declare const wtfCreateScope: (signature: string, flags?: any) => WtfScopeFn;\r\n\r\n/**\r\n * Ends a async time range operation.\r\n * [range] is the return value from [wtfStartTimeRange] Async ranges only work if WTF has been\r\n * enabled.\r\n * @publicApi\r\n * @deprecated the Web Tracing Framework is no longer supported in Angular\r\n */\r\nexport declare const wtfEndTimeRange: (range: any) => void;\r\n\r\n/**\r\n * Used to mark end of Scope.\r\n *\r\n * - `scope` to end.\r\n * - `returnValue` (optional) to be passed to the WTF.\r\n *\r\n * Returns the `returnValue for easy chaining.\r\n * @publicApi\r\n * @deprecated the Web Tracing Framework is no longer supported in Angular\r\n */\r\nexport declare const wtfLeave: <T>(scope: any, returnValue?: T) => T;\r\n\r\n\r\n/**\r\n * A scope function for the Web Tracing Framework (WTF).\r\n *\r\n * @publicApi\r\n * @deprecated the Web Tracing Framework is no longer supported in Angular\r\n */\r\nexport declare interface WtfScopeFn {\r\n    (arg0?: any, arg1?: any): any;\r\n}\r\n\r\n/**\r\n * Used to mark Async start. Async are similar to scope but they don't have to be strictly nested.\r\n * The return value is used in the call to [endAsync]. Async ranges only work if WTF has been\r\n * enabled.\r\n *\r\n *     someMethod() {\r\n *        var s = wtfStartTimeRange('HTTP:GET', 'some.url');\r\n *        var future = new Future.delay(5).then((_) {\r\n *          wtfEndTimeRange(s);\r\n *        });\r\n *     }\r\n * @publicApi\r\n * @deprecated the Web Tracing Framework is no longer supported in Angular\r\n */\r\nexport declare const wtfStartTimeRange: (rangeType: string, action: string) => any;\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): string;\r\n\r\n/**\r\n * Sanitizes the given untrusted CSS style property value (i.e. not an entire object, just a single\r\n * value) and returns a value that is safe to use in a browser environment.\r\n */\r\nexport declare function ɵ_sanitizeStyle(value: string): 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: Type<T> | InjectionToken<T>): T;\r\n\r\nexport declare function ɵangular_packages_core_core_b<T>(token: Type<T> | InjectionToken<T>, flags?: InjectFlags): T | null;\r\n\r\nexport declare abstract class ɵangular_packages_core_core_ba {\r\n    abstract readonly view: ViewData;\r\n    abstract readonly nodeIndex: number | null;\r\n    abstract readonly injector: Injector;\r\n    abstract readonly component: any;\r\n    abstract readonly providerTokens: any[];\r\n    abstract readonly references: {\r\n        [key: string]: any;\r\n    };\r\n    abstract readonly context: any;\r\n    abstract readonly componentRenderElement: any;\r\n    abstract readonly renderNode: any;\r\n    abstract logError(console: Console, ...values: any[]): void;\r\n}\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_bb: 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_bc(tNode: TNode, attrNameToInject: string): string | null;\r\n\r\nexport declare const ɵangular_packages_core_core_bd: InstructionState;\r\n\r\nexport declare function ɵangular_packages_core_core_be(): ɵangular_packages_core_core_bm;\r\n\r\nexport declare function ɵangular_packages_core_core_bf(): TNode;\r\n\r\nexport declare function ɵangular_packages_core_core_bg<T = any>(level?: number): T;\r\n\r\n/** Static data for an element  */\r\nexport declare interface ɵangular_packages_core_core_bh extends TNode {\r\n    /** Index in the data[] array */\r\n    index: number;\r\n    child: ɵangular_packages_core_core_bh | 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_bh | 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 or\r\n     * a component without projection, it will be null.\r\n     */\r\n    projection: (TNode | RNode[])[] | null;\r\n}\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_bi(tag: string, prop: string): typeof ɵɵsanitizeResourceUrl;\r\n\r\nexport declare function ɵangular_packages_core_core_bj(name: string, props?: (...args: any[]) => any, parentClass?: any): any;\r\n\r\nexport declare function ɵangular_packages_core_core_bk(name: string, props?: (...args: any[]) => any, parentClass?: any, additionalProcessing?: (target: any, name: string, ...args: any[]) => void): any;\r\n\r\n\r\nexport declare function ɵangular_packages_core_core_bl<T>(objWithPropertyToExtract: T): string;\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_bm extends Array<any> {\r\n    /**\r\n     * The host node for this LView instance, if this is a component view.\r\n     * If this is an embedded view, HOST will be null.\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_bm | 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_bm | 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     * Pointer to the `TViewNode` or `TElementNode` which represents the root of the view.\r\n     *\r\n     * If `TViewNode`, this is an embedded view of a container. We need this to be able to\r\n     * efficiently find the `LViewNode` when inserting the view into an anchor.\r\n     *\r\n     * If `TElementNode`, this is the LView of a component.\r\n     *\r\n     * If null, this is the root view of an application (root component is in this view).\r\n     */\r\n    [T_HOST]: TViewNode | ɵangular_packages_core_core_bh | null;\r\n    /**\r\n     * The binding index we should access next.\r\n     *\r\n     * This is stored so that bindings can continue where they left off\r\n     * if a view is left midway through processing bindings (e.g. if there is\r\n     * a setter that creates an embedded view, like in ngIf).\r\n     */\r\n    [BINDING_INDEX]: number;\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    [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    /** Renderer to be used for this view. */\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_bm | 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_bm | LContainer | null;\r\n    /**\r\n     * View where this view's template was declared.\r\n     *\r\n     * Only applicable for dynamically created views. Will be null for inline/component views.\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_bm | null;\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\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 ɵangular_packages_core_core_bn(fn: () => void): string;\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_bo(viewOrComponent: ɵangular_packages_core_core_bm | {}): RootContext;\r\n\r\nexport declare class ɵangular_packages_core_core_c implements Injector {\r\n    get(token: any, notFoundValue?: any): any;\r\n}\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    readonly 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/**\r\n * Creates an ElementRef given a node.\r\n *\r\n * @param ElementRefToken The ElementRef type\r\n * @param tNode The node for which you'd like an ElementRef\r\n * @param view 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_h(ElementRefToken: typeof ElementRef, tNode: TNode, view: ɵangular_packages_core_core_bm): ElementRef;\r\n\r\n/**\r\n * Creates a TemplateRef and stores it on the injector.\r\n *\r\n * @param TemplateRefToken The TemplateRef type\r\n * @param ElementRefToken The ElementRef type\r\n * @param hostTNode The node on which a TemplateRef is requested\r\n * @param hostView The view 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_i<T>(TemplateRefToken: typeof TemplateRef, ElementRefToken: typeof ElementRef, hostTNode: TNode, hostView: ɵangular_packages_core_core_bm): TemplateRef<T> | null;\r\n\r\nexport declare function ɵangular_packages_core_core_j(id: string): NgModuleFactory<any>;\r\n\r\nexport declare class ɵangular_packages_core_core_k {\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_ba);\r\n    readonly injector: Injector;\r\n    readonly componentInstance: any;\r\n    readonly context: any;\r\n    readonly references: {\r\n        [key: string]: any;\r\n    };\r\n    readonly providerTokens: any[];\r\n}\r\n\r\nexport declare class ɵangular_packages_core_core_l extends ɵangular_packages_core_core_k 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_ba);\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    readonly children: DebugElement[];\r\n    triggerEventHandler(eventName: string, eventObj: any): void;\r\n}\r\n\r\nexport declare class ɵangular_packages_core_core_m 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_n<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_o(): IterableDiffers;\r\n\r\nexport declare function ɵangular_packages_core_core_p(): KeyValueDiffers;\r\n\r\nexport declare function ɵangular_packages_core_core_q(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_r: StaticProvider[];\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_s(ngZone: NgZone): (fn: () => void) => void;\r\n\r\n/**\r\n * True if WTF is enabled.\r\n */\r\nexport declare const ɵangular_packages_core_core_t: boolean;\r\n\r\nexport declare function ɵangular_packages_core_core_u(): boolean;\r\n\r\nexport declare function ɵangular_packages_core_core_v(signature: string, flags?: any): any;\r\n\r\nexport declare function ɵangular_packages_core_core_w<T>(scope: Scope): void;\r\n\r\nexport declare function ɵangular_packages_core_core_w<T>(scope: Scope, returnValue?: T): T;\r\n\r\nexport declare function ɵangular_packages_core_core_x(rangeType: string, action: string): Range;\r\n\r\nexport declare function ɵangular_packages_core_core_y(range: Range): void;\r\n\r\nexport declare function ɵangular_packages_core_core_z(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\n/**\r\n * Providers that will 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     * 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 `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` 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 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: TAttributes[] | 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 _?: never;\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: never;\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\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 * 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. There should\r\n * be very little reason to call this function directly since a preferred way to do change\r\n * detection is to {@link markDirty} the component and wait for the scheduler to call this method\r\n * at some future point in time. This is because a single user action often results in many\r\n * components being invalidated and calling change detection on each component synchronously\r\n * would be inefficient. It is better to wait until all components are marked as dirty and\r\n * then perform single change detection across all of the components\r\n *\r\n * @param component The component which the change detection should be performed on.\r\n */\r\nexport declare function ɵdetectChanges<T>(component: T): 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 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> extends ɵɵBaseDef<T> {\r\n    /** Token representing the directive. Used by DI. */\r\n    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    factory: FactoryFn<T> | null;\r\n    onChanges: (() => void) | null;\r\n    onInit: (() => void) | null;\r\n    doCheck: (() => void) | null;\r\n    afterContentInit: (() => void) | null;\r\n    afterContentChecked: (() => void) | null;\r\n    afterViewInit: (() => void) | null;\r\n    afterViewChecked: (() => void) | null;\r\n    onDestroy: (() => void) | 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: never;\r\n    ɵfac: () => T;\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 * 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)\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\n/**\r\n * Retrieves directives associated with a given DOM host element.\r\n *\r\n * @param target A DOM element, component or directive instance.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function ɵgetDirectives(target: {}): Array<{}>;\r\n\r\n/**\r\n * Retrieve the host element of the component.\r\n *\r\n * Use this function to retrieve the host element of the component. The host\r\n * element is the element which the component is associated with.\r\n *\r\n * @param directive Component or Directive for which the host element should be retrieved.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function ɵgetHostElement<T>(directive: T): 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): ɵɵInjectableDef<T> | null;\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/**\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)\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\nexport declare function ɵ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(obj: any): obj is Promise<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_bm;\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, {features: [RootLifecycleHooks]});\r\n * ```\r\n */\r\nexport declare function ɵLifecycleHooksFeature(component: any, def: ɵComponentDef<any>): void;\r\n\r\n/**\r\n * This const is used to store the locale data registered with `registerLocaleData`\r\n */\r\nexport declare const ɵLOCALE_DATA: {\r\n    [localeId: string]: any;\r\n};\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    CurrencySymbol = 15,\r\n    CurrencyName = 16,\r\n    Currencies = 17,\r\n    PluralCase = 18,\r\n    ExtraData = 19\r\n}\r\n\r\n\r\nexport declare function ɵlooseIdentical(a: any, b: any): boolean;\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 * Mark the component as dirty (needing change detection).\r\n *\r\n * Marking a component dirty will schedule a change detection on this\r\n * component at some point in the future. Marking an already dirty\r\n * component as dirty is a noop. Only one outstanding change detection\r\n * can be scheduled per component tree. (Two components bootstrapped with\r\n * separate `renderComponent` will have separate schedulers)\r\n *\r\n * When the root component is bootstrapped with `renderComponent`, a scheduler\r\n * can be provided.\r\n *\r\n * @param component Component to mark as dirty.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function ɵmarkDirty<T>(component: T): 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\nexport declare const ɵNG_BASE_DEF: string;\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    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(fn: (...args: any[]) => any, applyThis?: any, applyArgs?: any): any;\r\n    runGuarded(fn: (...args: any[]) => any, applyThis?: any, applyArgs?: any): any;\r\n    runOutsideAngular(fn: (...args: any[]) => any): any;\r\n    runTask(fn: (...args: any[]) => any, applyThis?: any, applyArgs?: any, name?: string): any;\r\n}\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 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 * 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 * 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    readonly inputs: {\r\n        propName: string;\r\n        templateName: string;\r\n    }[];\r\n    readonly 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    destroyCbs: (() => void)[] | null;\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_bm, _tNode: ɵangular_packages_core_core_bh | TContainerNode | TElementContainerNode);\r\n    readonly 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    constructor(ngModuleType: Type<T>, _parent: Injector | null);\r\n    get(token: any, notFoundValue?: any, injectFlags?: InjectFlags): any;\r\n    readonly componentFactoryResolver: ComponentFactoryResolver;\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\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\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 marked as pure, resulting in the metadata assignments being\r\n * 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 * 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>(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 injectChangeDetectorRef;\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 injectElementRef;\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 injectRenderer2;\r\n\r\nexport declare const ɵSWITCH_TEMPLATE_REF_FACTORY__POST_R3__: typeof injectTemplateRef;\r\n\r\nexport declare const ɵSWITCH_VIEW_CONTAINER_REF_FACTORY__POST_R3__: typeof injectViewContainerRef;\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. It can be called\r\n * on modules with components that have not fully compiled yet, but the result should not be used\r\n * until they have.\r\n */\r\nexport declare function ɵtransitiveScopesFor<T>(moduleType: Type<T>, processNgModuleFn?: (ngModule: ɵNgModuleType) => void): ɵNgModuleTransitiveScopes;\r\n\r\nexport declare function ɵunv(view: ViewData, nodeIdx: number, bindingIdx: number, value: any): any;\r\n\r\nexport declare function ɵunwrapSafeValue(value: string | ɵSafeValue): string;\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/**\r\n * Allocates the necessary amount of slots for host vars.\r\n *\r\n * @param count Amount of vars to be allocated\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵallocHostVars(count: 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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\r\n\r\n/**\r\n * Update an interpolated attribute on an element with 8 or more bound values surrounded by text.\r\n *\r\n * Used when the number of interpolated values exceeds 7.\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 a 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): TsickleIssue1009;\r\n\r\n/**\r\n * Runtime information for classes that are inherited by components or directives\r\n * that aren't defined as components or directives.\r\n *\r\n * This is an internal data structure used by the renderer to determine what inputs\r\n * and outputs should be inherited.\r\n *\r\n * See: {@link defineBase}\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare interface ɵɵBaseDef<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    hostBindings: HostBindingsFunction<T> | null;\r\n}\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]: any;\r\n} | ɵNO_CHANGE | string | 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 8 or more bound values surrounded by text.\r\n *\r\n * Used when the number of interpolated values exceeds 7.\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 a 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 | null): void;\r\n\r\n/**\r\n * @codeGenApi\r\n */\r\nexport declare type ɵɵComponentDefWithMeta<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[]> = ɵComponentDef<T>;\r\n\r\n/**\r\n* Registers a synthetic host listener (e.g. `(@foo.start)`) on a component.\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 ɵɵcomponentHostSyntheticListener(eventName: string, listenerFn: (e?: any) => any, useCapture?: boolean, eventTargetResolver?: GlobalTargetResolver): void;\r\n\r\n/**\r\n * Creates an LContainer for inline views, e.g.\r\n *\r\n * % if (showing) {\r\n *   <div></div>\r\n * % }\r\n *\r\n * @param index The index of the container in the data array\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵcontainer(index: number): void;\r\n\r\n/**\r\n * Marks the end of the LContainer.\r\n *\r\n * Marking the end of LContainer is the time when to child views get inserted or removed.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵcontainerRefreshEnd(): void;\r\n\r\n/**\r\n * Sets a container up to receive views.\r\n *\r\n * @param index The index of the container in the data array\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵcontainerRefreshStart(index: number): void;\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 descend Whether or not to descend into children\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: Type<any> | string[], descend: boolean, read?: any): void;\r\n\r\n/**\r\n * The default style sanitizer will handle sanitization for style properties by\r\n * sanitizing any CSS property that can include a `url` value (usually image-based properties)\r\n *\r\n * @publicApi\r\n */\r\nexport declare const ɵɵdefaultStyleSanitizer: StyleSanitizeFn;\r\n\r\n/**\r\n * Create a base definition\r\n *\r\n * # Example\r\n * ```ts\r\n * class ShouldBeInherited {\r\n *   static ngBaseDef = ɵɵdefineBase({\r\n *      ...\r\n *   })\r\n * }\r\n * ```\r\n *\r\n * @param baseDefinition The base definition parameters\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵdefineBase<T>(baseDefinition: {\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: [ 'declaredInput2', 'publicInput2'],\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 `outputs`.\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 to create instances of content queries associated with a given directive.\r\n     */\r\n    contentQueries?: ContentQueriesFunction<T> | null;\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;\r\n    /**\r\n     * Function executed by the parent template to allow children to apply host bindings.\r\n     */\r\n    hostBindings?: HostBindingsFunction<T>;\r\n}): ɵɵBaseDef<T>;\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     * 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    /** Constants for the nodes in the component's view. */\r\n    consts?: TAttributes[];\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}): never;\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: (string | SelectorFlags)[][];\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     * 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 `InjectableDef` which defines how a token will be constructed by the DI system, and\r\n * 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 */\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}): never;\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 * * `factory`: an `InjectorType` is an instantiable type, so a zero argument `factory` function to\r\n *   create the type must be provided. If that factory function needs to inject arguments, it can\r\n *   use the `inject` function.\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 * @publicApi\r\n */\r\nexport declare function ɵɵdefineInjector(options: {\r\n    factory: () => any;\r\n    providers?: any[];\r\n    imports?: any[];\r\n}): never;\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}): never;\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}): never;\r\n\r\n/**\r\n * @codeGenApi\r\n */\r\nexport declare type ɵɵDirectiveDefWithMeta<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[]> = ɵDirectiveDef<T>;\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: Type<T> | InjectionToken<T>): T;\r\n\r\nexport declare function ɵɵdirectiveInject<T>(token: Type<T> | InjectionToken<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 constsIndex Index of the element in the `consts` array.\r\n * @param localRefs A set of local reference bindings on the element.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelement(index: number, name: string, constsIndex?: number | null, localRefs?: string[] | null): 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 constsIndex Index of the container in the `consts` array.\r\n * @param localRefs A set of local reference bindings on the element.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelementContainer(index: number, constsIndex?: number | null, localRefs?: string[] | null): 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 constsIndex Index of the container in the `consts` array.\r\n * @param localRefs A set of local reference bindings on the element.\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, constsIndex?: number | null, localRefs?: string[] | null): 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 * Assign static attribute values to a host element.\r\n *\r\n * This instruction will assign static attribute values as well as class and style\r\n * values to an element within the host bindings function. Since attribute values\r\n * can consist of different types of values, the `attrs` array must include the values in\r\n * 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 * NOTE: This instruction is meant to used from `hostBindings` function only.\r\n *\r\n * @param directive A directive instance the styling is associated with.\r\n * @param attrs An array of static values (attributes, classes and styles) with the correct marker\r\n * values.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵelementHostAttrs(attrs: TAttributes): void;\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 constsIndex Index of the element in the `consts` array.\r\n * @param localRefs A set of local reference bindings on the element.\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, constsIndex?: number | null, localRefs?: string[] | null): void;\r\n\r\n/**\r\n * Marks the end of an embedded view.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵembeddedViewEnd(): void;\r\n\r\n/**\r\n * Marks the start of an embedded view.\r\n *\r\n * @param viewBlockId The ID of this view\r\n * @return boolean Whether or not this view is in creation mode\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵembeddedViewStart(viewBlockId: number, decls: number, vars: number): ɵRenderFlags;\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 * @codeGenApi\r\n */\r\nexport declare type ɵɵFactoryDef<T> = () => T;\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 ɵɵgetFactoryOf<T>(type: Type<any>): FactoryFn<T> | null;\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): TsickleIssue1009;\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 message The translation message.\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, message: string, 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, values: string[]): 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): TsickleIssue1009;\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})�`: *Projection Placeholder*:  Marks the\r\n *   beginning and end of <ng-content> that was embedded in the original translation block.\r\n *   The placeholder `index` points to the element index in the template instructions set.\r\n *   An optional `block` that 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 message The translation message.\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, message: string, 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 instruction)\r\n *\r\n * @see inject\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵinject<T>(token: Type<T> | InjectionToken<T>): T;\r\n\r\nexport declare function ɵɵinject<T>(token: Type<T> | InjectionToken<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 * `InjectorDef`, `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 * NOTE: This is a private type and should not be exported\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵɵInjectableDef<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 * 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 * @publicApi\r\n */\r\nexport declare interface ɵɵInjectorDef<T> {\r\n    factory: () => 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 * Returns the appropriate `ChangeDetectorRef` for a pipe.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵinjectPipeChangeDetectorRef(flags?: InjectFlags): ChangeDetectorRef | null;\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): void;\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 * @publicApi\r\n */\r\nexport declare type ɵɵNgModuleDefWithMeta<T, Declarations, Imports, Exports> = ɵNgModuleDef<T>;\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 * @codeGenApi\r\n */\r\nexport declare type ɵɵPipeDefWithMeta<T, Name extends string> = ɵPipeDef<T>;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\r\n\r\n/**\r\n * Update an interpolated property on an element with 8 or more bound values surrounded by text.\r\n *\r\n * Used when the number of interpolated values exceeds 7.\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 a 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): TsickleIssue1009;\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/**\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}): {\r\n    name: string;\r\n    target: HTMLElement;\r\n};\r\n\r\n/**\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵresolveDocument(element: RElement & {\r\n    ownerDocument: Document;\r\n}): {\r\n    name: string;\r\n    target: Document;\r\n};\r\n\r\n/**\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵresolveWindow(element: RElement & {\r\n    ownerDocument: Document;\r\n}): {\r\n    name: string;\r\n    target: Window | null;\r\n};\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 *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵrestoreView(viewToRestore: OpaqueViewState): void;\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 * @publicApi\r\n */\r\nexport declare function ɵɵsanitizeHtml(unsafeHtml: any): 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 * @publicApi\r\n */\r\nexport declare function ɵɵsanitizeResourceUrl(unsafeResourceUrl: any): 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 * @publicApi\r\n */\r\nexport declare function ɵɵsanitizeScript(unsafeScript: any): 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 * This method parses the `style` 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 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, because all of the\r\n * dangerous javascript and urls have been removed.\r\n *\r\n * @publicApi\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 * @publicApi\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 * @publicApi\r\n */\r\nexport declare function ɵɵsanitizeUrlOrResourceUrl(unsafeUrl: any, tag: string, prop: string): any;\r\n\r\n/**\r\n * Selects an element for later binding instructions.\r\n * @deprecated No longer being generated, but still used in unit tests.\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵselect(index: number): void;\r\n\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}): void;\r\n\r\n/**\r\n * Registers a QueryList, associated with a static content query, for later refresh\r\n * (part of a view 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 descend Whether or not to descend into children\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 ɵɵstaticContentQuery<T>(directiveIndex: number, predicate: Type<any> | string[], descend: boolean, read?: any): void;\r\n\r\n/**\r\n * Creates new QueryList for a static view query.\r\n *\r\n * @param predicate The type for which the query will search\r\n * @param descend Whether or not to descend into children\r\n * @param read What to save in the query\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstaticViewQuery<T>(predicate: Type<any> | string[], descend: boolean, read?: any): void;\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} | ɵNO_CHANGE | null): 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 *        Note that when a suffix is provided then the underlying sanitizer will\r\n *        be ignored.\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 | null, suffix?: string | null): void;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\r\n\r\n/**\r\n * Update an interpolated style property on an element with 8 or more bound values surrounded by\r\n * text.\r\n *\r\n * Used when the number of interpolated values exceeds 7.\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 a 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): TsickleIssue1009;\r\n\r\n/**\r\n * --------\r\n *\r\n * This file contains the core logic for how styling instructions are processed in Angular.\r\n *\r\n * To learn more about the algorithm see `TStylingContext`.\r\n *\r\n * --------\r\n */\r\n/**\r\n * Sets the current style sanitizer function which will then be used\r\n * within all follow-up prop and map-based style binding instructions\r\n * for the given element.\r\n *\r\n * Note that once styling has been applied to the element (i.e. once\r\n * `advance(n)` is executed or the hostBindings/template function exits)\r\n * then the active `sanitizerFn` will be set to `null`. This means that\r\n * once styling is applied to another element then a another call to\r\n * `styleSanitizer` will need to be made.\r\n *\r\n * @param sanitizerFn The sanitization function that will be used to\r\n *       process style prop/value entries.\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵstyleSanitizer(sanitizer: StyleSanitizeFn | null): void;\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 constsIndex Index of template in the `consts` array.\r\n * @param localRefs A set of local reference bindings on the element.\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, constsIndex?: number | null, localRefs?: string[] | 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, currentView: ɵangular_packages_core_core_bm): TemplateRef<unknown> | 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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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): TsickleIssue1009;\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 a 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[]): TsickleIssue1009;\r\n\r\n/**\r\n * Updates a synthetic host binding (e.g. `[@foo]`) on a component.\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 ɵɵupdateSyntheticHostBinding<T>(propName: string, value: T | ɵNO_CHANGE, sanitizer?: SanitizerFn | null): TsickleIssue1009;\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 descend Whether or not to descend into children\r\n * @param read What to save in the query\r\n *\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵviewQuery<T>(predicate: Type<any> | string[], descend: boolean, read?: any): void;\r\n\r\nexport { }\r\n\n//# sourceMappingURL=core.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/dynamic-queries/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/dynamic-queries\" />\nimport { Rule } from '@angular-devkit/schematics';\n/**\n * Runs the dynamic queries migration for all TypeScript projects in the current CLI workspace.\n */\nexport default function (): Rule;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/dynamic-queries/util.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/dynamic-queries/util\" />\nimport * as ts from 'typescript';\n/**\n * Identifies the nodes that should be migrated by the dynamic\n * queries schematic. Splits the nodes into the following categories:\n * - `removeProperty` - queries from which we should only remove the `static` property of the\n *  `options` parameter (e.g. `@ViewChild('child', {static: false, read: ElementRef})`).\n * - `removeParameter` - queries from which we should drop the entire `options` parameter.\n *  (e.g. `@ViewChild('child', {static: false})`).\n */\nexport declare function identifyDynamicQueryNodes(typeChecker: ts.TypeChecker, sourceFile: ts.SourceFile): {\n    removeProperty: ts.ObjectLiteralExpression[];\n    removeParameter: ts.CallExpression[];\n};\n/** Removes the `options` parameter from the call expression of a query decorator. */\nexport declare function removeOptionsParameter(node: ts.CallExpression): ts.CallExpression;\n/** Removes the `static` property from an object literal expression. */\nexport declare function removeStaticFlag(node: ts.ObjectLiteralExpression): ts.ObjectLiteralExpression;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/missing-injectable/definition_collector.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/missing-injectable/definition_collector\" />\nimport * as ts from 'typescript';\nimport { NgDecorator } from '../../utils/ng_decorators';\nexport interface ResolvedNgModule {\n    name: string;\n    node: ts.ClassDeclaration;\n    decorator: NgDecorator;\n    providersExpr: ts.Expression | null;\n}\nexport interface ResolvedDirective {\n    name: string;\n    node: ts.ClassDeclaration;\n    decorator: NgDecorator;\n    providersExpr: ts.Expression | null;\n    viewProvidersExpr: ts.Expression | null;\n}\n/**\n * Visitor that walks through specified TypeScript nodes and collects all\n * found NgModule, Directive or Component definitions.\n */\nexport declare class NgDefinitionCollector {\n    typeChecker: ts.TypeChecker;\n    resolvedModules: ResolvedNgModule[];\n    resolvedDirectives: ResolvedDirective[];\n    constructor(typeChecker: ts.TypeChecker);\n    visitNode(node: ts.Node): void;\n    private visitClassDeclaration;\n    private _visitDirectiveClass;\n    private _visitNgModuleClass;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/missing-injectable/import_manager.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/missing-injectable/import_manager\" />\nimport * as ts from 'typescript';\nimport { UpdateRecorder } from './update_recorder';\n/**\n * Import manager that can be used to add TypeScript imports to given source\n * files. The manager ensures that multiple transformations are applied properly\n * without shifted offsets and that similar existing import declarations are re-used.\n */\nexport declare class ImportManager {\n    private getUpdateRecorder;\n    private printer;\n    /** Map of import declarations that need to be updated to include the given symbols. */\n    private updatedImports;\n    /** Map of source-files and their previously used identifier names. */\n    private usedIdentifierNames;\n    /**\n     * Array of previously resolved symbol imports. Cache can be re-used to return\n     * the same identifier without checking the source-file again.\n     */\n    private importCache;\n    constructor(getUpdateRecorder: (sf: ts.SourceFile) => UpdateRecorder, printer: ts.Printer);\n    /**\n     * Adds an import to the given source-file and returns the TypeScript\n     * identifier that can be used to access the newly imported symbol.\n     */\n    addImportToSourceFile(sourceFile: ts.SourceFile, symbolName: string | null, moduleName: string, typeImport?: boolean): ts.Expression;\n    /**\n     * Stores the collected import changes within the appropriate update recorders. The\n     * updated imports can only be updated *once* per source-file because previous updates\n     * could otherwise shift the source-file offsets.\n     */\n    recordChanges(): void;\n    /** Gets an unique identifier with a base name for the given source file. */\n    private _getUniqueIdentifier;\n    /**\n     * Checks whether the specified identifier name is used within the given\n     * source file.\n     */\n    private isUniqueIdentifierName;\n    private _recordUsedIdentifier;\n    /**\n     * Determines the full end of a given node. By default the end position of a node is\n     * before all trailing comments. This could mean that generated imports shift comments.\n     */\n    private _getEndPositionOfNode;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/missing-injectable/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/missing-injectable\" />\nimport { Rule } from '@angular-devkit/schematics';\n/** Entry point for the V9 \"missing @Injectable\" schematic. */\nexport default function (): Rule;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/missing-injectable/transform.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/missing-injectable/transform\" />\nimport * as ts from 'typescript';\nimport { ResolvedDirective, ResolvedNgModule } from './definition_collector';\nimport { UpdateRecorder } from './update_recorder';\nexport interface AnalysisFailure {\n    node: ts.Node;\n    message: string;\n}\nexport declare class MissingInjectableTransform {\n    private typeChecker;\n    private getUpdateRecorder;\n    private printer;\n    private importManager;\n    private partialEvaluator;\n    /** Set of provider class declarations which were already checked or migrated. */\n    private visitedProviderClasses;\n    constructor(typeChecker: ts.TypeChecker, getUpdateRecorder: (sf: ts.SourceFile) => UpdateRecorder);\n    recordChanges(): void;\n    /**\n     * Migrates all specified NgModule's by walking through referenced providers\n     * and decorating them with \"@Injectable\" if needed.\n     */\n    migrateModules(modules: ResolvedNgModule[]): AnalysisFailure[];\n    /**\n     * Migrates all specified directives by walking through referenced providers\n     * and decorating them with \"@Injectable\" if needed.\n     */\n    migrateDirectives(directives: ResolvedDirective[]): AnalysisFailure[];\n    /** Migrates a given NgModule by walking through the referenced providers. */\n    migrateModule(module: ResolvedNgModule): AnalysisFailure[];\n    /**\n     * Migrates a given directive by walking through defined providers. This method\n     * also handles components with \"viewProviders\" defined.\n     */\n    migrateDirective(directive: ResolvedDirective): AnalysisFailure[];\n    /**\n     * Migrates a given provider class if it is not decorated with\n     * any Angular decorator.\n     */\n    migrateProviderClass(node: ts.ClassDeclaration, context: ResolvedNgModule | ResolvedDirective): void;\n    /**\n     * Visits the given resolved value of a provider. Providers can be nested in\n     * arrays and we need to recursively walk through the providers to be able to\n     * migrate all referenced provider classes. e.g. \"providers: [[A, [B]]]\".\n     */\n    private _visitProviderResolvedValue;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/missing-injectable/update_recorder.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/missing-injectable/update_recorder\" />\nimport * as ts from 'typescript';\n/**\n * Update recorder interface that is used to transform source files in a non-colliding\n * way. Also this indirection makes it possible to re-use logic for both TSLint rules\n * and CLI devkit schematic updates.\n */\nexport interface UpdateRecorder {\n    addNewImport(start: number, importText: string): void;\n    updateExistingImport(namedBindings: ts.NamedImports, newNamedBindings: string): void;\n    addClassDecorator(node: ts.ClassDeclaration, text: string, className: string): void;\n    replaceDecorator(node: ts.Decorator, newText: string, className: string): void;\n    commitUpdate(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/move-document/document_import_visitor.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/move-document/document_import_visitor\" />\nimport * as ts from 'typescript';\nexport declare const COMMON_IMPORT = \"@angular/common\";\nexport declare const PLATFORM_BROWSER_IMPORT = \"@angular/platform-browser\";\nexport declare const DOCUMENT_TOKEN_NAME = \"DOCUMENT\";\n/** This contains the metadata necessary to move items from one import to another */\nexport interface ResolvedDocumentImport {\n    platformBrowserImport: ts.NamedImports | null;\n    commonImport: ts.NamedImports | null;\n    documentElement: ts.ImportSpecifier | null;\n}\n/** Visitor that can be used to find a set of imports in a TypeScript file. */\nexport declare class DocumentImportVisitor {\n    typeChecker: ts.TypeChecker;\n    importsMap: Map<ts.SourceFile, ResolvedDocumentImport>;\n    constructor(typeChecker: ts.TypeChecker);\n    visitNode(node: ts.Node): void;\n    private visitNamedImport;\n    private getDocumentElement;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/move-document/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/move-document\" />\nimport { Rule } from '@angular-devkit/schematics';\n/** Entry point for the V8 move-document migration. */\nexport default function (): Rule;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/move-document/move-import.d.ts"
    ],
    "content": "/// <amd-module name=\"@angular/core/schematics/migrations/move-document/move-import\" />\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ts from 'typescript';\nexport declare function removeFromImport(importNode: ts.NamedImports, sourceFile: ts.SourceFile, importName: string): string;\nexport declare function addToImport(importNode: ts.NamedImports, sourceFile: ts.SourceFile, name: ts.Identifier, propertyName?: ts.Identifier): string;\nexport declare function createImport(importSource: string, sourceFile: ts.SourceFile, name: ts.Identifier, propertyName?: ts.Identifier): string;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/postinstall-ngcc/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/postinstall-ngcc\" />\nimport { Rule } from '@angular-devkit/schematics';\n/**\n * Runs the ngcc postinstall migration for the current CLI workspace.\n */\nexport default function (): Rule;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/renderer-to-renderer2/helpers.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/renderer-to-renderer2/helpers\" />\nimport * as ts from 'typescript';\n/** Names of the helper functions that are supported for this migration. */\nexport declare const enum HelperFunction {\n    any = \"AnyDuringRendererMigration\",\n    createElement = \"__ngRendererCreateElementHelper\",\n    createText = \"__ngRendererCreateTextHelper\",\n    createTemplateAnchor = \"__ngRendererCreateTemplateAnchorHelper\",\n    projectNodes = \"__ngRendererProjectNodesHelper\",\n    animate = \"__ngRendererAnimateHelper\",\n    destroyView = \"__ngRendererDestroyViewHelper\",\n    detachView = \"__ngRendererDetachViewHelper\",\n    attachViewAfter = \"__ngRendererAttachViewAfterHelper\",\n    splitNamespace = \"__ngRendererSplitNamespaceHelper\",\n    setElementAttribute = \"__ngRendererSetElementAttributeHelper\"\n}\n/** Gets the string representation of a helper function. */\nexport declare function getHelper(name: HelperFunction, sourceFile: ts.SourceFile, printer: ts.Printer): string;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/renderer-to-renderer2/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/renderer-to-renderer2\" />\nimport { Rule } from '@angular-devkit/schematics';\n/**\n * Migration that switches from `Renderer` to `Renderer2`. More information on how it works:\n * https://hackmd.angular.io/UTzUZTnPRA-cSa_4mHyfYw\n */\nexport default function (): Rule;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/renderer-to-renderer2/migration.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/renderer-to-renderer2/migration\" />\nimport * as ts from 'typescript';\nimport { HelperFunction } from './helpers';\n/** Replaces an import inside an import statement with a different one. */\nexport declare function replaceImport(node: ts.NamedImports, oldImport: string, newImport: string): ts.NamedImports;\n/**\n * Migrates a function call expression from `Renderer` to `Renderer2`.\n * Returns null if the expression should be dropped.\n */\nexport declare function migrateExpression(node: ts.CallExpression, typeChecker: ts.TypeChecker): {\n    node: ts.Node | null;\n    requiredHelpers?: HelperFunction[];\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/renderer-to-renderer2/util.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/renderer-to-renderer2/util\" />\nimport * as ts from 'typescript';\n/**\n * Finds typed nodes (e.g. function parameters or class properties) that are referencing the old\n * `Renderer`, as well as calls to the `Renderer` methods.\n */\nexport declare function findRendererReferences(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker, rendererImport: ts.NamedImports): {\n    typedNodes: Set<ts.ParameterDeclaration | ts.PropertyDeclaration | ts.AsExpression>;\n    methodCalls: Set<ts.CallExpression>;\n    forwardRefs: Set<ts.Identifier>;\n};\n/** Finds the import from @angular/core that has a symbol with a particular name. */\nexport declare function findCoreImport(sourceFile: ts.SourceFile, symbolName: string): ts.NamedImports | null;\n/** Finds an import specifier with a particular name, accounting for aliases. */\nexport declare function findImportSpecifier(elements: ts.NodeArray<ts.ImportSpecifier>, importName: string): ts.ImportSpecifier | null;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/static-queries/angular/directive_inputs.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/static-queries/angular/directive_inputs\" />\nimport * as ts from 'typescript';\n/** Analyzes the given class and resolves the name of all inputs which are declared. */\nexport declare function getInputNamesOfClass(node: ts.ClassDeclaration, typeChecker: ts.TypeChecker): string[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/static-queries/angular/ng_query_visitor.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/static-queries/angular/ng_query_visitor\" />\nimport * as ts from 'typescript';\nimport { ResolvedTemplate } from '../../../utils/ng_component_template';\nimport { NgQueryDefinition } from './query-definition';\n/** Resolved metadata of a given class. */\nexport interface ClassMetadata {\n    /** List of class declarations that derive from the given class. */\n    derivedClasses: ts.ClassDeclaration[];\n    /** Super class of the given class. */\n    superClass: ts.ClassDeclaration | null;\n    /** List of property names that declare an Angular input within the given class. */\n    ngInputNames: string[];\n    /** Component template that belongs to that class if present. */\n    template?: ResolvedTemplate;\n}\n/** Type that describes a map which can be used to get a class declaration's metadata. */\nexport declare type ClassMetadataMap = Map<ts.ClassDeclaration, ClassMetadata>;\n/**\n * Visitor that can be used to determine Angular queries within given TypeScript nodes.\n * Besides resolving queries, the visitor also records class relations and searches for\n * Angular input setters which can be used to analyze the timing usage of a given query.\n */\nexport declare class NgQueryResolveVisitor {\n    typeChecker: ts.TypeChecker;\n    /** Resolved Angular query definitions. */\n    resolvedQueries: Map<ts.SourceFile, NgQueryDefinition[]>;\n    /** Maps a class declaration to its class metadata. */\n    classMetadata: ClassMetadataMap;\n    constructor(typeChecker: ts.TypeChecker);\n    visitNode(node: ts.Node): void;\n    private visitPropertyDeclaration;\n    private visitAccessorDeclaration;\n    private visitClassDeclaration;\n    private _recordQueryDeclaration;\n    private _recordClassInputSetters;\n    private _recordClassInheritances;\n    private _getClassMetadata;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/static-queries/angular/query-definition.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/static-queries/angular/query-definition\" />\nimport * as ts from 'typescript';\nimport { NgDecorator } from '../../../utils/ng_decorators';\n/** Timing of a given query. Either static or dynamic. */\nexport declare enum QueryTiming {\n    STATIC = 0,\n    DYNAMIC = 1\n}\n/** Type of a given query. */\nexport declare enum QueryType {\n    ViewChild = 0,\n    ContentChild = 1\n}\nexport interface NgQueryDefinition {\n    /** Name of the query. Set to \"null\" in case the query name is not statically analyzable. */\n    name: string | null;\n    /** Type of the query definition. */\n    type: QueryType;\n    /** Node that declares this query. */\n    node: ts.Node;\n    /**\n     * Property declaration that refers to the query value. For accessors there\n     * is no property that is guaranteed to access the query value.\n     */\n    property: ts.PropertyDeclaration | null;\n    /** Decorator that declares this as a query. */\n    decorator: NgDecorator;\n    /** Class declaration that holds this query. */\n    container: ts.ClassDeclaration;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/static-queries/angular/super_class.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/static-queries/angular/super_class\" />\nimport * as ts from 'typescript';\nimport { ClassMetadataMap } from './ng_query_visitor';\n/**\n * Gets all chained super-class TypeScript declarations for the given class\n * by using the specified class metadata map.\n */\nexport declare function getSuperClassDeclarations(classDecl: ts.ClassDeclaration, classMetadataMap: ClassMetadataMap): ts.ClassDeclaration[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/static-queries/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/static-queries\" />\nimport { Rule } from '@angular-devkit/schematics';\n/** Entry point for the V8 static-query migration. */\nexport default function (): Rule;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/static-queries/strategies/template_strategy/template_strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/static-queries/strategies/template_strategy/template_strategy\" />\nimport * as ts from 'typescript';\nimport { ClassMetadataMap } from '../../angular/ng_query_visitor';\nimport { NgQueryDefinition } from '../../angular/query-definition';\nimport { TimingResult, TimingStrategy } from '../timing-strategy';\nexport declare class QueryTemplateStrategy implements TimingStrategy {\n    private projectPath;\n    private classMetadata;\n    private host;\n    private compiler;\n    private metadataResolver;\n    private analyzedQueries;\n    constructor(projectPath: string, classMetadata: ClassMetadataMap, host: ts.CompilerHost);\n    /**\n     * Sets up the template strategy by creating the AngularCompilerProgram. Returns false if\n     * the AOT compiler program could not be created due to failure diagnostics.\n     */\n    setup(): void;\n    /** Analyzes a given directive by determining the timing of all matched view queries. */\n    private _analyzeDirective;\n    /** Detects the timing of the query definition. */\n    detectTiming(query: NgQueryDefinition): TimingResult;\n    /**\n     * Gets the timing that has been resolved for a given query when it's used within the\n     * specified class declaration. e.g. queries from an inherited class can be used.\n     */\n    private _getQueryTimingFromClass;\n    private _parseTemplate;\n    private _createDiagnosticsError;\n    private _getViewQueryUniqueKey;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/static-queries/strategies/test_strategy/test_strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/static-queries/strategies/test_strategy/test_strategy\" />\nimport { NgQueryDefinition } from '../../angular/query-definition';\nimport { TimingResult, TimingStrategy } from '../timing-strategy';\n/**\n * Query timing strategy that is used for queries used within test files. The query\n * timing is not analyzed for test files as the template strategy cannot work within\n * spec files (due to missing component modules) and the usage strategy is not capable\n * of detecting the timing of queries based on how they are used in tests.\n */\nexport declare class QueryTestStrategy implements TimingStrategy {\n    setup(): void;\n    /**\n     * Detects the timing for a given query. For queries within tests, we always\n     * add a TODO and print a message saying that the timing can't be detected for tests.\n     */\n    detectTiming(query: NgQueryDefinition): TimingResult;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/static-queries/strategies/timing-strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/static-queries/strategies/timing-strategy\" />\nimport { NgQueryDefinition, QueryTiming } from '../angular/query-definition';\nexport interface TimingStrategy {\n    /** Sets up the given strategy. Throws if the strategy could not be set up. */\n    setup(): void;\n    /** Detects the timing result for a given query. */\n    detectTiming(query: NgQueryDefinition): TimingResult;\n}\nexport declare type TimingResult = {\n    timing: QueryTiming | null;\n    message?: string;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor\" />\nimport * as ts from 'typescript';\nexport declare type FunctionContext = Map<ts.Node, ts.Node>;\nexport declare enum ResolvedUsage {\n    SYNCHRONOUS = 0,\n    ASYNCHRONOUS = 1,\n    AMBIGUOUS = 2\n}\n/**\n * Class that can be used to determine if a given TypeScript node is used within\n * other given TypeScript nodes. This is achieved by walking through all children\n * of the given node and checking for usages of the given declaration. The visitor\n * also handles potential control flow changes caused by call/new expressions.\n */\nexport declare class DeclarationUsageVisitor {\n    private declaration;\n    private typeChecker;\n    private baseContext;\n    /** Set of visited symbols that caused a jump in control flow. */\n    private visitedJumpExprNodes;\n    /**\n     * Queue of nodes that need to be checked for declaration usage and\n     * are guaranteed to be executed synchronously.\n     */\n    private nodeQueue;\n    /**\n     * Nodes which need to be checked for declaration usage but aren't\n     * guaranteed to execute synchronously.\n     */\n    private ambiguousNodeQueue;\n    /**\n     * Function context that holds the TypeScript node values for all parameters\n     * of the currently analyzed function block.\n     */\n    private context;\n    constructor(declaration: ts.Node, typeChecker: ts.TypeChecker, baseContext?: FunctionContext);\n    private isReferringToSymbol;\n    private addJumpExpressionToQueue;\n    private addNewExpressionToQueue;\n    private visitPropertyAccessors;\n    private visitBinaryExpression;\n    getResolvedNodeUsage(searchNode: ts.Node): ResolvedUsage;\n    private isSynchronouslyUsedInNode;\n    /**\n     * Peeks into the given jump expression by adding all function like declarations\n     * which are referenced in the jump expression arguments to the ambiguous node\n     * queue. These arguments could technically access the given declaration but it's\n     * not guaranteed that the jump expression is executed. In that case the resolved\n     * usage is ambiguous.\n     */\n    private peekIntoJumpExpression;\n    /**\n     * Resolves a given node from the context. In case the node is not mapped in\n     * the context, the original node is returned.\n     */\n    private _resolveNodeFromContext;\n    /**\n     * Updates the context to reflect the newly set parameter values. This allows future\n     * references to function parameters to be resolved to the actual node through the context.\n     */\n    private _updateContext;\n    /**\n     * Resolves the declaration of a given TypeScript node. For example an identifier can\n     * refer to a function parameter. This parameter can then be resolved through the\n     * function context.\n     */\n    private _resolveDeclarationOfNode;\n    /**\n     * Gets the declaration symbol of a given TypeScript node. Resolves aliased\n     * symbols to the symbol containing the value declaration.\n     */\n    private _getDeclarationSymbolOfNode;\n    /** Gets the symbol of the given property access expression. */\n    private _getPropertyAccessSymbol;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/static-queries/strategies/usage_strategy/super_class_context.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/static-queries/strategies/usage_strategy/super_class_context\" />\nimport * as ts from 'typescript';\nimport { ClassMetadataMap } from '../../angular/ng_query_visitor';\nimport { FunctionContext } from './declaration_usage_visitor';\n/**\n * Updates the specified function context to map abstract super-class class members\n * to their implementation TypeScript nodes. This allows us to run the declaration visitor\n * for the super class with the context of the \"baseClass\" (e.g. with implemented abstract\n * class members)\n */\nexport declare function updateSuperClassAbstractMembersContext(baseClass: ts.ClassDeclaration, context: FunctionContext, classMetadataMap: ClassMetadataMap): void;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor\" />\nimport { BoundAttribute, BoundEvent, BoundText, Element, Node, NullVisitor, Template } from '@angular/compiler/src/render3/r3_ast';\n/**\n * AST visitor that traverses the Render3 HTML AST in order to check if the given\n * query property is accessed statically in the template.\n */\nexport declare class TemplateUsageVisitor extends NullVisitor {\n    queryPropertyName: string;\n    private hasQueryTemplateReference;\n    private expressionAstVisitor;\n    constructor(queryPropertyName: string);\n    /** Checks whether the given query is statically accessed within the specified HTML nodes. */\n    isQueryUsedStatically(htmlNodes: Node[]): boolean;\n    visitElement(element: Element): void;\n    visitTemplate(template: Template): void;\n    visitBoundAttribute(attribute: BoundAttribute): void;\n    visitBoundText(text: BoundText): void;\n    visitBoundEvent(node: BoundEvent): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy\" />\nimport * as ts from 'typescript';\nimport { ClassMetadataMap } from '../../angular/ng_query_visitor';\nimport { NgQueryDefinition } from '../../angular/query-definition';\nimport { TimingResult, TimingStrategy } from '../timing-strategy';\n/**\n * Query timing strategy that determines the timing of a given query by inspecting how\n * the query is accessed within the project's TypeScript source files. Read more about\n * this strategy here: https://hackmd.io/s/Hymvc2OKE\n */\nexport declare class QueryUsageStrategy implements TimingStrategy {\n    private classMetadata;\n    private typeChecker;\n    constructor(classMetadata: ClassMetadataMap, typeChecker: ts.TypeChecker);\n    setup(): void;\n    /**\n     * Analyzes the usage of the given query and determines the query timing based\n     * on the current usage of the query.\n     */\n    detectTiming(query: NgQueryDefinition): TimingResult;\n    /**\n     * Checks whether a given query is used statically within the given class, its super\n     * class or derived classes.\n     */\n    private analyzeQueryUsage;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/static-queries/transform.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/static-queries/transform\" />\nimport * as ts from 'typescript';\nimport { NgQueryDefinition, QueryTiming } from './angular/query-definition';\nexport declare type TransformedQueryResult = null | {\n    /** Transformed call expression. */\n    node: ts.CallExpression;\n    /** Failure message which is set when the query could not be transformed successfully. */\n    failureMessage: string | null;\n};\n/**\n * Transforms the given query decorator by explicitly specifying the timing based on the\n * determined timing. The updated decorator call expression node will be returned.\n */\nexport declare function getTransformedQueryCallExpr(query: NgQueryDefinition, timing: QueryTiming | null, createTodo: boolean): TransformedQueryResult;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/template-var-assignment/analyze_template.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/template-var-assignment/analyze_template\" />\nimport { PropertyWrite } from '@angular/compiler';\nimport { ResolvedTemplate } from '../../utils/ng_component_template';\nexport interface TemplateVariableAssignment {\n    node: PropertyWrite;\n    start: number;\n    end: number;\n}\n/**\n * Analyzes a given resolved template by looking for property assignments to local\n * template variables within bound events.\n */\nexport declare function analyzeResolvedTemplate(template: ResolvedTemplate): TemplateVariableAssignment[] | null;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor\" />\nimport { PropertyWrite } from '@angular/compiler';\nimport { BoundEvent, Element, NullVisitor, Template } from '@angular/compiler/src/render3/r3_ast';\nexport interface TemplateVariableAssignment {\n    start: number;\n    end: number;\n    node: PropertyWrite;\n}\n/**\n * HTML AST visitor that traverses the Render3 HTML AST in order to find all\n * expressions that write to local template variables within bound events.\n */\nexport declare class HtmlVariableAssignmentVisitor extends NullVisitor {\n    variableAssignments: TemplateVariableAssignment[];\n    private currentVariables;\n    private expressionAstVisitor;\n    visitElement(element: Element): void;\n    visitTemplate(template: Template): void;\n    visitBoundEvent(node: BoundEvent): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/template-var-assignment/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/template-var-assignment\" />\nimport { Rule } from '@angular-devkit/schematics';\n/** Entry point for the V8 template variable assignment schematic. */\nexport default function (): Rule;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-decorated-fields/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-decorated-fields\" />\nimport { Rule } from '@angular-devkit/schematics';\n/**\n * Migration that adds an Angular decorator to classes that have Angular field decorators.\n * https://hackmd.io/vuQfavzfRG6KUCtU7oK_EA\n */\nexport default function (): Rule;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-decorated-fields/utils.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-decorated-fields/utils\" />\nimport * as ts from 'typescript';\n/** Name of the decorator that should be added to undecorated classes. */\nexport declare const FALLBACK_DECORATOR = \"Directive\";\n/** Finds all of the undecorated classes that have decorated fields within a file. */\nexport declare function getUndecoratedClassesWithDecoratedFields(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker): UndecoratedClassWithDecoratedFields[];\n/** Checks whether an import declaration has an import with a certain name. */\nexport declare function hasNamedImport(declaration: ts.ImportDeclaration, symbolName: string): boolean;\n/** Extracts the NamedImports node from an import declaration. */\nexport declare function getNamedImports(declaration: ts.ImportDeclaration): ts.NamedImports | null;\n/** Adds a new import to a NamedImports node. */\nexport declare function addImport(declaration: ts.NamedImports, symbolName: string): ts.NamedImports;\ninterface UndecoratedClassWithDecoratedFields {\n    classDeclaration: ts.ClassDeclaration;\n    importDeclaration: ts.ImportDeclaration;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-di/create_ngc_program.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-di/create_ngc_program\" />\nimport { AotCompiler } from '@angular/compiler';\nimport { CompilerHost } from '@angular/compiler-cli';\nimport * as ts from 'typescript';\n/** Creates an NGC program that can be used to read and parse metadata for files. */\nexport declare function createNgcProgram(createHost: (options: ts.CompilerOptions) => CompilerHost, tsconfigPath: string): {\n    host: CompilerHost;\n    ngcProgram: import(\"@angular/compiler-cli\").Program;\n    program: ts.Program;\n    compiler: AotCompiler;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/convert_directive_metadata.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/convert_directive_metadata\" />\nimport { StaticSymbol } from '@angular/compiler';\nimport * as ts from 'typescript';\n/** Error that will be thrown if an unexpected value needs to be converted. */\nexport declare class UnexpectedMetadataValueError extends Error {\n}\n/**\n * Converts a directive metadata object into a TypeScript expression. Throws\n * if metadata cannot be cleanly converted.\n */\nexport declare function convertDirectiveMetadataToExpression(metadata: any, resolveSymbolImport: (symbol: StaticSymbol) => string | null, createImport: (moduleName: string, name: string) => ts.Expression, convertProperty?: (key: string, value: any) => ts.Expression | null): ts.Expression;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/decorator_rewriter.d.ts"
    ],
    "content": "/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/decorator_rewriter\" />\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AotCompiler } from '@angular/compiler';\nimport { PartialEvaluator } from '@angular/compiler-cli/src/ngtsc/partial_evaluator';\nimport * as ts from 'typescript';\nimport { NgDecorator } from '../../../utils/ng_decorators';\nimport { ImportManager } from '../import_manager';\n/**\n * Class that can be used to copy decorators to a new location. The rewriter ensures that\n * identifiers and imports are rewritten to work in the new file location. Fields in a\n * decorator that cannot be cleanly copied will be copied with a comment explaining that\n * imports and identifiers need to be adjusted manually.\n */\nexport declare class DecoratorRewriter {\n    private importManager;\n    private typeChecker;\n    private evaluator;\n    private compiler;\n    previousSourceFile: ts.SourceFile | null;\n    newSourceFile: ts.SourceFile | null;\n    newProperties: ts.ObjectLiteralElementLike[];\n    nonCopyableProperties: ts.ObjectLiteralElementLike[];\n    private importRewriterFactory;\n    constructor(importManager: ImportManager, typeChecker: ts.TypeChecker, evaluator: PartialEvaluator, compiler: AotCompiler);\n    rewrite(ngDecorator: NgDecorator, newSourceFile: ts.SourceFile): ts.Decorator;\n    /** Creates a new decorator with the given expression. */\n    private _createDecorator;\n    /**\n     * Sanitizes a metadata property by ensuring that all contained identifiers\n     * are imported in the target source file.\n     */\n    private _sanitizeMetadataProperty;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/import_rewrite_visitor.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/import_rewrite_visitor\" />\nimport { AotCompilerHost } from '@angular/compiler';\nimport * as ts from 'typescript';\nimport { ImportManager } from '../import_manager';\n/**\n * Factory that creates a TypeScript transformer which ensures that\n * referenced identifiers are available at the target file location.\n *\n * Imports cannot be just added as sometimes identifiers collide in the\n * target source file and the identifier needs to be aliased.\n */\nexport declare class ImportRewriteTransformerFactory {\n    private importManager;\n    private typeChecker;\n    private compilerHost;\n    private sourceFileExports;\n    constructor(importManager: ImportManager, typeChecker: ts.TypeChecker, compilerHost: AotCompilerHost);\n    create<T extends ts.Node>(ctx: ts.TransformationContext, newSourceFile: ts.SourceFile): ts.Transformer<T>;\n    private _recordIdentifierReference;\n    /**\n     * Gets the resolved exports of a given source file. Exports are cached\n     * for subsequent calls.\n     */\n    private _getSourceFileExports;\n    /** Rewrites a module import to be relative to the target file location. */\n    private _rewriteModuleImport;\n}\n/** Error that will be thrown if a given identifier cannot be resolved. */\nexport declare class UnresolvedIdentifierError extends Error {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/path_format.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/path_format\" />\n/** Normalizes the specified path to conform with the posix path format. */\nexport declare function getPosixPath(pathString: string): string;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/source_file_exports.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/source_file_exports\" />\nimport * as ts from 'typescript';\nexport interface ResolvedExport {\n    symbol: ts.Symbol;\n    exportName: string;\n    identifier: ts.Identifier;\n}\n/** Computes the resolved exports of a given source file. */\nexport declare function getExportSymbolsOfFile(sf: ts.SourceFile, typeChecker: ts.TypeChecker): ResolvedExport[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-di/find_base_classes.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-di/find_base_classes\" />\nimport * as ts from 'typescript';\n/** Gets all base class declarations of the specified class declaration. */\nexport declare function findBaseClassDeclarations(node: ts.ClassDeclaration, typeChecker: ts.TypeChecker): {\n    identifier: ts.Identifier;\n    node: ts.ClassDeclaration;\n}[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-di/import_manager.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-di/import_manager\" />\nimport * as ts from 'typescript';\nimport { UpdateRecorder } from './update_recorder';\n/**\n * Import manager that can be used to add TypeScript imports to given source\n * files. The manager ensures that multiple transformations are applied properly\n * without shifted offsets and that similar existing import declarations are re-used.\n */\nexport declare class ImportManager {\n    private getUpdateRecorder;\n    private printer;\n    /** Map of import declarations that need to be updated to include the given symbols. */\n    private updatedImports;\n    /** Map of source-files and their previously used identifier names. */\n    private usedIdentifierNames;\n    /**\n     * Array of previously resolved symbol imports. Cache can be re-used to return\n     * the same identifier without checking the source-file again.\n     */\n    private importCache;\n    constructor(getUpdateRecorder: (sf: ts.SourceFile) => UpdateRecorder, printer: ts.Printer);\n    /**\n     * Adds an import to the given source-file and returns the TypeScript\n     * identifier that can be used to access the newly imported symbol.\n     */\n    addImportToSourceFile(sourceFile: ts.SourceFile, symbolName: string | null, moduleName: string, typeImport?: boolean): ts.Expression;\n    /**\n     * Stores the collected import changes within the appropriate update recorders. The\n     * updated imports can only be updated *once* per source-file because previous updates\n     * could otherwise shift the source-file offsets.\n     */\n    recordChanges(): void;\n    /** Gets an unique identifier with a base name for the given source file. */\n    private _getUniqueIdentifier;\n    /**\n     * Checks whether the specified identifier name is used within the given\n     * source file.\n     */\n    private isUniqueIdentifierName;\n    private _recordUsedIdentifier;\n    /**\n     * Determines the full end of a given node. By default the end position of a node is\n     * before all trailing comments. This could mean that generated imports shift comments.\n     */\n    private _getEndPositionOfNode;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-di/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-di\" />\nimport { Rule } from '@angular-devkit/schematics';\n/** Entry point for the V9 \"undecorated-classes-with-di\" migration. */\nexport default function (): Rule;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector\" />\nimport { PartialEvaluator } from '@angular/compiler-cli/src/ngtsc/partial_evaluator';\nimport * as ts from 'typescript';\nimport { NgDecorator } from '../../utils/ng_decorators';\n/**\n * Visitor that walks through specified TypeScript nodes and collects all defined\n * directives and provider classes. Directives are separated by decorated and\n * undecorated directives.\n */\nexport declare class NgDeclarationCollector {\n    typeChecker: ts.TypeChecker;\n    private evaluator;\n    /** List of resolved directives which are decorated. */\n    decoratedDirectives: ts.ClassDeclaration[];\n    /** List of resolved providers which are decorated. */\n    decoratedProviders: ts.ClassDeclaration[];\n    /** Set of resolved Angular declarations which are not decorated. */\n    undecoratedDeclarations: Set<ts.ClassDeclaration>;\n    constructor(typeChecker: ts.TypeChecker, evaluator: PartialEvaluator);\n    visitNode(node: ts.Node): void;\n    private _visitClassDeclaration;\n    private _visitNgModuleDecorator;\n}\n/** Checks whether the given node has the \"@Directive\" or \"@Component\" decorator set. */\nexport declare function hasDirectiveDecorator(node: ts.ClassDeclaration, typeChecker: ts.TypeChecker, ngDecorators?: NgDecorator[]): boolean;\n/** Checks whether the given node has the \"@Injectable\" decorator set. */\nexport declare function hasInjectableDecorator(node: ts.ClassDeclaration, typeChecker: ts.TypeChecker, ngDecorators?: NgDecorator[]): boolean;\n/** Whether the given node has an explicit decorator that describes an Angular declaration. */\nexport declare function hasNgDeclarationDecorator(node: ts.ClassDeclaration, typeChecker: ts.TypeChecker): boolean;\n/** Gets all Angular decorators of a given class declaration. */\nexport declare function getNgClassDecorators(node: ts.ClassDeclaration, typeChecker: ts.TypeChecker): NgDecorator[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-di/transform.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-di/transform\" />\nimport { AotCompiler } from '@angular/compiler';\nimport { PartialEvaluator } from '@angular/compiler-cli/src/ngtsc/partial_evaluator';\nimport * as ts from 'typescript';\nimport { UpdateRecorder } from './update_recorder';\nexport interface TransformFailure {\n    node: ts.Node;\n    message: string;\n}\nexport declare class UndecoratedClassesTransform {\n    private typeChecker;\n    private compiler;\n    private evaluator;\n    private getUpdateRecorder;\n    private printer;\n    private importManager;\n    private decoratorRewriter;\n    private compilerHost;\n    private symbolResolver;\n    private metadataResolver;\n    /** Set of class declarations which have been decorated with \"@Directive\". */\n    private decoratedDirectives;\n    /** Set of class declarations which have been decorated with \"@Injectable\" */\n    private decoratedProviders;\n    /**\n     * Set of class declarations which have been analyzed and need to specify\n     * an explicit constructor.\n     */\n    private missingExplicitConstructorClasses;\n    constructor(typeChecker: ts.TypeChecker, compiler: AotCompiler, evaluator: PartialEvaluator, getUpdateRecorder: (sf: ts.SourceFile) => UpdateRecorder);\n    /**\n     * Migrates decorated directives which can potentially inherit a constructor\n     * from an undecorated base class. All base classes until the first one\n     * with an explicit constructor will be decorated with the abstract \"@Directive()\"\n     * decorator. See case 1 in the migration plan: https://hackmd.io/@alx/S1XKqMZeS\n     */\n    migrateDecoratedDirectives(directives: ts.ClassDeclaration[]): TransformFailure[];\n    /**\n     * Migrates decorated providers which can potentially inherit a constructor\n     * from an undecorated base class. All base classes until the first one\n     * with an explicit constructor will be decorated with the \"@Injectable()\".\n     */\n    migrateDecoratedProviders(providers: ts.ClassDeclaration[]): TransformFailure[];\n    private _migrateProviderBaseClass;\n    private _migrateDirectiveBaseClass;\n    private _migrateDecoratedClassWithInheritedCtor;\n    /**\n     * Adds the abstract \"@Directive()\" decorator to the given class in case there\n     * is no existing directive decorator.\n     */\n    private _addAbstractDirectiveDecorator;\n    /**\n     * Adds the abstract \"@Injectable()\" decorator to the given class in case there\n     * is no existing directive decorator.\n     */\n    private _addInjectableDecorator;\n    /** Adds a comment for adding an explicit constructor to the given class declaration. */\n    private _addMissingExplicitConstructorTodo;\n    /**\n     * Migrates undecorated directives which were referenced in NgModule declarations.\n     * These directives inherit the metadata from a parent base class, but with Ivy\n     * these classes need to explicitly have a decorator for locality. The migration\n     * determines the inherited decorator and copies it to the undecorated declaration.\n     *\n     * Note that the migration serializes the metadata for external declarations\n     * where the decorator is not part of the source file AST.\n     *\n     * See case 2 in the migration plan: https://hackmd.io/@alx/S1XKqMZeS\n     */\n    migrateUndecoratedDeclarations(directives: ts.ClassDeclaration[]): TransformFailure[];\n    private _migrateDerivedDeclaration;\n    /** Records all changes that were made in the import manager. */\n    recordChanges(): void;\n    /**\n     * Constructs a TypeScript decorator node from the specified declaration metadata. Returns\n     * null if the metadata could not be simplified/resolved.\n     */\n    private _constructDecoratorFromMetadata;\n    /**\n     * Resolves the declaration metadata of a given static symbol. The metadata\n     * is determined by resolving metadata for the static symbol.\n     */\n    private _resolveDeclarationMetadata;\n    private _getStaticSymbolOfIdentifier;\n    /**\n     * Disables that static symbols are resolved through summaries. Summaries\n     * cannot be used for decorator analysis as decorators are omitted in summaries.\n     */\n    private _disableSummaryResolution;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/migrations/undecorated-classes-with-di/update_recorder.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/migrations/undecorated-classes-with-di/update_recorder\" />\nimport * as ts from 'typescript';\n/**\n * Update recorder interface that is used to transform source files in a non-colliding\n * way. Also this indirection makes it possible to re-use transformation logic with\n * different replacement tools (e.g. TSLint or CLI devkit).\n */\nexport interface UpdateRecorder {\n    addNewImport(start: number, importText: string): void;\n    updateExistingImport(namedBindings: ts.NamedImports, newNamedBindings: string): void;\n    addClassDecorator(node: ts.ClassDeclaration, text: string): void;\n    addClassComment(node: ts.ClassDeclaration, text: string): void;\n    commitUpdate(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/line_mappings.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/line_mappings\" />\n/** Gets the line and character for the given position from the line starts map. */\nexport declare function getLineAndCharacterFromPosition(lineStartsMap: number[], position: number): {\n    character: number;\n    line: number;\n};\n/**\n * Computes the line start map of the given text. This can be used in order to\n * retrieve the line and character of a given text position index.\n */\nexport declare function computeLineStartsMap(text: string): number[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/ng_component_template.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/ng_component_template\" />\nimport * as ts from 'typescript';\nexport interface ResolvedTemplate {\n    /** Class declaration that contains this template. */\n    container: ts.ClassDeclaration;\n    /** File content of the given template. */\n    content: string;\n    /** Start offset of the template content (e.g. in the inline source file) */\n    start: number;\n    /** Whether the given template is inline or not. */\n    inline: boolean;\n    /** Path to the file that contains this template. */\n    filePath: string;\n    /**\n     * Gets the character and line of a given position index in the template.\n     * If the template is declared inline within a TypeScript source file, the line and\n     * character are based on the full source file content.\n     */\n    getCharacterAndLineOfPosition: (pos: number) => {\n        character: number;\n        line: number;\n    };\n}\n/**\n * Visitor that can be used to determine Angular templates referenced within given\n * TypeScript source files (inline templates or external referenced templates)\n */\nexport declare class NgComponentTemplateVisitor {\n    typeChecker: ts.TypeChecker;\n    resolvedTemplates: ResolvedTemplate[];\n    constructor(typeChecker: ts.TypeChecker);\n    visitNode(node: ts.Node): void;\n    private visitClassDeclaration;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/ng_decorators.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/ng_decorators\" />\nimport * as ts from 'typescript';\nexport declare type CallExpressionDecorator = ts.Decorator & {\n    expression: ts.CallExpression;\n};\nexport interface NgDecorator {\n    name: string;\n    moduleName: string;\n    node: CallExpressionDecorator;\n    importNode: ts.ImportDeclaration;\n}\n/**\n * Gets all decorators which are imported from an Angular package (e.g. \"@angular/core\")\n * from a list of decorators.\n */\nexport declare function getAngularDecorators(typeChecker: ts.TypeChecker, decorators: ReadonlyArray<ts.Decorator>): NgDecorator[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/parse_html.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/parse_html\" />\nimport { Node } from '@angular/compiler/src/render3/r3_ast';\n/**\n * Parses the given HTML content using the Angular compiler. In case the parsing\n * fails, null is being returned.\n */\nexport declare function parseHtmlGracefully(htmlContent: string, filePath: string): Node[] | null;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/project_tsconfig_paths.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/project_tsconfig_paths\" />\nimport { Tree } from '@angular-devkit/schematics';\n/**\n * Gets all tsconfig paths from a CLI project by reading the workspace configuration\n * and looking for common tsconfig locations.\n */\nexport declare function getProjectTsConfigPaths(tree: Tree): {\n    buildPaths: string[];\n    testPaths: string[];\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/schematics_prompt.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/schematics_prompt\" />\ndeclare type Inquirer = typeof import('inquirer');\n/** Whether prompts are currently supported. */\nexport declare function supportsPrompt(): boolean;\n/**\n * Gets the resolved instance of \"inquirer\" which can be used to programmatically\n * create prompts.\n */\nexport declare function getInquirer(): Inquirer;\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/typescript/class_declaration.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/typescript/class_declaration\" />\nimport * as ts from 'typescript';\n/** Determines the base type identifiers of a specified class declaration. */\nexport declare function getBaseTypeIdentifiers(node: ts.ClassDeclaration): ts.Identifier[] | null;\n/** Gets the first found parent class declaration of a given node. */\nexport declare function findParentClassDeclaration(node: ts.Node): ts.ClassDeclaration | null;\n/** Checks whether the given class declaration has an explicit constructor or not. */\nexport declare function hasExplicitConstructor(node: ts.ClassDeclaration): boolean;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/typescript/compiler_host.d.ts"
    ],
    "content": "/// <amd-module name=\"@angular/core/schematics/utils/typescript/compiler_host\" />\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Tree } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nexport declare function createMigrationCompilerHost(tree: Tree, options: ts.CompilerOptions, basePath: string): ts.CompilerHost;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/typescript/decorators.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/typescript/decorators\" />\nimport * as ts from 'typescript';\nimport { Import } from './imports';\nexport declare function getCallDecoratorImport(typeChecker: ts.TypeChecker, decorator: ts.Decorator): Import | null;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/typescript/functions.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/typescript/functions\" />\nimport * as ts from 'typescript';\n/** Checks whether a given node is a function like declaration. */\nexport declare function isFunctionLikeDeclaration(node: ts.Node): node is ts.FunctionLikeDeclaration;\n/**\n * Unwraps a given expression TypeScript node. Expressions can be wrapped within multiple\n * parentheses. e.g. \"(((({exp}))))()\". The function should return the TypeScript node\n * referring to the inner expression. e.g \"exp\".\n */\nexport declare function unwrapExpression(node: ts.Expression | ts.ParenthesizedExpression): ts.Expression;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/typescript/imports.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/typescript/imports\" />\nimport * as ts from 'typescript';\nexport declare type Import = {\n    name: string;\n    importModule: string;\n    node: ts.ImportDeclaration;\n};\n/** Gets import information about the specified identifier by using the Type checker. */\nexport declare function getImportOfIdentifier(typeChecker: ts.TypeChecker, node: ts.Identifier): Import | null;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/typescript/nodes.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/typescript/nodes\" />\nimport * as ts from 'typescript';\n/** Checks whether the given TypeScript node has the specified modifier set. */\nexport declare function hasModifier(node: ts.Node, modifierKind: ts.SyntaxKind): boolean;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/typescript/parse_tsconfig.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/typescript/parse_tsconfig\" />\nimport * as ts from 'typescript';\nexport declare function parseTsconfigFile(tsconfigPath: string, basePath: string): ts.ParsedCommandLine;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/typescript/property_name.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/typescript/property_name\" />\nimport * as ts from 'typescript';\n/** Type that describes a property name with an obtainable text. */\ndeclare type PropertyNameWithText = Exclude<ts.PropertyName, ts.ComputedPropertyName>;\n/**\n * Gets the text of the given property name. Returns null if the property\n * name couldn't be determined statically.\n */\nexport declare function getPropertyNameText(node: ts.PropertyName): string | null;\n/** Checks whether the given property name has a text. */\nexport declare function hasPropertyNameText(node: ts.PropertyName): node is PropertyNameWithText;\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/schematics/utils/typescript/symbol.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/core/schematics/utils/typescript/symbol\" />\nimport * as ts from 'typescript';\nexport declare function getValueSymbolOfDeclaration(node: ts.Node, typeChecker: ts.TypeChecker): ts.Symbol | undefined;\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/src/r3_symbols.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\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 * instantiatable.\r\n *\r\n * @publicApi\r\n */\r\ndeclare interface AbstractType<T> extends Function {\r\n    prototype: T;\r\n}\r\n\r\n/**\r\n * Base class for Angular Views, 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 rerendered.\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](http://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\ndeclare 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\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\ndeclare 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\ndeclare interface ClassSansProvider {\r\n    /**\r\n     * Class to instantiate for the `token`.\r\n     */\r\n    useClass: Type<any>;\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 readonly selector: string;\r\n    /**\r\n     * The type of component the factory will create.\r\n     */\r\n    abstract readonly componentType: Type<any>;\r\n    /**\r\n     * Selector for all <ng-content> elements in the component.\r\n     */\r\n    abstract readonly ngContentSelectors: string[];\r\n    /**\r\n     * The inputs of the component.\r\n     */\r\n    abstract readonly 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 readonly 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\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 * @publicApi\r\n */\r\ndeclare 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\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\ndeclare 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 readonly location: ElementRef;\r\n    /**\r\n     * The [dependency injector](guide/glossary#injector) for this component instance.\r\n     */\r\n    abstract readonly injector: Injector;\r\n    /**\r\n     * This component instance.\r\n     */\r\n    abstract readonly 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 readonly hostView: ViewRef;\r\n    /**\r\n     * The change detector for this component instance.\r\n     */\r\n    abstract readonly changeDetectorRef: ChangeDetectorRef;\r\n    /**\r\n     * The type of this component (as created by a `ComponentFactory` class).\r\n     */\r\n    abstract readonly 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 * 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\ndeclare 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\ndeclare 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 * 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](http://g.co/ng/security).\r\n *\r\n * @publicApi\r\n */\r\ndeclare class ElementRef<T extends any = 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 * 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\ndeclare 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\ndeclare 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 * 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\ndeclare 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\ndeclare 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\n\r\n/**\r\n * Injection flags for DI.\r\n *\r\n * @publicApi\r\n */\r\ndeclare 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\ndeclare class InjectionToken<T> {\r\n    protected _desc: string;\r\n    readonly ɵprov: never | undefined;\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 * Concrete injectors implement this interface.\r\n *\r\n * For more details, see the [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @usageNotes\r\n * ### 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\ndeclare abstract class Injector {\r\n    static THROW_IF_NOT_FOUND: Object;\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: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n    /**\r\n     * @deprecated from v4.0.0 use Type<T> or InjectionToken<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    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: never;\r\n}\r\n\r\n/**\r\n * A type which has an `InjectorDef` static field.\r\n *\r\n * `InjectorDefTypes` can be used to configure a `StaticInjector`.\r\n *\r\n * @publicApi\r\n */\r\ndeclare interface InjectorType<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    ɵinj: never;\r\n}\r\n\r\n/**\r\n * Describes the `InjectorDef` equivalent of a `ModuleWithProviders`, an `InjectorDefType` 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 * The existence of this constant (in this particular file) informs the Angular compiler that the\r\n * current program is actually @angular/core, which needs to be compiled specially.\r\n */\r\nexport declare const ITS_JUST_ANGULAR = true;\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_2<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 * @publicApi\r\n */\r\ndeclare abstract class NgModuleFactory_2<T> {\r\n    abstract readonly moduleType: Type<T>;\r\n    abstract create(parentInjector: Injector | null): NgModuleRef<T>;\r\n}\r\n\r\n/**\r\n * Represents an instance of an NgModule created via a {@link NgModuleFactory}.\r\n *\r\n * `NgModuleRef` provides access to the NgModule Instance as well other objects related to this\r\n * NgModule Instance.\r\n *\r\n * @publicApi\r\n */\r\ndeclare abstract class NgModuleRef<T> {\r\n    /**\r\n     * The injector that contains all of the providers of the NgModule.\r\n     */\r\n    abstract readonly injector: Injector;\r\n    /**\r\n     * The ComponentFactoryResolver to get hold of the ComponentFactories\r\n     * declared in the `entryComponents` property of the module.\r\n     */\r\n    abstract readonly componentFactoryResolver: ComponentFactoryResolver;\r\n    /**\r\n     * The NgModule instance.\r\n     */\r\n    abstract readonly 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     * Allows to register a callback that will be called when the module is destroyed.\r\n     */\r\n    abstract onDestroy(callback: () => void): void;\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\ndeclare 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\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\ndeclare interface SchemaMetadata {\r\n    name: string;\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 marked as pure, resulting in the metadata assignments being\r\n * 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\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\ndeclare 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\ndeclare 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 the `Injector` should be configured as static (that is, without reflection).\r\n * @see [\"Dependency Injection Guide\"](guide/dependency-injection).\r\n *\r\n * @publicApi\r\n */\r\ndeclare type StaticProvider = ValueProvider | ExistingProvider | StaticClassProvider | ConstructorProvider | FactoryProvider | any[];\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 be represented by\r\n * the `MyCustomComponent` constructor function.\r\n *\r\n * @publicApi\r\n */\r\ndeclare const Type: FunctionConstructor;\r\n\r\ndeclare interface Type<T> extends Function {\r\n    new (...args: any[]): T;\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\ndeclare 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\ndeclare interface ValueSansProvider {\r\n    /**\r\n     * The value to inject.\r\n     */\r\n    useValue: any;\r\n}\r\n\r\n/**\r\n * Represents an Angular [view](guide/glossary#view),\r\n * specifically the [host view](guide/glossary#view-tree) that is defined by a component.\r\n * Also serves as the base class\r\n * that adds destroy methods for [embedded views](guide/glossary#view-tree).\r\n *\r\n * @see `EmbeddedViewRef`\r\n *\r\n * @publicApi\r\n */\r\ndeclare 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 readonly 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\n/**\r\n * Construct an `InjectableDef` which defines how a token will be constructed by the DI system, and\r\n * 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 */\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}): never;\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 * * `factory`: an `InjectorType` is an instantiable type, so a zero argument `factory` function to\r\n *   create the type must be provided. If that factory function needs to inject arguments, it can\r\n *   use the `inject` function.\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 * @publicApi\r\n */\r\nexport declare function ɵɵdefineInjector(options: {\r\n    factory: () => any;\r\n    providers?: any[];\r\n    imports?: any[];\r\n}): never;\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}): never;\r\n\r\n/**\r\n * @codeGenApi\r\n */\r\nexport declare type ɵɵFactoryDef<T> = () => T;\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 instruction)\r\n *\r\n * @see inject\r\n * @codeGenApi\r\n */\r\nexport declare function ɵɵinject<T>(token: Type<T> | InjectionToken<T>): T;\r\n\r\nexport declare function ɵɵinject<T>(token: Type<T> | InjectionToken<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 * `InjectorDef`, `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 * NOTE: This is a private type and should not be exported\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ɵɵInjectableDef<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 * 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 * @publicApi\r\n */\r\nexport declare interface ɵɵInjectorDef<T> {\r\n    factory: () => 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 * @publicApi\r\n */\r\nexport declare type ɵɵNgModuleDefWithMeta<T, Declarations, Imports, Exports> = NgModuleDef<T>;\r\n\r\nexport { }\r\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/testing.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nexport * from './testing/testing';\n"
  },
  {
    "paths": [
      "node_modules/@angular/core/testing/testing.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { AbstractType } from '@angular/core';\r\nimport { ChangeDetectorRef } from '@angular/core';\r\nimport { Compiler } from '@angular/core';\r\nimport { CompilerOptions } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { ComponentFactory } from '@angular/core';\r\nimport { ComponentRef } from '@angular/core';\r\nimport { DebugElement } from '@angular/core';\r\nimport { Directive } from '@angular/core';\r\nimport { ElementRef } from '@angular/core';\r\nimport { InjectFlags } from '@angular/core';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { Injector } from '@angular/core';\r\nimport { NgModule } from '@angular/core';\r\nimport { NgZone } from '@angular/core';\r\nimport { Pipe } from '@angular/core';\r\nimport { PlatformRef } from '@angular/core';\r\nimport { SchemaMetadata } from '@angular/core';\r\nimport { Type } from '@angular/core';\r\n\r\n\r\nexport declare const __core_private_testing_placeholder__ = \"\";\r\n\r\n\r\n/**\r\n * Wraps a test function in an asynchronous test zone. The test will automatically\r\n * complete when all asynchronous calls within this zone are done. Can be used\r\n * to wrap an {@link inject} call.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * it('...', async(inject([AClass], (object) => {\r\n *   object.doSomething.then(() => {\r\n *     expect(...);\r\n *   })\r\n * });\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare function async(fn: Function): (done: any) => any;\r\n\r\n/**\r\n * Fixture for debugging and testing a component.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ComponentFixture<T> {\r\n    componentRef: ComponentRef<T>;\r\n    ngZone: NgZone | null;\r\n    private _autoDetect;\r\n    /**\r\n     * The DebugElement associated with the root element of this component.\r\n     */\r\n    debugElement: DebugElement;\r\n    /**\r\n     * The instance of the root component class.\r\n     */\r\n    componentInstance: T;\r\n    /**\r\n     * The native element at the root of the component.\r\n     */\r\n    nativeElement: any;\r\n    /**\r\n     * The ElementRef for the element at the root of the component.\r\n     */\r\n    elementRef: ElementRef;\r\n    /**\r\n     * The ChangeDetectorRef for the component\r\n     */\r\n    changeDetectorRef: ChangeDetectorRef;\r\n    private _renderer;\r\n    private _isStable;\r\n    private _isDestroyed;\r\n    private _resolve;\r\n    private _promise;\r\n    private _onUnstableSubscription;\r\n    private _onStableSubscription;\r\n    private _onMicrotaskEmptySubscription;\r\n    private _onErrorSubscription;\r\n    constructor(componentRef: ComponentRef<T>, ngZone: NgZone | null, _autoDetect: boolean);\r\n    private _tick;\r\n    /**\r\n     * Trigger a change detection cycle for the component.\r\n     */\r\n    detectChanges(checkNoChanges?: boolean): void;\r\n    /**\r\n     * Do a change detection run to make sure there were no changes.\r\n     */\r\n    checkNoChanges(): void;\r\n    /**\r\n     * Set whether the fixture should autodetect changes.\r\n     *\r\n     * Also runs detectChanges once so that any existing change is detected.\r\n     */\r\n    autoDetectChanges(autoDetect?: boolean): void;\r\n    /**\r\n     * Return whether the fixture is currently stable or has async tasks that have not been completed\r\n     * yet.\r\n     */\r\n    isStable(): boolean;\r\n    /**\r\n     * Get a promise that resolves when the fixture is stable.\r\n     *\r\n     * This can be used to resume testing after events have triggered asynchronous activity or\r\n     * asynchronous change detection.\r\n     */\r\n    whenStable(): Promise<any>;\r\n    private _getRenderer;\r\n    /**\r\n      * Get a promise that resolves when the ui state is stable following animations.\r\n      */\r\n    whenRenderingDone(): Promise<any>;\r\n    /**\r\n     * Trigger component destruction.\r\n     */\r\n    destroy(): void;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const ComponentFixtureAutoDetect: InjectionToken<boolean[]>;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const ComponentFixtureNoNgZone: InjectionToken<boolean[]>;\r\n\r\n/**\r\n * Discard all remaining periodic tasks.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function discardPeriodicTasks(): void;\r\n\r\n/**\r\n * Wraps a function to be executed in the fakeAsync zone:\r\n * - microtasks are manually executed by calling `flushMicrotasks()`,\r\n * - timers are synchronous, `tick()` simulates the asynchronous passage of time.\r\n *\r\n * If there are any pending timers at the end of the function, an exception will be thrown.\r\n *\r\n * Can be used to wrap inject() calls.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * {@example core/testing/ts/fake_async.ts region='basic'}\r\n *\r\n * @param fn\r\n * @returns The function wrapped to be executed in the fakeAsync zone\r\n *\r\n * @publicApi\r\n */\r\nexport declare function fakeAsync(fn: Function): (...args: any[]) => any;\r\n\r\n/**\r\n * Simulates the asynchronous passage of time for the timers in the fakeAsync zone by\r\n * draining the macrotask queue until it is empty. The returned value is the milliseconds\r\n * of time that would have been elapsed.\r\n *\r\n * @param maxTurns\r\n * @returns The simulated time elapsed, in millis.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function flush(maxTurns?: number): number;\r\n\r\n/**\r\n * Flush any pending microtasks.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function flushMicrotasks(): void;\r\n\r\n/**\r\n * Returns a singleton of the applicable `TestBed`.\r\n *\r\n * It will be either an instance of `TestBedViewEngine` or `TestBedRender3`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const getTestBed: () => TestBed;\r\n\r\n/**\r\n * Allows injecting dependencies in `beforeEach()` and `it()`.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * beforeEach(inject([Dependency, AClass], (dep, object) => {\r\n *   // some code that uses `dep` and `object`\r\n *   // ...\r\n * }));\r\n *\r\n * it('...', inject([AClass], (object) => {\r\n *   object.doSomething();\r\n *   expect(...);\r\n * })\r\n * ```\r\n *\r\n * Notes:\r\n * - inject is currently a function because of some Traceur limitation the syntax should\r\n * eventually\r\n *   becomes `it('...', @Inject (object: AClass, async: AsyncTestCompleter) => { ... });`\r\n *\r\n * @publicApi\r\n */\r\nexport declare function inject(tokens: any[], fn: Function): () => any;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare class InjectSetupWrapper {\r\n    private _moduleDef;\r\n    constructor(_moduleDef: () => TestModuleMetadata);\r\n    private _addModule;\r\n    inject(tokens: any[], fn: Function): () => any;\r\n}\r\n\r\n\r\n/**\r\n * Type used for modifications to metadata\r\n *\r\n * @publicApi\r\n */\r\nexport declare type MetadataOverride<T> = {\r\n    add?: Partial<T>;\r\n    remove?: Partial<T>;\r\n    set?: Partial<T>;\r\n};\r\n\r\n/**\r\n * Clears out the shared fake async zone for a test.\r\n * To be called in a global `beforeEach`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function resetFakeAsyncZone(): void;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare interface TestBed {\r\n    platform: PlatformRef;\r\n    ngModule: Type<any> | Type<any>[];\r\n    /**\r\n     * Initialize the environment for testing with a compiler factory, a PlatformRef, and an\r\n     * angular module. These are common to every test in the suite.\r\n     *\r\n     * This may only be called once, to set up the common providers for the current test\r\n     * suite on the current platform. If you absolutely need to change the providers,\r\n     * first use `resetTestEnvironment`.\r\n     *\r\n     * Test modules and platforms for individual platforms are available from\r\n     * '@angular/<platform_name>/testing'.\r\n     */\r\n    initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): void;\r\n    /**\r\n     * Reset the providers for the test injector.\r\n     */\r\n    resetTestEnvironment(): void;\r\n    resetTestingModule(): void;\r\n    configureCompiler(config: {\r\n        providers?: any[];\r\n        useJit?: boolean;\r\n    }): void;\r\n    configureTestingModule(moduleDef: TestModuleMetadata): void;\r\n    compileComponents(): Promise<any>;\r\n    inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n    inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue: null, flags?: InjectFlags): T | null;\r\n    /** @deprecated from v9.0.0 use TestBed.inject */\r\n    get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): any;\r\n    /** @deprecated from v9.0.0 use TestBed.inject */\r\n    get(token: any, notFoundValue?: any): any;\r\n    execute(tokens: any[], fn: Function, context?: any): any;\r\n    overrideModule(ngModule: Type<any>, override: MetadataOverride<NgModule>): void;\r\n    overrideComponent(component: Type<any>, override: MetadataOverride<Component>): void;\r\n    overrideDirective(directive: Type<any>, override: MetadataOverride<Directive>): void;\r\n    overridePipe(pipe: Type<any>, override: MetadataOverride<Pipe>): void;\r\n    /**\r\n     * Overwrites all providers for the given token with the given provider definition.\r\n     */\r\n    overrideProvider(token: any, provider: {\r\n        useFactory: Function;\r\n        deps: any[];\r\n    }): void;\r\n    overrideProvider(token: any, provider: {\r\n        useValue: any;\r\n    }): void;\r\n    overrideProvider(token: any, provider: {\r\n        useFactory?: Function;\r\n        useValue?: any;\r\n        deps?: any[];\r\n    }): void;\r\n    overrideTemplateUsingTestingModule(component: Type<any>, template: string): void;\r\n    createComponent<T>(component: Type<T>): ComponentFixture<T>;\r\n}\r\n\r\n/**\r\n * @description\r\n * Configures and initializes environment for unit testing and provides methods for\r\n * creating components and services in unit tests.\r\n *\r\n * `TestBed` is the primary api for writing unit tests for Angular applications and libraries.\r\n *\r\n * Note: Use `TestBed` in tests. It will be set to either `TestBedViewEngine` or `TestBedRender3`\r\n * according to the compiler used.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const TestBed: TestBedStatic;\r\n\r\n/**\r\n * Static methods implemented by the `TestBedViewEngine` and `TestBedRender3`\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface TestBedStatic {\r\n    new (...args: any[]): TestBed;\r\n    initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): TestBed;\r\n    /**\r\n     * Reset the providers for the test injector.\r\n     */\r\n    resetTestEnvironment(): void;\r\n    resetTestingModule(): TestBedStatic;\r\n    /**\r\n     * Allows overriding default compiler providers and settings\r\n     * which are defined in test_injector.js\r\n     */\r\n    configureCompiler(config: {\r\n        providers?: any[];\r\n        useJit?: boolean;\r\n    }): TestBedStatic;\r\n    /**\r\n     * Allows overriding default providers, directives, pipes, modules of the test injector,\r\n     * which are defined in test_injector.js\r\n     */\r\n    configureTestingModule(moduleDef: TestModuleMetadata): TestBedStatic;\r\n    /**\r\n     * Compile components with a `templateUrl` for the test's NgModule.\r\n     * It is necessary to call this function\r\n     * as fetching urls is asynchronous.\r\n     */\r\n    compileComponents(): Promise<any>;\r\n    overrideModule(ngModule: Type<any>, override: MetadataOverride<NgModule>): TestBedStatic;\r\n    overrideComponent(component: Type<any>, override: MetadataOverride<Component>): TestBedStatic;\r\n    overrideDirective(directive: Type<any>, override: MetadataOverride<Directive>): TestBedStatic;\r\n    overridePipe(pipe: Type<any>, override: MetadataOverride<Pipe>): TestBedStatic;\r\n    overrideTemplate(component: Type<any>, template: string): TestBedStatic;\r\n    /**\r\n     * Overrides the template of the given component, compiling the template\r\n     * in the context of the TestingModule.\r\n     *\r\n     * Note: This works for JIT and AOTed components as well.\r\n     */\r\n    overrideTemplateUsingTestingModule(component: Type<any>, template: string): TestBedStatic;\r\n    /**\r\n     * Overwrites all providers for the given token with the given provider definition.\r\n     *\r\n     * Note: This works for JIT and AOTed components as well.\r\n     */\r\n    overrideProvider(token: any, provider: {\r\n        useFactory: Function;\r\n        deps: any[];\r\n    }): TestBedStatic;\r\n    overrideProvider(token: any, provider: {\r\n        useValue: any;\r\n    }): TestBedStatic;\r\n    overrideProvider(token: any, provider: {\r\n        useFactory?: Function;\r\n        useValue?: any;\r\n        deps?: any[];\r\n    }): TestBedStatic;\r\n    inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n    inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue: null, flags?: InjectFlags): T | null;\r\n    /** @deprecated from v9.0.0 use TestBed.inject */\r\n    get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): any;\r\n    /** @deprecated from v9.0.0 use TestBed.inject */\r\n    get(token: any, notFoundValue?: any): any;\r\n    createComponent<T>(component: Type<T>): ComponentFixture<T>;\r\n}\r\n\r\n/**\r\n * An abstract class for inserting the root test component element in a platform independent way.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class TestComponentRenderer {\r\n    insertRootElement(rootElementId: string): void;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare type TestModuleMetadata = {\r\n    providers?: any[];\r\n    declarations?: any[];\r\n    imports?: any[];\r\n    schemas?: Array<SchemaMetadata | any[]>;\r\n    aotSummaries?: () => any[];\r\n};\r\n\r\n/**\r\n * Simulates the asynchronous passage of time for the timers in the fakeAsync zone.\r\n *\r\n * The microtasks queue is drained at the very start of this function and after any timer callback\r\n * has been executed.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * {@example core/testing/ts/fake_async.ts region='basic'}\r\n *\r\n * @publicApi\r\n */\r\nexport declare function tick(millis?: number): void;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare function withModule(moduleDef: TestModuleMetadata): InjectSetupWrapper;\r\n\r\nexport declare function withModule(moduleDef: TestModuleMetadata, fn: Function): () => any;\r\n\r\n/**\r\n * @description\r\n * Configures and initializes environment for unit testing and provides methods for\r\n * creating components and services in unit tests.\r\n *\r\n * `TestBed` is the primary api for writing unit tests for Angular applications and libraries.\r\n *\r\n * Note: Use `TestBed` in tests. It will be set to either `TestBedViewEngine` or `TestBedRender3`\r\n * according to the compiler used.\r\n */\r\nexport declare class ɵangular_packages_core_testing_testing_a implements TestBed {\r\n    /**\r\n     * Initialize the environment for testing with a compiler factory, a PlatformRef, and an\r\n     * angular module. These are common to every test in the suite.\r\n     *\r\n     * This may only be called once, to set up the common providers for the current test\r\n     * suite on the current platform. If you absolutely need to change the providers,\r\n     * first use `resetTestEnvironment`.\r\n     *\r\n     * Test modules and platforms for individual platforms are available from\r\n     * '@angular/<platform_name>/testing'.\r\n     */\r\n    static initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): ɵangular_packages_core_testing_testing_a;\r\n    /**\r\n     * Reset the providers for the test injector.\r\n     */\r\n    static resetTestEnvironment(): void;\r\n    static resetTestingModule(): TestBedStatic;\r\n    /**\r\n     * Allows overriding default compiler providers and settings\r\n     * which are defined in test_injector.js\r\n     */\r\n    static configureCompiler(config: {\r\n        providers?: any[];\r\n        useJit?: boolean;\r\n    }): TestBedStatic;\r\n    /**\r\n     * Allows overriding default providers, directives, pipes, modules of the test injector,\r\n     * which are defined in test_injector.js\r\n     */\r\n    static configureTestingModule(moduleDef: TestModuleMetadata): TestBedStatic;\r\n    /**\r\n     * Compile components with a `templateUrl` for the test's NgModule.\r\n     * It is necessary to call this function\r\n     * as fetching urls is asynchronous.\r\n     */\r\n    static compileComponents(): Promise<any>;\r\n    static overrideModule(ngModule: Type<any>, override: MetadataOverride<NgModule>): TestBedStatic;\r\n    static overrideComponent(component: Type<any>, override: MetadataOverride<Component>): TestBedStatic;\r\n    static overrideDirective(directive: Type<any>, override: MetadataOverride<Directive>): TestBedStatic;\r\n    static overridePipe(pipe: Type<any>, override: MetadataOverride<Pipe>): TestBedStatic;\r\n    static overrideTemplate(component: Type<any>, template: string): TestBedStatic;\r\n    /**\r\n     * Overrides the template of the given component, compiling the template\r\n     * in the context of the TestingModule.\r\n     *\r\n     * Note: This works for JIT and AOTed components as well.\r\n     */\r\n    static overrideTemplateUsingTestingModule(component: Type<any>, template: string): TestBedStatic;\r\n    /**\r\n     * Overwrites all providers for the given token with the given provider definition.\r\n     *\r\n     * Note: This works for JIT and AOTed components as well.\r\n     */\r\n    static overrideProvider(token: any, provider: {\r\n        useFactory: Function;\r\n        deps: any[];\r\n    }): TestBedStatic;\r\n    static overrideProvider(token: any, provider: {\r\n        useValue: any;\r\n    }): TestBedStatic;\r\n    static inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n    static inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue: null, flags?: InjectFlags): T | null;\r\n    /** @deprecated from v9.0.0 use TestBed.inject */\r\n    static get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): any;\r\n    /**\r\n     * @deprecated from v9.0.0 use TestBed.inject\r\n     * @suppress {duplicate}\r\n     */\r\n    static get(token: any, notFoundValue?: any): any;\r\n    static createComponent<T>(component: Type<T>): ComponentFixture<T>;\r\n    private _instantiated;\r\n    private _compiler;\r\n    private _moduleRef;\r\n    private _moduleFactory;\r\n    private _compilerOptions;\r\n    private _moduleOverrides;\r\n    private _componentOverrides;\r\n    private _directiveOverrides;\r\n    private _pipeOverrides;\r\n    private _providers;\r\n    private _declarations;\r\n    private _imports;\r\n    private _schemas;\r\n    private _activeFixtures;\r\n    private _testEnvAotSummaries;\r\n    private _aotSummaries;\r\n    private _templateOverrides;\r\n    private _isRoot;\r\n    private _rootProviderOverrides;\r\n    platform: PlatformRef;\r\n    ngModule: Type<any> | Type<any>[];\r\n    /**\r\n     * Initialize the environment for testing with a compiler factory, a PlatformRef, and an\r\n     * angular module. These are common to every test in the suite.\r\n     *\r\n     * This may only be called once, to set up the common providers for the current test\r\n     * suite on the current platform. If you absolutely need to change the providers,\r\n     * first use `resetTestEnvironment`.\r\n     *\r\n     * Test modules and platforms for individual platforms are available from\r\n     * '@angular/<platform_name>/testing'.\r\n     */\r\n    initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): void;\r\n    /**\r\n     * Reset the providers for the test injector.\r\n     */\r\n    resetTestEnvironment(): void;\r\n    resetTestingModule(): void;\r\n    configureCompiler(config: {\r\n        providers?: any[];\r\n        useJit?: boolean;\r\n    }): void;\r\n    configureTestingModule(moduleDef: TestModuleMetadata): void;\r\n    compileComponents(): Promise<any>;\r\n    private _initIfNeeded;\r\n    private _createCompilerAndModule;\r\n    private _assertNotInstantiated;\r\n    inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n    inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue: null, flags?: InjectFlags): T | null;\r\n    /** @deprecated from v9.0.0 use TestBed.inject */\r\n    get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): any;\r\n    /** @deprecated from v9.0.0 use TestBed.inject */\r\n    get(token: any, notFoundValue?: any): any;\r\n    execute(tokens: any[], fn: Function, context?: any): any;\r\n    overrideModule(ngModule: Type<any>, override: MetadataOverride<NgModule>): void;\r\n    overrideComponent(component: Type<any>, override: MetadataOverride<Component>): void;\r\n    overrideDirective(directive: Type<any>, override: MetadataOverride<Directive>): void;\r\n    overridePipe(pipe: Type<any>, override: MetadataOverride<Pipe>): void;\r\n    /**\r\n     * Overwrites all providers for the given token with the given provider definition.\r\n     */\r\n    overrideProvider(token: any, provider: {\r\n        useFactory: Function;\r\n        deps: any[];\r\n    }): void;\r\n    overrideProvider(token: any, provider: {\r\n        useValue: any;\r\n    }): void;\r\n    private overrideProviderImpl;\r\n    overrideTemplateUsingTestingModule(component: Type<any>, template: string): void;\r\n    createComponent<T>(component: Type<T>): ComponentFixture<T>;\r\n}\r\n\r\n/**\r\n * @description\r\n * Configures and initializes environment for unit testing and provides methods for\r\n * creating components and services in unit tests.\r\n *\r\n * TestBed is the primary api for writing unit tests for Angular applications and libraries.\r\n *\r\n * Note: Use `TestBed` in tests. It will be set to either `TestBedViewEngine` or `TestBedRender3`\r\n * according to the compiler used.\r\n */\r\nexport declare class ɵangular_packages_core_testing_testing_b implements TestBed {\r\n    /**\r\n     * Initialize the environment for testing with a compiler factory, a PlatformRef, and an\r\n     * angular module. These are common to every test in the suite.\r\n     *\r\n     * This may only be called once, to set up the common providers for the current test\r\n     * suite on the current platform. If you absolutely need to change the providers,\r\n     * first use `resetTestEnvironment`.\r\n     *\r\n     * Test modules and platforms for individual platforms are available from\r\n     * '@angular/<platform_name>/testing'.\r\n     *\r\n     * @publicApi\r\n     */\r\n    static initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): TestBed;\r\n    /**\r\n     * Reset the providers for the test injector.\r\n     *\r\n     * @publicApi\r\n     */\r\n    static resetTestEnvironment(): void;\r\n    static configureCompiler(config: {\r\n        providers?: any[];\r\n        useJit?: boolean;\r\n    }): TestBedStatic;\r\n    /**\r\n     * Allows overriding default providers, directives, pipes, modules of the test injector,\r\n     * which are defined in test_injector.js\r\n     */\r\n    static configureTestingModule(moduleDef: TestModuleMetadata): TestBedStatic;\r\n    /**\r\n     * Compile components with a `templateUrl` for the test's NgModule.\r\n     * It is necessary to call this function\r\n     * as fetching urls is asynchronous.\r\n     */\r\n    static compileComponents(): Promise<any>;\r\n    static overrideModule(ngModule: Type<any>, override: MetadataOverride<NgModule>): TestBedStatic;\r\n    static overrideComponent(component: Type<any>, override: MetadataOverride<Component>): TestBedStatic;\r\n    static overrideDirective(directive: Type<any>, override: MetadataOverride<Directive>): TestBedStatic;\r\n    static overridePipe(pipe: Type<any>, override: MetadataOverride<Pipe>): TestBedStatic;\r\n    static overrideTemplate(component: Type<any>, template: string): TestBedStatic;\r\n    /**\r\n     * Overrides the template of the given component, compiling the template\r\n     * in the context of the TestingModule.\r\n     *\r\n     * Note: This works for JIT and AOTed components as well.\r\n     */\r\n    static overrideTemplateUsingTestingModule(component: Type<any>, template: string): TestBedStatic;\r\n    static overrideProvider(token: any, provider: {\r\n        useFactory: Function;\r\n        deps: any[];\r\n    }): TestBedStatic;\r\n    static overrideProvider(token: any, provider: {\r\n        useValue: any;\r\n    }): TestBedStatic;\r\n    static inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n    static inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue: null, flags?: InjectFlags): T | null;\r\n    /** @deprecated from v9.0.0 use TestBed.inject */\r\n    static get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): any;\r\n    /** @deprecated from v9.0.0 use TestBed.inject */\r\n    static get(token: any, notFoundValue?: any): any;\r\n    static createComponent<T>(component: Type<T>): ComponentFixture<T>;\r\n    static resetTestingModule(): TestBedStatic;\r\n    platform: PlatformRef;\r\n    ngModule: Type<any> | Type<any>[];\r\n    private _compiler;\r\n    private _testModuleRef;\r\n    private _activeFixtures;\r\n    private _globalCompilationChecked;\r\n    /**\r\n     * Initialize the environment for testing with a compiler factory, a PlatformRef, and an\r\n     * angular module. These are common to every test in the suite.\r\n     *\r\n     * This may only be called once, to set up the common providers for the current test\r\n     * suite on the current platform. If you absolutely need to change the providers,\r\n     * first use `resetTestEnvironment`.\r\n     *\r\n     * Test modules and platforms for individual platforms are available from\r\n     * '@angular/<platform_name>/testing'.\r\n     *\r\n     * @publicApi\r\n     */\r\n    initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): void;\r\n    /**\r\n     * Reset the providers for the test injector.\r\n     *\r\n     * @publicApi\r\n     */\r\n    resetTestEnvironment(): void;\r\n    resetTestingModule(): void;\r\n    configureCompiler(config: {\r\n        providers?: any[];\r\n        useJit?: boolean;\r\n    }): void;\r\n    configureTestingModule(moduleDef: TestModuleMetadata): void;\r\n    compileComponents(): Promise<any>;\r\n    inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n    inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>, notFoundValue: null, flags?: InjectFlags): T | null;\r\n    /** @deprecated from v9.0.0 use TestBed.inject */\r\n    get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): any;\r\n    /** @deprecated from v9.0.0 use TestBed.inject */\r\n    get(token: any, notFoundValue?: any): any;\r\n    execute(tokens: any[], fn: Function, context?: any): any;\r\n    overrideModule(ngModule: Type<any>, override: MetadataOverride<NgModule>): void;\r\n    overrideComponent(component: Type<any>, override: MetadataOverride<Component>): void;\r\n    overrideTemplateUsingTestingModule(component: Type<any>, template: string): void;\r\n    overrideDirective(directive: Type<any>, override: MetadataOverride<Directive>): void;\r\n    overridePipe(pipe: Type<any>, override: MetadataOverride<Pipe>): void;\r\n    /**\r\n     * Overwrites all providers for the given token with the given provider definition.\r\n     */\r\n    overrideProvider(token: any, provider: {\r\n        useFactory?: Function;\r\n        useValue?: any;\r\n        deps?: any[];\r\n    }): void;\r\n    createComponent<T>(type: Type<T>): ComponentFixture<T>;\r\n    private readonly compiler;\r\n    private readonly testModuleRef;\r\n    private assertNotInstantiated;\r\n    /**\r\n     * Check whether the module scoping queue should be flushed, and flush it if needed.\r\n     *\r\n     * When the TestBed is reset, it clears the JIT module compilation queue, cancelling any\r\n     * in-progress module compilation. This creates a potential hazard - the very first time the\r\n     * TestBed is initialized (or if it's reset without being initialized), there may be pending\r\n     * compilations of modules declared in global scope. These compilations should be finished.\r\n     *\r\n     * To ensure that globally declared modules have their components scoped properly, this function\r\n     * is called whenever TestBed is initialized or reset. The _first_ time that this happens, prior\r\n     * to any other operations, the scoping queue is flushed.\r\n     */\r\n    private checkGlobalCompilationFinished;\r\n    private destroyActiveFixtures;\r\n}\r\n\r\nexport declare function ɵangular_packages_core_testing_testing_c(): ɵangular_packages_core_testing_testing_b;\r\n\r\nexport declare class ɵMetadataOverrider {\r\n    private _references;\r\n    /**\r\n     * Creates a new instance for the given metadata class\r\n     * based on an old instance and overrides.\r\n     */\r\n    overrideMetadata<C extends T, T>(metadataClass: {\r\n        new (options: T): C;\r\n    }, oldMetadata: C, override: MetadataOverride<T>): C;\r\n}\r\n\r\n/**\r\n * Special interface to the compiler only used by testing\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ɵTestingCompiler extends Compiler {\r\n    readonly injector: Injector;\r\n    overrideModule(module: Type<any>, overrides: MetadataOverride<NgModule>): void;\r\n    overrideDirective(directive: Type<any>, overrides: MetadataOverride<Directive>): void;\r\n    overrideComponent(component: Type<any>, overrides: MetadataOverride<Component>): void;\r\n    overridePipe(directive: Type<any>, overrides: MetadataOverride<Pipe>): void;\r\n    /**\r\n     * Allows to pass the compile summary from AOT compilation to the JIT compiler,\r\n     * so that it can use the code generated by AOT.\r\n     */\r\n    loadAotSummaries(summaries: () => any[]): void;\r\n    /**\r\n     * Gets the component factory for the given component.\r\n     * This assumes that the component has been compiled before calling this call using\r\n     * `compileModuleAndAllComponents*`.\r\n     */\r\n    getComponentFactory<T>(component: Type<T>): ComponentFactory<T>;\r\n    /**\r\n     * Returns the component type that is stored in the given error.\r\n     * This can be used for errors created by compileModule...\r\n     */\r\n    getComponentFromError(error: Error): Type<any> | null;\r\n}\r\n\r\n/**\r\n * A factory for creating a Compiler\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class ɵTestingCompilerFactory {\r\n    abstract createTestingCompiler(options?: CompilerOptions[]): ɵTestingCompiler;\r\n}\r\n\r\nexport { }\r\n\n//# sourceMappingURL=testing.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/platform-browser/animations.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nexport * from './animations/animations';\n"
  },
  {
    "paths": [
      "node_modules/@angular/platform-browser/animations/animations.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { AnimationBuilder } from '@angular/animations';\r\nimport { AnimationDriver } from '@angular/animations/browser';\r\nimport { AnimationFactory } from '@angular/animations';\r\nimport { AnimationMetadata } from '@angular/animations';\r\nimport { AnimationOptions } from '@angular/animations';\r\nimport { AnimationPlayer } from '@angular/animations';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { NgZone } from '@angular/core';\r\nimport { Provider } from '@angular/core';\r\nimport { Renderer2 } from '@angular/core';\r\nimport { RendererFactory2 } from '@angular/core';\r\nimport { RendererStyleFlags2 } from '@angular/core';\r\nimport { RendererType2 } from '@angular/core';\r\nimport { ɵAnimationEngine } from '@angular/animations/browser';\r\nimport { ɵAnimationStyleNormalizer } from '@angular/animations/browser';\r\nimport { ɵCssKeyframesDriver } from '@angular/animations/browser';\r\nimport { ɵDomRendererFactory2 } from '@angular/platform-browser';\r\nimport { ɵWebAnimationsDriver } from '@angular/animations/browser';\r\nimport { ɵWebAnimationsStyleNormalizer } from '@angular/animations/browser';\r\n\r\n/**\r\n * @publicApi\r\n */\r\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/platform-browser';\nexport declare const ANIMATION_MODULE_TYPE: InjectionToken<\"NoopAnimations\" | \"BrowserAnimations\">;\r\n\r\n/**\r\n * Exports `BrowserModule` with additional [dependency-injection providers](guide/glossary#provider)\r\n * for use with animations. See [Animations](guide/animations).\r\n * @publicApi\r\n */\r\nexport declare class BrowserAnimationsModule {\r\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<BrowserAnimationsModule, never, never, [typeof ɵngcc1.BrowserModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<BrowserAnimationsModule>;\n}\r\n\r\n/**\r\n * A null player that must be imported to allow disabling of animations.\r\n * @publicApi\r\n */\r\nexport declare class NoopAnimationsModule {\r\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<NoopAnimationsModule, never, never, [typeof ɵngcc1.BrowserModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<NoopAnimationsModule>;\n}\r\n\r\nexport declare function ɵangular_packages_platform_browser_animations_animations_a(): ɵWebAnimationsDriver | ɵCssKeyframesDriver;\r\n\r\nexport declare function ɵangular_packages_platform_browser_animations_animations_b(): ɵWebAnimationsStyleNormalizer;\r\n\r\nexport declare function ɵangular_packages_platform_browser_animations_animations_c(renderer: ɵDomRendererFactory2, engine: ɵAnimationEngine, zone: NgZone): ɵAnimationRendererFactory;\r\n\r\n/**\r\n * Separate providers from the actual module so that we can do a local modification in Google3 to\r\n * include them in the BrowserModule.\r\n */\r\nexport declare const ɵangular_packages_platform_browser_animations_animations_d: Provider[];\r\n\r\n/**\r\n * Separate providers from the actual module so that we can do a local modification in Google3 to\r\n * include them in the BrowserTestingModule.\r\n */\r\nexport declare const ɵangular_packages_platform_browser_animations_animations_e: Provider[];\r\n\r\nexport declare class ɵangular_packages_platform_browser_animations_animations_f implements Renderer2 {\r\n    protected namespaceId: string;\r\n    delegate: Renderer2;\r\n    engine: ɵAnimationEngine;\r\n    constructor(namespaceId: string, delegate: Renderer2, engine: ɵAnimationEngine);\r\n    readonly data: {\r\n        [key: string]: any;\r\n    };\r\n    destroyNode: ((n: any) => void) | null;\r\n    destroy(): void;\r\n    createElement(name: string, namespace?: string | null | undefined): any;\r\n    createComment(value: string): any;\r\n    createText(value: string): any;\r\n    appendChild(parent: any, newChild: any): void;\r\n    insertBefore(parent: any, newChild: any, refChild: any): void;\r\n    removeChild(parent: any, oldChild: any, isHostElement: boolean): void;\r\n    selectRootElement(selectorOrNode: any, preserveContent?: boolean): any;\r\n    parentNode(node: any): any;\r\n    nextSibling(node: any): any;\r\n    setAttribute(el: any, name: string, value: string, namespace?: string | null | undefined): void;\r\n    removeAttribute(el: any, name: string, namespace?: string | null | undefined): void;\r\n    addClass(el: any, name: string): void;\r\n    removeClass(el: any, name: string): void;\r\n    setStyle(el: any, style: string, value: any, flags?: RendererStyleFlags2 | undefined): void;\r\n    removeStyle(el: any, style: string, flags?: RendererStyleFlags2 | undefined): void;\r\n    setProperty(el: any, name: string, value: any): void;\r\n    setValue(node: any, value: string): void;\r\n    listen(target: any, eventName: string, callback: (event: any) => boolean | void): () => void;\r\n    protected disableAnimations(element: any, value: boolean): void;\r\n}\r\n\r\nexport declare class ɵAnimationRenderer extends ɵangular_packages_platform_browser_animations_animations_f implements Renderer2 {\r\n    factory: ɵAnimationRendererFactory;\r\n    constructor(factory: ɵAnimationRendererFactory, namespaceId: string, delegate: Renderer2, engine: ɵAnimationEngine);\r\n    setProperty(el: any, name: string, value: any): void;\r\n    listen(target: 'window' | 'document' | 'body' | any, eventName: string, callback: (event: any) => any): () => void;\r\n}\r\n\r\nexport declare class ɵAnimationRendererFactory implements RendererFactory2 {\r\n    private delegate;\r\n    private engine;\r\n    private _zone;\r\n    private _currentId;\r\n    private _microtaskId;\r\n    private _animationCallbacksBuffer;\r\n    private _rendererCache;\r\n    private _cdRecurDepth;\r\n    private promise;\r\n    constructor(delegate: RendererFactory2, engine: ɵAnimationEngine, _zone: NgZone);\r\n    createRenderer(hostElement: any, type: RendererType2): Renderer2;\r\n    begin(): void;\r\n    private _scheduleCountTask;\r\n    end(): void;\r\n    whenRenderingDone(): Promise<any>;\r\n}\r\n\r\nexport declare class ɵBrowserAnimationBuilder extends AnimationBuilder {\r\n    private _nextAnimationId;\r\n    private _renderer;\r\n    constructor(rootRenderer: RendererFactory2, doc: any);\r\n    build(animation: AnimationMetadata | AnimationMetadata[]): AnimationFactory;\r\n}\r\n\r\nexport declare class ɵBrowserAnimationFactory extends AnimationFactory {\r\n    private _id;\r\n    private _renderer;\r\n    constructor(_id: string, _renderer: ɵAnimationRenderer);\r\n    create(element: any, options?: AnimationOptions): AnimationPlayer;\r\n}\r\n\r\nexport declare class ɵInjectableAnimationEngine extends ɵAnimationEngine {\r\n    constructor(doc: any, driver: AnimationDriver, normalizer: ɵAnimationStyleNormalizer);\r\n}\r\n\r\nexport { }\r\n\n//# sourceMappingURL=animations.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/platform-browser/platform-browser.d.ts",
      "node_modules/@angular/platform-browser/index.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ComponentRef } from '@angular/core';\r\nimport { DebugElement } from '@angular/core';\r\nimport { DebugNode } from '@angular/core';\r\nimport { ErrorHandler } from '@angular/core';\r\nimport { GetTestability } from '@angular/core';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { Injector } from '@angular/core';\r\nimport { ModuleWithProviders } from '@angular/core';\r\nimport { NgProbeToken } from '@angular/core';\r\nimport { NgZone } from '@angular/core';\r\nimport { OnDestroy } from '@angular/core';\r\nimport { PlatformRef } from '@angular/core';\r\nimport { Predicate } from '@angular/core';\r\nimport { Provider } from '@angular/core';\r\nimport { Renderer2 } from '@angular/core';\r\nimport { RendererFactory2 } from '@angular/core';\r\nimport { RendererType2 } from '@angular/core';\r\nimport { Sanitizer } from '@angular/core';\r\nimport { SecurityContext } from '@angular/core';\r\nimport { StaticProvider } from '@angular/core';\r\nimport { Testability } from '@angular/core';\r\nimport { TestabilityRegistry } from '@angular/core';\r\nimport { Type } from '@angular/core';\r\nimport { Version } from '@angular/core';\r\nimport { ɵConsole } from '@angular/core';\r\nimport { ɵDomAdapter } from '@angular/common';\r\nimport { ɵgetDOM } from '@angular/common';\r\n\r\n/**\r\n * Exports required infrastructure for all Angular apps.\r\n * Included by default in all Angular apps created with the CLI\r\n * `new` command.\r\n * Re-exports `CommonModule` and `ApplicationModule`, making their\r\n * exports and providers available to all apps.\r\n *\r\n * @publicApi\r\n */\r\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\nexport declare class BrowserModule {\r\n    constructor(parentModule: BrowserModule | null);\r\n    /**\r\n     * Configures a browser-based app to transition from a server-rendered app, if\r\n     * one is present on the page.\r\n     *\r\n     * @param params An object containing an identifier for the app to transition.\r\n     * The ID must match between the client and server versions of the app.\r\n     * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\r\n     */\r\n    static withServerTransition(params: {\r\n        appId: string;\r\n    }): ModuleWithProviders<BrowserModule>;\r\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<BrowserModule, never, never, [typeof ɵngcc1.CommonModule, typeof ɵngcc0.ApplicationModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<BrowserModule>;\n}\r\n\r\n/**\r\n * NgModule to install on the client side while using the `TransferState` to transfer state from\r\n * server to client.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class BrowserTransferStateModule {\r\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<BrowserTransferStateModule, never, never, never>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<BrowserTransferStateModule>;\n}\r\n\r\n/**\r\n * Predicates for use with {@link DebugElement}'s query functions.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class By {\r\n    /**\r\n     * Match all nodes.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\r\n     */\r\n    static all(): Predicate<DebugNode>;\r\n    /**\r\n     * Match elements by the given CSS selector.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\r\n     */\r\n    static css(selector: string): Predicate<DebugElement>;\r\n    /**\r\n     * Match nodes that have the given directive present.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\r\n     */\r\n    static directive(type: Type<any>): Predicate<DebugNode>;\r\n}\r\n\r\n/**\r\n * Disables Angular tools.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function disableDebugTools(): void;\r\n\r\n/**\r\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\r\n * values to be safe to use in the different DOM contexts.\r\n *\r\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\r\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\r\n * the website.\r\n *\r\n * In specific situations, it might be necessary to disable sanitization, for example if the\r\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\r\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\r\n * methods, and then binding to that value from the template.\r\n *\r\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\r\n * Cross Site Scripting (XSS) security bug!\r\n *\r\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\r\n * close as possible to the source of the value, to make it easy to verify no security bug is\r\n * created by its use.\r\n *\r\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\r\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\r\n * code. The sanitizer leaves safe values intact.\r\n *\r\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\r\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\r\n * into this call. Make sure any user data is appropriately escaped for this security context.\r\n * For more detail, see the [Security Guide](http://g.co/ng/security).\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class DomSanitizer implements Sanitizer {\r\n    /**\r\n     * Sanitizes a value for use in the given SecurityContext.\r\n     *\r\n     * If value is trusted for the context, this method will unwrap the contained safe value and use\r\n     * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\r\n     * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\r\n     * is responsible to make sure that the value can definitely be safely used in the given context.\r\n     */\r\n    abstract sanitize(context: SecurityContext, value: SafeValue | string | null): string | null;\r\n    /**\r\n     * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\r\n     * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\r\n     * leave safe HTML intact, so in most situations this method should not be used.\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustHtml(value: string): SafeHtml;\r\n    /**\r\n     * Bypass security and trust the given value to be safe style value (CSS).\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustStyle(value: string): SafeStyle;\r\n    /**\r\n     * Bypass security and trust the given value to be safe JavaScript.\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustScript(value: string): SafeScript;\r\n    /**\r\n     * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\r\n     * in hyperlinks or `<img src>`.\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustUrl(value: string): SafeUrl;\r\n    /**\r\n     * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\r\n     * be used to load executable code from, like `<script src>`, or `<iframe src>`.\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<DomSanitizer>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<DomSanitizer>;\n}\r\n\r\n/**\r\n * Enabled Angular debug tools that are accessible via your browser's\r\n * developer console.\r\n *\r\n * Usage:\r\n *\r\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\r\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\r\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\r\n *    then hit Enter.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T>;\r\n\r\n/**\r\n * The injection token for the event-manager plug-in service.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const EVENT_MANAGER_PLUGINS: InjectionToken<ɵangular_packages_platform_browser_platform_browser_g[]>;\r\n\r\n/**\r\n * An injectable service that provides event management for Angular\r\n * through a browser plug-in.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class EventManager {\r\n    private _zone;\r\n    private _plugins;\r\n    private _eventNameToPlugin;\r\n    /**\r\n     * Initializes an instance of the event-manager service.\r\n     */\r\n    constructor(plugins: ɵangular_packages_platform_browser_platform_browser_g[], _zone: NgZone);\r\n    /**\r\n     * Registers a handler for a specific element and event.\r\n     *\r\n     * @param element The HTML element to receive event notifications.\r\n     * @param eventName The name of the event to listen for.\r\n     * @param handler A function to call when the notification occurs. Receives the\r\n     * event object as an argument.\r\n     * @returns  A callback function that can be used to remove the handler.\r\n     */\r\n    addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    /**\r\n     * Registers a global handler for an event in a target view.\r\n     *\r\n     * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\r\n     * @param eventName The name of the event to listen for.\r\n     * @param handler A function to call when the notification occurs. Receives the\r\n     * event object as an argument.\r\n     * @returns A callback function that can be used to remove the handler.\r\n     */\r\n    addGlobalEventListener(target: string, eventName: string, handler: Function): Function;\r\n    /**\r\n     * Retrieves the compilation zone in which event listeners are registered.\r\n     */\r\n    getZone(): NgZone;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<EventManager>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<EventManager>;\n}\r\n\r\n/**\r\n * DI token for providing [HammerJS](http://hammerjs.github.io/) support to Angular.\r\n * @see `HammerGestureConfig`\r\n *\r\n * @ngModule HammerModule\r\n * @publicApi\r\n */\r\nexport declare const HAMMER_GESTURE_CONFIG: InjectionToken<HammerGestureConfig>;\r\n\r\n/**\r\n * Injection token used to provide a {@link HammerLoader} to Angular.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const HAMMER_LOADER: InjectionToken<HammerLoader>;\r\n\r\n/**\r\n * An injectable [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\r\n * for gesture recognition. Configures specific event recognition.\r\n * @publicApi\r\n */\r\nexport declare class HammerGestureConfig {\r\n    /**\r\n     * A set of supported event names for gestures to be used in Angular.\r\n     * Angular supports all built-in recognizers, as listed in\r\n     * [HammerJS documentation](http://hammerjs.github.io/).\r\n     */\r\n    events: string[];\r\n    /**\r\n    * Maps gesture event names to a set of configuration options\r\n    * that specify overrides to the default values for specific properties.\r\n    *\r\n    * The key is a supported event name to be configured,\r\n    * and the options object contains a set of properties, with override values\r\n    * to be applied to the named recognizer event.\r\n    * For example, to disable recognition of the rotate event, specify\r\n    *  `{\"rotate\": {\"enable\": false}}`.\r\n    *\r\n    * Properties that are not present take the HammerJS default values.\r\n    * For information about which properties are supported for which events,\r\n    * and their allowed and default values, see\r\n    * [HammerJS documentation](http://hammerjs.github.io/).\r\n    *\r\n    */\r\n    overrides: {\r\n        [key: string]: Object;\r\n    };\r\n    /**\r\n     * Properties whose default values can be overridden for a given event.\r\n     * Different sets of properties apply to different events.\r\n     * For information about which properties are supported for which events,\r\n     * and their allowed and default values, see\r\n     * [HammerJS documentation](http://hammerjs.github.io/).\r\n     */\r\n    options?: {\r\n        cssProps?: any;\r\n        domEvents?: boolean;\r\n        enable?: boolean | ((manager: any) => boolean);\r\n        preset?: any[];\r\n        touchAction?: string;\r\n        recognizers?: any[];\r\n        inputClass?: any;\r\n        inputTarget?: EventTarget;\r\n    };\r\n    /**\r\n     * Creates a [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\r\n     * and attaches it to a given HTML element.\r\n     * @param element The element that will recognize gestures.\r\n     * @returns A HammerJS event-manager object.\r\n     */\r\n    buildHammer(element: HTMLElement): HammerInstance;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<HammerGestureConfig>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<HammerGestureConfig>;\n}\r\n\r\ndeclare interface HammerInstance {\r\n    on(eventName: string, callback?: Function): void;\r\n    off(eventName: string, callback?: Function): void;\r\n    destroy?(): void;\r\n}\r\n\r\n/**\r\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type HammerLoader = () => Promise<void>;\r\n\r\n/**\r\n * Adds support for HammerJS.\r\n *\r\n * Import this module at the root of your application so that Angular can work with\r\n * HammerJS to detect gesture events.\r\n *\r\n * Note that applications still need to include the HammerJS script itself. This module\r\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class HammerModule {\r\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<HammerModule, never, never, never>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<HammerModule>;\n}\r\n\r\n/**\r\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * const COUNTER_KEY = makeStateKey<number>('counter');\r\n * let value = 10;\r\n *\r\n * transferState.set(COUNTER_KEY, value);\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare function makeStateKey<T = void>(key: string): StateKey<T>;\r\n\r\n/**\r\n * A service that can be used to get and add meta tags.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class Meta {\r\n    private _doc;\r\n    private _dom;\r\n    constructor(_doc: any);\r\n    addTag(tag: MetaDefinition, forceCreation?: boolean): HTMLMetaElement | null;\r\n    addTags(tags: MetaDefinition[], forceCreation?: boolean): HTMLMetaElement[];\r\n    getTag(attrSelector: string): HTMLMetaElement | null;\r\n    getTags(attrSelector: string): HTMLMetaElement[];\r\n    updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement | null;\r\n    removeTag(attrSelector: string): void;\r\n    removeTagElement(meta: HTMLMetaElement): void;\r\n    private _getOrCreateElement;\r\n    private _setMetaElementAttributes;\r\n    private _parseSelector;\r\n    private _containsAttributes;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<Meta>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<Meta>;\n}\r\n\r\n\r\n/**\r\n * Represents a meta element.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type MetaDefinition = {\r\n    charset?: string;\r\n    content?: string;\r\n    httpEquiv?: string;\r\n    id?: string;\r\n    itemprop?: string;\r\n    name?: string;\r\n    property?: string;\r\n    scheme?: string;\r\n    url?: string;\r\n} & {\r\n    [prop: string]: string;\r\n};\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef;\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 * A type-safe key to use with `TransferState`.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * const COUNTER_KEY = makeStateKey<number>('counter');\r\n * let value = 10;\r\n *\r\n * transferState.set(COUNTER_KEY, value);\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare type StateKey<T> = string & {\r\n    __not_a_string: never;\r\n};\r\n\r\n/**\r\n * A service that can be used to get and set the title of a current HTML document.\r\n *\r\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\r\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\r\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\r\n * title value.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class Title {\r\n    private _doc;\r\n    constructor(_doc: any);\r\n    /**\r\n     * Get the title of the current HTML document.\r\n     */\r\n    getTitle(): string;\r\n    /**\r\n     * Set the title of the current HTML document.\r\n     * @param newTitle\r\n     */\r\n    setTitle(newTitle: string): void;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<Title>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<Title>;\n}\r\n\r\n/**\r\n * A key value store that is transferred from the application on the server side to the application\r\n * on the client side.\r\n *\r\n * `TransferState` will be available as an injectable token. To use it import\r\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\r\n *\r\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\r\n * boolean, number, string, null and non-class objects will be serialized and deserialzied in a\r\n * non-lossy manner.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class TransferState {\r\n    private store;\r\n    private onSerializeCallbacks;\r\n    /**\r\n     * Get the value corresponding to a key. Return `defaultValue` if key is not found.\r\n     */\r\n    get<T>(key: StateKey<T>, defaultValue: T): T;\r\n    /**\r\n     * Set the value corresponding to a key.\r\n     */\r\n    set<T>(key: StateKey<T>, value: T): void;\r\n    /**\r\n     * Remove a key from the store.\r\n     */\r\n    remove<T>(key: StateKey<T>): void;\r\n    /**\r\n     * Test whether a key exists in the store.\r\n     */\r\n    hasKey<T>(key: StateKey<T>): boolean;\r\n    /**\r\n     * Register a callback to provide the value for a key when `toJson` is called.\r\n     */\r\n    onSerialize<T>(key: StateKey<T>, callback: () => T): void;\r\n    /**\r\n     * Serialize the current state of the store to JSON.\r\n     */\r\n    toJson(): string;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<TransferState>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<TransferState>;\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const VERSION: Version;\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_a(): ErrorHandler;\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_b(): any;\r\n\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_c: StaticProvider[];\r\n\r\n/**\r\n * Factory to create Meta service.\r\n */\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_d(): Meta;\r\n\r\n\r\n/**\r\n * Factory to create Title service.\r\n */\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_e(): Title;\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_f(doc: Document, appId: string): TransferState;\r\n\r\nexport declare abstract class ɵangular_packages_platform_browser_platform_browser_g {\r\n    private _doc;\r\n    constructor(_doc: any);\r\n    manager: EventManager;\r\n    abstract supports(eventName: string): boolean;\r\n    abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    addGlobalEventListener(element: string, eventName: string, handler: Function): Function;\r\n}\r\n\r\n/**\r\n * In View Engine, support for Hammer gestures is built-in by default.\r\n */\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_h: Provider[];\r\n\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_i: Provider[];\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_j(injector: Injector): ɵDomSanitizerImpl;\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_k(transitionId: string, document: any, injector: Injector): () => void;\r\n\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_l: StaticProvider[];\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_m(coreTokens: NgProbeToken[]): any;\r\n\r\n/**\r\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\r\n */\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_n: Provider[];\r\n\r\n/**\r\n * Provides DOM operations in any browser environment.\r\n *\r\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\r\n * can introduce XSS risks.\r\n */\r\nexport declare abstract class ɵangular_packages_platform_browser_platform_browser_o extends ɵDomAdapter {\r\n    constructor();\r\n    supportsDOMEvents(): boolean;\r\n}\r\n\r\n/**\r\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\r\n * Attacker-controlled data introduced by an unsanitized provider could expose your\r\n * application to XSS risks. For more detail, see the [Security Guide](http://g.co/ng/security).\r\n * @publicApi\r\n */\r\nexport declare const ɵBROWSER_SANITIZATION_PROVIDERS: StaticProvider[];\r\n\r\nexport declare const ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__: never[];\r\n\r\n/**\r\n * A `DomAdapter` powered by full browser DOM APIs.\r\n *\r\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\r\n * can introduce XSS risks.\r\n */\r\nexport declare class ɵBrowserDomAdapter extends ɵangular_packages_platform_browser_platform_browser_o {\r\n    static makeCurrent(): void;\r\n    getProperty(el: Node, name: string): any;\r\n    log(error: string): void;\r\n    logGroup(error: string): void;\r\n    logGroupEnd(): void;\r\n    onAndCancel(el: Node, evt: any, listener: any): Function;\r\n    dispatchEvent(el: Node, evt: any): void;\r\n    remove(node: Node): Node;\r\n    getValue(el: any): string;\r\n    createElement(tagName: string, doc?: Document): HTMLElement;\r\n    createHtmlDocument(): HTMLDocument;\r\n    getDefaultDocument(): Document;\r\n    isElementNode(node: Node): boolean;\r\n    isShadowRoot(node: any): boolean;\r\n    getGlobalEventTarget(doc: Document, target: string): EventTarget | null;\r\n    getHistory(): History;\r\n    getLocation(): Location;\r\n    getBaseHref(doc: Document): string | null;\r\n    resetBaseElement(): void;\r\n    getUserAgent(): string;\r\n    performanceNow(): number;\r\n    supportsCookies(): boolean;\r\n    getCookie(name: string): string | null;\r\n}\r\n\r\nexport declare class ɵBrowserGetTestability implements GetTestability {\r\n    static init(): void;\r\n    addToWindow(registry: TestabilityRegistry): void;\r\n    findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean): Testability | null;\r\n}\r\n\r\nexport declare class ɵDomEventsPlugin extends ɵangular_packages_platform_browser_platform_browser_g {\r\n    private ngZone;\r\n    constructor(doc: any, ngZone: NgZone, platformId: {} | null);\r\n    private patchEvent;\r\n    supports(eventName: string): boolean;\r\n    addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    removeEventListener(target: any, eventName: string, callback: Function): void;\r\n}\r\n\r\nexport declare class ɵDomRendererFactory2 implements RendererFactory2 {\r\n    private eventManager;\r\n    private sharedStylesHost;\r\n    private appId;\r\n    private rendererByCompId;\r\n    private defaultRenderer;\r\n    constructor(eventManager: EventManager, sharedStylesHost: ɵDomSharedStylesHost, appId: string);\r\n    createRenderer(element: any, type: RendererType2 | null): Renderer2;\r\n    begin(): void;\r\n    end(): void;\r\n}\r\n\r\nexport declare class ɵDomSanitizerImpl extends DomSanitizer {\r\n    private _doc;\r\n    constructor(_doc: any);\r\n    sanitize(ctx: SecurityContext, value: SafeValue | string | null): string | null;\r\n    bypassSecurityTrustHtml(value: string): SafeHtml;\r\n    bypassSecurityTrustStyle(value: string): SafeStyle;\r\n    bypassSecurityTrustScript(value: string): SafeScript;\r\n    bypassSecurityTrustUrl(value: string): SafeUrl;\r\n    bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\r\n}\r\n\r\nexport declare class ɵDomSharedStylesHost extends ɵSharedStylesHost implements OnDestroy {\r\n    private _doc;\r\n    private _hostNodes;\r\n    private _styleNodes;\r\n    constructor(_doc: any);\r\n    private _addStylesToHost;\r\n    addHost(hostNode: Node): void;\r\n    removeHost(hostNode: Node): void;\r\n    onStylesAdded(additions: Set<string>): void;\r\n    ngOnDestroy(): void;\r\n}\r\n\r\nexport declare const ɵELEMENT_PROBE_PROVIDERS: Provider[];\r\n\r\n/**\r\n * In Ivy, we don't support NgProbe because we have our own set of testing utilities\r\n * with more robust functionality.\r\n *\r\n * We shouldn't bring in NgProbe because it prevents DebugNode and friends from\r\n * tree-shaking properly.\r\n */\r\nexport declare const ɵELEMENT_PROBE_PROVIDERS__POST_R3__: never[];\r\n\r\n\r\nexport declare function ɵescapeHtml(text: string): string;\r\n\r\nexport declare function ɵflattenStyles(compId: string, styles: Array<any | any[]>, target: string[]): string[];\r\nexport { ɵgetDOM }\r\n\r\n/**\r\n * In Ivy, support for Hammer gestures is optional, so applications must\r\n * import the `HammerModule` at root to turn on support. This means that\r\n * Hammer-specific code can be tree-shaken away if not needed.\r\n */\r\nexport declare const ɵHAMMER_PROVIDERS__POST_R3__: never[];\r\n\r\n/**\r\n * Event plugin that adds Hammer support to an application.\r\n *\r\n * @ngModule HammerModule\r\n */\r\nexport declare class ɵHammerGesturesPlugin extends ɵangular_packages_platform_browser_platform_browser_g {\r\n    private _config;\r\n    private console;\r\n    private loader?;\r\n    constructor(doc: any, _config: HammerGestureConfig, console: ɵConsole, loader?: HammerLoader | null | undefined);\r\n    supports(eventName: string): boolean;\r\n    addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    isCustomEvent(eventName: string): boolean;\r\n}\r\n\r\nexport declare function ɵinitDomAdapter(): void;\r\n\r\nexport declare const ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS: StaticProvider[];\r\n\r\n/**\r\n * @publicApi\r\n * A browser plug-in that provides support for handling of key events in Angular.\r\n */\r\nexport declare class ɵKeyEventsPlugin extends ɵangular_packages_platform_browser_platform_browser_g {\r\n    /**\r\n     * Initializes an instance of the browser plug-in.\r\n     * @param doc The document in which key events will be detected.\r\n     */\r\n    constructor(doc: any);\r\n    /**\r\n      * Reports whether a named key event is supported.\r\n      * @param eventName The event name to query.\r\n      * @return True if the named key event is supported.\r\n     */\r\n    supports(eventName: string): boolean;\r\n    /**\r\n     * Registers a handler for a specific element and key event.\r\n     * @param element The HTML element to receive event notifications.\r\n     * @param eventName The name of the key event to listen for.\r\n     * @param handler A function to call when the notification occurs. Receives the\r\n     * event object as an argument.\r\n     * @returns The key event that was registered.\r\n    */\r\n    addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    static parseEventName(eventName: string): {\r\n        [key: string]: string;\r\n    } | null;\r\n    static getEventFullKey(event: KeyboardEvent): string;\r\n    /**\r\n     * Configures a handler callback for a key event.\r\n     * @param fullKey The event name that combines all simultaneous keystrokes.\r\n     * @param handler The function that responds to the key event.\r\n     * @param zone The zone in which the event occurred.\r\n     * @returns A callback function.\r\n     */\r\n    static eventCallback(fullKey: any, handler: Function, zone: NgZone): Function;\r\n}\r\n\r\nexport declare const ɵNAMESPACE_URIS: {\r\n    [ns: string]: string;\r\n};\r\n\r\nexport declare class ɵSharedStylesHost {\r\n    addStyles(styles: string[]): void;\r\n    onStylesAdded(additions: Set<string>): void;\r\n    getAllStyles(): string[];\r\n}\r\n\r\nexport declare function ɵshimContentAttribute(componentShortId: string): string;\r\n\r\nexport declare function ɵshimHostAttribute(componentShortId: string): string;\r\n\r\n/**\r\n * An id that identifies a particular application being bootstrapped, that should\r\n * match across the client/server boundary.\r\n */\r\nexport declare const ɵTRANSITION_ID: InjectionToken<unknown>;\r\n\r\nexport { }\r\n\n//# sourceMappingURL=platform-browser.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/platform-browser/testing.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nexport * from './testing/testing';\n"
  },
  {
    "paths": [
      "node_modules/@angular/platform-browser/testing/testing.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { NgZone } from '@angular/core';\r\nimport { PlatformRef } from '@angular/core';\r\nimport { StaticProvider } from '@angular/core';\r\n\r\n/**\r\n * NgModule for testing.\r\n *\r\n * @publicApi\r\n */\r\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/platform-browser';\nexport declare class BrowserTestingModule {\r\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<BrowserTestingModule, never, never, [typeof ɵngcc1.BrowserModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<BrowserTestingModule>;\n}\r\n\r\n/**\r\n * Platform for testing\r\n *\r\n * @publicApi\r\n */\r\nexport declare const platformBrowserTesting: (extraProviders?: StaticProvider[] | undefined) => PlatformRef;\r\n\r\nexport declare function ɵangular_packages_platform_browser_testing_testing_a(): NgZone;\r\n\r\nexport { }\r\n\n//# sourceMappingURL=testing.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/platform-browser-dynamic/platform-browser-dynamic.d.ts",
      "node_modules/@angular/platform-browser-dynamic/index.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { CompileMetadataResolver } from '@angular/compiler';\r\nimport { Compiler } from '@angular/core';\r\nimport { CompilerConfig } from '@angular/compiler';\r\nimport { CompileReflector } from '@angular/compiler';\r\nimport { CompilerFactory } from '@angular/core';\r\nimport { CompilerOptions } from '@angular/core';\r\nimport { ComponentFactory } from '@angular/core';\r\nimport { Injector } from '@angular/core';\r\nimport { JitEvaluator } from '@angular/compiler';\r\nimport { ModuleWithComponentFactories } from '@angular/core';\r\nimport { NgModuleCompiler } from '@angular/compiler';\r\nimport { NgModuleFactory } from '@angular/core';\r\nimport { PlatformRef } from '@angular/core';\r\nimport { Provider } from '@angular/core';\r\nimport { ResourceLoader } from '@angular/compiler';\r\nimport { StaticProvider } from '@angular/core';\r\nimport { StyleCompiler } from '@angular/compiler';\r\nimport { SummaryResolver } from '@angular/compiler';\r\nimport { TemplateParser } from '@angular/compiler';\r\nimport { Type } from '@angular/core';\r\nimport { Version } from '@angular/core';\r\nimport { ViewCompiler } from '@angular/compiler';\r\nimport { ɵConsole } from '@angular/core';\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare class JitCompilerFactory implements CompilerFactory {\r\n    private _defaultOptions;\r\n    createCompiler(options?: CompilerOptions[]): Compiler;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const platformBrowserDynamic: (extraProviders?: StaticProvider[] | undefined) => PlatformRef;\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const RESOURCE_CACHE_PROVIDER: Provider[];\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const VERSION: Version;\r\n\r\n/**\r\n * An implementation of ResourceLoader that uses a template cache to avoid doing an actual\r\n * ResourceLoader.\r\n *\r\n * The template cache needs to be built and loaded into window.$templateCache\r\n * via a separate mechanism.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ɵangular_packages_platform_browser_dynamic_platform_browser_dynamic_a extends ResourceLoader {\r\n    private _cache;\r\n    constructor();\r\n    get(url: string): Promise<string>;\r\n}\r\n\r\nexport declare const ɵCOMPILER_PROVIDERS__POST_R3__: StaticProvider[];\r\n\r\nexport declare class ɵCompilerImpl implements Compiler {\r\n    private _metadataResolver;\r\n    private _delegate;\r\n    readonly injector: Injector;\r\n    constructor(injector: Injector, _metadataResolver: CompileMetadataResolver, templateParser: TemplateParser, styleCompiler: StyleCompiler, viewCompiler: ViewCompiler, ngModuleCompiler: NgModuleCompiler, summaryResolver: SummaryResolver<Type<any>>, compileReflector: CompileReflector, jitEvaluator: JitEvaluator, compilerConfig: CompilerConfig, console: ɵConsole);\r\n    private getExtraNgModuleProviders;\r\n    compileModuleSync<T>(moduleType: Type<T>): NgModuleFactory<T>;\r\n    compileModuleAsync<T>(moduleType: Type<T>): Promise<NgModuleFactory<T>>;\r\n    compileModuleAndAllComponentsSync<T>(moduleType: Type<T>): ModuleWithComponentFactories<T>;\r\n    compileModuleAndAllComponentsAsync<T>(moduleType: Type<T>): Promise<ModuleWithComponentFactories<T>>;\r\n    loadAotSummaries(summaries: () => any[]): void;\r\n    hasAotSummary(ref: Type<any>): boolean;\r\n    getComponentFactory<T>(component: Type<T>): ComponentFactory<T>;\r\n    clearCache(): void;\r\n    clearCacheFor(type: Type<any>): void;\r\n    getModuleId(moduleType: Type<any>): string | undefined;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS: StaticProvider[];\r\n\r\n/**\r\n * A platform that included corePlatform and the compiler.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const ɵplatformCoreDynamic: (extraProviders?: StaticProvider[] | undefined) => PlatformRef;\r\n\r\nexport declare class ɵResourceLoaderImpl extends ResourceLoader {\r\n    get(url: string): Promise<string>;\r\n}\r\n\r\nexport { }\r\n\n//# sourceMappingURL=platform-browser-dynamic.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/platform-browser-dynamic/testing.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nexport * from './testing/testing';\n"
  },
  {
    "paths": [
      "node_modules/@angular/platform-browser-dynamic/testing/testing.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { CompilerFactory } from '@angular/core';\r\nimport { CompilerOptions } from '@angular/core';\r\nimport { Injector } from '@angular/core';\r\nimport { PlatformRef } from '@angular/core';\r\nimport { StaticProvider } from '@angular/core';\r\nimport { TestComponentRenderer } from '@angular/core/testing';\r\nimport { ɵTestingCompiler } from '@angular/core/testing';\r\nimport { ɵTestingCompilerFactory } from '@angular/core/testing';\r\n\r\n/**\r\n * NgModule for testing.\r\n *\r\n * @publicApi\r\n */\r\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/platform-browser/testing';\nexport declare class BrowserDynamicTestingModule {\r\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<BrowserDynamicTestingModule, never, never, [typeof ɵngcc1.BrowserTestingModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<BrowserDynamicTestingModule>;\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const platformBrowserDynamicTesting: (extraProviders?: StaticProvider[] | undefined) => PlatformRef;\r\n\r\nexport declare const ɵangular_packages_platform_browser_dynamic_testing_testing_a: StaticProvider[];\r\n\r\nexport declare class ɵangular_packages_platform_browser_dynamic_testing_testing_b implements ɵTestingCompilerFactory {\r\n    private _injector;\r\n    private _compilerFactory;\r\n    constructor(_injector: Injector, _compilerFactory: CompilerFactory);\r\n    createTestingCompiler(options: CompilerOptions[]): ɵTestingCompiler;\r\n}\r\n\r\n/**\r\n * A DOM based implementation of the TestComponentRenderer.\r\n */\r\nexport declare class ɵDOMTestComponentRenderer extends TestComponentRenderer {\r\n    private _doc;\r\n    constructor(_doc: any);\r\n    insertRootElement(rootElId: string): void;\r\n}\r\n\r\n/**\r\n * Platform for dynamic tests\r\n *\r\n * @publicApi\r\n */\r\nexport declare const ɵplatformCoreDynamicTesting: (extraProviders?: any[]) => PlatformRef;\r\n\r\nexport { }\r\n\n//# sourceMappingURL=testing.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/router/router.d.ts",
      "node_modules/@angular/router/index.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { AfterContentInit } from '@angular/core';\r\nimport { ApplicationRef } from '@angular/core';\r\nimport { ChangeDetectorRef } from '@angular/core';\r\nimport { Compiler } from '@angular/core';\r\nimport { ComponentFactoryResolver } from '@angular/core';\r\nimport { ComponentRef } from '@angular/core';\r\nimport { ElementRef } from '@angular/core';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { HashLocationStrategy } from '@angular/common';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { Injector } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { LocationStrategy } from '@angular/common';\r\nimport { ModuleWithProviders } from '@angular/core';\r\nimport { NgModuleFactory } from '@angular/core';\r\nimport { NgModuleFactoryLoader } from '@angular/core';\r\nimport { NgProbeToken } 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 { PathLocationStrategy } from '@angular/common';\r\nimport { PlatformLocation } from '@angular/common';\r\nimport { Provider } from '@angular/core';\r\nimport { QueryList } from '@angular/core';\r\nimport { Renderer2 } from '@angular/core';\r\nimport { SimpleChanges } from '@angular/core';\r\nimport { Type } from '@angular/core';\r\nimport { Version } from '@angular/core';\r\nimport { ViewContainerRef } from '@angular/core';\r\nimport { ViewportScroller } from '@angular/common';\r\n\r\n/**\r\n * Provides access to information about a route associated with a component\r\n * that is loaded in an outlet.\r\n * Use to traverse the `RouterState` tree and extract information from nodes.\r\n *\r\n * {@example router/activated-route/module.ts region=\"activated-route\"\r\n *     header=\"activated-route.component.ts\"}\r\n *\r\n * @publicApi\r\n */\r\nimport * as ɵngcc0 from '@angular/core';\nexport declare class ActivatedRoute {\r\n    /** An observable of the URL segments matched by this route. */\r\n    url: Observable<UrlSegment[]>;\r\n    /** An observable of the matrix parameters scoped to this route. */\r\n    params: Observable<Params>;\r\n    /** An observable of the query parameters shared by all the routes. */\r\n    queryParams: Observable<Params>;\r\n    /** An observable of the URL fragment shared by all the routes. */\r\n    fragment: Observable<string>;\r\n    /** An observable of the static and resolved data of this route. */\r\n    data: Observable<Data>;\r\n    /** The outlet name of the route, a constant. */\r\n    outlet: string;\r\n    /** The component of the route, a constant. */\r\n    component: Type<any> | string | null;\r\n    /** The current snapshot of this route */\r\n    snapshot: ActivatedRouteSnapshot;\r\n    /** The configuration used to match this route. */\r\n    readonly routeConfig: Route | null;\r\n    /** The root of the router state. */\r\n    readonly root: ActivatedRoute;\r\n    /** The parent of this route in the router state tree. */\r\n    readonly parent: ActivatedRoute | null;\r\n    /** The first child of this route in the router state tree. */\r\n    readonly firstChild: ActivatedRoute | null;\r\n    /** The children of this route in the router state tree. */\r\n    readonly children: ActivatedRoute[];\r\n    /** The path from the root of the router state tree to this route. */\r\n    readonly pathFromRoot: ActivatedRoute[];\r\n    /** An Observable that contains a map of the required and optional parameters\r\n     * specific to the route.\r\n     * The map supports retrieving single and multiple values from the same parameter. */\r\n    readonly paramMap: Observable<ParamMap>;\r\n    /**\r\n     * An Observable that contains a map of the query parameters available to all routes.\r\n     * The map supports retrieving single and multiple values from the query parameter.\r\n     */\r\n    readonly queryParamMap: Observable<ParamMap>;\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Contains the information about a route associated with a component loaded in an\r\n * outlet at a particular moment in time. ActivatedRouteSnapshot can also be used to\r\n * traverse the router state tree.\r\n *\r\n * ```\r\n * @Component({templateUrl:'./my-component.html'})\r\n * class MyComponent {\r\n *   constructor(route: ActivatedRoute) {\r\n *     const id: string = route.snapshot.params.id;\r\n *     const url: string = route.snapshot.url.join('');\r\n *     const user = route.snapshot.data.user;\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ActivatedRouteSnapshot {\r\n    /** The URL segments matched by this route */\r\n    url: UrlSegment[];\r\n    /** The matrix parameters scoped to this route */\r\n    params: Params;\r\n    /** The query parameters shared by all the routes */\r\n    queryParams: Params;\r\n    /** The URL fragment shared by all the routes */\r\n    fragment: string;\r\n    /** The static and resolved data of this route */\r\n    data: Data;\r\n    /** The outlet name of the route */\r\n    outlet: string;\r\n    /** The component of the route */\r\n    component: Type<any> | string | null;\r\n    /** The configuration used to match this route **/\r\n    readonly routeConfig: Route | null;\r\n    /** The root of the router state */\r\n    readonly root: ActivatedRouteSnapshot;\r\n    /** The parent of this route in the router state tree */\r\n    readonly parent: ActivatedRouteSnapshot | null;\r\n    /** The first child of this route in the router state tree */\r\n    readonly firstChild: ActivatedRouteSnapshot | null;\r\n    /** The children of this route in the router state tree */\r\n    readonly children: ActivatedRouteSnapshot[];\r\n    /** The path from the root of the router state tree to this route */\r\n    readonly pathFromRoot: ActivatedRouteSnapshot[];\r\n    readonly paramMap: ParamMap;\r\n    readonly queryParamMap: ParamMap;\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * An event triggered at the end of the activation part\r\n * of the Resolve phase of routing.\r\n * @see `ActivationStart`\r\n * @see `ResolveStart`\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ActivationEnd {\r\n    /** @docsNotRequired */\r\n    snapshot: ActivatedRouteSnapshot;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    snapshot: ActivatedRouteSnapshot);\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * An event triggered at the start of the activation part\r\n * of the Resolve phase of routing.\r\n * @see ActivationEnd`\r\n * @see `ResolveStart`\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ActivationStart {\r\n    /** @docsNotRequired */\r\n    snapshot: ActivatedRouteSnapshot;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    snapshot: ActivatedRouteSnapshot);\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Interface that a class can implement to be a guard deciding if a route can be activated.\r\n * If all guards return `true`, navigation will continue. If any guard returns `false`,\r\n * navigation will be cancelled. If any guard returns a `UrlTree`, current navigation will\r\n * be cancelled and a new navigation will be kicked off to the `UrlTree` returned from the\r\n * guard.\r\n *\r\n * ```\r\n * class UserToken {}\r\n * class Permissions {\r\n *   canActivate(user: UserToken, id: string): boolean {\r\n *     return true;\r\n *   }\r\n * }\r\n *\r\n * @Injectable()\r\n * class CanActivateTeam implements CanActivate {\r\n *   constructor(private permissions: Permissions, private currentUser: UserToken) {}\r\n *\r\n *   canActivate(\r\n *     route: ActivatedRouteSnapshot,\r\n *     state: RouterStateSnapshot\r\n *   ): Observable<boolean|UrlTree>|Promise<boolean|UrlTree>|boolean|UrlTree {\r\n *     return this.permissions.canActivate(this.currentUser, route.params.id);\r\n *   }\r\n * }\r\n *\r\n * @NgModule({\r\n *   imports: [\r\n *     RouterModule.forRoot([\r\n *       {\r\n *         path: 'team/:id',\r\n *         component: TeamComponent,\r\n *         canActivate: [CanActivateTeam]\r\n *       }\r\n *     ])\r\n *   ],\r\n *   providers: [CanActivateTeam, UserToken, Permissions]\r\n * })\r\n * class AppModule {}\r\n * ```\r\n *\r\n * You can alternatively provide a function with the `canActivate` signature:\r\n *\r\n * ```\r\n * @NgModule({\r\n *   imports: [\r\n *     RouterModule.forRoot([\r\n *       {\r\n *         path: 'team/:id',\r\n *         component: TeamComponent,\r\n *         canActivate: ['canActivateTeam']\r\n *       }\r\n *     ])\r\n *   ],\r\n *   providers: [\r\n *     {\r\n *       provide: 'canActivateTeam',\r\n *       useValue: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => true\r\n *     }\r\n *   ]\r\n * })\r\n * class AppModule {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface CanActivate {\r\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Interface that a class can implement to be a guard deciding if a child route can be activated.\r\n * If all guards return `true`, navigation will continue. If any guard returns `false`,\r\n * navigation will be cancelled. If any guard returns a `UrlTree`, current navigation will\r\n * be cancelled and a new navigation will be kicked off to the `UrlTree` returned from the\r\n * guard.\r\n *\r\n * ```\r\n * class UserToken {}\r\n * class Permissions {\r\n *   canActivate(user: UserToken, id: string): boolean {\r\n *     return true;\r\n *   }\r\n * }\r\n *\r\n * @Injectable()\r\n * class CanActivateTeam implements CanActivateChild {\r\n *   constructor(private permissions: Permissions, private currentUser: UserToken) {}\r\n *\r\n *   canActivateChild(\r\n *     route: ActivatedRouteSnapshot,\r\n *     state: RouterStateSnapshot\r\n *   ): Observable<boolean|UrlTree>|Promise<boolean|UrlTree>|boolean|UrlTree {\r\n *     return this.permissions.canActivate(this.currentUser, route.params.id);\r\n *   }\r\n * }\r\n *\r\n * @NgModule({\r\n *   imports: [\r\n *     RouterModule.forRoot([\r\n *       {\r\n *         path: 'root',\r\n *         canActivateChild: [CanActivateTeam],\r\n *         children: [\r\n *           {\r\n *              path: 'team/:id',\r\n *              component: TeamComponent\r\n *           }\r\n *         ]\r\n *       }\r\n *     ])\r\n *   ],\r\n *   providers: [CanActivateTeam, UserToken, Permissions]\r\n * })\r\n * class AppModule {}\r\n * ```\r\n *\r\n * You can alternatively provide a function with the `canActivateChild` signature:\r\n *\r\n * ```\r\n * @NgModule({\r\n *   imports: [\r\n *     RouterModule.forRoot([\r\n *       {\r\n *         path: 'root',\r\n *         canActivateChild: ['canActivateTeam'],\r\n *         children: [\r\n *           {\r\n *             path: 'team/:id',\r\n *             component: TeamComponent\r\n *           }\r\n *         ]\r\n *       }\r\n *     ])\r\n *   ],\r\n *   providers: [\r\n *     {\r\n *       provide: 'canActivateTeam',\r\n *       useValue: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => true\r\n *     }\r\n *   ]\r\n * })\r\n * class AppModule {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface CanActivateChild {\r\n    canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Interface that a class can implement to be a guard deciding if a route can be deactivated.\r\n * If all guards return `true`, navigation will continue. If any guard returns `false`,\r\n * navigation will be cancelled. If any guard returns a `UrlTree`, current navigation will\r\n * be cancelled and a new navigation will be kicked off to the `UrlTree` returned from the\r\n * guard.\r\n *\r\n * ```\r\n * class UserToken {}\r\n * class Permissions {\r\n *   canDeactivate(user: UserToken, id: string): boolean {\r\n *     return true;\r\n *   }\r\n * }\r\n *\r\n * @Injectable()\r\n * class CanDeactivateTeam implements CanDeactivate<TeamComponent> {\r\n *   constructor(private permissions: Permissions, private currentUser: UserToken) {}\r\n *\r\n *   canDeactivate(\r\n *     component: TeamComponent,\r\n *     currentRoute: ActivatedRouteSnapshot,\r\n *     currentState: RouterStateSnapshot,\r\n *     nextState: RouterStateSnapshot\r\n *   ): Observable<boolean|UrlTree>|Promise<boolean|UrlTree>|boolean|UrlTree {\r\n *     return this.permissions.canDeactivate(this.currentUser, route.params.id);\r\n *   }\r\n * }\r\n *\r\n * @NgModule({\r\n *   imports: [\r\n *     RouterModule.forRoot([\r\n *       {\r\n *         path: 'team/:id',\r\n *         component: TeamComponent,\r\n *         canDeactivate: [CanDeactivateTeam]\r\n *       }\r\n *     ])\r\n *   ],\r\n *   providers: [CanDeactivateTeam, UserToken, Permissions]\r\n * })\r\n * class AppModule {}\r\n * ```\r\n *\r\n * You can alternatively provide a function with the `canDeactivate` signature:\r\n *\r\n * ```\r\n * @NgModule({\r\n *   imports: [\r\n *     RouterModule.forRoot([\r\n *       {\r\n *         path: 'team/:id',\r\n *         component: TeamComponent,\r\n *         canDeactivate: ['canDeactivateTeam']\r\n *       }\r\n *     ])\r\n *   ],\r\n *   providers: [\r\n *     {\r\n *       provide: 'canDeactivateTeam',\r\n *       useValue: (component: TeamComponent, currentRoute: ActivatedRouteSnapshot, currentState:\r\n * RouterStateSnapshot, nextState: RouterStateSnapshot) => true\r\n *     }\r\n *   ]\r\n * })\r\n * class AppModule {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface CanDeactivate<T> {\r\n    canDeactivate(component: T, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Interface that a class can implement to be a guard deciding if children can be loaded.\r\n *\r\n * ```\r\n * class UserToken {}\r\n * class Permissions {\r\n *   canLoadChildren(user: UserToken, id: string, segments: UrlSegment[]): boolean {\r\n *     return true;\r\n *   }\r\n * }\r\n *\r\n * @Injectable()\r\n * class CanLoadTeamSection implements CanLoad {\r\n *   constructor(private permissions: Permissions, private currentUser: UserToken) {}\r\n *\r\n *   canLoad(route: Route, segments: UrlSegment[]): Observable<boolean>|Promise<boolean>|boolean {\r\n *     return this.permissions.canLoadChildren(this.currentUser, route, segments);\r\n *   }\r\n * }\r\n *\r\n * @NgModule({\r\n *   imports: [\r\n *     RouterModule.forRoot([\r\n *       {\r\n *         path: 'team/:id',\r\n *         component: TeamComponent,\r\n *         loadChildren: 'team.js',\r\n *         canLoad: [CanLoadTeamSection]\r\n *       }\r\n *     ])\r\n *   ],\r\n *   providers: [CanLoadTeamSection, UserToken, Permissions]\r\n * })\r\n * class AppModule {}\r\n * ```\r\n *\r\n * You can alternatively provide a function with the `canLoad` signature:\r\n *\r\n * ```\r\n * @NgModule({\r\n *   imports: [\r\n *     RouterModule.forRoot([\r\n *       {\r\n *         path: 'team/:id',\r\n *         component: TeamComponent,\r\n *         loadChildren: 'team.js',\r\n *         canLoad: ['canLoadTeamSection']\r\n *       }\r\n *     ])\r\n *   ],\r\n *   providers: [\r\n *     {\r\n *       provide: 'canLoadTeamSection',\r\n *       useValue: (route: Route, segments: UrlSegment[]) => true\r\n *     }\r\n *   ]\r\n * })\r\n * class AppModule {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface CanLoad {\r\n    canLoad(route: Route, segments: UrlSegment[]): Observable<boolean> | Promise<boolean> | boolean;\r\n}\r\n\r\n/**\r\n * An event triggered at the end of the child-activation part\r\n * of the Resolve phase of routing.\r\n * @see `ChildActivationStart`\r\n * @see `ResolveStart` *\r\n * @publicApi\r\n */\r\nexport declare class ChildActivationEnd {\r\n    /** @docsNotRequired */\r\n    snapshot: ActivatedRouteSnapshot;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    snapshot: ActivatedRouteSnapshot);\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * An event triggered at the start of the child-activation\r\n * part of the Resolve phase of routing.\r\n * @see  `ChildActivationEnd`\r\n * @see `ResolveStart`\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ChildActivationStart {\r\n    /** @docsNotRequired */\r\n    snapshot: ActivatedRouteSnapshot;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    snapshot: ActivatedRouteSnapshot);\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * Store contextual information about the children (= nested) `RouterOutlet`\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ChildrenOutletContexts {\r\n    private contexts;\r\n    /** Called when a `RouterOutlet` directive is instantiated */\r\n    onChildOutletCreated(childName: string, outlet: RouterOutlet): void;\r\n    /**\r\n     * Called when a `RouterOutlet` directive is destroyed.\r\n     * We need to keep the context as the outlet could be destroyed inside a NgIf and might be\r\n     * re-created later.\r\n     */\r\n    onChildOutletDestroyed(childName: string): void;\r\n    /**\r\n     * Called when the corresponding route is deactivated during navigation.\r\n     * Because the component get destroyed, all children outlet are destroyed.\r\n     */\r\n    onOutletDeactivated(): Map<string, OutletContext>;\r\n    onOutletReAttached(contexts: Map<string, OutletContext>): void;\r\n    getOrCreateContext(childName: string): OutletContext;\r\n    getContext(childName: string): OutletContext | null;\r\n}\r\n\r\n/**\r\n * Converts a `Params` instance to a `ParamMap`.\r\n * @param params The instance to convert.\r\n * @returns The new map instance.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function convertToParamMap(params: Params): ParamMap;\r\n\r\n/**\r\n *\r\n * Represents static data associated with a particular route.\r\n *\r\n * @see `Route#data`\r\n *\r\n * @publicApi\r\n */\r\nexport declare type Data = {\r\n    [name: string]: any;\r\n};\r\n\r\n/**\r\n * @description\r\n *\r\n * A default implementation of the `UrlSerializer`.\r\n *\r\n * Example URLs:\r\n *\r\n * ```\r\n * /inbox/33(popup:compose)\r\n * /inbox/33;open=true/messages/44\r\n * ```\r\n *\r\n * DefaultUrlSerializer uses parentheses to serialize secondary segments (e.g., popup:compose), the\r\n * colon syntax to specify the outlet, and the ';parameter=value' syntax (e.g., open=true) to\r\n * specify route specific parameters.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class DefaultUrlSerializer implements UrlSerializer {\r\n    /** Parses a url into a `UrlTree` */\r\n    parse(url: string): UrlTree;\r\n    /** Converts a `UrlTree` into a url */\r\n    serialize(tree: UrlTree): string;\r\n}\r\n\r\n/**\r\n * A string of the form `path/to/file#exportName` that acts as a URL for a set of routes to load.\r\n *\r\n * @see `Route#loadChildren`\r\n * @publicApi\r\n * @deprecated the `string` form of `loadChildren` is deprecated in favor of the proposed ES dynamic\r\n * `import()` expression, which offers a more natural and standards-based mechanism to dynamically\r\n * load an ES module at runtime.\r\n */\r\nexport declare type DeprecatedLoadChildren = string;\r\n\r\n/**\r\n * @description\r\n *\r\n * Represents the detached route tree.\r\n *\r\n * This is an opaque value the router will give to a custom route reuse strategy\r\n * to store and retrieve later on.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type DetachedRouteHandle = {};\r\n\r\n/**\r\n * Error handler that is invoked when a navigation error occurs.\r\n *\r\n * If the handler returns a value, the navigation promise is resolved with this value.\r\n * If the handler throws an exception, the navigation promise is rejected with\r\n * the exception.\r\n *\r\n * @publicApi\r\n */\r\ndeclare type ErrorHandler = (error: any) => any;\r\n\r\n/**\r\n * Router events that allow you to track the lifecycle of the router.\r\n *\r\n * The sequence of router events is as follows:\r\n *\r\n * - `NavigationStart`,\r\n * - `RouteConfigLoadStart`,\r\n * - `RouteConfigLoadEnd`,\r\n * - `RoutesRecognized`,\r\n * - `GuardsCheckStart`,\r\n * - `ChildActivationStart`,\r\n * - `ActivationStart`,\r\n * - `GuardsCheckEnd`,\r\n * - `ResolveStart`,\r\n * - `ResolveEnd`,\r\n * - `ActivationEnd`\r\n * - `ChildActivationEnd`\r\n * - `NavigationEnd`,\r\n * - `NavigationCancel`,\r\n * - `NavigationError`\r\n * - `Scroll`\r\n *\r\n * @publicApi\r\n */\r\nexport declare type Event = RouterEvent | RouteConfigLoadStart | RouteConfigLoadEnd | ChildActivationStart | ChildActivationEnd | ActivationStart | ActivationEnd | Scroll;\r\n\r\n/**\r\n * A set of configuration options for a router module, provided in the\r\n * `forRoot()` method.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ExtraOptions {\r\n    /**\r\n     * When true, log all internal navigation events to the console.\r\n     * Use for debugging.\r\n     */\r\n    enableTracing?: boolean;\r\n    /**\r\n     * When true, enable the location strategy that uses the URL fragment\r\n     * instead of the history API.\r\n     */\r\n    useHash?: boolean;\r\n    /**\r\n     * One of `enabled` or `disabled`.\r\n     * When set to `enabled`, the initial navigation starts before the root component is created.\r\n     * The bootstrap is blocked until the initial navigation is complete. This value is required for\r\n     * [server-side rendering](guide/universal) to work.\r\n     * When set to `disabled`, the initial navigation is not performed.\r\n     * The location listener is set up before the root component gets created.\r\n     * Use if there is a reason to have more control over when the router\r\n     * starts its initial navigation due to some complex initialization logic.\r\n     *\r\n     * Legacy values are deprecated since v4 and should not be used for new applications:\r\n     *\r\n     * * `legacy_enabled` - Default for compatibility.\r\n     * The initial navigation starts after the root component has been created,\r\n     * but the bootstrap is not blocked until the initial navigation is complete.\r\n     * * `legacy_disabled` - The initial navigation is not performed.\r\n     * The location listener is set up after the root component gets created.\r\n     * * `true` - same as `legacy_enabled`.\r\n     * * `false` - same as `legacy_disabled`.\r\n     */\r\n    initialNavigation?: InitialNavigation;\r\n    /**\r\n     * A custom error handler for failed navigations.\r\n     */\r\n    errorHandler?: ErrorHandler;\r\n    /**\r\n     * Configures a preloading strategy.\r\n     * One of `PreloadAllModules` or `NoPreloading` (the default).\r\n     */\r\n    preloadingStrategy?: any;\r\n    /**\r\n     * Define what the router should do if it receives a navigation request to the current URL.\r\n     * Default is `ignore`, which causes the router ignores the navigation.\r\n     * This can disable features such as a \"refresh\" button.\r\n     * Use this option to configure the behavior when navigating to the\r\n     * current URL. Default is 'ignore'.\r\n     */\r\n    onSameUrlNavigation?: 'reload' | 'ignore';\r\n    /**\r\n     * Configures if the scroll position needs to be restored when navigating back.\r\n     *\r\n     * * 'disabled'- (Default) Does nothing. Scroll position is maintained on navigation.\r\n     * * 'top'- Sets the scroll position to x = 0, y = 0 on all navigation.\r\n     * * 'enabled'- Restores the previous scroll position on backward navigation, else sets the\r\n     * position to the anchor if one is provided, or sets the scroll position to [0, 0] (forward\r\n     * navigation). This option will be the default in the future.\r\n     *\r\n     * You can implement custom scroll restoration behavior by adapting the enabled behavior as\r\n     * in the following example.\r\n     *\r\n     * ```typescript\r\n     * class AppModule {\r\n     *   constructor(router: Router, viewportScroller: ViewportScroller) {\r\n     *     router.events.pipe(\r\n     *       filter((e: Event): e is Scroll => e instanceof Scroll)\r\n     *     ).subscribe(e => {\r\n     *       if (e.position) {\r\n     *         // backward navigation\r\n     *         viewportScroller.scrollToPosition(e.position);\r\n     *       } else if (e.anchor) {\r\n     *         // anchor navigation\r\n     *         viewportScroller.scrollToAnchor(e.anchor);\r\n     *       } else {\r\n     *         // forward navigation\r\n     *         viewportScroller.scrollToPosition([0, 0]);\r\n     *       }\r\n     *     });\r\n     *   }\r\n     * }\r\n     * ```\r\n     */\r\n    scrollPositionRestoration?: 'disabled' | 'enabled' | 'top';\r\n    /**\r\n     * When set to 'enabled', scrolls to the anchor element when the URL has a fragment.\r\n     * Anchor scrolling is disabled by default.\r\n     *\r\n     * Anchor scrolling does not happen on 'popstate'. Instead, we restore the position\r\n     * that we stored or scroll to the top.\r\n     */\r\n    anchorScrolling?: 'disabled' | 'enabled';\r\n    /**\r\n     * Configures the scroll offset the router will use when scrolling to an element.\r\n     *\r\n     * When given a tuple with x and y position value,\r\n     * the router uses that offset each time it scrolls.\r\n     * When given a function, the router invokes the function every time\r\n     * it restores scroll position.\r\n     */\r\n    scrollOffset?: [number, number] | (() => [number, number]);\r\n    /**\r\n     * Defines how the router merges parameters, data, and resolved data from parent to child\r\n     * routes. By default ('emptyOnly'), inherits parent parameters only for\r\n     * path-less or component-less routes.\r\n     * Set to 'always' to enable unconditional inheritance of parent parameters.\r\n     */\r\n    paramsInheritanceStrategy?: 'emptyOnly' | 'always';\r\n    /**\r\n     * A custom handler for malformed URI errors. The handler is invoked when `encodedURI` contains\r\n     * invalid character sequences.\r\n     * The default implementation is to redirect to the root URL, dropping\r\n     * any path or parameter information. The function takes three parameters:\r\n     *\r\n     * - `'URIError'` - Error thrown when parsing a bad URL.\r\n     * - `'UrlSerializer'` - UrlSerializer that’s configured with the router.\r\n     * - `'url'` -  The malformed URL that caused the URIError\r\n     * */\r\n    malformedUriErrorHandler?: (error: URIError, urlSerializer: UrlSerializer, url: string) => UrlTree;\r\n    /**\r\n     * Defines when the router updates the browser URL. By default ('deferred'),\r\n     * update after successful navigation.\r\n     * Set to 'eager' if prefer to update the URL at the beginning of navigation.\r\n     * Updating the URL early allows you to handle a failure of navigation by\r\n     * showing an error message with the URL that failed.\r\n     */\r\n    urlUpdateStrategy?: 'deferred' | 'eager';\r\n    /**\r\n     * Enables a bug fix that corrects relative link resolution in components with empty paths.\r\n     * Example:\r\n     *\r\n     * ```\r\n     * const routes = [\r\n     *   {\r\n     *     path: '',\r\n     *     component: ContainerComponent,\r\n     *     children: [\r\n     *       { path: 'a', component: AComponent },\r\n     *       { path: 'b', component: BComponent },\r\n     *     ]\r\n     *   }\r\n     * ];\r\n     * ```\r\n     *\r\n     * From the `ContainerComponent`, this will not work:\r\n     *\r\n     * `<a [routerLink]=\"['./a']\">Link to A</a>`\r\n     *\r\n     * However, this will work:\r\n     *\r\n     * `<a [routerLink]=\"['../a']\">Link to A</a>`\r\n     *\r\n     * In other words, you're required to use `../` rather than `./`. This is currently the default\r\n     * behavior. Setting this option to `corrected` enables the fix.\r\n     */\r\n    relativeLinkResolution?: 'legacy' | 'corrected';\r\n}\r\n\r\n/**\r\n * An event triggered at the end of the Guard phase of routing.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class GuardsCheckEnd extends RouterEvent {\r\n    /** @docsNotRequired */\r\n    urlAfterRedirects: string;\r\n    /** @docsNotRequired */\r\n    state: RouterStateSnapshot;\r\n    /** @docsNotRequired */\r\n    shouldActivate: boolean;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    id: number, \r\n    /** @docsNotRequired */\r\n    url: string, \r\n    /** @docsNotRequired */\r\n    urlAfterRedirects: string, \r\n    /** @docsNotRequired */\r\n    state: RouterStateSnapshot, \r\n    /** @docsNotRequired */\r\n    shouldActivate: boolean);\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * An event triggered at the start of the Guard phase of routing.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class GuardsCheckStart extends RouterEvent {\r\n    /** @docsNotRequired */\r\n    urlAfterRedirects: string;\r\n    /** @docsNotRequired */\r\n    state: RouterStateSnapshot;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    id: number, \r\n    /** @docsNotRequired */\r\n    url: string, \r\n    /** @docsNotRequired */\r\n    urlAfterRedirects: string, \r\n    /** @docsNotRequired */\r\n    state: RouterStateSnapshot);\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * Allowed values in an `ExtraOptions` object that configure\r\n * when the router performs the initial navigation operation.\r\n *\r\n * * 'enabled' - The initial navigation starts before the root component is created.\r\n * The bootstrap is blocked until the initial navigation is complete. This value is required\r\n * for [server-side rendering](guide/universal) to work.\r\n * * 'disabled' - The initial navigation is not performed. The location listener is set up before\r\n * the root component gets created. Use if there is a reason to have\r\n * more control over when the router starts its initial navigation due to some complex\r\n * initialization logic.\r\n * * 'legacy_enabled'- (Default, for compatibility.) The initial navigation starts after the root component has been created.\r\n * The bootstrap is not blocked until the initial navigation is complete. @deprecated\r\n * * 'legacy_disabled'- The initial navigation is not performed. The location listener is set up\r\n * after the root component gets created. @deprecated since v4\r\n * * `true` - same as 'legacy_enabled'. @deprecated since v4\r\n * * `false` - same as 'legacy_disabled'. @deprecated since v4\r\n *\r\n * The 'legacy_enabled' and 'legacy_disabled' should not be used for new applications.\r\n *\r\n * @see `forRoot()`\r\n *\r\n * @publicApi\r\n */\r\nexport declare type InitialNavigation = true | false | 'enabled' | 'disabled' | 'legacy_enabled' | 'legacy_disabled';\r\n\r\n/**\r\n *\r\n * A string of the form `path/to/file#exportName` that acts as a URL for a set of routes to load,\r\n * or a function that returns such a set.\r\n *\r\n * The string form of `LoadChildren` is deprecated (see `DeprecatedLoadChildren`). The function\r\n * form (`LoadChildrenCallback`) should be used instead.\r\n *\r\n * @see `Route#loadChildren`.\r\n * @publicApi\r\n */\r\nexport declare type LoadChildren = LoadChildrenCallback | DeprecatedLoadChildren;\r\n\r\n/**\r\n *\r\n * A function that is called to resolve a collection of lazy-loaded routes.\r\n *\r\n * Often this function will be implemented using an ES dynamic `import()` expression. For example:\r\n *\r\n * ```\r\n * [{\r\n *   path: 'lazy',\r\n *   loadChildren: () => import('./lazy-route/lazy.module').then(mod => mod.LazyModule),\r\n * }];\r\n * ```\r\n *\r\n * This function _must_ match the form above: an arrow function of the form\r\n * `() => import('...').then(mod => mod.MODULE)`.\r\n *\r\n * @see `Route#loadChildren`.\r\n * @publicApi\r\n */\r\nexport declare type LoadChildrenCallback = () => Type<any> | NgModuleFactory<any> | Observable<Type<any>> | Promise<NgModuleFactory<any> | Type<any> | any>;\r\n\r\n/**\r\n * Information about a navigation operation. Retrieve the most recent\r\n * navigation object with the `router.getCurrentNavigation()` method.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type Navigation = {\r\n    /**\r\n     * The ID of the current navigation.\r\n     */\r\n    id: number;\r\n    /**\r\n     * The target URL passed into the `Router#navigateByUrl()` call before navigation. This is\r\n     * the value before the router has parsed or applied redirects to it.\r\n     */\r\n    initialUrl: string | UrlTree;\r\n    /**\r\n     * The initial target URL after being parsed with `UrlSerializer.extract()`.\r\n     */\r\n    extractedUrl: UrlTree;\r\n    /**\r\n     * The extracted URL after redirects have been applied.\r\n     * This URL may not be available immediately, therefore this property can be `undefined`.\r\n     * It is guaranteed to be set after the `RoutesRecognized` event fires.\r\n     */\r\n    finalUrl?: UrlTree;\r\n    /**\r\n     * Identifies how this navigation was triggered.\r\n     *\r\n     * * 'imperative'--Triggered by `router.navigateByUrl` or `router.navigate`.\r\n     * * 'popstate'--Triggered by a popstate event.\r\n     * * 'hashchange'--Triggered by a hashchange event.\r\n     */\r\n    trigger: 'imperative' | 'popstate' | 'hashchange';\r\n    /**\r\n     * Options that controlled the strategy used for this navigation.\r\n     * See `NavigationExtras`.\r\n     */\r\n    extras: NavigationExtras;\r\n    /**\r\n     * The previously successful `Navigation` object. Only one previous navigation\r\n     * is available, therefore this previous `Navigation` object has a `null` value\r\n     * for its own `previousNavigation`.\r\n     */\r\n    previousNavigation: Navigation | null;\r\n};\r\n\r\n/**\r\n * An event triggered when a navigation is canceled, directly or indirectly.\r\n *\r\n * This can happen when a [route guard](guide/router#milestone-5-route-guards)\r\n * returns `false` or initiates a redirect by returning a `UrlTree`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NavigationCancel extends RouterEvent {\r\n    /** @docsNotRequired */\r\n    reason: string;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    id: number, \r\n    /** @docsNotRequired */\r\n    url: string, \r\n    /** @docsNotRequired */\r\n    reason: string);\r\n    /** @docsNotRequired */\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * An event triggered when a navigation ends successfully.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NavigationEnd extends RouterEvent {\r\n    /** @docsNotRequired */\r\n    urlAfterRedirects: string;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    id: number, \r\n    /** @docsNotRequired */\r\n    url: string, \r\n    /** @docsNotRequired */\r\n    urlAfterRedirects: string);\r\n    /** @docsNotRequired */\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * An event triggered when a navigation fails due to an unexpected error.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NavigationError extends RouterEvent {\r\n    /** @docsNotRequired */\r\n    error: any;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    id: number, \r\n    /** @docsNotRequired */\r\n    url: string, \r\n    /** @docsNotRequired */\r\n    error: any);\r\n    /** @docsNotRequired */\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Options that modify the navigation strategy.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface NavigationExtras {\r\n    /**\r\n     * Specifies a root URI to use for relative navigation.\r\n     *\r\n     * For example, consider the following route configuration where the parent route\r\n     * has two children.\r\n     *\r\n     * ```\r\n     * [{\r\n    *   path: 'parent',\r\n    *   component: ParentComponent,\r\n    *   children: [{\r\n    *     path: 'list',\r\n    *     component: ListComponent\r\n    *   },{\r\n    *     path: 'child',\r\n    *     component: ChildComponent\r\n    *   }]\r\n    * }]\r\n     * ```\r\n     *\r\n     * The following `go()` function navigates to the `list` route by\r\n     * interpreting the destination URI as relative to the activated `child`  route\r\n     *\r\n     * ```\r\n     *  @Component({...})\r\n     *  class ChildComponent {\r\n    *    constructor(private router: Router, private route: ActivatedRoute) {}\r\n    *\r\n    *    go() {\r\n    *      this.router.navigate(['../list'], { relativeTo: this.route });\r\n    *    }\r\n    *  }\r\n     * ```\r\n     */\r\n    relativeTo?: ActivatedRoute | null;\r\n    /**\r\n     * Sets query parameters to the URL.\r\n     *\r\n     * ```\r\n     * // Navigate to /results?page=1\r\n     * this.router.navigate(['/results'], { queryParams: { page: 1 } });\r\n     * ```\r\n     */\r\n    queryParams?: Params | null;\r\n    /**\r\n     * Sets the hash fragment for the URL.\r\n     *\r\n     * ```\r\n     * // Navigate to /results#top\r\n     * this.router.navigate(['/results'], { fragment: 'top' });\r\n     * ```\r\n     */\r\n    fragment?: string;\r\n    /**\r\n     * **DEPRECATED**: Use `queryParamsHandling: \"preserve\"` instead to preserve\r\n     * query parameters for the next navigation.\r\n     *\r\n     * @deprecated since v4\r\n     */\r\n    preserveQueryParams?: boolean;\r\n    /**\r\n     * How to handle query parameters in the router link for the next navigation.\r\n     * One of:\r\n     * * `merge` : Merge new with current parameters.\r\n     * * `preserve` : Preserve current parameters.\r\n     *\r\n     * ```\r\n     * // from /results?page=1 to /view?page=1&page=2\r\n     * this.router.navigate(['/view'], { queryParams: { page: 2 },  queryParamsHandling: \"merge\" });\r\n     * ```\r\n     */\r\n    queryParamsHandling?: QueryParamsHandling | null;\r\n    /**\r\n     * When true, preserves the URL fragment for the next navigation\r\n     *\r\n     * ```\r\n     * // Preserve fragment from /results#top to /view#top\r\n     * this.router.navigate(['/view'], { preserveFragment: true });\r\n     * ```\r\n     */\r\n    preserveFragment?: boolean;\r\n    /**\r\n     * When true, navigates without pushing a new state into history.\r\n     *\r\n     * ```\r\n     * // Navigate silently to /view\r\n     * this.router.navigate(['/view'], { skipLocationChange: true });\r\n     * ```\r\n     */\r\n    skipLocationChange?: boolean;\r\n    /**\r\n     * When true, navigates while replacing the current state in history.\r\n     *\r\n     * ```\r\n     * // Navigate to /view\r\n     * this.router.navigate(['/view'], { replaceUrl: true });\r\n     * ```\r\n     */\r\n    replaceUrl?: boolean;\r\n    /**\r\n     * Developer-defined state that can be passed to any navigation.\r\n     * Access this value through the `Navigation.extras` object\r\n     * returned from `router.getCurrentNavigation()` while a navigation is executing.\r\n     *\r\n     * After a navigation completes, the router writes an object containing this\r\n     * value together with a `navigationId` to `history.state`.\r\n     * The value is written when `location.go()` or `location.replaceState()`\r\n     * is called before activating this route.\r\n     *\r\n     * Note that `history.state` does not pass an object equality test because\r\n     * the router adds the `navigationId` on each navigation.\r\n     */\r\n    state?: {\r\n        [k: string]: any;\r\n    };\r\n}\r\n\r\n/**\r\n * An event triggered when a navigation starts.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NavigationStart extends RouterEvent {\r\n    /**\r\n     * Identifies the call or event that triggered the navigation.\r\n     * An `imperative` trigger is a call to `router.navigateByUrl()` or `router.navigate()`.\r\n     *\r\n     */\r\n    navigationTrigger?: 'imperative' | 'popstate' | 'hashchange';\r\n    /**\r\n     * The navigation state that was previously supplied to the `pushState` call,\r\n     * when the navigation is triggered by a `popstate` event. Otherwise null.\r\n     *\r\n     * The state object is defined by `NavigationExtras`, and contains any\r\n     * developer-defined state value, as well as a unique ID that\r\n     * the router assigns to every router transition/navigation.\r\n     *\r\n     * From the perspective of the router, the router never \"goes back\".\r\n     * When the user clicks on the back button in the browser,\r\n     * a new navigation ID is created.\r\n     *\r\n     * Use the ID in this previous-state object to differentiate between a newly created\r\n     * state and one returned to by a `popstate` event, so that you can restore some\r\n     * remembered state, such as scroll position.\r\n     *\r\n     */\r\n    restoredState?: {\r\n        [k: string]: any;\r\n        navigationId: number;\r\n    } | null;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    id: number, \r\n    /** @docsNotRequired */\r\n    url: string, \r\n    /** @docsNotRequired */\r\n    navigationTrigger?: 'imperative' | 'popstate' | 'hashchange', \r\n    /** @docsNotRequired */\r\n    restoredState?: {\r\n        [k: string]: any;\r\n        navigationId: number;\r\n    } | null);\r\n    /** @docsNotRequired */\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Provides a preloading strategy that does not preload any modules.\r\n *\r\n * This strategy is enabled by default.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class NoPreloading implements PreloadingStrategy {\r\n    preload(route: Route, fn: () => Observable<any>): Observable<any>;\r\n}\r\n\r\n/**\r\n * Store contextual information about a `RouterOutlet`\r\n *\r\n * @publicApi\r\n */\r\nexport declare class OutletContext {\r\n    outlet: RouterOutlet | null;\r\n    route: ActivatedRoute | null;\r\n    resolver: ComponentFactoryResolver | null;\r\n    children: ChildrenOutletContexts;\r\n    attachRef: ComponentRef<any> | null;\r\n}\r\n\r\n/**\r\n * A map that provides access to the required and optional parameters\r\n * specific to a route.\r\n * The map supports retrieving a single value with `get()`\r\n * or multiple values with `getAll()`.\r\n *\r\n * @see [URLSearchParams](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ParamMap {\r\n    /**\r\n     * Reports whether the map contains a given parameter.\r\n     * @param name The parameter name.\r\n     * @returns True if the map contains the given parameter, false otherwise.\r\n     */\r\n    has(name: string): boolean;\r\n    /**\r\n     * Retrieves a single value for a parameter.\r\n     * @param name The parameter name.\r\n     * @return The parameter's single value,\r\n     * or the first value if the parameter has multiple values,\r\n     * or `null` when there is no such parameter.\r\n     */\r\n    get(name: string): string | null;\r\n    /**\r\n     * Retrieves multiple values for a parameter.\r\n     * @param name The parameter name.\r\n     * @return An array containing one or more values,\r\n     * or an empty array if there is no such parameter.\r\n     *\r\n     */\r\n    getAll(name: string): string[];\r\n    /** Names of the parameters in the map. */\r\n    readonly keys: string[];\r\n}\r\n\r\n/**\r\n * A collection of matrix and query URL parameters.\r\n * @see `convertToParamMap()`\r\n * @see `ParamMap`\r\n *\r\n * @publicApi\r\n */\r\nexport declare type Params = {\r\n    [key: string]: any;\r\n};\r\n\r\n/**\r\n * @description\r\n *\r\n * Provides a preloading strategy that preloads all modules as quickly as possible.\r\n *\r\n * ```\r\n * RouteModule.forRoot(ROUTES, {preloadingStrategy: PreloadAllModules})\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class PreloadAllModules implements PreloadingStrategy {\r\n    preload(route: Route, fn: () => Observable<any>): Observable<any>;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Provides a preloading strategy.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class PreloadingStrategy {\r\n    abstract preload(route: Route, fn: () => Observable<any>): Observable<any>;\r\n}\r\n\r\n/**\r\n * The primary routing outlet.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const PRIMARY_OUTLET = \"primary\";\r\n\r\n/**\r\n * Registers a [DI provider](guide/glossary#provider) for a set of routes.\r\n * @param routes The route configuration to provide.\r\n *\r\n * @usageNotes\r\n *\r\n * ```\r\n * @NgModule({\r\n *   imports: [RouterModule.forChild(ROUTES)],\r\n *   providers: [provideRoutes(EXTRA_ROUTES)]\r\n * })\r\n * class MyNgModule {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare function provideRoutes(routes: Routes): any;\r\n\r\n/**\r\n *\r\n * How to handle query parameters in a router link.\r\n * One of:\r\n * - `merge` : Merge new with current parameters.\r\n * - `preserve` : Preserve current parameters.\r\n *\r\n * @see `NavigationExtras#queryParamsHandling`\r\n * @see `RouterLink`\r\n * @publicApi\r\n */\r\nexport declare type QueryParamsHandling = 'merge' | 'preserve' | '';\r\n\r\n/**\r\n * @description\r\n *\r\n * Interface that classes can implement to be a data provider.\r\n * A data provider class can be used with the router to resolve data during navigation.\r\n * The interface defines a `resolve()` method that will be invoked when the navigation starts.\r\n * The router will then wait for the data to be resolved before the route is finally activated.\r\n *\r\n * ```\r\n * @Injectable({ providedIn: 'root' })\r\n * export class HeroResolver implements Resolve<Hero> {\r\n *   constructor(private service: HeroService) {}\r\n *\r\n *   resolve(\r\n *     route: ActivatedRouteSnapshot,\r\n *     state: RouterStateSnapshot\r\n *   ): Observable<any>|Promise<any>|any {\r\n *     return this.service.getHero(route.paramMap.get('id'));\r\n *   }\r\n * }\r\n *\r\n * @NgModule({\r\n *   imports: [\r\n *     RouterModule.forRoot([\r\n *       {\r\n *         path: 'detail/:id',\r\n *         component: HeroDetailComponent,\r\n *         resolve: {\r\n *           hero: HeroResolver\r\n *         }\r\n *       }\r\n *     ])\r\n *   ],\r\n *   exports: [RouterModule]\r\n * })\r\n * export class AppRoutingModule {}\r\n * ```\r\n *\r\n * You can alternatively provide a function with the `resolve` signature:\r\n *\r\n * ```\r\n * export const myHero: Hero = {\r\n *   // ...\r\n * }\r\n *\r\n * @NgModule({\r\n *   imports: [\r\n *     RouterModule.forRoot([\r\n *       {\r\n *         path: 'detail/:id',\r\n *         component: HeroComponent,\r\n *         resolve: {\r\n *           hero: 'heroResolver'\r\n *         }\r\n *       }\r\n *     ])\r\n *   ],\r\n *   providers: [\r\n *     {\r\n *       provide: 'heroResolver',\r\n *       useValue: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => myHero\r\n *     }\r\n *   ]\r\n * })\r\n * export class AppModule {}\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Resolve<T> {\r\n    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<T> | Promise<T> | T;\r\n}\r\n\r\n/**\r\n *\r\n * Represents the resolved data associated with a particular route.\r\n *\r\n * @see `Route#resolve`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type ResolveData = {\r\n    [name: string]: any;\r\n};\r\n\r\n/**\r\n * An event triggered at the end of the Resolve phase of routing.\r\n * @see `ResolveStart`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ResolveEnd extends RouterEvent {\r\n    /** @docsNotRequired */\r\n    urlAfterRedirects: string;\r\n    /** @docsNotRequired */\r\n    state: RouterStateSnapshot;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    id: number, \r\n    /** @docsNotRequired */\r\n    url: string, \r\n    /** @docsNotRequired */\r\n    urlAfterRedirects: string, \r\n    /** @docsNotRequired */\r\n    state: RouterStateSnapshot);\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * An event triggered at the the start of the Resolve phase of routing.\r\n *\r\n * Runs in the \"resolve\" phase whether or not there is anything to resolve.\r\n * In future, may change to only run when there are things to be resolved.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ResolveStart extends RouterEvent {\r\n    /** @docsNotRequired */\r\n    urlAfterRedirects: string;\r\n    /** @docsNotRequired */\r\n    state: RouterStateSnapshot;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    id: number, \r\n    /** @docsNotRequired */\r\n    url: string, \r\n    /** @docsNotRequired */\r\n    urlAfterRedirects: string, \r\n    /** @docsNotRequired */\r\n    state: RouterStateSnapshot);\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * A configuration object that defines a single route.\r\n * A set of routes are collected in a `Routes` array to define a `Router` configuration.\r\n * The router attempts to match segments of a given URL against each route,\r\n * using the configuration options defined in this object.\r\n *\r\n * Supports static, parameterized, redirect, and wildcard routes, as well as\r\n * custom route data and resolve methods.\r\n *\r\n * For detailed usage information, see the [Routing Guide](guide/router).\r\n *\r\n * @usageNotes\r\n *\r\n * ### Simple Configuration\r\n *\r\n * The following route specifies that when navigating to, for example,\r\n * `/team/11/user/bob`, the router creates the 'Team' component\r\n * with the 'User' child component in it.\r\n *\r\n * ```\r\n * [{\r\n *   path: 'team/:id',\r\n  *  component: Team,\r\n *   children: [{\r\n *     path: 'user/:name',\r\n *     component: User\r\n *   }]\r\n * }]\r\n * ```\r\n *\r\n * ### Multiple Outlets\r\n *\r\n * The following route creates sibling components with multiple outlets.\r\n * When navigating to `/team/11(aux:chat/jim)`, the router creates the 'Team' component next to\r\n * the 'Chat' component. The 'Chat' component is placed into the 'aux' outlet.\r\n *\r\n * ```\r\n * [{\r\n *   path: 'team/:id',\r\n *   component: Team\r\n * }, {\r\n *   path: 'chat/:user',\r\n *   component: Chat\r\n *   outlet: 'aux'\r\n * }]\r\n * ```\r\n *\r\n * ### Wild Cards\r\n *\r\n * The following route uses wild-card notation to specify a component\r\n * that is always instantiated regardless of where you navigate to.\r\n *\r\n * ```\r\n * [{\r\n *   path: '**',\r\n *   component: WildcardComponent\r\n * }]\r\n * ```\r\n *\r\n * ### Redirects\r\n *\r\n * The following route uses the `redirectTo` property to ignore a segment of\r\n * a given URL when looking for a child path.\r\n *\r\n * When navigating to '/team/11/legacy/user/jim', the router changes the URL segment\r\n * '/team/11/legacy/user/jim' to '/team/11/user/jim', and then instantiates\r\n * the Team component with the User child component in it.\r\n *\r\n * ```\r\n * [{\r\n *   path: 'team/:id',\r\n *   component: Team,\r\n *   children: [{\r\n *     path: 'legacy/user/:name',\r\n *     redirectTo: 'user/:name'\r\n *   }, {\r\n *     path: 'user/:name',\r\n *     component: User\r\n *   }]\r\n * }]\r\n * ```\r\n *\r\n * The redirect path can be relative, as shown in this example, or absolute.\r\n * If we change the `redirectTo` value in the example to the absolute URL segment '/user/:name',\r\n * the result URL is also absolute, '/user/jim'.\r\n\r\n * ### Empty Path\r\n *\r\n * Empty-path route configurations can be used to instantiate components that do not 'consume'\r\n * any URL segments.\r\n *\r\n * In the following configuration, when navigating to\r\n * `/team/11`, the router instantiates the 'AllUsers' component.\r\n *\r\n * ```\r\n * [{\r\n *   path: 'team/:id',\r\n *   component: Team,\r\n *   children: [{\r\n *     path: '',\r\n *     component: AllUsers\r\n *   }, {\r\n *     path: 'user/:name',\r\n *     component: User\r\n *   }]\r\n * }]\r\n * ```\r\n *\r\n * Empty-path routes can have children. In the following example, when navigating\r\n * to `/team/11/user/jim`, the router instantiates the wrapper component with\r\n * the user component in it.\r\n *\r\n * Note that an empty path route inherits its parent's parameters and data.\r\n *\r\n * ```\r\n * [{\r\n *   path: 'team/:id',\r\n *   component: Team,\r\n *   children: [{\r\n *     path: '',\r\n *     component: WrapperCmp,\r\n *     children: [{\r\n *       path: 'user/:name',\r\n *       component: User\r\n *     }]\r\n *   }]\r\n * }]\r\n * ```\r\n *\r\n * ### Matching Strategy\r\n *\r\n * The default path-match strategy is 'prefix', which means that the router\r\n * checks URL elements from the left to see if the URL matches a specified path.\r\n * For example, '/team/11/user' matches 'team/:id'.\r\n *\r\n * ```\r\n * [{\r\n *   path: '',\r\n *   pathMatch: 'prefix', //default\r\n *   redirectTo: 'main'\r\n * }, {\r\n *   path: 'main',\r\n *   component: Main\r\n * }]\r\n * ```\r\n *\r\n * You can specify the path-match strategy 'full' to make sure that the path\r\n * covers the whole unconsumed URL. It is important to do this when redirecting\r\n * empty-path routes. Otherwise, because an empty path is a prefix of any URL,\r\n * the router would apply the redirect even when navigating to the redirect destination,\r\n * creating an endless loop.\r\n *\r\n * In the following example, supplying the 'full' `pathMatch` strategy ensures\r\n * that the router applies the redirect if and only if navigating to '/'.\r\n *\r\n * ```\r\n * [{\r\n *   path: '',\r\n *   pathMatch: 'full',\r\n *   redirectTo: 'main'\r\n * }, {\r\n *   path: 'main',\r\n *   component: Main\r\n * }]\r\n * ```\r\n *\r\n * ### Componentless Routes\r\n *\r\n * You can share parameters between sibling components.\r\n * For example, suppose that two sibling components should go next to each other,\r\n * and both of them require an ID parameter. You can accomplish this using a route\r\n * that does not specify a component at the top level.\r\n *\r\n * In the following example, 'MainChild' and 'AuxChild' are siblings.\r\n * When navigating to 'parent/10/(a//aux:b)', the route instantiates\r\n * the main child and aux child components next to each other.\r\n * For this to work, the application component must have the primary and aux outlets defined.\r\n *\r\n * ```\r\n * [{\r\n *    path: 'parent/:id',\r\n *    children: [\r\n *      { path: 'a', component: MainChild },\r\n *      { path: 'b', component: AuxChild, outlet: 'aux' }\r\n *    ]\r\n * }]\r\n * ```\r\n *\r\n * The router merges the parameters, data, and resolve of the componentless\r\n * parent into the parameters, data, and resolve of the children.\r\n *\r\n * This is especially useful when child components are defined\r\n * with an empty path string, as in the following example.\r\n * With this configuration, navigating to '/parent/10' creates\r\n * the main child and aux components.\r\n *\r\n * ```\r\n * [{\r\n *    path: 'parent/:id',\r\n *    children: [\r\n *      { path: '', component: MainChild },\r\n *      { path: '', component: AuxChild, outlet: 'aux' }\r\n *    ]\r\n * }]\r\n * ```\r\n *\r\n * ### Lazy Loading\r\n *\r\n * Lazy loading speeds up application load time by splitting the application\r\n * into multiple bundles and loading them on demand.\r\n * To use lazy loading, provide the `loadChildren` property  instead of the `children` property.\r\n *\r\n * Given the following example route, the router will lazy load\r\n * the associated module on demand using the browser native import system.\r\n *\r\n * ```\r\n * [{\r\n *   path: 'lazy',\r\n *   loadChildren: () => import('./lazy-route/lazy.module').then(mod => mod.LazyModule),\r\n * }];\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Route {\r\n    /**\r\n     * The path to match against. Cannot be used together with a custom `matcher` function.\r\n     * A URL string that uses router matching notation.\r\n     * Can be a wild card (`**`) that matches any URL (see Usage Notes below).\r\n     * Default is \"/\" (the root path).\r\n     *\r\n     */\r\n    path?: string;\r\n    /**\r\n     * The path-matching strategy, one of 'prefix' or 'full'.\r\n     * Default is 'prefix'.\r\n     *\r\n     * By default, the router checks URL elements from the left to see if the URL\r\n     * matches a given  path, and stops when there is a match. For example,\r\n     * '/team/11/user' matches 'team/:id'.\r\n     *\r\n     * The path-match strategy 'full' matches against the entire URL.\r\n     * It is important to do this when redirecting empty-path routes.\r\n     * Otherwise, because an empty path is a prefix of any URL,\r\n     * the router would apply the redirect even when navigating\r\n     * to the redirect destination, creating an endless loop.\r\n     *\r\n     */\r\n    pathMatch?: string;\r\n    /**\r\n     * A custom URL-matching function. Cannot be used together with `path`.\r\n     */\r\n    matcher?: UrlMatcher;\r\n    /**\r\n     * The component to instantiate when the path matches.\r\n     * Can be empty if child routes specify components.\r\n     */\r\n    component?: Type<any>;\r\n    /**\r\n     * A URL to which to redirect when a the path matches.\r\n     * Absolute if the URL begins with a slash (/), otherwise relative to the path URL.\r\n     * When not present, router does not redirect.\r\n     */\r\n    redirectTo?: string;\r\n    /**\r\n     * Name of a `RouterOutlet` object where the component can be placed\r\n     * when the path matches.\r\n     */\r\n    outlet?: string;\r\n    /**\r\n     * An array of dependency-injection tokens used to look up `CanActivate()`\r\n     * handlers, in order to determine if the current user is allowed to\r\n     * activate the component. By default, any user can activate.\r\n     */\r\n    canActivate?: any[];\r\n    /**\r\n     * An array of DI tokens used to look up `CanActivateChild()` handlers,\r\n     * in order to determine if the current user is allowed to activate\r\n     * a child of the component. By default, any user can activate a child.\r\n     */\r\n    canActivateChild?: any[];\r\n    /**\r\n     * An array of DI tokens used to look up `CanDeactivate()`\r\n     * handlers, in order to determine if the current user is allowed to\r\n     * deactivate the component. By default, any user can deactivate.\r\n     *\r\n     */\r\n    canDeactivate?: any[];\r\n    /**\r\n     * An array of DI tokens used to look up `CanLoad()`\r\n     * handlers, in order to determine if the current user is allowed to\r\n     * load the component. By default, any user can load.\r\n     */\r\n    canLoad?: any[];\r\n    /**\r\n     * Additional developer-defined data provided to the component via\r\n     * `ActivatedRoute`. By default, no additional data is passed.\r\n     */\r\n    data?: Data;\r\n    /**\r\n     * A map of DI tokens used to look up data resolvers. See `Resolve`.\r\n     */\r\n    resolve?: ResolveData;\r\n    /**\r\n     * An array of child `Route` objects that specifies a nested route\r\n     * configuration.\r\n     */\r\n    children?: Routes;\r\n    /**\r\n     * A `LoadChildren` object specifying lazy-loaded child routes.\r\n     */\r\n    loadChildren?: LoadChildren;\r\n    /**\r\n     * Defines when guards and resolvers will be run. One of\r\n     * - `paramsOrQueryParamsChange` : Run when query parameters change.\r\n     * - `always` : Run on every execution.\r\n     * By default, guards and resolvers run only when the matrix\r\n     * parameters of the route change.\r\n     */\r\n    runGuardsAndResolvers?: RunGuardsAndResolvers;\r\n}\r\n\r\n/**\r\n * An event triggered when a route has been lazy loaded.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class RouteConfigLoadEnd {\r\n    /** @docsNotRequired */\r\n    route: Route;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    route: Route);\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * An event triggered before lazy loading a route configuration.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class RouteConfigLoadStart {\r\n    /** @docsNotRequired */\r\n    route: Route;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    route: Route);\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * A service that provides navigation and URL manipulation capabilities.\r\n *\r\n * @see `Route`.\r\n * @see [Routing and Navigation Guide](guide/router).\r\n *\r\n * @ngModule RouterModule\r\n *\r\n * @publicApi\r\n */\r\nexport declare class Router {\r\n    private rootComponentType;\r\n    private urlSerializer;\r\n    private rootContexts;\r\n    private location;\r\n    config: Routes;\r\n    private currentUrlTree;\r\n    private rawUrlTree;\r\n    private browserUrlTree;\r\n    private readonly transitions;\r\n    private navigations;\r\n    private lastSuccessfulNavigation;\r\n    private currentNavigation;\r\n    private locationSubscription;\r\n    private navigationId;\r\n    private configLoader;\r\n    private ngModule;\r\n    private console;\r\n    private isNgZoneEnabled;\r\n    /**\r\n     * An event stream for routing events in this NgModule.\r\n     */\r\n    readonly events: Observable<Event>;\r\n    /**\r\n     * The current state of routing in this NgModule.\r\n     */\r\n    readonly routerState: RouterState;\r\n    /**\r\n     * A handler for navigation errors in this NgModule.\r\n     */\r\n    errorHandler: ErrorHandler;\r\n    /**\r\n     * A handler for errors thrown by `Router.parseUrl(url)`\r\n     * when `url` contains an invalid character.\r\n     * The most common case is a `%` sign\r\n     * that's not encoded and is not part of a percent encoded sequence.\r\n     */\r\n    malformedUriErrorHandler: (error: URIError, urlSerializer: UrlSerializer, url: string) => UrlTree;\r\n    /**\r\n     * True if at least one navigation event has occurred,\r\n     * false otherwise.\r\n     */\r\n    navigated: boolean;\r\n    private lastSuccessfulId;\r\n    /**\r\n     * A strategy for extracting and merging URLs.\r\n     * Used for AngularJS to Angular migrations.\r\n     */\r\n    urlHandlingStrategy: UrlHandlingStrategy;\r\n    /**\r\n     * A strategy for re-using routes.\r\n     */\r\n    routeReuseStrategy: RouteReuseStrategy;\r\n    /**\r\n     * How to handle a navigation request to the current URL. One of:\r\n     * - `'ignore'` :  The router ignores the request.\r\n     * - `'reload'` : The router reloads the URL. Use to implement a \"refresh\" feature.\r\n     */\r\n    onSameUrlNavigation: 'reload' | 'ignore';\r\n    /**\r\n     * How to merge parameters, data, and resolved data from parent to child\r\n     * routes. One of:\r\n     *\r\n     * - `'emptyOnly'` : Inherit parent parameters, data, and resolved data\r\n     * for path-less or component-less routes.\r\n     * - `'always'` : Inherit parent parameters, data, and resolved data\r\n     * for all child routes.\r\n     */\r\n    paramsInheritanceStrategy: 'emptyOnly' | 'always';\r\n    /**\r\n     * Determines when the router updates the browser URL.\r\n     * By default (`\"deferred\"`), updates the browser URL after navigation has finished.\r\n     * Set to `'eager'` to update the browser URL at the beginning of navigation.\r\n     * You can choose to update early so that, if navigation fails,\r\n     * you can show an error message with the URL that failed.\r\n     */\r\n    urlUpdateStrategy: 'deferred' | 'eager';\r\n    /**\r\n     * Enables a bug fix that corrects relative link resolution in components with empty paths.\r\n     * @see `RouterModule`\r\n     */\r\n    relativeLinkResolution: 'legacy' | 'corrected';\r\n    /**\r\n     * Creates the router service.\r\n     */\r\n    constructor(rootComponentType: Type<any> | null, urlSerializer: UrlSerializer, rootContexts: ChildrenOutletContexts, location: Location, injector: Injector, loader: NgModuleFactoryLoader, compiler: Compiler, config: Routes);\r\n    private setupNavigations;\r\n    private getTransition;\r\n    private setTransition;\r\n    /**\r\n     * Sets up the location change listener and performs the initial navigation.\r\n     */\r\n    initialNavigation(): void;\r\n    /**\r\n     * Sets up the location change listener.\r\n     */\r\n    setUpLocationChangeListener(): void;\r\n    /** The current URL. */\r\n    readonly url: string;\r\n    /** The current Navigation object if one exists */\r\n    getCurrentNavigation(): Navigation | null;\r\n    /**\r\n     * Resets the configuration used for navigation and generating links.\r\n     *\r\n     * @param config The route array for the new configuration.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ```\r\n     * router.resetConfig([\r\n     *  { path: 'team/:id', component: TeamCmp, children: [\r\n     *    { path: 'simple', component: SimpleCmp },\r\n     *    { path: 'user/:name', component: UserCmp }\r\n     *  ]}\r\n     * ]);\r\n     * ```\r\n     */\r\n    resetConfig(config: Routes): void;\r\n    /** @docsNotRequired */\r\n    ngOnDestroy(): void;\r\n    /** Disposes of the router. */\r\n    dispose(): void;\r\n    /**\r\n     * Applies an array of commands to the current URL tree and creates a new URL tree.\r\n     *\r\n     * When given an activated route, applies the given commands starting from the route.\r\n     * Otherwise, applies the given command starting from the root.\r\n     *\r\n     * @param commands An array of commands to apply.\r\n     * @param navigationExtras Options that control the navigation strategy. This function\r\n     * only utilizes properties in `NavigationExtras` that would change the provided URL.\r\n     * @returns The new URL tree.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ```\r\n     * // create /team/33/user/11\r\n     * router.createUrlTree(['/team', 33, 'user', 11]);\r\n     *\r\n     * // create /team/33;expand=true/user/11\r\n     * router.createUrlTree(['/team', 33, {expand: true}, 'user', 11]);\r\n     *\r\n     * // you can collapse static segments like this (this works only with the first passed-in value):\r\n     * router.createUrlTree(['/team/33/user', userId]);\r\n     *\r\n     * // If the first segment can contain slashes, and you do not want the router to split it,\r\n     * // you can do the following:\r\n     * router.createUrlTree([{segmentPath: '/one/two'}]);\r\n     *\r\n     * // create /team/33/(user/11//right:chat)\r\n     * router.createUrlTree(['/team', 33, {outlets: {primary: 'user/11', right: 'chat'}}]);\r\n     *\r\n     * // remove the right secondary node\r\n     * router.createUrlTree(['/team', 33, {outlets: {primary: 'user/11', right: null}}]);\r\n     *\r\n     * // assuming the current url is `/team/33/user/11` and the route points to `user/11`\r\n     *\r\n     * // navigate to /team/33/user/11/details\r\n     * router.createUrlTree(['details'], {relativeTo: route});\r\n     *\r\n     * // navigate to /team/33/user/22\r\n     * router.createUrlTree(['../22'], {relativeTo: route});\r\n     *\r\n     * // navigate to /team/44/user/22\r\n     * router.createUrlTree(['../../team/44/user/22'], {relativeTo: route});\r\n     * ```\r\n     */\r\n    createUrlTree(commands: any[], navigationExtras?: NavigationExtras): UrlTree;\r\n    /**\r\n     * Navigate based on the provided URL, which must be absolute.\r\n     *\r\n     * @param url An absolute URL. The function does not apply any delta to the current URL.\r\n     * @param extras An object containing properties that modify the navigation strategy.\r\n     * The function ignores any properties in the `NavigationExtras` that would change the\r\n     * provided URL.\r\n     *\r\n     * @returns A Promise that resolves to 'true' when navigation succeeds,\r\n     * to 'false' when navigation fails, or is rejected on error.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ```\r\n     * router.navigateByUrl(\"/team/33/user/11\");\r\n     *\r\n     * // Navigate without updating the URL\r\n     * router.navigateByUrl(\"/team/33/user/11\", { skipLocationChange: true });\r\n     * ```\r\n     *\r\n     */\r\n    navigateByUrl(url: string | UrlTree, extras?: NavigationExtras): Promise<boolean>;\r\n    /**\r\n     * Navigate based on the provided array of commands and a starting point.\r\n     * If no starting route is provided, the navigation is absolute.\r\n     *\r\n     * Returns a promise that:\r\n     * - resolves to 'true' when navigation succeeds,\r\n     * - resolves to 'false' when navigation fails,\r\n     * - is rejected when an error happens.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ```\r\n     * router.navigate(['team', 33, 'user', 11], {relativeTo: route});\r\n     *\r\n     * // Navigate without updating the URL\r\n     * router.navigate(['team', 33, 'user', 11], {relativeTo: route, skipLocationChange: true});\r\n     * ```\r\n     *\r\n     * The first parameter of `navigate()` is a delta to be applied to the current URL\r\n     * or the one provided in the `relativeTo` property of the second parameter (the\r\n     * `NavigationExtras`).\r\n     *\r\n     * In order to affect this browser's `history.state` entry, the `state`\r\n     * parameter can be passed. This must be an object because the router\r\n     * will add the `navigationId` property to this object before creating\r\n     * the new history item.\r\n     */\r\n    navigate(commands: any[], extras?: NavigationExtras): Promise<boolean>;\r\n    /** Serializes a `UrlTree` into a string */\r\n    serializeUrl(url: UrlTree): string;\r\n    /** Parses a string into a `UrlTree` */\r\n    parseUrl(url: string): UrlTree;\r\n    /** Returns whether the url is activated */\r\n    isActive(url: string | UrlTree, exact: boolean): boolean;\r\n    private removeEmptyProps;\r\n    private processNavigations;\r\n    private scheduleNavigation;\r\n    private setBrowserUrl;\r\n    private resetStateAndUrl;\r\n    private resetUrlToCurrentUrlTree;\r\n}\r\n\r\n/**\r\n * A [DI token](guide/glossary/#di-token) for the router service.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const ROUTER_CONFIGURATION: InjectionToken<ExtraOptions>;\r\n\r\n/**\r\n * A [DI token](guide/glossary/#di-token) for the router initializer that\r\n * is called after the app is bootstrapped.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const ROUTER_INITIALIZER: InjectionToken<(compRef: ComponentRef<any>) => void>;\r\n\r\n/**\r\n * @description\r\n *\r\n * Provides a way to customize when activated routes get reused.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class RouteReuseStrategy {\r\n    /** Determines if this route (and its subtree) should be detached to be reused later */\r\n    abstract shouldDetach(route: ActivatedRouteSnapshot): boolean;\r\n    /**\r\n     * Stores the detached route.\r\n     *\r\n     * Storing a `null` value should erase the previously stored value.\r\n     */\r\n    abstract store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle | null): void;\r\n    /** Determines if this route (and its subtree) should be reattached */\r\n    abstract shouldAttach(route: ActivatedRouteSnapshot): boolean;\r\n    /** Retrieves the previously stored route */\r\n    abstract retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null;\r\n    /** Determines if a route should be reused */\r\n    abstract shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean;\r\n}\r\n\r\n/**\r\n * Base for events the router goes through, as opposed to events tied to a specific\r\n * route. Fired one time for any given navigation.\r\n *\r\n * @usageNotes\r\n *\r\n * ```ts\r\n * class MyService {\r\n *   constructor(public router: Router, logger: Logger) {\r\n *     router.events.pipe(\r\n *       filter(e => e instanceof RouterEvent)\r\n *     ).subscribe(e => {\r\n *       logger.log(e.id, e.url);\r\n *     });\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @see `Event`\r\n * @publicApi\r\n */\r\nexport declare class RouterEvent {\r\n    /** A unique ID that the router assigns to every router navigation. */\r\n    id: number;\r\n    /** The URL that is the destination for this navigation. */\r\n    url: string;\r\n    constructor(\r\n    /** A unique ID that the router assigns to every router navigation. */\r\n    id: number, \r\n    /** The URL that is the destination for this navigation. */\r\n    url: string);\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Lets you link to specific routes in your app.\r\n *\r\n * Consider the following route configuration:\r\n * `[{ path: 'user/:name', component: UserCmp }]`.\r\n * When linking to this `user/:name` route, you use the `RouterLink` directive.\r\n *\r\n * If the link is static, you can use the directive as follows:\r\n * `<a routerLink=\"/user/bob\">link to user component</a>`\r\n *\r\n * If you use dynamic values to generate the link, you can pass an array of path\r\n * segments, followed by the params for each segment.\r\n *\r\n * For instance `['/team', teamId, 'user', userName, {details: true}]`\r\n * means that we want to generate a link to `/team/11/user/bob;details=true`.\r\n *\r\n * Multiple static segments can be merged into one\r\n * (e.g., `['/team/11/user', userName, {details: true}]`).\r\n *\r\n * The first segment name can be prepended with `/`, `./`, or `../`:\r\n * * If the first segment begins with `/`, the router will look up the route from the root of the\r\n *   app.\r\n * * If the first segment begins with `./`, or doesn't begin with a slash, the router will\r\n *   instead look in the children of the current activated route.\r\n * * And if the first segment begins with `../`, the router will go up one level.\r\n *\r\n * You can set query params and fragment as follows:\r\n *\r\n * ```\r\n * <a [routerLink]=\"['/user/bob']\" [queryParams]=\"{debug: true}\" fragment=\"education\">\r\n *   link to user component\r\n * </a>\r\n * ```\r\n * RouterLink will use these to generate this link: `/user/bob#education?debug=true`.\r\n *\r\n * (Deprecated in v4.0.0 use `queryParamsHandling` instead) You can also tell the\r\n * directive to preserve the current query params and fragment:\r\n *\r\n * ```\r\n * <a [routerLink]=\"['/user/bob']\" preserveQueryParams preserveFragment>\r\n *   link to user component\r\n * </a>\r\n * ```\r\n *\r\n * You can tell the directive how to handle queryParams. Available options are:\r\n *  - `'merge'`: merge the queryParams into the current queryParams\r\n *  - `'preserve'`: preserve the current queryParams\r\n *  - default/`''`: use the queryParams only\r\n *\r\n * Same options for {@link NavigationExtras#queryParamsHandling\r\n * NavigationExtras#queryParamsHandling}.\r\n *\r\n * ```\r\n * <a [routerLink]=\"['/user/bob']\" [queryParams]=\"{debug: true}\" queryParamsHandling=\"merge\">\r\n *   link to user component\r\n * </a>\r\n * ```\r\n *\r\n * You can provide a `state` value to be persisted to the browser's History.state\r\n * property (See https://developer.mozilla.org/en-US/docs/Web/API/History#Properties). It's\r\n * used as follows:\r\n *\r\n * ```\r\n * <a [routerLink]=\"['/user/bob']\" [state]=\"{tracingId: 123}\">\r\n *   link to user component\r\n * </a>\r\n * ```\r\n *\r\n * And later the value can be read from the router through `router.getCurrentNavigation`.\r\n * For example, to capture the `tracingId` above during the `NavigationStart` event:\r\n *\r\n * ```\r\n * // Get NavigationStart events\r\n * router.events.pipe(filter(e => e instanceof NavigationStart)).subscribe(e => {\r\n *   const navigation = router.getCurrentNavigation();\r\n *   tracingService.trace({id: navigation.extras.state.tracingId});\r\n * });\r\n * ```\r\n *\r\n * The router link directive always treats the provided input as a delta to the current url.\r\n *\r\n * For instance, if the current url is `/user/(box//aux:team)`.\r\n *\r\n * Then the following link `<a [routerLink]=\"['/user/jim']\">Jim</a>` will generate the link\r\n * `/user/(jim//aux:team)`.\r\n *\r\n * See {@link Router#createUrlTree createUrlTree} for more information.\r\n *\r\n * @ngModule RouterModule\r\n *\r\n * @publicApi\r\n */\r\nexport declare class RouterLink {\r\n    private router;\r\n    private route;\r\n    queryParams: {\r\n        [k: string]: any;\r\n    };\r\n    fragment: string;\r\n    queryParamsHandling: QueryParamsHandling;\r\n    preserveFragment: boolean;\r\n    skipLocationChange: boolean;\r\n    replaceUrl: boolean;\r\n    state?: {\r\n        [k: string]: any;\r\n    };\r\n    private commands;\r\n    private preserve;\r\n    constructor(router: Router, route: ActivatedRoute, tabIndex: string, renderer: Renderer2, el: ElementRef);\r\n    routerLink: any[] | string;\r\n    /**\r\n     * @deprecated 4.0.0 use `queryParamsHandling` instead.\r\n     */\r\n    preserveQueryParams: boolean;\r\n    onClick(): boolean;\r\n    readonly urlTree: UrlTree;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<RouterLink>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<RouterLink, \":not(a):not(area)[routerLink]\", never, { 'routerLink': \"routerLink\", 'preserveQueryParams': \"preserveQueryParams\", 'queryParams': \"queryParams\", 'fragment': \"fragment\", 'queryParamsHandling': \"queryParamsHandling\", 'preserveFragment': \"preserveFragment\", 'skipLocationChange': \"skipLocationChange\", 'replaceUrl': \"replaceUrl\", 'state': \"state\" }, {}, never>;\n}\r\n\r\n/**\r\n *\r\n * @description\r\n *\r\n * Lets you add a CSS class to an element when the link's route becomes active.\r\n *\r\n * This directive lets you add a CSS class to an element when the link's route\r\n * becomes active.\r\n *\r\n * Consider the following example:\r\n *\r\n * ```\r\n * <a routerLink=\"/user/bob\" routerLinkActive=\"active-link\">Bob</a>\r\n * ```\r\n *\r\n * When the url is either '/user' or '/user/bob', the active-link class will\r\n * be added to the `a` tag. If the url changes, the class will be removed.\r\n *\r\n * You can set more than one class, as follows:\r\n *\r\n * ```\r\n * <a routerLink=\"/user/bob\" routerLinkActive=\"class1 class2\">Bob</a>\r\n * <a routerLink=\"/user/bob\" [routerLinkActive]=\"['class1', 'class2']\">Bob</a>\r\n * ```\r\n *\r\n * You can configure RouterLinkActive by passing `exact: true`. This will add the classes\r\n * only when the url matches the link exactly.\r\n *\r\n * ```\r\n * <a routerLink=\"/user/bob\" routerLinkActive=\"active-link\" [routerLinkActiveOptions]=\"{exact:\r\n * true}\">Bob</a>\r\n * ```\r\n *\r\n * You can assign the RouterLinkActive instance to a template variable and directly check\r\n * the `isActive` status.\r\n * ```\r\n * <a routerLink=\"/user/bob\" routerLinkActive #rla=\"routerLinkActive\">\r\n *   Bob {{ rla.isActive ? '(already open)' : ''}}\r\n * </a>\r\n * ```\r\n *\r\n * Finally, you can apply the RouterLinkActive directive to an ancestor of a RouterLink.\r\n *\r\n * ```\r\n * <div routerLinkActive=\"active-link\" [routerLinkActiveOptions]=\"{exact: true}\">\r\n *   <a routerLink=\"/user/jim\">Jim</a>\r\n *   <a routerLink=\"/user/bob\">Bob</a>\r\n * </div>\r\n * ```\r\n *\r\n * This will set the active-link class on the div tag if the url is either '/user/jim' or\r\n * '/user/bob'.\r\n *\r\n * @ngModule RouterModule\r\n *\r\n * @publicApi\r\n */\r\nexport declare class RouterLinkActive implements OnChanges, OnDestroy, AfterContentInit {\r\n    private router;\r\n    private element;\r\n    private renderer;\r\n    private link?;\r\n    private linkWithHref?;\r\n    links: QueryList<RouterLink>;\r\n    linksWithHrefs: QueryList<RouterLinkWithHref>;\r\n    private classes;\r\n    private subscription;\r\n    readonly isActive: boolean;\r\n    routerLinkActiveOptions: {\r\n        exact: boolean;\r\n    };\r\n    constructor(router: Router, element: ElementRef, renderer: Renderer2, link?: RouterLink | undefined, linkWithHref?: RouterLinkWithHref | undefined);\r\n    ngAfterContentInit(): void;\r\n    routerLinkActive: string[] | string;\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n    ngOnDestroy(): void;\r\n    private update;\r\n    private isLinkActive;\r\n    private hasActiveLinks;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<RouterLinkActive>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<RouterLinkActive, \"[routerLinkActive]\", [\"routerLinkActive\"], { 'routerLinkActiveOptions': \"routerLinkActiveOptions\", 'routerLinkActive': \"routerLinkActive\" }, {}, [\"links\", \"linksWithHrefs\"]>;\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Lets you link to specific routes in your app.\r\n *\r\n * See `RouterLink` for more information.\r\n *\r\n * @ngModule RouterModule\r\n *\r\n * @publicApi\r\n */\r\nexport declare class RouterLinkWithHref implements OnChanges, OnDestroy {\r\n    private router;\r\n    private route;\r\n    private locationStrategy;\r\n    target: string;\r\n    queryParams: {\r\n        [k: string]: any;\r\n    };\r\n    fragment: string;\r\n    queryParamsHandling: QueryParamsHandling;\r\n    preserveFragment: boolean;\r\n    skipLocationChange: boolean;\r\n    replaceUrl: boolean;\r\n    state?: {\r\n        [k: string]: any;\r\n    };\r\n    private commands;\r\n    private subscription;\r\n    private preserve;\r\n    href: string;\r\n    constructor(router: Router, route: ActivatedRoute, locationStrategy: LocationStrategy);\r\n    routerLink: any[] | string;\r\n    preserveQueryParams: boolean;\r\n    ngOnChanges(changes: {}): any;\r\n    ngOnDestroy(): any;\r\n    onClick(button: number, ctrlKey: boolean, metaKey: boolean, shiftKey: boolean): boolean;\r\n    private updateTargetUrlAndHref;\r\n    readonly urlTree: UrlTree;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<RouterLinkWithHref>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<RouterLinkWithHref, \"a[routerLink],area[routerLink]\", never, { 'routerLink': \"routerLink\", 'preserveQueryParams': \"preserveQueryParams\", 'target': \"target\", 'queryParams': \"queryParams\", 'fragment': \"fragment\", 'queryParamsHandling': \"queryParamsHandling\", 'preserveFragment': \"preserveFragment\", 'skipLocationChange': \"skipLocationChange\", 'replaceUrl': \"replaceUrl\", 'state': \"state\" }, {}, never>;\n}\r\n\r\n/**\r\n * @usageNotes\r\n *\r\n * RouterModule can be imported multiple times: once per lazily-loaded bundle.\r\n * Since the router deals with a global shared resource--location, we cannot have\r\n * more than one router service active.\r\n *\r\n * That is why there are two ways to create the module: `RouterModule.forRoot` and\r\n * `RouterModule.forChild`.\r\n *\r\n * * `forRoot` creates a module that contains all the directives, the given routes, and the router\r\n *   service itself.\r\n * * `forChild` creates a module that contains all the directives and the given routes, but does not\r\n *   include the router service.\r\n *\r\n * When registered at the root, the module should be used as follows\r\n *\r\n * ```\r\n * @NgModule({\r\n *   imports: [RouterModule.forRoot(ROUTES)]\r\n * })\r\n * class MyNgModule {}\r\n * ```\r\n *\r\n * For submodules and lazy loaded submodules the module should be used as follows:\r\n *\r\n * ```\r\n * @NgModule({\r\n *   imports: [RouterModule.forChild(ROUTES)]\r\n * })\r\n * class MyNgModule {}\r\n * ```\r\n *\r\n * @description\r\n *\r\n * Adds router directives and providers.\r\n *\r\n * Managing state transitions is one of the hardest parts of building applications. This is\r\n * especially true on the web, where you also need to ensure that the state is reflected in the URL.\r\n * In addition, we often want to split applications into multiple bundles and load them on demand.\r\n * Doing this transparently is not trivial.\r\n *\r\n * The Angular router service solves these problems. Using the router, you can declaratively specify\r\n * application states, manage state transitions while taking care of the URL, and load bundles on\r\n * demand.\r\n *\r\n * @see [Routing and Navigation](guide/router.html) for an\r\n * overview of how the router service should be used.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class RouterModule {\r\n    constructor(guard: any, router: Router);\r\n    /**\r\n     * Creates and configures a module with all the router providers and directives.\r\n     * Optionally sets up an application listener to perform an initial navigation.\r\n     *\r\n     * @param routes An array of `Route` objects that define the navigation paths for the application.\r\n     * @param config An `ExtraOptions` configuration object that controls how navigation is performed.\r\n     * @return The new router module.\r\n    */\r\n    static forRoot(routes: Routes, config?: ExtraOptions): ModuleWithProviders<RouterModule>;\r\n    /**\r\n     * Creates a module with all the router directives and a provider registering routes.\r\n     */\r\n    static forChild(routes: Routes): ModuleWithProviders<RouterModule>;\r\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<RouterModule, [typeof RouterOutlet, typeof RouterLink, typeof RouterLinkWithHref, typeof RouterLinkActive, typeof ɵEmptyOutletComponent], never, [typeof RouterOutlet, typeof RouterLink, typeof RouterLinkWithHref, typeof RouterLinkActive, typeof ɵEmptyOutletComponent]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<RouterModule>;\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Acts as a placeholder that Angular dynamically fills based on the current router state.\r\n *\r\n * Each outlet can have a unique name, determined by the optional `name` attribute.\r\n * The name cannot be set or changed dynamically. If not set, default value is \"primary\".\r\n *\r\n * ```\r\n * <router-outlet></router-outlet>\r\n * <router-outlet name='left'></router-outlet>\r\n * <router-outlet name='right'></router-outlet>\r\n * ```\r\n *\r\n * A router outlet emits an activate event when a new component is instantiated,\r\n * and a deactivate event when a component is destroyed.\r\n *\r\n * ```\r\n * <router-outlet\r\n *   (activate)='onActivate($event)'\r\n *   (deactivate)='onDeactivate($event)'></router-outlet>\r\n * ```\r\n * @ngModule RouterModule\r\n *\r\n * @publicApi\r\n */\r\nexport declare class RouterOutlet implements OnDestroy, OnInit {\r\n    private parentContexts;\r\n    private location;\r\n    private resolver;\r\n    private changeDetector;\r\n    private activated;\r\n    private _activatedRoute;\r\n    private name;\r\n    activateEvents: EventEmitter<any>;\r\n    deactivateEvents: EventEmitter<any>;\r\n    constructor(parentContexts: ChildrenOutletContexts, location: ViewContainerRef, resolver: ComponentFactoryResolver, name: string, changeDetector: ChangeDetectorRef);\r\n    ngOnDestroy(): void;\r\n    ngOnInit(): void;\r\n    readonly isActivated: boolean;\r\n    readonly component: Object;\r\n    readonly activatedRoute: ActivatedRoute;\r\n    readonly activatedRouteData: Data;\r\n    /**\r\n     * Called when the `RouteReuseStrategy` instructs to detach the subtree\r\n     */\r\n    detach(): ComponentRef<any>;\r\n    /**\r\n     * Called when the `RouteReuseStrategy` instructs to re-attach a previously detached subtree\r\n     */\r\n    attach(ref: ComponentRef<any>, activatedRoute: ActivatedRoute): void;\r\n    deactivate(): void;\r\n    activateWith(activatedRoute: ActivatedRoute, resolver: ComponentFactoryResolver | null): void;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<RouterOutlet>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<RouterOutlet, \"router-outlet\", [\"outlet\"], {}, { 'activateEvents': \"activate\", 'deactivateEvents': \"deactivate\" }, never>;\n}\r\n\r\n/**\r\n * The preloader optimistically loads all router configurations to\r\n * make navigations into lazily-loaded sections of the application faster.\r\n *\r\n * The preloader runs in the background. When the router bootstraps, the preloader\r\n * starts listening to all navigation events. After every such event, the preloader\r\n * will check if any configurations can be loaded lazily.\r\n *\r\n * If a route is protected by `canLoad` guards, the preloaded will not load it.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class RouterPreloader implements OnDestroy {\r\n    private router;\r\n    private injector;\r\n    private preloadingStrategy;\r\n    private loader;\r\n    private subscription;\r\n    constructor(router: Router, moduleLoader: NgModuleFactoryLoader, compiler: Compiler, injector: Injector, preloadingStrategy: PreloadingStrategy);\r\n    setUpPreloading(): void;\r\n    preload(): Observable<any>;\r\n    ngOnDestroy(): void;\r\n    private processRoutes;\r\n    private preloadConfig;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<RouterPreloader>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<RouterPreloader>;\n}\r\n\r\n/**\r\n * Represents the state of the router as a tree of activated routes.\r\n *\r\n * @usageNotes\r\n *\r\n * Every node in the route tree is an `ActivatedRoute` instance\r\n * that knows about the \"consumed\" URL segments, the extracted parameters,\r\n * and the resolved data.\r\n * Use the `ActivatedRoute` properties to traverse the tree from any node.\r\n *\r\n * ### Example\r\n *\r\n * ```\r\n * @Component({templateUrl:'template.html'})\r\n * class MyComponent {\r\n *   constructor(router: Router) {\r\n *     const state: RouterState = router.routerState;\r\n *     const root: ActivatedRoute = state.root;\r\n *     const child = root.firstChild;\r\n *     const id: Observable<string> = child.params.map(p => p.id);\r\n *     //...\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @see `ActivatedRoute`\r\n *\r\n * @publicApi\r\n */\r\nexport declare class RouterState extends ɵangular_packages_router_router_m<ActivatedRoute> {\r\n    /** The current snapshot of the router state */\r\n    snapshot: RouterStateSnapshot;\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Represents the state of the router at a moment in time.\r\n *\r\n * This is a tree of activated route snapshots. Every node in this tree knows about\r\n * the \"consumed\" URL segments, the extracted parameters, and the resolved data.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```\r\n * @Component({templateUrl:'template.html'})\r\n * class MyComponent {\r\n *   constructor(router: Router) {\r\n *     const state: RouterState = router.routerState;\r\n *     const snapshot: RouterStateSnapshot = state.snapshot;\r\n *     const root: ActivatedRouteSnapshot = snapshot.root;\r\n *     const child = root.firstChild;\r\n *     const id: Observable<string> = child.params.map(p => p.id);\r\n *     //...\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class RouterStateSnapshot extends ɵangular_packages_router_router_m<ActivatedRouteSnapshot> {\r\n    /** The url from which this snapshot was created */\r\n    url: string;\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * The [DI token](guide/glossary/#di-token) for a router configuration.\r\n * @see `ROUTES`\r\n * @publicApi\r\n */\r\nexport declare const ROUTES: InjectionToken<Route[][]>;\r\n\r\n/**\r\n * Represents a route configuration for the Router service.\r\n * An array of `Route` objects, used in `Router.config` and for nested route configurations\r\n * in `Route.children`.\r\n *\r\n * @see `Route`\r\n * @see `Router`\r\n * @publicApi\r\n */\r\nexport declare type Routes = Route[];\r\n\r\n/**\r\n *An event triggered when routes are recognized.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class RoutesRecognized extends RouterEvent {\r\n    /** @docsNotRequired */\r\n    urlAfterRedirects: string;\r\n    /** @docsNotRequired */\r\n    state: RouterStateSnapshot;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    id: number, \r\n    /** @docsNotRequired */\r\n    url: string, \r\n    /** @docsNotRequired */\r\n    urlAfterRedirects: string, \r\n    /** @docsNotRequired */\r\n    state: RouterStateSnapshot);\r\n    /** @docsNotRequired */\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n *\r\n * A policy for when to run guards and resolvers on a route.\r\n *\r\n * @see `Route#runGuardsAndResolvers`\r\n * @publicApi\r\n */\r\nexport declare type RunGuardsAndResolvers = 'pathParamsChange' | 'pathParamsOrQueryParamsChange' | 'paramsChange' | 'paramsOrQueryParamsChange' | 'always' | ((from: ActivatedRouteSnapshot, to: ActivatedRouteSnapshot) => boolean);\r\n\r\n/**\r\n * An event triggered by scrolling.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class Scroll {\r\n    /** @docsNotRequired */\r\n    readonly routerEvent: NavigationEnd;\r\n    /** @docsNotRequired */\r\n    readonly position: [number, number] | null;\r\n    /** @docsNotRequired */\r\n    readonly anchor: string | null;\r\n    constructor(\r\n    /** @docsNotRequired */\r\n    routerEvent: NavigationEnd, \r\n    /** @docsNotRequired */\r\n    position: [number, number] | null, \r\n    /** @docsNotRequired */\r\n    anchor: string | null);\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Provides a way to migrate AngularJS applications to Angular.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class UrlHandlingStrategy {\r\n    /**\r\n     * Tells the router if this URL should be processed.\r\n     *\r\n     * When it returns true, the router will execute the regular navigation.\r\n     * When it returns false, the router will set the router state to an empty state.\r\n     * As a result, all the active components will be destroyed.\r\n     *\r\n     */\r\n    abstract shouldProcessUrl(url: UrlTree): boolean;\r\n    /**\r\n     * Extracts the part of the URL that should be handled by the router.\r\n     * The rest of the URL will remain untouched.\r\n     */\r\n    abstract extract(url: UrlTree): UrlTree;\r\n    /**\r\n     * Merges the URL fragment with the rest of the URL.\r\n     */\r\n    abstract merge(newUrlPart: UrlTree, rawUrl: UrlTree): UrlTree;\r\n}\r\n\r\n/**\r\n * A function for matching a route against URLs. Implement a custom URL matcher\r\n * for `Route.matcher` when a combination of `path` and `pathMatch`\r\n * is not expressive enough. Cannot be used together with `path` and `pathMatch`.\r\n *\r\n * @param segments An array of URL segments.\r\n * @param group A segment group.\r\n * @param route The route to match against.\r\n * @returns The match-result.\r\n *\r\n * @usageNotes\r\n *\r\n * The following matcher matches HTML files.\r\n *\r\n * ```\r\n * export function htmlFiles(url: UrlSegment[]) {\r\n *   return url.length === 1 && url[0].path.endsWith('.html') ? ({consumed: url}) : null;\r\n * }\r\n *\r\n * export const routes = [{ matcher: htmlFiles, component: AnyComponent }];\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare type UrlMatcher = (segments: UrlSegment[], group: UrlSegmentGroup, route: Route) => UrlMatchResult;\r\n\r\n/**\r\n * Represents the result of matching URLs with a custom matching function.\r\n *\r\n * * `consumed` is an array of the consumed URL segments.\r\n * * `posParams` is a map of positional parameters.\r\n *\r\n * @see `UrlMatcher()`\r\n * @publicApi\r\n */\r\nexport declare type UrlMatchResult = {\r\n    consumed: UrlSegment[];\r\n    posParams?: {\r\n        [name: string]: UrlSegment;\r\n    };\r\n};\r\n\r\n/**\r\n * @description\r\n *\r\n * Represents a single URL segment.\r\n *\r\n * A UrlSegment is a part of a URL between the two slashes. It contains a path and the matrix\r\n * parameters associated with the segment.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```\r\n * @Component({templateUrl:'template.html'})\r\n * class MyComponent {\r\n *   constructor(router: Router) {\r\n *     const tree: UrlTree = router.parseUrl('/team;id=33');\r\n *     const g: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];\r\n *     const s: UrlSegment[] = g.segments;\r\n *     s[0].path; // returns 'team'\r\n *     s[0].parameters; // returns {id: 33}\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class UrlSegment {\r\n    /** The path part of a URL segment */\r\n    path: string;\r\n    /** The matrix parameters associated with a segment */\r\n    parameters: {\r\n        [name: string]: string;\r\n    };\r\n    constructor(\r\n    /** The path part of a URL segment */\r\n    path: string, \r\n    /** The matrix parameters associated with a segment */\r\n    parameters: {\r\n        [name: string]: string;\r\n    });\r\n    readonly parameterMap: ParamMap;\r\n    /** @docsNotRequired */\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Represents the parsed URL segment group.\r\n *\r\n * See `UrlTree` for more information.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class UrlSegmentGroup {\r\n    /** The URL segments of this group. See `UrlSegment` for more information */\r\n    segments: UrlSegment[];\r\n    /** The list of children of this group */\r\n    children: {\r\n        [key: string]: UrlSegmentGroup;\r\n    };\r\n    /** The parent node in the url tree */\r\n    parent: UrlSegmentGroup | null;\r\n    constructor(\r\n    /** The URL segments of this group. See `UrlSegment` for more information */\r\n    segments: UrlSegment[], \r\n    /** The list of children of this group */\r\n    children: {\r\n        [key: string]: UrlSegmentGroup;\r\n    });\r\n    /** Whether the segment has child segments */\r\n    hasChildren(): boolean;\r\n    /** Number of child segments */\r\n    readonly numberOfChildren: number;\r\n    /** @docsNotRequired */\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Serializes and deserializes a URL string into a URL tree.\r\n *\r\n * The url serialization strategy is customizable. You can\r\n * make all URLs case insensitive by providing a custom UrlSerializer.\r\n *\r\n * See `DefaultUrlSerializer` for an example of a URL serializer.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class UrlSerializer {\r\n    /** Parse a url into a `UrlTree` */\r\n    abstract parse(url: string): UrlTree;\r\n    /** Converts a `UrlTree` into a url */\r\n    abstract serialize(tree: UrlTree): string;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Represents the parsed URL.\r\n *\r\n * Since a router state is a tree, and the URL is nothing but a serialized state, the URL is a\r\n * serialized tree.\r\n * UrlTree is a data structure that provides a lot of affordances in dealing with URLs\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```\r\n * @Component({templateUrl:'template.html'})\r\n * class MyComponent {\r\n *   constructor(router: Router) {\r\n *     const tree: UrlTree =\r\n *       router.parseUrl('/team/33/(user/victor//support:help)?debug=true#fragment');\r\n *     const f = tree.fragment; // return 'fragment'\r\n *     const q = tree.queryParams; // returns {debug: 'true'}\r\n *     const g: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];\r\n *     const s: UrlSegment[] = g.segments; // returns 2 segments 'team' and '33'\r\n *     g.children[PRIMARY_OUTLET].segments; // returns 2 segments 'user' and 'victor'\r\n *     g.children['support'].segments; // return 1 segment 'help'\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class UrlTree {\r\n    /** The root segment group of the URL tree */\r\n    root: UrlSegmentGroup;\r\n    /** The query params of the URL */\r\n    queryParams: Params;\r\n    /** The fragment of the URL */\r\n    fragment: string | null;\r\n    readonly queryParamMap: ParamMap;\r\n    /** @docsNotRequired */\r\n    toString(): string;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const VERSION: Version;\r\n\r\n/**\r\n * @docsNotRequired\r\n */\r\nexport declare const ɵangular_packages_router_router_a: InjectionToken<void>;\r\n\r\nexport declare function ɵangular_packages_router_router_b(): NgProbeToken;\r\n\r\nexport declare function ɵangular_packages_router_router_c(router: Router, viewportScroller: ViewportScroller, config: ExtraOptions): ɵangular_packages_router_router_o;\r\n\r\nexport declare function ɵangular_packages_router_router_d(platformLocationStrategy: PlatformLocation, baseHref: string, options?: ExtraOptions): HashLocationStrategy | PathLocationStrategy;\r\n\r\nexport declare function ɵangular_packages_router_router_e(router: Router): any;\r\n\r\nexport declare function ɵangular_packages_router_router_f(ref: ApplicationRef, urlSerializer: UrlSerializer, contexts: ChildrenOutletContexts, location: Location, injector: Injector, loader: NgModuleFactoryLoader, compiler: Compiler, config: Route[][], opts?: ExtraOptions, urlHandlingStrategy?: UrlHandlingStrategy, routeReuseStrategy?: RouteReuseStrategy): Router;\r\n\r\nexport declare function ɵangular_packages_router_router_g(router: Router): ActivatedRoute;\r\n\r\n/**\r\n * Router initialization requires two steps:\r\n *\r\n * First, we start the navigation in a `APP_INITIALIZER` to block the bootstrap if\r\n * a resolver or a guard executes asynchronously.\r\n *\r\n * Next, we actually run activation in a `BOOTSTRAP_LISTENER`, using the\r\n * `afterPreactivation` hook provided by the router.\r\n * The router navigation starts, reaches the point when preactivation is done, and then\r\n * pauses. It waits for the hook to be resolved. We then resolve it only in a bootstrap listener.\r\n */\r\nexport declare class ɵangular_packages_router_router_h {\r\n    private injector;\r\n    private initNavigation;\r\n    private resultOfPreactivationDone;\r\n    constructor(injector: Injector);\r\n    appInitializer(): Promise<any>;\r\n    bootstrapListener(bootstrappedComponentRef: ComponentRef<any>): void;\r\n    private isLegacyEnabled;\r\n    private isLegacyDisabled;\r\n}\r\n\r\nexport declare function ɵangular_packages_router_router_i(r: ɵangular_packages_router_router_h): () => Promise<any>;\r\n\r\nexport declare function ɵangular_packages_router_router_j(r: ɵangular_packages_router_router_h): (bootstrappedComponentRef: ComponentRef<any>) => void;\r\n\r\nexport declare function ɵangular_packages_router_router_k(): (typeof ɵangular_packages_router_router_h | {\r\n    provide: InjectionToken<(() => void)[]>;\r\n    multi: boolean;\r\n    useFactory: typeof ɵangular_packages_router_router_i;\r\n    deps: (typeof ɵangular_packages_router_router_h)[];\r\n    useExisting?: undefined;\r\n} | {\r\n    provide: InjectionToken<(compRef: ComponentRef<any>) => void>;\r\n    useFactory: typeof ɵangular_packages_router_router_j;\r\n    deps: (typeof ɵangular_packages_router_router_h)[];\r\n    multi?: undefined;\r\n    useExisting?: undefined;\r\n} | {\r\n    provide: InjectionToken<((compRef: ComponentRef<any>) => void)[]>;\r\n    multi: boolean;\r\n    useExisting: InjectionToken<(compRef: ComponentRef<any>) => void>;\r\n    useFactory?: undefined;\r\n    deps?: undefined;\r\n})[];\r\n\r\n\r\nexport declare class ɵangular_packages_router_router_m<T> {\r\n    constructor(root: ɵangular_packages_router_router_n<T>);\r\n    readonly root: T;\r\n}\r\n\r\nexport declare class ɵangular_packages_router_router_n<T> {\r\n    value: T;\r\n    children: ɵangular_packages_router_router_n<T>[];\r\n    constructor(value: T, children: ɵangular_packages_router_router_n<T>[]);\r\n    toString(): string;\r\n}\r\n\r\nexport declare class ɵangular_packages_router_router_o implements OnDestroy {\r\n    private router;\r\n    /** @docsNotRequired */ readonly viewportScroller: ViewportScroller;\r\n    private options;\r\n    private routerEventsSubscription;\r\n    private scrollEventsSubscription;\r\n    private lastId;\r\n    private lastSource;\r\n    private restoredId;\r\n    private store;\r\n    constructor(router: Router, \r\n    /** @docsNotRequired */ viewportScroller: ViewportScroller, options?: {\r\n        scrollPositionRestoration?: 'disabled' | 'enabled' | 'top';\r\n        anchorScrolling?: 'disabled' | 'enabled';\r\n    });\r\n    init(): void;\r\n    private createScrollEvents;\r\n    private consumeScrollEvents;\r\n    private scheduleScrollEvent;\r\n    ngOnDestroy(): void;\r\n}\r\n\r\n\r\n/**\r\n * This component is used internally within the router to be a placeholder when an empty\r\n * router-outlet is needed. For example, with a config such as:\r\n *\r\n * `{path: 'parent', outlet: 'nav', children: [...]}`\r\n *\r\n * In order to render, there needs to be a component on this config, which will default\r\n * to this `EmptyOutletComponent`.\r\n */\r\ndeclare class ɵEmptyOutletComponent {\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<ɵEmptyOutletComponent>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<ɵEmptyOutletComponent, \"ng-component\", never, {}, {}, never>;\n}\r\nexport { ɵEmptyOutletComponent }\r\nexport { ɵEmptyOutletComponent as ɵangular_packages_router_router_l }\r\n\r\n/**\r\n * Flattens single-level nested arrays.\r\n */\r\nexport declare function ɵflatten<T>(arr: T[][]): T[];\r\n\r\nexport declare const ɵROUTER_PROVIDERS: Provider[];\r\n\r\nexport { }\r\n\n//# sourceMappingURL=router.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/router/testing.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nexport * from './testing/testing';\n"
  },
  {
    "paths": [
      "node_modules/@angular/router/testing/testing.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ChildrenOutletContexts } from '@angular/router';\r\nimport { Compiler } from '@angular/core';\r\nimport { ExtraOptions } from '@angular/router';\r\nimport { Injector } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { ModuleWithProviders } from '@angular/core';\r\nimport { NgModuleFactory } from '@angular/core';\r\nimport { NgModuleFactoryLoader } from '@angular/core';\r\nimport { Route } from '@angular/router';\r\nimport { Router } from '@angular/router';\r\nimport { Routes } from '@angular/router';\r\nimport { UrlHandlingStrategy } from '@angular/router';\r\nimport { UrlSerializer } from '@angular/router';\r\n\r\n/**\r\n * @description\r\n *\r\n * Sets up the router to be used for testing.\r\n *\r\n * The modules sets up the router to be used for testing.\r\n * It provides spy implementations of `Location`, `LocationStrategy`, and {@link\r\n * NgModuleFactoryLoader}.\r\n *\r\n * @usageNotes\r\n * ### Example\r\n *\r\n * ```\r\n * beforeEach(() => {\r\n *   TestBed.configureTestModule({\r\n *     imports: [\r\n *       RouterTestingModule.withRoutes(\r\n *         [{path: '', component: BlankCmp}, {path: 'simple', component: SimpleCmp}]\r\n *       )\r\n *     ]\r\n *   });\r\n * });\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class RouterTestingModule {\r\n    static withRoutes(routes: Routes, config?: ExtraOptions): ModuleWithProviders<RouterTestingModule>;\r\n}\r\n\r\n/**\r\n * Router setup factory function used for testing.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function setupTestingRouter(urlSerializer: UrlSerializer, contexts: ChildrenOutletContexts, location: Location, loader: NgModuleFactoryLoader, compiler: Compiler, injector: Injector, routes: Route[][], opts?: ExtraOptions, urlHandlingStrategy?: UrlHandlingStrategy): Router;\r\n\r\n/**\r\n * Router setup factory function used for testing.\r\n *\r\n * @deprecated As of v5.2. The 2nd-to-last argument should be `ExtraOptions`, not\r\n * `UrlHandlingStrategy`\r\n * @publicApi\r\n */\r\nexport declare function setupTestingRouter(urlSerializer: UrlSerializer, contexts: ChildrenOutletContexts, location: Location, loader: NgModuleFactoryLoader, compiler: Compiler, injector: Injector, routes: Route[][], urlHandlingStrategy?: UrlHandlingStrategy): Router;\r\n\r\n/**\r\n * @description\r\n *\r\n * Allows to simulate the loading of ng modules in tests.\r\n *\r\n * ```\r\n * const loader = TestBed.inject(NgModuleFactoryLoader);\r\n *\r\n * @Component({template: 'lazy-loaded'})\r\n * class LazyLoadedComponent {}\r\n * @NgModule({\r\n *   declarations: [LazyLoadedComponent],\r\n *   imports: [RouterModule.forChild([{path: 'loaded', component: LazyLoadedComponent}])]\r\n * })\r\n *\r\n * class LoadedModule {}\r\n *\r\n * // sets up stubbedModules\r\n * loader.stubbedModules = {lazyModule: LoadedModule};\r\n *\r\n * router.resetConfig([\r\n *   {path: 'lazy', loadChildren: 'lazyModule'},\r\n * ]);\r\n *\r\n * router.navigateByUrl('/lazy/loaded');\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class SpyNgModuleFactoryLoader implements NgModuleFactoryLoader {\r\n    private compiler;\r\n    /**\r\n     * @docsNotRequired\r\n     */\r\n    private _stubbedModules;\r\n    /**\r\n     * @docsNotRequired\r\n     */\r\n    /**\r\n    * @docsNotRequired\r\n    */\r\n    stubbedModules: {\r\n        [path: string]: any;\r\n    };\r\n    constructor(compiler: Compiler);\r\n    load(path: string): Promise<NgModuleFactory<any>>;\r\n}\r\n\r\nexport { }\r\n"
  },
  {
    "paths": [
      "node_modules/@angular/router/upgrade.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nexport * from './upgrade/upgrade';\n"
  },
  {
    "paths": [
      "node_modules/@angular/router/upgrade/upgrade.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ComponentRef } from '@angular/core';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { UpgradeModule } from '@angular/upgrade/static';\r\n\r\n/**\r\n * Creates an initializer that sets up `ngRoute` integration\r\n * along with setting up the Angular router.\r\n *\r\n * @usageNotes\r\n *\r\n * <code-example language=\"typescript\">\r\n * @NgModule({\r\n *  imports: [\r\n *   RouterModule.forRoot(SOME_ROUTES),\r\n *   UpgradeModule\r\n * ],\r\n * providers: [\r\n *   RouterUpgradeInitializer\r\n * ]\r\n * })\r\n * export class AppModule {\r\n *   ngDoBootstrap() {}\r\n * }\r\n * </code-example>\r\n *\r\n * @publicApi\r\n */\r\nexport declare const RouterUpgradeInitializer: {\r\n    provide: InjectionToken<((compRef: ComponentRef<any>) => void)[]>;\r\n    multi: boolean;\r\n    useFactory: (ngUpgrade: UpgradeModule) => () => void;\r\n    deps: (typeof UpgradeModule)[];\r\n};\r\n\r\n/**\r\n * Sets up a location change listener to trigger `history.pushState`.\r\n * Works around the problem that `onPopState` does not trigger `history.pushState`.\r\n * Must be called *after* calling `UpgradeModule.bootstrap`.\r\n *\r\n * @param ngUpgrade The upgrade NgModule.\r\n * @param urlType The location strategy.\r\n * @see `HashLocationStrategy`\r\n * @see `PathLocationStrategy`\r\n *\r\n * @publicApi\r\n */\r\nexport declare function setUpLocationSync(ngUpgrade: UpgradeModule, urlType?: 'path' | 'hash'): void;\r\n\r\nexport { }\r\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/a11y-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './live-announcer/live-announcer';\nimport * as ɵngcc2 from './focus-trap/focus-trap';\nimport * as ɵngcc3 from './focus-monitor/focus-monitor';\nimport * as ɵngcc4 from '@angular/common';\nimport * as ɵngcc5 from '@angular/cdk/platform';\nimport * as ɵngcc6 from '@angular/cdk/observers';\nexport declare class A11yModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<A11yModule, [typeof ɵngcc1.CdkAriaLive, typeof ɵngcc2.CdkTrapFocus, typeof ɵngcc3.CdkMonitorFocus], [typeof ɵngcc4.CommonModule, typeof ɵngcc5.PlatformModule, typeof ɵngcc6.ObserversModule], [typeof ɵngcc1.CdkAriaLive, typeof ɵngcc2.CdkTrapFocus, typeof ɵngcc3.CdkMonitorFocus]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<A11yModule>;\n}\n\n//# sourceMappingURL=a11y-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/aria-describer/aria-describer.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken, OnDestroy, Optional } from '@angular/core';\n/**\n * Interface used to register message elements and keep a count of how many registrations have\n * the same message and the reference to the message element used for the `aria-describedby`.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport interface RegisteredMessage {\n    /** The element containing the message. */\n    messageElement: Element;\n    /** The number of elements that reference this message element via `aria-describedby`. */\n    referenceCount: number;\n}\n/** ID used for the body container where all messages are appended. */\nexport declare const MESSAGES_CONTAINER_ID = \"cdk-describedby-message-container\";\n/** ID prefix used for each created message element. */\nexport declare const CDK_DESCRIBEDBY_ID_PREFIX = \"cdk-describedby-message\";\n/** Attribute given to each host element that is described by a message element. */\nexport declare const CDK_DESCRIBEDBY_HOST_ATTRIBUTE = \"cdk-describedby-host\";\n/**\n * Utility that creates visually hidden elements with a message content. Useful for elements that\n * want to use aria-describedby to further describe themselves without adding additional visual\n * content.\n */\nexport declare class AriaDescriber implements OnDestroy {\n    private _document;\n    constructor(_document: any);\n    /**\n     * Adds to the host element an aria-describedby reference to a hidden element that contains\n     * the message. If the same message has already been registered, then it will reuse the created\n     * message element.\n     */\n    describe(hostElement: Element, message: string | HTMLElement): void;\n    /** Removes the host element's aria-describedby reference to the message element. */\n    removeDescription(hostElement: Element, message: string | HTMLElement): void;\n    /** Unregisters all created message elements and removes the message container. */\n    ngOnDestroy(): void;\n    /**\n     * Creates a new element in the visually hidden message container element with the message\n     * as its content and adds it to the message registry.\n     */\n    private _createMessageElement;\n    /** Assigns a unique ID to an element, if it doesn't have one already. */\n    private _setMessageId;\n    /** Deletes the message element from the global messages container. */\n    private _deleteMessageElement;\n    /** Creates the global container for all aria-describedby messages. */\n    private _createMessagesContainer;\n    /** Deletes the global messages container. */\n    private _deleteMessagesContainer;\n    /** Removes all cdk-describedby messages that are hosted through the element. */\n    private _removeCdkDescribedByReferenceIds;\n    /**\n     * Adds a message reference to the element using aria-describedby and increments the registered\n     * message's reference count.\n     */\n    private _addMessageReference;\n    /**\n     * Removes a message reference from the element using aria-describedby\n     * and decrements the registered message's reference count.\n     */\n    private _removeMessageReference;\n    /** Returns true if the element has been described by the provided message ID. */\n    private _isElementDescribedByMessage;\n    /** Determines whether a message can be described on a particular element. */\n    private _canBeDescribed;\n    /** Checks whether a node is an Element node. */\n    private _isElementNode;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<AriaDescriber>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<AriaDescriber>;\n}\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare function ARIA_DESCRIBER_PROVIDER_FACTORY(parentDispatcher: AriaDescriber, _document: any): AriaDescriber;\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare const ARIA_DESCRIBER_PROVIDER: {\n    provide: typeof AriaDescriber;\n    deps: (Optional[] | InjectionToken<any>)[];\n    useFactory: typeof ARIA_DESCRIBER_PROVIDER_FACTORY;\n};\n\n//# sourceMappingURL=aria-describer.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/aria-describer/aria-reference.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Adds the given ID to the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nexport declare function addAriaReferencedId(el: Element, attr: string, id: string): void;\n/**\n * Removes the given ID from the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nexport declare function removeAriaReferencedId(el: Element, attr: string, id: string): void;\n/**\n * Gets the list of IDs referenced by the given ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nexport declare function getAriaReferenceIds(el: Element, attr: string): string[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/fake-mousedown.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Screenreaders will often fire fake mousedown events when a focusable element\n * is activated using the keyboard. We can typically distinguish between these faked\n * mousedown events and real mousedown events using the \"buttons\" property. While\n * real mousedowns will indicate the mouse button that was pressed (e.g. \"1\" for\n * the left mouse button), faked mousedowns will usually set the property value to 0.\n */\nexport declare function isFakeMousedownFromScreenReader(event: MouseEvent): boolean;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/focus-monitor/focus-monitor.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Platform } from '@angular/cdk/platform';\nimport { ElementRef, EventEmitter, NgZone, OnDestroy, Optional } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport * as ɵngcc0 from '@angular/core';\nexport declare const TOUCH_BUFFER_MS = 650;\nexport declare type FocusOrigin = 'touch' | 'mouse' | 'keyboard' | 'program' | null;\n/**\n * Corresponds to the options that can be passed to the native `focus` event.\n * via https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus\n */\nexport interface FocusOptions {\n    /** Whether the browser should scroll to the element when it is focused. */\n    preventScroll?: boolean;\n}\n/** Monitors mouse and keyboard events to determine the cause of focus events. */\nexport declare class FocusMonitor implements OnDestroy {\n    private _ngZone;\n    private _platform;\n    /** The focus origin that the next focus event is a result of. */\n    private _origin;\n    /** The FocusOrigin of the last focus event tracked by the FocusMonitor. */\n    private _lastFocusOrigin;\n    /** Whether the window has just been focused. */\n    private _windowFocused;\n    /** The target of the last touch event. */\n    private _lastTouchTarget;\n    /** The timeout id of the touch timeout, used to cancel timeout later. */\n    private _touchTimeoutId;\n    /** The timeout id of the window focus timeout. */\n    private _windowFocusTimeoutId;\n    /** The timeout id of the origin clearing timeout. */\n    private _originTimeoutId;\n    /** Map of elements being monitored to their info. */\n    private _elementInfo;\n    /** The number of elements currently being monitored. */\n    private _monitoredElementCount;\n    /**\n     * Event listener for `keydown` events on the document.\n     * Needs to be an arrow function in order to preserve the context when it gets bound.\n     */\n    private _documentKeydownListener;\n    /**\n     * Event listener for `mousedown` events on the document.\n     * Needs to be an arrow function in order to preserve the context when it gets bound.\n     */\n    private _documentMousedownListener;\n    /**\n     * Event listener for `touchstart` events on the document.\n     * Needs to be an arrow function in order to preserve the context when it gets bound.\n     */\n    private _documentTouchstartListener;\n    /**\n     * Event listener for `focus` events on the window.\n     * Needs to be an arrow function in order to preserve the context when it gets bound.\n     */\n    private _windowFocusListener;\n    constructor(_ngZone: NgZone, _platform: Platform);\n    /**\n     * Monitors focus on an element and applies appropriate CSS classes.\n     * @param element The element to monitor\n     * @param checkChildren Whether to count the element as focused when its children are focused.\n     * @returns An observable that emits when the focus state of the element changes.\n     *     When the element is blurred, null will be emitted.\n     */\n    monitor(element: HTMLElement, checkChildren?: boolean): Observable<FocusOrigin>;\n    /**\n     * Monitors focus on an element and applies appropriate CSS classes.\n     * @param element The element to monitor\n     * @param checkChildren Whether to count the element as focused when its children are focused.\n     * @returns An observable that emits when the focus state of the element changes.\n     *     When the element is blurred, null will be emitted.\n     */\n    monitor(element: ElementRef<HTMLElement>, checkChildren?: boolean): Observable<FocusOrigin>;\n    /**\n     * Stops monitoring an element and removes all focus classes.\n     * @param element The element to stop monitoring.\n     */\n    stopMonitoring(element: HTMLElement): void;\n    /**\n     * Stops monitoring an element and removes all focus classes.\n     * @param element The element to stop monitoring.\n     */\n    stopMonitoring(element: ElementRef<HTMLElement>): void;\n    /**\n     * Focuses the element via the specified focus origin.\n     * @param element Element to focus.\n     * @param origin Focus origin.\n     * @param options Options that can be used to configure the focus behavior.\n     */\n    focusVia(element: HTMLElement, origin: FocusOrigin, options?: FocusOptions): void;\n    /**\n     * Focuses the element via the specified focus origin.\n     * @param element Element to focus.\n     * @param origin Focus origin.\n     * @param options Options that can be used to configure the focus behavior.\n     */\n    focusVia(element: ElementRef<HTMLElement>, origin: FocusOrigin, options?: FocusOptions): void;\n    ngOnDestroy(): void;\n    private _toggleClass;\n    /**\n     * Sets the focus classes on the element based on the given focus origin.\n     * @param element The element to update the classes on.\n     * @param origin The focus origin.\n     */\n    private _setClasses;\n    /**\n     * Sets the origin and schedules an async function to clear it at the end of the event queue.\n     * @param origin The origin to set.\n     */\n    private _setOriginForCurrentEventQueue;\n    /**\n     * Checks whether the given focus event was caused by a touchstart event.\n     * @param event The focus event to check.\n     * @returns Whether the event was caused by a touch.\n     */\n    private _wasCausedByTouch;\n    /**\n     * Handles focus events on a registered element.\n     * @param event The focus event.\n     * @param element The monitored element.\n     */\n    private _onFocus;\n    /**\n     * Handles blur events on a registered element.\n     * @param event The blur event.\n     * @param element The monitored element.\n     */\n    _onBlur(event: FocusEvent, element: HTMLElement): void;\n    private _emitOrigin;\n    private _incrementMonitoredElementCount;\n    private _decrementMonitoredElementCount;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<FocusMonitor>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<FocusMonitor>;\n}\n/**\n * Directive that determines how a particular element was focused (via keyboard, mouse, touch, or\n * programmatically) and adds corresponding classes to the element.\n *\n * There are two variants of this directive:\n * 1) cdkMonitorElementFocus: does not consider an element to be focused if one of its children is\n *    focused.\n * 2) cdkMonitorSubtreeFocus: considers an element focused if it or any of its children are focused.\n */\nexport declare class CdkMonitorFocus implements OnDestroy {\n    private _elementRef;\n    private _focusMonitor;\n    private _monitorSubscription;\n    cdkFocusChange: EventEmitter<FocusOrigin>;\n    constructor(_elementRef: ElementRef<HTMLElement>, _focusMonitor: FocusMonitor);\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkMonitorFocus>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkMonitorFocus, \"[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]\", never, {}, { 'cdkFocusChange': \"cdkFocusChange\" }, never>;\n}\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare function FOCUS_MONITOR_PROVIDER_FACTORY(parentDispatcher: FocusMonitor, ngZone: NgZone, platform: Platform): FocusMonitor;\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare const FOCUS_MONITOR_PROVIDER: {\n    provide: typeof FocusMonitor;\n    deps: (Optional[] | typeof NgZone | typeof Platform)[];\n    useFactory: typeof FOCUS_MONITOR_PROVIDER_FACTORY;\n};\n\n//# sourceMappingURL=focus-monitor.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/focus-trap/focus-trap.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AfterContentInit, ElementRef, NgZone, OnDestroy, DoCheck } from '@angular/core';\nimport { InteractivityChecker } from '../interactivity-checker/interactivity-checker';\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class currently uses a relatively simple approach to focus trapping.\n * It assumes that the tab order is the same as DOM order, which is not necessarily true.\n * Things like `tabIndex > 0`, flex `order`, and shadow roots can cause to two to misalign.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class FocusTrap {\n    private _element;\n    private _checker;\n    private _ngZone;\n    private _document;\n    private _startAnchor;\n    private _endAnchor;\n    private _hasAttached;\n    protected startAnchorListener: () => boolean;\n    protected endAnchorListener: () => boolean;\n    /** Whether the focus trap is active. */\n    enabled: boolean;\n    private _enabled;\n    constructor(_element: HTMLElement, _checker: InteractivityChecker, _ngZone: NgZone, _document: Document, deferAnchors?: boolean);\n    /** Destroys the focus trap by cleaning up the anchors. */\n    destroy(): void;\n    /**\n     * Inserts the anchors into the DOM. This is usually done automatically\n     * in the constructor, but can be deferred for cases like directives with `*ngIf`.\n     * @returns Whether the focus trap managed to attach successfuly. This may not be the case\n     * if the target element isn't currently in the DOM.\n     */\n    attachAnchors(): boolean;\n    /**\n     * Waits for the zone to stabilize, then either focuses the first element that the\n     * user specified, or the first tabbable element.\n     * @returns Returns a promise that resolves with a boolean, depending\n     * on whether focus was moved successfuly.\n     */\n    focusInitialElementWhenReady(): Promise<boolean>;\n    /**\n     * Waits for the zone to stabilize, then focuses\n     * the first tabbable element within the focus trap region.\n     * @returns Returns a promise that resolves with a boolean, depending\n     * on whether focus was moved successfuly.\n     */\n    focusFirstTabbableElementWhenReady(): Promise<boolean>;\n    /**\n     * Waits for the zone to stabilize, then focuses\n     * the last tabbable element within the focus trap region.\n     * @returns Returns a promise that resolves with a boolean, depending\n     * on whether focus was moved successfuly.\n     */\n    focusLastTabbableElementWhenReady(): Promise<boolean>;\n    /**\n     * Get the specified boundary element of the trapped region.\n     * @param bound The boundary to get (start or end of trapped region).\n     * @returns The boundary element.\n     */\n    private _getRegionBoundary;\n    /**\n     * Focuses the element that should be focused when the focus trap is initialized.\n     * @returns Whether focus was moved successfuly.\n     */\n    focusInitialElement(): boolean;\n    /**\n     * Focuses the first tabbable element within the focus trap region.\n     * @returns Whether focus was moved successfuly.\n     */\n    focusFirstTabbableElement(): boolean;\n    /**\n     * Focuses the last tabbable element within the focus trap region.\n     * @returns Whether focus was moved successfuly.\n     */\n    focusLastTabbableElement(): boolean;\n    /**\n     * Checks whether the focus trap has successfuly been attached.\n     */\n    hasAttached(): boolean;\n    /** Get the first tabbable element from a DOM subtree (inclusive). */\n    private _getFirstTabbableElement;\n    /** Get the last tabbable element from a DOM subtree (inclusive). */\n    private _getLastTabbableElement;\n    /** Creates an anchor element. */\n    private _createAnchor;\n    /**\n     * Toggles the `tabindex` of an anchor, based on the enabled state of the focus trap.\n     * @param isEnabled Whether the focus trap is enabled.\n     * @param anchor Anchor on which to toggle the tabindex.\n     */\n    private _toggleAnchorTabIndex;\n    /** Executes a function when the zone is stable. */\n    private _executeOnStable;\n}\n/** Factory that allows easy instantiation of focus traps. */\nexport declare class FocusTrapFactory {\n    private _checker;\n    private _ngZone;\n    private _document;\n    constructor(_checker: InteractivityChecker, _ngZone: NgZone, _document: any);\n    /**\n     * Creates a focus-trapped region around the given element.\n     * @param element The element around which focus will be trapped.\n     * @param deferCaptureElements Defers the creation of focus-capturing elements to be done\n     *     manually by the user.\n     * @returns The created focus trap instance.\n     */\n    create(element: HTMLElement, deferCaptureElements?: boolean): FocusTrap;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<FocusTrapFactory>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<FocusTrapFactory>;\n}\n/** Directive for trapping focus within a region. */\nexport declare class CdkTrapFocus implements OnDestroy, AfterContentInit, DoCheck {\n    private _elementRef;\n    private _focusTrapFactory;\n    private _document;\n    /** Underlying FocusTrap instance. */\n    focusTrap: FocusTrap;\n    /** Previously focused element to restore focus to upon destroy when using autoCapture. */\n    private _previouslyFocusedElement;\n    /** Whether the focus trap is active. */\n    enabled: boolean;\n    /**\n     * Whether the directive should automatially move focus into the trapped region upon\n     * initialization and return focus to the previous activeElement upon destruction.\n     */\n    autoCapture: boolean;\n    private _autoCapture;\n    constructor(_elementRef: ElementRef<HTMLElement>, _focusTrapFactory: FocusTrapFactory, _document: any);\n    ngOnDestroy(): void;\n    ngAfterContentInit(): void;\n    ngDoCheck(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkTrapFocus>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkTrapFocus, \"[cdkTrapFocus]\", [\"cdkTrapFocus\"], { 'enabled': \"cdkTrapFocus\", 'autoCapture': \"cdkTrapFocusAutoCapture\" }, {}, never>;\n}\n\n//# sourceMappingURL=focus-trap.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/index.d.ts",
      "node_modules/@angular/cdk/a11y/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/interactivity-checker/interactivity-checker.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Platform } from '@angular/cdk/platform';\n/**\n * Utility for checking the interactivity of an element, such as whether is is focusable or\n * tabbable.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class InteractivityChecker {\n    private _platform;\n    constructor(_platform: Platform);\n    /**\n     * Gets whether an element is disabled.\n     *\n     * @param element Element to be checked.\n     * @returns Whether the element is disabled.\n     */\n    isDisabled(element: HTMLElement): boolean;\n    /**\n     * Gets whether an element is visible for the purposes of interactivity.\n     *\n     * This will capture states like `display: none` and `visibility: hidden`, but not things like\n     * being clipped by an `overflow: hidden` parent or being outside the viewport.\n     *\n     * @returns Whether the element is visible.\n     */\n    isVisible(element: HTMLElement): boolean;\n    /**\n     * Gets whether an element can be reached via Tab key.\n     * Assumes that the element has already been checked with isFocusable.\n     *\n     * @param element Element to be checked.\n     * @returns Whether the element is tabbable.\n     */\n    isTabbable(element: HTMLElement): boolean;\n    /**\n     * Gets whether an element can be focused by the user.\n     *\n     * @param element Element to be checked.\n     * @returns Whether the element is focusable.\n     */\n    isFocusable(element: HTMLElement): boolean;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<InteractivityChecker>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<InteractivityChecker>;\n}\n\n//# sourceMappingURL=interactivity-checker.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/key-manager/activedescendant-key-manager.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ListKeyManager, ListKeyManagerOption } from './list-key-manager';\n/**\n * This is the interface for highlightable items (used by the ActiveDescendantKeyManager).\n * Each item must know how to style itself as active or inactive and whether or not it is\n * currently disabled.\n */\nexport interface Highlightable extends ListKeyManagerOption {\n    /** Applies the styles for an active item to this item. */\n    setActiveStyles(): void;\n    /** Applies the styles for an inactive item to this item. */\n    setInactiveStyles(): void;\n}\nexport declare class ActiveDescendantKeyManager<T> extends ListKeyManager<Highlightable & T> {\n    /**\n     * Sets the active item to the item at the specified index and adds the\n     * active styles to the newly active item. Also removes active styles\n     * from the previously active item.\n     * @param index Index of the item to be set as active.\n     */\n    setActiveItem(index: number): void;\n    /**\n     * Sets the active item to the item to the specified one and adds the\n     * active styles to the it. Also removes active styles from the\n     * previously active item.\n     * @param item Item to be set as active.\n     */\n    setActiveItem(item: T): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/key-manager/focus-key-manager.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ListKeyManager, ListKeyManagerOption } from './list-key-manager';\nimport { FocusOrigin } from '../focus-monitor/focus-monitor';\n/**\n * This is the interface for focusable items (used by the FocusKeyManager).\n * Each item must know how to focus itself, whether or not it is currently disabled\n * and be able to supply its label.\n */\nexport interface FocusableOption extends ListKeyManagerOption {\n    /** Focuses the `FocusableOption`. */\n    focus(origin?: FocusOrigin): void;\n}\nexport declare class FocusKeyManager<T> extends ListKeyManager<FocusableOption & T> {\n    private _origin;\n    /**\n     * Sets the focus origin that will be passed in to the items for any subsequent `focus` calls.\n     * @param origin Focus origin to be used when focusing items.\n     */\n    setFocusOrigin(origin: FocusOrigin): this;\n    /**\n     * Sets the active item to the item at the specified\n     * index and focuses the newly active item.\n     * @param index Index of the item to be set as active.\n     */\n    setActiveItem(index: number): void;\n    /**\n     * Sets the active item to the item that is specified and focuses it.\n     * @param item Item to be set as active.\n     */\n    setActiveItem(item: T): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/key-manager/list-key-manager.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { QueryList } from '@angular/core';\nimport { Subject } from 'rxjs';\n/** This interface is for items that can be passed to a ListKeyManager. */\nexport interface ListKeyManagerOption {\n    /** Whether the option is disabled. */\n    disabled?: boolean;\n    /** Gets the label for this option. */\n    getLabel?(): string;\n}\n/** Modifier keys handled by the ListKeyManager. */\nexport declare type ListKeyManagerModifierKey = 'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey';\n/**\n * This class manages keyboard events for selectable lists. If you pass it a query list\n * of items, it will set the active item correctly when arrow events occur.\n */\nexport declare class ListKeyManager<T extends ListKeyManagerOption> {\n    private _items;\n    private _activeItemIndex;\n    private _activeItem;\n    private _wrap;\n    private _letterKeyStream;\n    private _typeaheadSubscription;\n    private _vertical;\n    private _horizontal;\n    private _allowedModifierKeys;\n    /**\n     * Predicate function that can be used to check whether an item should be skipped\n     * by the key manager. By default, disabled items are skipped.\n     */\n    private _skipPredicateFn;\n    private _pressedLetters;\n    constructor(_items: QueryList<T> | T[]);\n    /**\n     * Stream that emits any time the TAB key is pressed, so components can react\n     * when focus is shifted off of the list.\n     */\n    tabOut: Subject<void>;\n    /** Stream that emits whenever the active item of the list manager changes. */\n    change: Subject<number>;\n    /**\n     * Sets the predicate function that determines which items should be skipped by the\n     * list key manager.\n     * @param predicate Function that determines whether the given item should be skipped.\n     */\n    skipPredicate(predicate: (item: T) => boolean): this;\n    /**\n     * Configures wrapping mode, which determines whether the active item will wrap to\n     * the other end of list when there are no more items in the given direction.\n     * @param shouldWrap Whether the list should wrap when reaching the end.\n     */\n    withWrap(shouldWrap?: boolean): this;\n    /**\n     * Configures whether the key manager should be able to move the selection vertically.\n     * @param enabled Whether vertical selection should be enabled.\n     */\n    withVerticalOrientation(enabled?: boolean): this;\n    /**\n     * Configures the key manager to move the selection horizontally.\n     * Passing in `null` will disable horizontal movement.\n     * @param direction Direction in which the selection can be moved.\n     */\n    withHorizontalOrientation(direction: 'ltr' | 'rtl' | null): this;\n    /**\n     * Modifier keys which are allowed to be held down and whose default actions will be prevented\n     * as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.\n     */\n    withAllowedModifierKeys(keys: ListKeyManagerModifierKey[]): this;\n    /**\n     * Turns on typeahead mode which allows users to set the active item by typing.\n     * @param debounceInterval Time to wait after the last keystroke before setting the active item.\n     */\n    withTypeAhead(debounceInterval?: number): this;\n    /**\n     * Sets the active item to the item at the index specified.\n     * @param index The index of the item to be set as active.\n     */\n    setActiveItem(index: number): void;\n    /**\n     * Sets the active item to the specified item.\n     * @param item The item to be set as active.\n     */\n    setActiveItem(item: T): void;\n    /**\n     * Sets the active item depending on the key event passed in.\n     * @param event Keyboard event to be used for determining which element should be active.\n     */\n    onKeydown(event: KeyboardEvent): void;\n    /** Index of the currently active item. */\n    readonly activeItemIndex: number | null;\n    /** The active item. */\n    readonly activeItem: T | null;\n    /** Sets the active item to the first enabled item in the list. */\n    setFirstItemActive(): void;\n    /** Sets the active item to the last enabled item in the list. */\n    setLastItemActive(): void;\n    /** Sets the active item to the next enabled item in the list. */\n    setNextItemActive(): void;\n    /** Sets the active item to a previous enabled item in the list. */\n    setPreviousItemActive(): void;\n    /**\n     * Allows setting the active without any other effects.\n     * @param index Index of the item to be set as active.\n     */\n    updateActiveItem(index: number): void;\n    /**\n     * Allows setting the active item without any other effects.\n     * @param item Item to be set as active.\n     */\n    updateActiveItem(item: T): void;\n    /**\n     * Allows setting of the activeItemIndex without any other effects.\n     * @param index The new activeItemIndex.\n     * @deprecated Use `updateActiveItem` instead.\n     * @breaking-change 8.0.0\n     */\n    updateActiveItemIndex(index: number): void;\n    /**\n     * This method sets the active item, given a list of items and the delta between the\n     * currently active item and the new active item. It will calculate differently\n     * depending on whether wrap mode is turned on.\n     */\n    private _setActiveItemByDelta;\n    /**\n     * Sets the active item properly given \"wrap\" mode. In other words, it will continue to move\n     * down the list until it finds an item that is not disabled, and it will wrap if it\n     * encounters either end of the list.\n     */\n    private _setActiveInWrapMode;\n    /**\n     * Sets the active item properly given the default mode. In other words, it will\n     * continue to move down the list until it finds an item that is not disabled. If\n     * it encounters either end of the list, it will stop and not wrap.\n     */\n    private _setActiveInDefaultMode;\n    /**\n     * Sets the active item to the first enabled item starting at the index specified. If the\n     * item is disabled, it will move in the fallbackDelta direction until it either\n     * finds an enabled item or encounters the end of the list.\n     */\n    private _setActiveItemByIndex;\n    /** Returns the items as an array. */\n    private _getItemsArray;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/live-announcer/live-announcer-tokens.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\n/** Possible politeness levels. */\nexport declare type AriaLivePoliteness = 'off' | 'polite' | 'assertive';\nexport declare const LIVE_ANNOUNCER_ELEMENT_TOKEN: InjectionToken<HTMLElement | null>;\n/** @docs-private */\nexport declare function LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY(): null;\n/** Object that can be used to configure the default options for the LiveAnnouncer. */\nexport interface LiveAnnouncerDefaultOptions {\n    /** Default politeness for the announcements. */\n    politeness?: AriaLivePoliteness;\n    /** Default duration for the announcement messages. */\n    duration?: number;\n}\n/** Injection token that can be used to configure the default options for the LiveAnnouncer. */\nexport declare const LIVE_ANNOUNCER_DEFAULT_OPTIONS: InjectionToken<LiveAnnouncerDefaultOptions>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/live-announcer/live-announcer.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ContentObserver } from '@angular/cdk/observers';\nimport { ElementRef, NgZone, OnDestroy, Provider } from '@angular/core';\nimport { AriaLivePoliteness, LiveAnnouncerDefaultOptions } from './live-announcer-tokens';\nimport * as ɵngcc0 from '@angular/core';\nexport declare class LiveAnnouncer implements OnDestroy {\n    private _ngZone;\n    private _defaultOptions?;\n    private _liveElement;\n    private _document;\n    private _previousTimeout?;\n    constructor(elementToken: any, _ngZone: NgZone, _document: any, _defaultOptions?: LiveAnnouncerDefaultOptions | undefined);\n    /**\n     * Announces a message to screenreaders.\n     * @param message Message to be announced to the screenreader.\n     * @returns Promise that will be resolved when the message is added to the DOM.\n     */\n    announce(message: string): Promise<void>;\n    /**\n     * Announces a message to screenreaders.\n     * @param message Message to be announced to the screenreader.\n     * @param politeness The politeness of the announcer element.\n     * @returns Promise that will be resolved when the message is added to the DOM.\n     */\n    announce(message: string, politeness?: AriaLivePoliteness): Promise<void>;\n    /**\n     * Announces a message to screenreaders.\n     * @param message Message to be announced to the screenreader.\n     * @param duration Time in milliseconds after which to clear out the announcer element. Note\n     *   that this takes effect after the message has been added to the DOM, which can be up to\n     *   100ms after `announce` has been called.\n     * @returns Promise that will be resolved when the message is added to the DOM.\n     */\n    announce(message: string, duration?: number): Promise<void>;\n    /**\n     * Announces a message to screenreaders.\n     * @param message Message to be announced to the screenreader.\n     * @param politeness The politeness of the announcer element.\n     * @param duration Time in milliseconds after which to clear out the announcer element. Note\n     *   that this takes effect after the message has been added to the DOM, which can be up to\n     *   100ms after `announce` has been called.\n     * @returns Promise that will be resolved when the message is added to the DOM.\n     */\n    announce(message: string, politeness?: AriaLivePoliteness, duration?: number): Promise<void>;\n    /**\n     * Clears the current text from the announcer element. Can be used to prevent\n     * screen readers from reading the text out again while the user is going\n     * through the page landmarks.\n     */\n    clear(): void;\n    ngOnDestroy(): void;\n    private _createLiveElement;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<LiveAnnouncer>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<LiveAnnouncer>;\n}\n/**\n * A directive that works similarly to aria-live, but uses the LiveAnnouncer to ensure compatibility\n * with a wider range of browsers and screen readers.\n */\nexport declare class CdkAriaLive implements OnDestroy {\n    private _elementRef;\n    private _liveAnnouncer;\n    private _contentObserver;\n    private _ngZone;\n    /** The aria-live politeness level to use when announcing messages. */\n    politeness: AriaLivePoliteness;\n    private _politeness;\n    private _previousAnnouncedText?;\n    private _subscription;\n    constructor(_elementRef: ElementRef, _liveAnnouncer: LiveAnnouncer, _contentObserver: ContentObserver, _ngZone: NgZone);\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkAriaLive>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkAriaLive, \"[cdkAriaLive]\", [\"cdkAriaLive\"], { 'politeness': \"cdkAriaLive\" }, {}, never>;\n}\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare function LIVE_ANNOUNCER_PROVIDER_FACTORY(parentAnnouncer: LiveAnnouncer, liveElement: any, _document: any, ngZone: NgZone): LiveAnnouncer;\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare const LIVE_ANNOUNCER_PROVIDER: Provider;\n\n//# sourceMappingURL=live-announcer.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/a11y/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './aria-describer/aria-describer';\nexport * from './key-manager/activedescendant-key-manager';\nexport * from './key-manager/focus-key-manager';\nexport * from './key-manager/list-key-manager';\nexport * from './focus-trap/focus-trap';\nexport * from './interactivity-checker/interactivity-checker';\nexport * from './live-announcer/live-announcer';\nexport * from './live-announcer/live-announcer-tokens';\nexport * from './focus-monitor/focus-monitor';\nexport * from './fake-mousedown';\nexport * from './a11y-module';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/accordion/accordion-item.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { EventEmitter, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { CdkAccordion } from './accordion';\n/**\n * An basic directive expected to be extended and decorated as a component.  Sets up all\n * events and attributes needed to be managed by a CdkAccordion parent.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class CdkAccordionItem implements OnDestroy {\n    accordion: CdkAccordion;\n    private _changeDetectorRef;\n    protected _expansionDispatcher: UniqueSelectionDispatcher;\n    /** Subscription to openAll/closeAll events. */\n    private _openCloseAllSubscription;\n    /** Event emitted every time the AccordionItem is closed. */\n    closed: EventEmitter<void>;\n    /** Event emitted every time the AccordionItem is opened. */\n    opened: EventEmitter<void>;\n    /** Event emitted when the AccordionItem is destroyed. */\n    destroyed: EventEmitter<void>;\n    /**\n     * Emits whenever the expanded state of the accordion changes.\n     * Primarily used to facilitate two-way binding.\n     * @docs-private\n     */\n    expandedChange: EventEmitter<boolean>;\n    /** The unique AccordionItem id. */\n    readonly id: string;\n    /** Whether the AccordionItem is expanded. */\n    expanded: any;\n    private _expanded;\n    /** Whether the AccordionItem is disabled. */\n    disabled: any;\n    private _disabled;\n    /** Unregister function for _expansionDispatcher. */\n    private _removeUniqueSelectionListener;\n    constructor(accordion: CdkAccordion, _changeDetectorRef: ChangeDetectorRef, _expansionDispatcher: UniqueSelectionDispatcher);\n    /** Emits an event for the accordion item being destroyed. */\n    ngOnDestroy(): void;\n    /** Toggles the expanded state of the accordion item. */\n    toggle(): void;\n    /** Sets the expanded state of the accordion item to false. */\n    close(): void;\n    /** Sets the expanded state of the accordion item to true. */\n    open(): void;\n    private _subscribeToOpenCloseAllActions;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkAccordionItem>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkAccordionItem, \"cdk-accordion-item, [cdkAccordionItem]\", [\"cdkAccordionItem\"], { 'expanded': \"expanded\", 'disabled': \"disabled\" }, { 'closed': \"closed\", 'opened': \"opened\", 'destroyed': \"destroyed\", 'expandedChange': \"expandedChange\" }, never>;\n}\n\n//# sourceMappingURL=accordion-item.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/accordion/accordion-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './accordion';\nimport * as ɵngcc2 from './accordion-item';\nexport declare class CdkAccordionModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<CdkAccordionModule, [typeof ɵngcc1.CdkAccordion, typeof ɵngcc2.CdkAccordionItem], never, [typeof ɵngcc1.CdkAccordion, typeof ɵngcc2.CdkAccordionItem]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<CdkAccordionModule>;\n}\n\n//# sourceMappingURL=accordion-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/accordion/accordion.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { Subject } from 'rxjs';\n/**\n * Directive whose purpose is to manage the expanded state of CdkAccordionItem children.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class CdkAccordion implements OnDestroy, OnChanges {\n    /** Emits when the state of the accordion changes */\n    readonly _stateChanges: Subject<SimpleChanges>;\n    /** Stream that emits true/false when openAll/closeAll is triggered. */\n    readonly _openCloseAllActions: Subject<boolean>;\n    /** A readonly id value to use for unique selection coordination. */\n    readonly id: string;\n    /** Whether the accordion should allow multiple expanded accordion items simultaneously. */\n    multi: boolean;\n    private _multi;\n    /** Opens all enabled accordion items in an accordion where multi is enabled. */\n    openAll(): void;\n    /** Closes all enabled accordion items in an accordion where multi is enabled. */\n    closeAll(): void;\n    ngOnChanges(changes: SimpleChanges): void;\n    ngOnDestroy(): void;\n    private _openCloseAll;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkAccordion>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkAccordion, \"cdk-accordion, [cdkAccordion]\", [\"cdkAccordion\"], { 'multi': \"multi\" }, {}, never>;\n}\n\n//# sourceMappingURL=accordion.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/accordion/index.d.ts",
      "node_modules/@angular/cdk/accordion/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/accordion/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport { CdkAccordionItem } from './accordion-item';\nexport { CdkAccordion } from './accordion';\nexport * from './accordion-module';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/bidi/bidi-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './dir';\nexport declare class BidiModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<BidiModule, [typeof ɵngcc1.Dir], never, [typeof ɵngcc1.Dir]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<BidiModule>;\n}\n\n//# sourceMappingURL=bidi-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/bidi/dir-document-token.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\n/**\n * Injection token used to inject the document into Directionality.\n * This is used so that the value can be faked in tests.\n *\n * We can't use the real document in tests because changing the real `dir` causes geometry-based\n * tests in Safari to fail.\n *\n * We also can't re-provide the DOCUMENT token from platform-brower because the unit tests\n * themselves use things like `querySelector` in test code.\n *\n * This token is defined in a separate file from Directionality as a workaround for\n * https://github.com/angular/angular/issues/22559\n *\n * @docs-private\n */\nexport declare const DIR_DOCUMENT: InjectionToken<Document>;\n/** @docs-private */\nexport declare function DIR_DOCUMENT_FACTORY(): Document;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/bidi/dir.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { EventEmitter, AfterContentInit, OnDestroy } from '@angular/core';\nimport { Direction, Directionality } from './directionality';\n/**\n * Directive to listen for changes of direction of part of the DOM.\n *\n * Provides itself as Directionality such that descendant directives only need to ever inject\n * Directionality to get the closest direction.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class Dir implements Directionality, AfterContentInit, OnDestroy {\n    /** Normalized direction that accounts for invalid/unsupported values. */\n    private _dir;\n    /** Whether the `value` has been set to its initial value. */\n    private _isInitialized;\n    /** Direction as passed in by the consumer. */\n    _rawDir: string;\n    /** Event emitted when the direction changes. */\n    change: EventEmitter<Direction>;\n    /** @docs-private */\n    dir: Direction;\n    /** Current layout direction of the element. */\n    readonly value: Direction;\n    /** Initialize once default value has been set. */\n    ngAfterContentInit(): void;\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<Dir>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<Dir, \"[dir]\", [\"dir\"], { 'dir': \"dir\" }, { 'change': \"dirChange\" }, never>;\n}\n\n//# sourceMappingURL=dir.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/bidi/directionality.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { EventEmitter, OnDestroy } from '@angular/core';\nimport * as ɵngcc0 from '@angular/core';\nexport declare type Direction = 'ltr' | 'rtl';\n/**\n * The directionality (LTR / RTL) context for the application (or a subtree of it).\n * Exposes the current direction and a stream of direction changes.\n */\nexport declare class Directionality implements OnDestroy {\n    /** The current 'ltr' or 'rtl' value. */\n    readonly value: Direction;\n    /** Stream that emits whenever the 'ltr' / 'rtl' state changes. */\n    readonly change: EventEmitter<Direction>;\n    constructor(_document?: any);\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<Directionality>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<Directionality>;\n}\n\n//# sourceMappingURL=directionality.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/bidi/index.d.ts",
      "node_modules/@angular/cdk/bidi/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\nexport { DIR_DOCUMENT_FACTORY as ɵangular_material_src_cdk_bidi_bidi_a } from './dir-document-token';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/bidi/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport { Directionality, Direction } from './directionality';\nexport { DIR_DOCUMENT } from './dir-document-token';\nexport { Dir } from './dir';\nexport * from './bidi-module';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/coercion/array.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Wraps the provided value in an array, unless the provided value is an array. */\nexport declare function coerceArray<T>(value: T | T[]): T[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/coercion/boolean-property.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Coerces a data-bound value (typically a string) to a boolean. */\nexport declare function coerceBooleanProperty(value: any): boolean;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/coercion/css-pixel-value.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Coerces a value to a CSS pixel value. */\nexport declare function coerceCssPixelValue(value: any): string;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/coercion/element.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef } from '@angular/core';\n/**\n * Coerces an ElementRef or an Element into an element.\n * Useful for APIs that can accept either a ref or the native element itself.\n */\nexport declare function coerceElement<T>(elementOrRef: ElementRef<T> | T): T;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/coercion/index.d.ts",
      "node_modules/@angular/cdk/coercion/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/coercion/number-property.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Coerces a data-bound value (typically a string) to a number. */\nexport declare function coerceNumberProperty(value: any): number;\nexport declare function coerceNumberProperty<D>(value: any, fallback: D): number | D;\n/**\n * Whether the provided value is considered a number.\n * @docs-private\n */\nexport declare function _isNumberValue(value: any): boolean;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/coercion/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './boolean-property';\nexport * from './number-property';\nexport * from './array';\nexport * from './css-pixel-value';\nexport * from './element';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/collections/array-data-source.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Observable } from 'rxjs';\nimport { DataSource } from './data-source';\n/** DataSource wrapper for a native array. */\nexport declare class ArrayDataSource<T> extends DataSource<T> {\n    private _data;\n    constructor(_data: T[] | ReadonlyArray<T> | Observable<T[] | ReadonlyArray<T>>);\n    connect(): Observable<T[] | ReadonlyArray<T>>;\n    disconnect(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/collections/collection-viewer.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Observable } from 'rxjs';\n/** Represents a range of numbers with a specified start and end. */\nexport declare type ListRange = {\n    start: number;\n    end: number;\n};\n/**\n * Interface for any component that provides a view of some data collection and wants to provide\n * information regarding the view and any changes made.\n */\nexport interface CollectionViewer {\n    /**\n     * A stream that emits whenever the `CollectionViewer` starts looking at a new portion of the\n     * data. The `start` index is inclusive, while the `end` is exclusive.\n     */\n    viewChange: Observable<ListRange>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/collections/data-source.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Observable } from 'rxjs';\nimport { CollectionViewer } from './collection-viewer';\nexport declare abstract class DataSource<T> {\n    /**\n     * Connects a collection viewer (such as a data-table) to this data source. Note that\n     * the stream provided will be accessed during change detection and should not directly change\n     * values that are bound in template views.\n     * @param collectionViewer The component that exposes a view over the data provided by this\n     *     data source.\n     * @returns Observable that emits a new value when the data changes.\n     */\n    abstract connect(collectionViewer: CollectionViewer): Observable<T[] | ReadonlyArray<T>>;\n    /**\n     * Disconnects a collection viewer (such as a data-table) from this data source. Can be used\n     * to perform any clean-up or tear-down operations when a view is being destroyed.\n     *\n     * @param collectionViewer The component that exposes a view over the data provided by this\n     *     data source.\n     */\n    abstract disconnect(collectionViewer: CollectionViewer): void;\n}\n/** Checks whether an object is a data source. */\nexport declare function isDataSource(value: any): value is DataSource<any>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/collections/index.d.ts",
      "node_modules/@angular/cdk/collections/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/collections/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './array-data-source';\nexport * from './collection-viewer';\nexport * from './data-source';\nexport * from './selection';\nexport { UniqueSelectionDispatcher, UniqueSelectionDispatcherListener, } from './unique-selection-dispatcher';\nexport * from './tree-adapter';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/collections/selection.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Subject } from 'rxjs';\n/**\n * Class to be used to power selecting one or more options from a list.\n */\nexport declare class SelectionModel<T> {\n    private _multiple;\n    private _emitChanges;\n    /** Currently-selected values. */\n    private _selection;\n    /** Keeps track of the deselected options that haven't been emitted by the change event. */\n    private _deselectedToEmit;\n    /** Keeps track of the selected options that haven't been emitted by the change event. */\n    private _selectedToEmit;\n    /** Cache for the array value of the selected items. */\n    private _selected;\n    /** Selected values. */\n    readonly selected: T[];\n    /** Event emitted when the value has changed. */\n    changed: Subject<SelectionChange<T>>;\n    /**\n     * Event emitted when the value has changed.\n     * @deprecated Use `changed` instead.\n     * @breaking-change 8.0.0 To be changed to `changed`\n     */\n    onChange: Subject<SelectionChange<T>>;\n    constructor(_multiple?: boolean, initiallySelectedValues?: T[], _emitChanges?: boolean);\n    /**\n     * Selects a value or an array of values.\n     */\n    select(...values: T[]): void;\n    /**\n     * Deselects a value or an array of values.\n     */\n    deselect(...values: T[]): void;\n    /**\n     * Toggles a value between selected and deselected.\n     */\n    toggle(value: T): void;\n    /**\n     * Clears all of the selected values.\n     */\n    clear(): void;\n    /**\n     * Determines whether a value is selected.\n     */\n    isSelected(value: T): boolean;\n    /**\n     * Determines whether the model does not have a value.\n     */\n    isEmpty(): boolean;\n    /**\n     * Determines whether the model has a value.\n     */\n    hasValue(): boolean;\n    /**\n     * Sorts the selected values based on a predicate function.\n     */\n    sort(predicate?: (a: T, b: T) => number): void;\n    /**\n     * Gets whether multiple values can be selected.\n     */\n    isMultipleSelection(): boolean;\n    /** Emits a change event and clears the records of selected and deselected values. */\n    private _emitChangeEvent;\n    /** Selects a value. */\n    private _markSelected;\n    /** Deselects a value. */\n    private _unmarkSelected;\n    /** Clears out the selected values. */\n    private _unmarkAll;\n    /**\n     * Verifies the value assignment and throws an error if the specified value array is\n     * including multiple values while the selection model is not supporting multiple values.\n     */\n    private _verifyValueAssignment;\n}\n/**\n * Event emitted when the value of a MatSelectionModel has changed.\n * @docs-private\n */\nexport interface SelectionChange<T> {\n    /** Model that dispatched the event. */\n    source: SelectionModel<T>;\n    /** Options that were added to the model. */\n    added: T[];\n    /** Options that were removed from the model. */\n    removed: T[];\n}\n/**\n * Returns an error that reports that multiple values are passed into a selection model\n * with a single value.\n * @docs-private\n */\nexport declare function getMultipleValuesInSingleSelectionError(): Error;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/collections/tree-adapter.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { SelectionModel } from './selection';\n/**\n * Interface for a class that can flatten hierarchical structured data and re-expand the flattened\n * data back into its original structure. Should be used in conjunction with the cdk-tree.\n */\nexport interface TreeDataNodeFlattener<T> {\n    /** Transforms a set of hierarchical structured data into a flattened data array. */\n    flattenNodes(structuredData: any[]): T[];\n    /**\n     * Expands a flattened array of data into its hierarchical form using the provided expansion\n     * model.\n     */\n    expandFlattenedNodes(nodes: T[], expansionModel: SelectionModel<T>): T[];\n    /**\n     * Put node descendants of node in array.\n     * If `onlyExpandable` is true, then only process expandable descendants.\n     */\n    nodeDescendents(node: T, nodes: T[], onlyExpandable: boolean): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/collections/unique-selection-dispatcher.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { OnDestroy } from '@angular/core';\nimport * as ɵngcc0 from '@angular/core';\nexport declare type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\nexport declare class UniqueSelectionDispatcher implements OnDestroy {\n    private _listeners;\n    /**\n     * Notify other items that selection for the given name has been set.\n     * @param id ID of the item.\n     * @param name Name of the item.\n     */\n    notify(id: string, name: string): void;\n    /**\n     * Listen for future changes to item selection.\n     * @return Function used to deregister listener\n     */\n    listen(listener: UniqueSelectionDispatcherListener): () => void;\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<UniqueSelectionDispatcher>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<UniqueSelectionDispatcher>;\n}\n\n//# sourceMappingURL=unique-selection-dispatcher.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/directives/drag-handle.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n/** Handle that can be used to drag and CdkDrag instance. */\nexport declare class CdkDragHandle implements OnDestroy {\n    element: ElementRef<HTMLElement>;\n    /** Closest parent draggable instance. */\n    _parentDrag: {} | undefined;\n    /** Emits when the state of the handle has changed. */\n    _stateChanges: Subject<CdkDragHandle>;\n    /** Whether starting to drag through this handle is disabled. */\n    disabled: boolean;\n    private _disabled;\n    constructor(element: ElementRef<HTMLElement>, parentDrag?: any);\n    ngOnDestroy(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/directives/drag-placeholder.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { TemplateRef } from '@angular/core';\n/**\n * Element that will be used as a template for the placeholder of a CdkDrag when\n * it is being dragged. The placeholder is displayed in place of the element being dragged.\n */\nexport declare class CdkDragPlaceholder<T = any> {\n    templateRef: TemplateRef<T>;\n    /** Context data to be added to the placeholder template instance. */\n    data: T;\n    constructor(templateRef: TemplateRef<T>);\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/directives/drag-preview.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { TemplateRef } from '@angular/core';\n/**\n * Element that will be used as a template for the preview\n * of a CdkDrag when it is being dragged.\n */\nexport declare class CdkDragPreview<T = any> {\n    templateRef: TemplateRef<T>;\n    /** Context data to be added to the preview template instance. */\n    data: T;\n    constructor(templateRef: TemplateRef<T>);\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/directives/drag.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { AfterViewInit, ElementRef, EventEmitter, InjectionToken, NgZone, OnDestroy, QueryList, ViewContainerRef, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { CdkDragDrop, CdkDragEnd, CdkDragEnter, CdkDragExit, CdkDragMove, CdkDragStart, CdkDragRelease } from '../drag-events';\nimport { CdkDragHandle } from './drag-handle';\nimport { CdkDragPlaceholder } from './drag-placeholder';\nimport { CdkDragPreview } from './drag-preview';\nimport { DragRef, DragRefConfig, Point } from '../drag-ref';\nimport { CdkDropListInternal as CdkDropList } from './drop-list';\nimport { DragDrop } from '../drag-drop';\n/**\n * Injection token that is used to provide a CdkDropList instance to CdkDrag.\n * Used for avoiding circular imports.\n */\nexport declare const CDK_DROP_LIST: InjectionToken<CdkDropList>;\n/** Injection token that can be used to configure the behavior of `CdkDrag`. */\nexport declare const CDK_DRAG_CONFIG: InjectionToken<DragRefConfig>;\n/** @docs-private */\nexport declare function CDK_DRAG_CONFIG_FACTORY(): DragRefConfig;\n/** Element that can be moved inside a CdkDropList container. */\nexport declare class CdkDrag<T = any> implements AfterViewInit, OnChanges, OnDestroy {\n    /** Element that the draggable is attached to. */\n    element: ElementRef<HTMLElement>;\n    /** Droppable container that the draggable is a part of. */\n    dropContainer: CdkDropList;\n    private _document;\n    private _ngZone;\n    private _viewContainerRef;\n    private _dir;\n    private _changeDetectorRef;\n    private _destroyed;\n    /** Reference to the underlying drag instance. */\n    _dragRef: DragRef<CdkDrag<T>>;\n    /** Elements that can be used to drag the draggable item. */\n    _handles: QueryList<CdkDragHandle>;\n    /** Element that will be used as a template to create the draggable item's preview. */\n    _previewTemplate: CdkDragPreview;\n    /** Template for placeholder element rendered to show where a draggable would be dropped. */\n    _placeholderTemplate: CdkDragPlaceholder;\n    /** Arbitrary data to attach to this drag instance. */\n    data: T;\n    /** Locks the position of the dragged element along the specified axis. */\n    lockAxis: 'x' | 'y';\n    /**\n     * Selector that will be used to determine the root draggable element, starting from\n     * the `cdkDrag` element and going up the DOM. Passing an alternate root element is useful\n     * when trying to enable dragging on an element that you might not have access to.\n     */\n    rootElementSelector: string;\n    /**\n     * Node or selector that will be used to determine the element to which the draggable's\n     * position will be constrained. If a string is passed in, it'll be used as a selector that\n     * will be matched starting from the element's parent and going up the DOM until a match\n     * has been found.\n     */\n    boundaryElement: string | ElementRef<HTMLElement> | HTMLElement;\n    /**\n     * Amount of milliseconds to wait after the user has put their\n     * pointer down before starting to drag the element.\n     */\n    dragStartDelay: number;\n    /**\n     * Sets the position of a `CdkDrag` that is outside of a drop container.\n     * Can be used to restore the element's position for a returning user.\n     */\n    freeDragPosition: {\n        x: number;\n        y: number;\n    };\n    /** Whether starting to drag this element is disabled. */\n    disabled: boolean;\n    private _disabled;\n    /**\n     * Function that can be used to customize the logic of how the position of the drag item\n     * is limited while it's being dragged. Gets called with a point containing the current position\n     * of the user's pointer on the page and should return a point describing where the item should\n     * be rendered.\n     */\n    constrainPosition?: (point: Point, dragRef: DragRef) => Point;\n    /** Emits when the user starts dragging the item. */\n    started: EventEmitter<CdkDragStart>;\n    /** Emits when the user has released a drag item, before any animations have started. */\n    released: EventEmitter<CdkDragRelease>;\n    /** Emits when the user stops dragging an item in the container. */\n    ended: EventEmitter<CdkDragEnd>;\n    /** Emits when the user has moved the item into a new container. */\n    entered: EventEmitter<CdkDragEnter<any>>;\n    /** Emits when the user removes the item its container by dragging it into another container. */\n    exited: EventEmitter<CdkDragExit<any>>;\n    /** Emits when the user drops the item inside a container. */\n    dropped: EventEmitter<CdkDragDrop<any>>;\n    /**\n     * Emits as the user is dragging the item. Use with caution,\n     * because this event will fire for every pixel that the user has dragged.\n     */\n    moved: Observable<CdkDragMove<T>>;\n    constructor(\n    /** Element that the draggable is attached to. */\n    element: ElementRef<HTMLElement>, \n    /** Droppable container that the draggable is a part of. */\n    dropContainer: CdkDropList, _document: any, _ngZone: NgZone, _viewContainerRef: ViewContainerRef, config: DragRefConfig, _dir: Directionality, dragDrop: DragDrop, _changeDetectorRef: ChangeDetectorRef);\n    /**\n     * Returns the element that is being used as a placeholder\n     * while the current element is being dragged.\n     */\n    getPlaceholderElement(): HTMLElement;\n    /** Returns the root draggable element. */\n    getRootElement(): HTMLElement;\n    /** Resets a standalone drag item to its initial position. */\n    reset(): void;\n    /**\n     * Gets the pixel coordinates of the draggable outside of a drop container.\n     */\n    getFreeDragPosition(): {\n        readonly x: number;\n        readonly y: number;\n    };\n    ngAfterViewInit(): void;\n    ngOnChanges(changes: SimpleChanges): void;\n    ngOnDestroy(): void;\n    /** Syncs the root element with the `DragRef`. */\n    private _updateRootElement;\n    /** Gets the boundary element, based on the `boundaryElement` value. */\n    private _getBoundaryElement;\n    /** Syncs the inputs of the CdkDrag with the options of the underlying DragRef. */\n    private _syncInputs;\n    /** Handles the events from the underlying `DragRef`. */\n    private _handleEvents;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/directives/drop-list-group.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { OnDestroy } from '@angular/core';\n/**\n * Declaratively connects sibling `cdkDropList` instances together. All of the `cdkDropList`\n * elements that are placed inside a `cdkDropListGroup` will be connected to each other\n * automatically. Can be used as an alternative to the `cdkDropListConnectedTo` input\n * from `cdkDropList`.\n */\nexport declare class CdkDropListGroup<T> implements OnDestroy {\n    /** Drop lists registered inside the group. */\n    readonly _items: Set<T>;\n    /** Whether starting a dragging sequence from inside this group is disabled. */\n    disabled: boolean;\n    private _disabled;\n    ngOnDestroy(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/directives/drop-list.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, EventEmitter, OnDestroy, QueryList, ChangeDetectorRef, AfterContentInit } from '@angular/core';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { CdkDrag } from './drag';\nimport { CdkDragDrop, CdkDragEnter, CdkDragExit, CdkDragSortEvent } from '../drag-events';\nimport { CdkDropListGroup } from './drop-list-group';\nimport { DropListRef } from '../drop-list-ref';\nimport { DragDrop } from '../drag-drop';\n/**\n * Internal compile-time-only representation of a `CdkDropList`.\n * Used to avoid circular import issues between the `CdkDropList` and the `CdkDrag`.\n * @docs-private\n */\nexport interface CdkDropListInternal extends CdkDropList {\n}\n/** Container that wraps a set of draggable items. */\nexport declare class CdkDropList<T = any> implements AfterContentInit, OnDestroy {\n    /** Element that the drop list is attached to. */\n    element: ElementRef<HTMLElement>;\n    private _changeDetectorRef;\n    private _dir?;\n    private _group?;\n    /** Emits when the list has been destroyed. */\n    private _destroyed;\n    /** Keeps track of the drop lists that are currently on the page. */\n    private static _dropLists;\n    /** Reference to the underlying drop list instance. */\n    _dropListRef: DropListRef<CdkDropList<T>>;\n    /** Draggable items in the container. */\n    _draggables: QueryList<CdkDrag>;\n    /**\n     * Other draggable containers that this container is connected to and into which the\n     * container's items can be transferred. Can either be references to other drop containers,\n     * or their unique IDs.\n     */\n    connectedTo: (CdkDropList | string)[] | CdkDropList | string;\n    /** Arbitrary data to attach to this container. */\n    data: T;\n    /** Direction in which the list is oriented. */\n    orientation: 'horizontal' | 'vertical';\n    /**\n     * Unique ID for the drop zone. Can be used as a reference\n     * in the `connectedTo` of another `CdkDropList`.\n     */\n    id: string;\n    /** Locks the position of the draggable elements inside the container along the specified axis. */\n    lockAxis: 'x' | 'y';\n    /** Whether starting a dragging sequence from this container is disabled. */\n    disabled: boolean;\n    private _disabled;\n    /** Whether sorting within this drop list is disabled. */\n    sortingDisabled: boolean;\n    private _sortingDisabled;\n    /**\n     * Function that is used to determine whether an item\n     * is allowed to be moved into a drop container.\n     */\n    enterPredicate: (drag: CdkDrag, drop: CdkDropList) => boolean;\n    /** Whether to auto-scroll the view when the user moves their pointer close to the edges. */\n    autoScrollDisabled: boolean;\n    /** Emits when the user drops an item inside the container. */\n    dropped: EventEmitter<CdkDragDrop<T, any>>;\n    /**\n     * Emits when the user has moved a new drag item into this container.\n     */\n    entered: EventEmitter<CdkDragEnter<T>>;\n    /**\n     * Emits when the user removes an item from the container\n     * by dragging it into another container.\n     */\n    exited: EventEmitter<CdkDragExit<T>>;\n    /** Emits as the user is swapping items while actively dragging. */\n    sorted: EventEmitter<CdkDragSortEvent<T>>;\n    constructor(\n    /** Element that the drop list is attached to. */\n    element: ElementRef<HTMLElement>, dragDrop: DragDrop, _changeDetectorRef: ChangeDetectorRef, _dir?: Directionality | undefined, _group?: CdkDropListGroup<CdkDropList<any>> | undefined);\n    ngAfterContentInit(): void;\n    ngOnDestroy(): void;\n    /**\n     * Starts dragging an item.\n     * @deprecated No longer being used. To be removed.\n     * @breaking-change 10.0.0\n     */\n    start(): void;\n    /**\n     * Drops an item into this container.\n     * @param item Item being dropped into the container.\n     * @param currentIndex Index at which the item should be inserted.\n     * @param previousContainer Container from which the item got dragged in.\n     * @param isPointerOverContainer Whether the user's pointer was over the\n     *    container when the item was dropped.\n     *\n     * @deprecated No longer being used. To be removed.\n     * @breaking-change 10.0.0\n     */\n    drop(item: CdkDrag, currentIndex: number, previousContainer: CdkDropList, isPointerOverContainer: boolean): void;\n    /**\n     * Emits an event to indicate that the user moved an item into the container.\n     * @param item Item that was moved into the container.\n     * @param pointerX Position of the item along the X axis.\n     * @param pointerY Position of the item along the Y axis.\n     * @deprecated No longer being used. To be removed.\n     * @breaking-change 10.0.0\n     */\n    enter(item: CdkDrag, pointerX: number, pointerY: number): void;\n    /**\n     * Removes an item from the container after it was dragged into another container by the user.\n     * @param item Item that was dragged out.\n     * @deprecated No longer being used. To be removed.\n     * @breaking-change 10.0.0\n     */\n    exit(item: CdkDrag): void;\n    /**\n     * Figures out the index of an item in the container.\n     * @param item Item whose index should be determined.\n     * @deprecated No longer being used. To be removed.\n     * @breaking-change 10.0.0\n     */\n    getItemIndex(item: CdkDrag): number;\n    /** Syncs the inputs of the CdkDropList with the options of the underlying DropListRef. */\n    private _syncInputs;\n    /** Handles events from the underlying DropListRef. */\n    private _handleEvents;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/drag-drop-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class DragDropModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/drag-drop-registry.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { NgZone, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n/**\n * Service that keeps track of all the drag item and drop container\n * instances, and manages global event listeners on the `document`.\n * @docs-private\n */\nexport declare class DragDropRegistry<I, C> implements OnDestroy {\n    private _ngZone;\n    private _document;\n    /** Registered drop container instances. */\n    private _dropInstances;\n    /** Registered drag item instances. */\n    private _dragInstances;\n    /** Drag item instances that are currently being dragged. */\n    private _activeDragInstances;\n    /** Keeps track of the event listeners that we've bound to the `document`. */\n    private _globalListeners;\n    /**\n     * Emits the `touchmove` or `mousemove` events that are dispatched\n     * while the user is dragging a drag item instance.\n     */\n    readonly pointerMove: Subject<TouchEvent | MouseEvent>;\n    /**\n     * Emits the `touchend` or `mouseup` events that are dispatched\n     * while the user is dragging a drag item instance.\n     */\n    readonly pointerUp: Subject<TouchEvent | MouseEvent>;\n    /** Emits when the viewport has been scrolled while the user is dragging an item. */\n    readonly scroll: Subject<Event>;\n    constructor(_ngZone: NgZone, _document: any);\n    /** Adds a drop container to the registry. */\n    registerDropContainer(drop: C): void;\n    /** Adds a drag item instance to the registry. */\n    registerDragItem(drag: I): void;\n    /** Removes a drop container from the registry. */\n    removeDropContainer(drop: C): void;\n    /** Removes a drag item instance from the registry. */\n    removeDragItem(drag: I): void;\n    /**\n     * Starts the dragging sequence for a drag instance.\n     * @param drag Drag instance which is being dragged.\n     * @param event Event that initiated the dragging.\n     */\n    startDragging(drag: I, event: TouchEvent | MouseEvent): void;\n    /** Stops dragging a drag item instance. */\n    stopDragging(drag: I): void;\n    /** Gets whether a drag item instance is currently being dragged. */\n    isDragging(drag: I): boolean;\n    ngOnDestroy(): void;\n    /**\n     * Event listener that will prevent the default browser action while the user is dragging.\n     * @param event Event whose default action should be prevented.\n     */\n    private _preventDefaultWhileDragging;\n    /** Clears out the global event listeners from the `document`. */\n    private _clearGlobalListeners;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/drag-drop.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { NgZone, ElementRef } from '@angular/core';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { DragRef, DragRefConfig } from './drag-ref';\nimport { DropListRef } from './drop-list-ref';\nimport { DragDropRegistry } from './drag-drop-registry';\n/**\n * Service that allows for drag-and-drop functionality to be attached to DOM elements.\n */\nexport declare class DragDrop {\n    private _document;\n    private _ngZone;\n    private _viewportRuler;\n    private _dragDropRegistry;\n    constructor(_document: any, _ngZone: NgZone, _viewportRuler: ViewportRuler, _dragDropRegistry: DragDropRegistry<DragRef, DropListRef>);\n    /**\n     * Turns an element into a draggable item.\n     * @param element Element to which to attach the dragging functionality.\n     * @param config Object used to configure the dragging behavior.\n     */\n    createDrag<T = any>(element: ElementRef<HTMLElement> | HTMLElement, config?: DragRefConfig): DragRef<T>;\n    /**\n     * Turns an element into a drop list.\n     * @param element Element to which to attach the drop list functionality.\n     */\n    createDropList<T = any>(element: ElementRef<HTMLElement> | HTMLElement): DropListRef<T>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/drag-events.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkDrag } from './directives/drag';\nimport { CdkDropList } from './directives/drop-list';\n/** Event emitted when the user starts dragging a draggable. */\nexport interface CdkDragStart<T = any> {\n    /** Draggable that emitted the event. */\n    source: CdkDrag<T>;\n}\n/** Event emitted when the user releases an item, before any animations have started. */\nexport interface CdkDragRelease<T = any> {\n    /** Draggable that emitted the event. */\n    source: CdkDrag<T>;\n}\n/** Event emitted when the user stops dragging a draggable. */\nexport interface CdkDragEnd<T = any> {\n    /** Draggable that emitted the event. */\n    source: CdkDrag<T>;\n    /** Distance in pixels that the user has dragged since the drag sequence started. */\n    distance: {\n        x: number;\n        y: number;\n    };\n}\n/** Event emitted when the user moves an item into a new drop container. */\nexport interface CdkDragEnter<T = any, I = T> {\n    /** Container into which the user has moved the item. */\n    container: CdkDropList<T>;\n    /** Item that was removed from the container. */\n    item: CdkDrag<I>;\n    /** Index at which the item has entered the container. */\n    currentIndex: number;\n}\n/**\n * Event emitted when the user removes an item from a\n * drop container by moving it into another one.\n */\nexport interface CdkDragExit<T = any, I = T> {\n    /** Container from which the user has a removed an item. */\n    container: CdkDropList<T>;\n    /** Item that was removed from the container. */\n    item: CdkDrag<I>;\n}\n/** Event emitted when the user drops a draggable item inside a drop container. */\nexport interface CdkDragDrop<T, O = T> {\n    /** Index of the item when it was picked up. */\n    previousIndex: number;\n    /** Current index of the item. */\n    currentIndex: number;\n    /** Item that is being dropped. */\n    item: CdkDrag;\n    /** Container in which the item was dropped. */\n    container: CdkDropList<T>;\n    /** Container from which the item was picked up. Can be the same as the `container`. */\n    previousContainer: CdkDropList<O>;\n    /** Whether the user's pointer was over the container when the item was dropped. */\n    isPointerOverContainer: boolean;\n    /** Distance in pixels that the user has dragged since the drag sequence started. */\n    distance: {\n        x: number;\n        y: number;\n    };\n}\n/** Event emitted as the user is dragging a draggable item. */\nexport interface CdkDragMove<T = any> {\n    /** Item that is being dragged. */\n    source: CdkDrag<T>;\n    /** Position of the user's pointer on the page. */\n    pointerPosition: {\n        x: number;\n        y: number;\n    };\n    /** Native event that is causing the dragging. */\n    event: MouseEvent | TouchEvent;\n    /** Distance in pixels that the user has dragged since the drag sequence started. */\n    distance: {\n        x: number;\n        y: number;\n    };\n    /**\n     * Indicates the direction in which the user is dragging the element along each axis.\n     * `1` means that the position is increasing (e.g. the user is moving to the right or downwards),\n     * whereas `-1` means that it's decreasing (they're moving to the left or upwards). `0` means\n     * that the position hasn't changed.\n     */\n    delta: {\n        x: -1 | 0 | 1;\n        y: -1 | 0 | 1;\n    };\n}\n/** Event emitted when the user swaps the position of two drag items. */\nexport interface CdkDragSortEvent<T = any, I = T> {\n    /** Index from which the item was sorted previously. */\n    previousIndex: number;\n    /** Index that the item is currently in. */\n    currentIndex: number;\n    /** Container that the item belongs to. */\n    container: CdkDropList<T>;\n    /** Item that is being sorted. */\n    item: CdkDrag<I>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/drag-parent.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\n/**\n * Injection token that can be used for a `CdkDrag` to provide itself as a parent to the\n * drag-specific child directive (`CdkDragHandle`, `CdkDragPreview` etc.). Used primarily\n * to avoid circular imports.\n * @docs-private\n */\nexport declare const CDK_DRAG_PARENT: InjectionToken<{}>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/drag-ref.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, NgZone, ViewContainerRef, TemplateRef } from '@angular/core';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { Direction } from '@angular/cdk/bidi';\nimport { Subject, Observable } from 'rxjs';\nimport { DropListRefInternal as DropListRef } from './drop-list-ref';\nimport { DragDropRegistry } from './drag-drop-registry';\n/** Object that can be used to configure the behavior of DragRef. */\nexport interface DragRefConfig {\n    /**\n     * Minimum amount of pixels that the user should\n     * drag, before the CDK initiates a drag sequence.\n     */\n    dragStartThreshold: number;\n    /**\n     * Amount the pixels the user should drag before the CDK\n     * considers them to have changed the drag direction.\n     */\n    pointerDirectionChangeThreshold: number;\n}\n/**\n * Internal compile-time-only representation of a `DragRef`.\n * Used to avoid circular import issues between the `DragRef` and the `DropListRef`.\n * @docs-private\n */\nexport interface DragRefInternal extends DragRef {\n}\n/** Template that can be used to create a drag helper element (e.g. a preview or a placeholder). */\ninterface DragHelperTemplate<T = any> {\n    template: TemplateRef<T> | null;\n    viewContainer: ViewContainerRef;\n    context: T;\n}\n/**\n * Reference to a draggable item. Used to manipulate or dispose of the item.\n * @docs-private\n */\nexport declare class DragRef<T = any> {\n    private _config;\n    private _document;\n    private _ngZone;\n    private _viewportRuler;\n    private _dragDropRegistry;\n    /** Element displayed next to the user's pointer while the element is dragged. */\n    private _preview;\n    /** Reference to the view of the preview element. */\n    private _previewRef;\n    /** Reference to the view of the placeholder element. */\n    private _placeholderRef;\n    /** Element that is rendered instead of the draggable item while it is being sorted. */\n    private _placeholder;\n    /** Coordinates within the element at which the user picked up the element. */\n    private _pickupPositionInElement;\n    /** Coordinates on the page at which the user picked up the element. */\n    private _pickupPositionOnPage;\n    /**\n     * Reference to the element that comes after the draggable in the DOM, at the time\n     * it was picked up. Used for restoring its initial position when it's dropped.\n     */\n    private _nextSibling;\n    /**\n     * CSS `transform` applied to the element when it isn't being dragged. We need a\n     * passive transform in order for the dragged element to retain its new position\n     * after the user has stopped dragging and because we need to know the relative\n     * position in case they start dragging again. This corresponds to `element.style.transform`.\n     */\n    private _passiveTransform;\n    /** CSS `transform` that is applied to the element while it's being dragged. */\n    private _activeTransform;\n    /** Inline `transform` value that the element had before the first dragging sequence. */\n    private _initialTransform?;\n    /**\n     * Whether the dragging sequence has been started. Doesn't\n     * necessarily mean that the element has been moved.\n     */\n    private _hasStartedDragging;\n    /** Whether the element has moved since the user started dragging it. */\n    private _hasMoved;\n    /** Drop container in which the DragRef resided when dragging began. */\n    private _initialContainer;\n    /** Cached scroll position on the page when the element was picked up. */\n    private _scrollPosition;\n    /** Emits when the item is being moved. */\n    private _moveEvents;\n    /** Keeps track of the direction in which the user is dragging along each axis. */\n    private _pointerDirectionDelta;\n    /** Pointer position at which the last change in the delta occurred. */\n    private _pointerPositionAtLastDirectionChange;\n    /**\n     * Root DOM node of the drag instance. This is the element that will\n     * be moved around as the user is dragging.\n     */\n    private _rootElement;\n    /**\n     * Inline style value of `-webkit-tap-highlight-color` at the time the\n     * dragging was started. Used to restore the value once we're done dragging.\n     */\n    private _rootElementTapHighlight;\n    /** Subscription to pointer movement events. */\n    private _pointerMoveSubscription;\n    /** Subscription to the event that is dispatched when the user lifts their pointer. */\n    private _pointerUpSubscription;\n    /** Subscription to the viewport being scrolled. */\n    private _scrollSubscription;\n    /** Subscription to the viewport being resized. */\n    private _resizeSubscription;\n    /**\n     * Time at which the last touch event occurred. Used to avoid firing the same\n     * events multiple times on touch devices where the browser will fire a fake\n     * mouse event for each touch event, after a certain time.\n     */\n    private _lastTouchEventTime;\n    /** Time at which the last dragging sequence was started. */\n    private _dragStartTime;\n    /** Cached reference to the boundary element. */\n    private _boundaryElement;\n    /** Whether the native dragging interactions have been enabled on the root element. */\n    private _nativeInteractionsEnabled;\n    /** Cached dimensions of the preview element. */\n    private _previewRect?;\n    /** Cached dimensions of the boundary element. */\n    private _boundaryRect?;\n    /** Element that will be used as a template to create the draggable item's preview. */\n    private _previewTemplate?;\n    /** Template for placeholder element rendered to show where a draggable would be dropped. */\n    private _placeholderTemplate?;\n    /** Elements that can be used to drag the draggable item. */\n    private _handles;\n    /** Registered handles that are currently disabled. */\n    private _disabledHandles;\n    /** Droppable container that the draggable is a part of. */\n    private _dropContainer?;\n    /** Layout direction of the item. */\n    private _direction;\n    /** Axis along which dragging is locked. */\n    lockAxis: 'x' | 'y';\n    /**\n     * Amount of milliseconds to wait after the user has put their\n     * pointer down before starting to drag the element.\n     */\n    dragStartDelay: number;\n    /** Whether starting to drag this element is disabled. */\n    disabled: boolean;\n    private _disabled;\n    /** Emits as the drag sequence is being prepared. */\n    beforeStarted: Subject<void>;\n    /** Emits when the user starts dragging the item. */\n    started: Subject<{\n        source: DragRef<any>;\n    }>;\n    /** Emits when the user has released a drag item, before any animations have started. */\n    released: Subject<{\n        source: DragRef<any>;\n    }>;\n    /** Emits when the user stops dragging an item in the container. */\n    ended: Subject<{\n        source: DragRef<any>;\n        distance: Point;\n    }>;\n    /** Emits when the user has moved the item into a new container. */\n    entered: Subject<{\n        container: DropListRef;\n        item: DragRef<any>;\n        currentIndex: number;\n    }>;\n    /** Emits when the user removes the item its container by dragging it into another container. */\n    exited: Subject<{\n        container: DropListRef;\n        item: DragRef<any>;\n    }>;\n    /** Emits when the user drops the item inside a container. */\n    dropped: Subject<{\n        previousIndex: number;\n        currentIndex: number;\n        item: DragRef<any>;\n        container: DropListRef;\n        previousContainer: DropListRef;\n        distance: Point;\n        isPointerOverContainer: boolean;\n    }>;\n    /**\n     * Emits as the user is dragging the item. Use with caution,\n     * because this event will fire for every pixel that the user has dragged.\n     */\n    moved: Observable<{\n        source: DragRef;\n        pointerPosition: {\n            x: number;\n            y: number;\n        };\n        event: MouseEvent | TouchEvent;\n        distance: Point;\n        delta: {\n            x: -1 | 0 | 1;\n            y: -1 | 0 | 1;\n        };\n    }>;\n    /** Arbitrary data that can be attached to the drag item. */\n    data: T;\n    /**\n     * Function that can be used to customize the logic of how the position of the drag item\n     * is limited while it's being dragged. Gets called with a point containing the current position\n     * of the user's pointer on the page and should return a point describing where the item should\n     * be rendered.\n     */\n    constrainPosition?: (point: Point, dragRef: DragRef) => Point;\n    constructor(element: ElementRef<HTMLElement> | HTMLElement, _config: DragRefConfig, _document: Document, _ngZone: NgZone, _viewportRuler: ViewportRuler, _dragDropRegistry: DragDropRegistry<DragRef, DropListRef>);\n    /**\n     * Returns the element that is being used as a placeholder\n     * while the current element is being dragged.\n     */\n    getPlaceholderElement(): HTMLElement;\n    /** Returns the root draggable element. */\n    getRootElement(): HTMLElement;\n    /** Registers the handles that can be used to drag the element. */\n    withHandles(handles: (HTMLElement | ElementRef<HTMLElement>)[]): this;\n    /**\n     * Registers the template that should be used for the drag preview.\n     * @param template Template that from which to stamp out the preview.\n     */\n    withPreviewTemplate(template: DragHelperTemplate | null): this;\n    /**\n     * Registers the template that should be used for the drag placeholder.\n     * @param template Template that from which to stamp out the placeholder.\n     */\n    withPlaceholderTemplate(template: DragHelperTemplate | null): this;\n    /**\n     * Sets an alternate drag root element. The root element is the element that will be moved as\n     * the user is dragging. Passing an alternate root element is useful when trying to enable\n     * dragging on an element that you might not have access to.\n     */\n    withRootElement(rootElement: ElementRef<HTMLElement> | HTMLElement): this;\n    /**\n     * Element to which the draggable's position will be constrained.\n     */\n    withBoundaryElement(boundaryElement: ElementRef<HTMLElement> | HTMLElement | null): this;\n    /** Removes the dragging functionality from the DOM element. */\n    dispose(): void;\n    /** Checks whether the element is currently being dragged. */\n    isDragging(): boolean;\n    /** Resets a standalone drag item to its initial position. */\n    reset(): void;\n    /**\n     * Sets a handle as disabled. While a handle is disabled, it'll capture and interrupt dragging.\n     * @param handle Handle element that should be disabled.\n     */\n    disableHandle(handle: HTMLElement): void;\n    /**\n     * Enables a handle, if it has been disabled.\n     * @param handle Handle element to be enabled.\n     */\n    enableHandle(handle: HTMLElement): void;\n    /** Sets the layout direction of the draggable item. */\n    withDirection(direction: Direction): this;\n    /** Sets the container that the item is part of. */\n    _withDropContainer(container: DropListRef): void;\n    /**\n     * Gets the current position in pixels the draggable outside of a drop container.\n     */\n    getFreeDragPosition(): Readonly<Point>;\n    /**\n     * Sets the current position in pixels the draggable outside of a drop container.\n     * @param value New position to be set.\n     */\n    setFreeDragPosition(value: Point): this;\n    /** Updates the item's sort order based on the last-known pointer position. */\n    _sortFromLastPointerPosition(): void;\n    /** Unsubscribes from the global subscriptions. */\n    private _removeSubscriptions;\n    /** Destroys the preview element and its ViewRef. */\n    private _destroyPreview;\n    /** Destroys the placeholder element and its ViewRef. */\n    private _destroyPlaceholder;\n    /** Handler for the `mousedown`/`touchstart` events. */\n    private _pointerDown;\n    /** Handler that is invoked when the user moves their pointer after they've initiated a drag. */\n    private _pointerMove;\n    /** Handler that is invoked when the user lifts their pointer up, after initiating a drag. */\n    private _pointerUp;\n    /**\n     * Clears subscriptions and stops the dragging sequence.\n     * @param event Browser event object that ended the sequence.\n     */\n    private _endDragSequence;\n    /** Starts the dragging sequence. */\n    private _startDragSequence;\n    /**\n     * Sets up the different variables and subscriptions\n     * that will be necessary for the dragging sequence.\n     * @param referenceElement Element that started the drag sequence.\n     * @param event Browser event object that started the sequence.\n     */\n    private _initializeDragSequence;\n    /** Cleans up the DOM artifacts that were added to facilitate the element being dragged. */\n    private _cleanupDragArtifacts;\n    /**\n     * Updates the item's position in its drop container, or moves it\n     * into a new one, depending on its current drag position.\n     */\n    private _updateActiveDropContainer;\n    /**\n     * Creates the element that will be rendered next to the user's pointer\n     * and will be used as a preview of the element that is being dragged.\n     */\n    private _createPreviewElement;\n    /**\n     * Animates the preview element from its current position to the location of the drop placeholder.\n     * @returns Promise that resolves when the animation completes.\n     */\n    private _animatePreviewToPlaceholder;\n    /** Creates an element that will be shown instead of the current element while dragging. */\n    private _createPlaceholderElement;\n    /**\n     * Figures out the coordinates at which an element was picked up.\n     * @param referenceElement Element that initiated the dragging.\n     * @param event Event that initiated the dragging.\n     */\n    private _getPointerPositionInElement;\n    /** Determines the point of the page that was touched by the user. */\n    private _getPointerPositionOnPage;\n    /** Gets the pointer position on the page, accounting for any position constraints. */\n    private _getConstrainedPointerPosition;\n    /** Updates the current drag delta, based on the user's current pointer position on the page. */\n    private _updatePointerDirectionDelta;\n    /** Toggles the native drag interactions, based on how many handles are registered. */\n    private _toggleNativeDragInteractions;\n    /** Removes the manually-added event listeners from the root element. */\n    private _removeRootElementListeners;\n    /**\n     * Applies a `transform` to the root element, taking into account any existing transforms on it.\n     * @param x New transform value along the X axis.\n     * @param y New transform value along the Y axis.\n     */\n    private _applyRootElementTransform;\n    /**\n     * Gets the distance that the user has dragged during the current drag sequence.\n     * @param currentPosition Current position of the user's pointer.\n     */\n    private _getDragDistance;\n    /** Cleans up any cached element dimensions that we don't need after dragging has stopped. */\n    private _cleanupCachedDimensions;\n    /**\n     * Checks whether the element is still inside its boundary after the viewport has been resized.\n     * If not, the position is adjusted so that the element fits again.\n     */\n    private _containInsideBoundaryOnResize;\n}\n/** Point on the page or within an element. */\nexport interface Point {\n    x: number;\n    y: number;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/drag-styling.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\ndeclare type Writeable<T> = {\n    -readonly [P in keyof T]-?: T[P];\n};\n/**\n * Extended CSSStyleDeclaration that includes a couple of drag-related\n * properties that aren't in the built-in TS typings.\n */\ninterface DragCSSStyleDeclaration extends CSSStyleDeclaration {\n    webkitUserDrag: string;\n    MozUserSelect: string;\n}\n/**\n * Shallow-extends a stylesheet object with another stylesheet object.\n * @docs-private\n */\nexport declare function extendStyles(dest: Writeable<CSSStyleDeclaration>, source: Partial<DragCSSStyleDeclaration>): Writeable<CSSStyleDeclaration>;\n/**\n * Toggles whether the native drag interactions should be enabled for an element.\n * @param element Element on which to toggle the drag interactions.\n * @param enable Whether the drag interactions should be enabled.\n * @docs-private\n */\nexport declare function toggleNativeDragInteractions(element: HTMLElement, enable: boolean): void;\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/drag-utils.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Moves an item one index in an array to another.\n * @param array Array in which to move the item.\n * @param fromIndex Starting index of the item.\n * @param toIndex Index to which the item should be moved.\n */\nexport declare function moveItemInArray<T = any>(array: T[], fromIndex: number, toIndex: number): void;\n/**\n * Moves an item from one array to another.\n * @param currentArray Array from which to transfer the item.\n * @param targetArray Array into which to put the item.\n * @param currentIndex Index of the item in its current array.\n * @param targetIndex Index at which to insert the item.\n */\nexport declare function transferArrayItem<T = any>(currentArray: T[], targetArray: T[], currentIndex: number, targetIndex: number): void;\n/**\n * Copies an item from one array to another, leaving it in its\n * original position in current array.\n * @param currentArray Array from which to copy the item.\n * @param targetArray Array into which is copy the item.\n * @param currentIndex Index of the item in its current array.\n * @param targetIndex Index at which to insert the item.\n *\n */\nexport declare function copyArrayItem<T = any>(currentArray: T[], targetArray: T[], currentIndex: number, targetIndex: number): void;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/drop-list-ref.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, NgZone } from '@angular/core';\nimport { Direction } from '@angular/cdk/bidi';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { Subject } from 'rxjs';\nimport { DragDropRegistry } from './drag-drop-registry';\nimport { DragRefInternal as DragRef, Point } from './drag-ref';\n/**\n * Internal compile-time-only representation of a `DropListRef`.\n * Used to avoid circular import issues between the `DropListRef` and the `DragRef`.\n * @docs-private\n */\nexport interface DropListRefInternal extends DropListRef {\n}\n/**\n * Reference to a drop list. Used to manipulate or dispose of the container.\n * @docs-private\n */\nexport declare class DropListRef<T = any> {\n    private _dragDropRegistry;\n    private _ngZone;\n    private _viewportRuler;\n    /** Element that the drop list is attached to. */\n    element: HTMLElement | ElementRef<HTMLElement>;\n    /** Whether starting a dragging sequence from this container is disabled. */\n    disabled: boolean;\n    /** Whether sorting items within the list is disabled. */\n    sortingDisabled: boolean;\n    /** Locks the position of the draggable elements inside the container along the specified axis. */\n    lockAxis: 'x' | 'y';\n    /**\n     * Whether auto-scrolling the view when the user\n     * moves their pointer close to the edges is disabled.\n     */\n    autoScrollDisabled: boolean;\n    /**\n     * Function that is used to determine whether an item\n     * is allowed to be moved into a drop container.\n     */\n    enterPredicate: (drag: DragRef, drop: DropListRef) => boolean;\n    /** Emits right before dragging has started. */\n    beforeStarted: Subject<void>;\n    /**\n     * Emits when the user has moved a new drag item into this container.\n     */\n    entered: Subject<{\n        item: DragRef;\n        container: DropListRef<any>;\n        currentIndex: number;\n    }>;\n    /**\n     * Emits when the user removes an item from the container\n     * by dragging it into another container.\n     */\n    exited: Subject<{\n        item: DragRef;\n        container: DropListRef<any>;\n    }>;\n    /** Emits when the user drops an item inside the container. */\n    dropped: Subject<{\n        item: DragRef;\n        currentIndex: number;\n        previousIndex: number;\n        container: DropListRef<any>;\n        previousContainer: DropListRef<any>;\n        isPointerOverContainer: boolean;\n        distance: Point;\n    }>;\n    /** Emits as the user is swapping items while actively dragging. */\n    sorted: Subject<{\n        previousIndex: number;\n        currentIndex: number;\n        container: DropListRef<any>;\n        item: DragRef;\n    }>;\n    /** Arbitrary data that can be attached to the drop list. */\n    data: T;\n    /** Whether an item in the list is being dragged. */\n    private _isDragging;\n    /** Cache of the dimensions of all the items inside the container. */\n    private _itemPositions;\n    /** Keeps track of the container's scroll position. */\n    private _scrollPosition;\n    /** Keeps track of the scroll position of the viewport. */\n    private _viewportScrollPosition;\n    /** Cached `ClientRect` of the drop list. */\n    private _clientRect;\n    /**\n     * Draggable items that are currently active inside the container. Includes the items\n     * from `_draggables`, as well as any items that have been dragged in, but haven't\n     * been dropped yet.\n     */\n    private _activeDraggables;\n    /**\n     * Keeps track of the item that was last swapped with the dragged item, as\n     * well as what direction the pointer was moving in when the swap occured.\n     */\n    private _previousSwap;\n    /** Draggable items in the container. */\n    private _draggables;\n    /** Drop lists that are connected to the current one. */\n    private _siblings;\n    /** Direction in which the list is oriented. */\n    private _orientation;\n    /** Connected siblings that currently have a dragged item. */\n    private _activeSiblings;\n    /** Layout direction of the drop list. */\n    private _direction;\n    /** Subscription to the window being scrolled. */\n    private _viewportScrollSubscription;\n    /** Vertical direction in which the list is currently scrolling. */\n    private _verticalScrollDirection;\n    /** Horizontal direction in which the list is currently scrolling. */\n    private _horizontalScrollDirection;\n    /** Node that is being auto-scrolled. */\n    private _scrollNode;\n    /** Used to signal to the current auto-scroll sequence when to stop. */\n    private _stopScrollTimers;\n    /** Shadow root of the current element. Necessary for `elementFromPoint` to resolve correctly. */\n    private _shadowRoot;\n    constructor(element: ElementRef<HTMLElement> | HTMLElement, _dragDropRegistry: DragDropRegistry<DragRef, DropListRef>, _document: any, _ngZone: NgZone, _viewportRuler: ViewportRuler);\n    /** Removes the drop list functionality from the DOM element. */\n    dispose(): void;\n    /** Whether an item from this list is currently being dragged. */\n    isDragging(): boolean;\n    /** Starts dragging an item. */\n    start(): void;\n    /**\n     * Emits an event to indicate that the user moved an item into the container.\n     * @param item Item that was moved into the container.\n     * @param pointerX Position of the item along the X axis.\n     * @param pointerY Position of the item along the Y axis.\n     */\n    enter(item: DragRef, pointerX: number, pointerY: number): void;\n    /**\n     * Removes an item from the container after it was dragged into another container by the user.\n     * @param item Item that was dragged out.\n     */\n    exit(item: DragRef): void;\n    /**\n     * Drops an item into this container.\n     * @param item Item being dropped into the container.\n     * @param currentIndex Index at which the item should be inserted.\n     * @param previousContainer Container from which the item got dragged in.\n     * @param isPointerOverContainer Whether the user's pointer was over the\n     *    container when the item was dropped.\n     * @param distance Distance the user has dragged since the start of the dragging sequence.\n     */\n    drop(item: DragRef, currentIndex: number, previousContainer: DropListRef, isPointerOverContainer: boolean, distance: Point): void;\n    /**\n     * Sets the draggable items that are a part of this list.\n     * @param items Items that are a part of this list.\n     */\n    withItems(items: DragRef[]): this;\n    /** Sets the layout direction of the drop list. */\n    withDirection(direction: Direction): this;\n    /**\n     * Sets the containers that are connected to this one. When two or more containers are\n     * connected, the user will be allowed to transfer items between them.\n     * @param connectedTo Other containers that the current containers should be connected to.\n     */\n    connectedTo(connectedTo: DropListRef[]): this;\n    /**\n     * Sets the orientation of the container.\n     * @param orientation New orientation for the container.\n     */\n    withOrientation(orientation: 'vertical' | 'horizontal'): this;\n    /**\n     * Figures out the index of an item in the container.\n     * @param item Item whose index should be determined.\n     */\n    getItemIndex(item: DragRef): number;\n    /**\n     * Whether the list is able to receive the item that\n     * is currently being dragged inside a connected drop list.\n     */\n    isReceiving(): boolean;\n    /**\n     * Sorts an item inside the container based on its position.\n     * @param item Item to be sorted.\n     * @param pointerX Position of the item along the X axis.\n     * @param pointerY Position of the item along the Y axis.\n     * @param pointerDelta Direction in which the pointer is moving along each axis.\n     */\n    _sortItem(item: DragRef, pointerX: number, pointerY: number, pointerDelta: {\n        x: number;\n        y: number;\n    }): void;\n    /**\n     * Checks whether the user's pointer is close to the edges of either the\n     * viewport or the drop list and starts the auto-scroll sequence.\n     * @param pointerX User's pointer position along the x axis.\n     * @param pointerY User's pointer position along the y axis.\n     */\n    _startScrollingIfNecessary(pointerX: number, pointerY: number): void;\n    /** Stops any currently-running auto-scroll sequences. */\n    _stopScrolling(): void;\n    /** Caches the position of the drop list. */\n    private _cacheOwnPosition;\n    /** Refreshes the position cache of the items and sibling containers. */\n    private _cacheItemPositions;\n    /** Resets the container to its initial state. */\n    private _reset;\n    /**\n     * Gets the offset in pixels by which the items that aren't being dragged should be moved.\n     * @param currentIndex Index of the item currently being dragged.\n     * @param siblings All of the items in the list.\n     * @param delta Direction in which the user is moving.\n     */\n    private _getSiblingOffsetPx;\n    /**\n     * Checks whether the pointer coordinates are close to the drop container.\n     * @param pointerX Coordinates along the X axis.\n     * @param pointerY Coordinates along the Y axis.\n     */\n    private _isPointerNearDropContainer;\n    /**\n     * Gets the offset in pixels by which the item that is being dragged should be moved.\n     * @param currentPosition Current position of the item.\n     * @param newPosition Position of the item where the current item should be moved.\n     * @param delta Direction in which the user is moving.\n     */\n    private _getItemOffsetPx;\n    /**\n     * Gets the index of an item in the drop container, based on the position of the user's pointer.\n     * @param item Item that is being sorted.\n     * @param pointerX Position of the user's pointer along the X axis.\n     * @param pointerY Position of the user's pointer along the Y axis.\n     * @param delta Direction in which the user is moving their pointer.\n     */\n    private _getItemIndexFromPointerPosition;\n    /** Caches the current items in the list and their positions. */\n    private _cacheItems;\n    /**\n     * Updates the internal state of the container after a scroll event has happened.\n     * @param scrollPosition Object that is keeping track of the scroll position.\n     * @param newTop New top scroll position.\n     * @param newLeft New left scroll position.\n     * @param extraClientRect Extra `ClientRect` object that should be updated, in addition to the\n     *  ones of the drag items. Useful when the viewport has been scrolled and we also need to update\n     *  the `ClientRect` of the list.\n     */\n    private _updateAfterScroll;\n    /** Handles the container being scrolled. Has to be an arrow function to preserve the context. */\n    private _handleScroll;\n    /** Removes the event listeners associated with this drop list. */\n    private _removeListeners;\n    /** Starts the interval that'll auto-scroll the element. */\n    private _startScrollInterval;\n    /**\n     * Checks whether the user's pointer is positioned over the container.\n     * @param x Pointer position along the X axis.\n     * @param y Pointer position along the Y axis.\n     */\n    _isOverContainer(x: number, y: number): boolean;\n    /**\n     * Figures out whether an item should be moved into a sibling\n     * drop container, based on its current position.\n     * @param item Drag item that is being moved.\n     * @param x Position of the item along the X axis.\n     * @param y Position of the item along the Y axis.\n     */\n    _getSiblingContainerFromPosition(item: DragRef, x: number, y: number): DropListRef | undefined;\n    /**\n     * Checks whether the drop list can receive the passed-in item.\n     * @param item Item that is being dragged into the list.\n     * @param x Position of the item along the X axis.\n     * @param y Position of the item along the Y axis.\n     */\n    _canReceive(item: DragRef, x: number, y: number): boolean;\n    /**\n     * Called by one of the connected drop lists when a dragging sequence has started.\n     * @param sibling Sibling in which dragging has started.\n     */\n    _startReceiving(sibling: DropListRef): void;\n    /**\n     * Called by a connected drop list when dragging has stopped.\n     * @param sibling Sibling whose dragging has stopped.\n     */\n    _stopReceiving(sibling: DropListRef): void;\n    /**\n     * Starts listening to scroll events on the viewport.\n     * Used for updating the internal state of the list.\n     */\n    private _listenToScrollEvents;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/index.d.ts",
      "node_modules/@angular/cdk/drag-drop/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\nexport { CdkDropListInternal as ɵangular_material_src_cdk_drag_drop_drag_drop_a } from './directives/drop-list';\nexport { CDK_DRAG_PARENT as ɵangular_material_src_cdk_drag_drop_drag_drop_b } from './drag-parent';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport { DragDrop } from './drag-drop';\nexport { DragRef, DragRefConfig } from './drag-ref';\nexport { DropListRef } from './drop-list-ref';\nexport * from './drag-events';\nexport * from './drag-utils';\nexport * from './drag-drop-module';\nexport * from './drag-drop-registry';\nexport { CdkDropList } from './directives/drop-list';\nexport * from './directives/drop-list-group';\nexport * from './directives/drag';\nexport * from './directives/drag-handle';\nexport * from './directives/drag-preview';\nexport * from './directives/drag-placeholder';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/drag-drop/transition-duration.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Gets the transform transition duration, including the delay, of an element in milliseconds. */\nexport declare function getTransformTransitionDurationInMs(element: HTMLElement): number;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/index.d.ts",
      "node_modules/@angular/cdk/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/keycodes/index.d.ts",
      "node_modules/@angular/cdk/keycodes/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/keycodes/keycodes.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare const MAC_ENTER = 3;\nexport declare const BACKSPACE = 8;\nexport declare const TAB = 9;\nexport declare const NUM_CENTER = 12;\nexport declare const ENTER = 13;\nexport declare const SHIFT = 16;\nexport declare const CONTROL = 17;\nexport declare const ALT = 18;\nexport declare const PAUSE = 19;\nexport declare const CAPS_LOCK = 20;\nexport declare const ESCAPE = 27;\nexport declare const SPACE = 32;\nexport declare const PAGE_UP = 33;\nexport declare const PAGE_DOWN = 34;\nexport declare const END = 35;\nexport declare const HOME = 36;\nexport declare const LEFT_ARROW = 37;\nexport declare const UP_ARROW = 38;\nexport declare const RIGHT_ARROW = 39;\nexport declare const DOWN_ARROW = 40;\nexport declare const PLUS_SIGN = 43;\nexport declare const PRINT_SCREEN = 44;\nexport declare const INSERT = 45;\nexport declare const DELETE = 46;\nexport declare const ZERO = 48;\nexport declare const ONE = 49;\nexport declare const TWO = 50;\nexport declare const THREE = 51;\nexport declare const FOUR = 52;\nexport declare const FIVE = 53;\nexport declare const SIX = 54;\nexport declare const SEVEN = 55;\nexport declare const EIGHT = 56;\nexport declare const NINE = 57;\nexport declare const FF_SEMICOLON = 59;\nexport declare const FF_EQUALS = 61;\nexport declare const QUESTION_MARK = 63;\nexport declare const AT_SIGN = 64;\nexport declare const A = 65;\nexport declare const B = 66;\nexport declare const C = 67;\nexport declare const D = 68;\nexport declare const E = 69;\nexport declare const F = 70;\nexport declare const G = 71;\nexport declare const H = 72;\nexport declare const I = 73;\nexport declare const J = 74;\nexport declare const K = 75;\nexport declare const L = 76;\nexport declare const M = 77;\nexport declare const N = 78;\nexport declare const O = 79;\nexport declare const P = 80;\nexport declare const Q = 81;\nexport declare const R = 82;\nexport declare const S = 83;\nexport declare const T = 84;\nexport declare const U = 85;\nexport declare const V = 86;\nexport declare const W = 87;\nexport declare const X = 88;\nexport declare const Y = 89;\nexport declare const Z = 90;\nexport declare const META = 91;\nexport declare const MAC_WK_CMD_LEFT = 91;\nexport declare const MAC_WK_CMD_RIGHT = 93;\nexport declare const CONTEXT_MENU = 93;\nexport declare const NUMPAD_ZERO = 96;\nexport declare const NUMPAD_ONE = 97;\nexport declare const NUMPAD_TWO = 98;\nexport declare const NUMPAD_THREE = 99;\nexport declare const NUMPAD_FOUR = 100;\nexport declare const NUMPAD_FIVE = 101;\nexport declare const NUMPAD_SIX = 102;\nexport declare const NUMPAD_SEVEN = 103;\nexport declare const NUMPAD_EIGHT = 104;\nexport declare const NUMPAD_NINE = 105;\nexport declare const NUMPAD_MULTIPLY = 106;\nexport declare const NUMPAD_PLUS = 107;\nexport declare const NUMPAD_MINUS = 109;\nexport declare const NUMPAD_PERIOD = 110;\nexport declare const NUMPAD_DIVIDE = 111;\nexport declare const F1 = 112;\nexport declare const F2 = 113;\nexport declare const F3 = 114;\nexport declare const F4 = 115;\nexport declare const F5 = 116;\nexport declare const F6 = 117;\nexport declare const F7 = 118;\nexport declare const F8 = 119;\nexport declare const F9 = 120;\nexport declare const F10 = 121;\nexport declare const F11 = 122;\nexport declare const F12 = 123;\nexport declare const NUM_LOCK = 144;\nexport declare const SCROLL_LOCK = 145;\nexport declare const FIRST_MEDIA = 166;\nexport declare const FF_MINUS = 173;\nexport declare const MUTE = 173;\nexport declare const VOLUME_DOWN = 174;\nexport declare const VOLUME_UP = 175;\nexport declare const FF_MUTE = 181;\nexport declare const FF_VOLUME_DOWN = 182;\nexport declare const LAST_MEDIA = 183;\nexport declare const FF_VOLUME_UP = 183;\nexport declare const SEMICOLON = 186;\nexport declare const EQUALS = 187;\nexport declare const COMMA = 188;\nexport declare const DASH = 189;\nexport declare const SLASH = 191;\nexport declare const APOSTROPHE = 192;\nexport declare const TILDE = 192;\nexport declare const OPEN_SQUARE_BRACKET = 219;\nexport declare const BACKSLASH = 220;\nexport declare const CLOSE_SQUARE_BRACKET = 221;\nexport declare const SINGLE_QUOTE = 222;\nexport declare const MAC_META = 224;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/keycodes/modifiers.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\ndeclare type ModifierKey = 'altKey' | 'shiftKey' | 'ctrlKey' | 'metaKey';\n/**\n * Checks whether a modifier key is pressed.\n * @param event Event to be checked.\n */\nexport declare function hasModifierKey(event: KeyboardEvent, ...modifiers: ModifierKey[]): boolean;\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/keycodes/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './keycodes';\nexport * from './modifiers';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/layout/breakpoints-observer.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { NgZone, OnDestroy } from '@angular/core';\nimport { MediaMatcher } from './media-matcher';\nimport { Observable } from 'rxjs';\n/** The current state of a layout breakpoint. */\nimport * as ɵngcc0 from '@angular/core';\nexport interface BreakpointState {\n    /** Whether the breakpoint is currently matching. */\n    matches: boolean;\n    /**\n     * A key boolean pair for each query provided to the observe method,\n     * with its current matched state.\n     */\n    breakpoints: {\n        [key: string]: boolean;\n    };\n}\n/** Utility for checking the matching state of @media queries. */\nexport declare class BreakpointObserver implements OnDestroy {\n    private _mediaMatcher;\n    private _zone;\n    /**  A map of all media queries currently being listened for. */\n    private _queries;\n    /** A subject for all other observables to takeUntil based on. */\n    private _destroySubject;\n    constructor(_mediaMatcher: MediaMatcher, _zone: NgZone);\n    /** Completes the active subject, signalling to all other observables to complete. */\n    ngOnDestroy(): void;\n    /**\n     * Whether one or more media queries match the current viewport size.\n     * @param value One or more media queries to check.\n     * @returns Whether any of the media queries match.\n     */\n    isMatched(value: string | string[]): boolean;\n    /**\n     * Gets an observable of results for the given queries that will emit new results for any changes\n     * in matching of the given queries.\n     * @param value One or more media queries to check.\n     * @returns A stream of matches for the given queries.\n     */\n    observe(value: string | string[]): Observable<BreakpointState>;\n    /** Registers a specific query to be listened for. */\n    private _registerQuery;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<BreakpointObserver>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<BreakpointObserver>;\n}\n\n//# sourceMappingURL=breakpoints-observer.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/layout/breakpoints.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare const Breakpoints: {\n    XSmall: string;\n    Small: string;\n    Medium: string;\n    Large: string;\n    XLarge: string;\n    Handset: string;\n    Tablet: string;\n    Web: string;\n    HandsetPortrait: string;\n    TabletPortrait: string;\n    WebPortrait: string;\n    HandsetLandscape: string;\n    TabletLandscape: string;\n    WebLandscape: string;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/layout/index.d.ts",
      "node_modules/@angular/cdk/layout/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/layout/layout-module.d.ts"
    ],
    "content": "import * as ɵngcc0 from '@angular/core';\nexport declare class LayoutModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<LayoutModule, never, never, never>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<LayoutModule>;\n}\n\n//# sourceMappingURL=layout-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/layout/media-matcher.d.ts"
    ],
    "content": "import { Platform } from '@angular/cdk/platform';\n/** A utility for calling matchMedia queries. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MediaMatcher {\n    private _platform;\n    /** The internal matchMedia method to return back a MediaQueryList like object. */\n    private _matchMedia;\n    constructor(_platform: Platform);\n    /**\n     * Evaluates the given media query and returns the native MediaQueryList from which results\n     * can be retrieved.\n     * Confirms the layout engine will trigger for the selector query provided and returns the\n     * MediaQueryList for the query provided.\n     */\n    matchMedia(query: string): MediaQueryList;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MediaMatcher>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<MediaMatcher>;\n}\n\n//# sourceMappingURL=media-matcher.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/layout/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport { LayoutModule } from './layout-module';\nexport { BreakpointObserver, BreakpointState } from './breakpoints-observer';\nexport { Breakpoints } from './breakpoints';\nexport { MediaMatcher } from './media-matcher';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/observers/index.d.ts",
      "node_modules/@angular/cdk/observers/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/observers/observe-content.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AfterContentInit, ElementRef, EventEmitter, NgZone, OnDestroy } from '@angular/core';\nimport { Observable } from 'rxjs';\n/**\n * Factory that creates a new MutationObserver and allows us to stub it out in unit tests.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MutationObserverFactory {\n    create(callback: MutationCallback): MutationObserver | null;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MutationObserverFactory>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<MutationObserverFactory>;\n}\n/** An injectable service that allows watching elements for changes to their content. */\nexport declare class ContentObserver implements OnDestroy {\n    private _mutationObserverFactory;\n    /** Keeps track of the existing MutationObservers so they can be reused. */\n    private _observedElements;\n    constructor(_mutationObserverFactory: MutationObserverFactory);\n    ngOnDestroy(): void;\n    /**\n     * Observe content changes on an element.\n     * @param element The element to observe for content changes.\n     */\n    observe(element: Element): Observable<MutationRecord[]>;\n    /**\n     * Observe content changes on an element.\n     * @param element The element to observe for content changes.\n     */\n    observe(element: ElementRef<Element>): Observable<MutationRecord[]>;\n    /**\n     * Observes the given element by using the existing MutationObserver if available, or creating a\n     * new one if not.\n     */\n    private _observeElement;\n    /**\n     * Un-observes the given element and cleans up the underlying MutationObserver if nobody else is\n     * observing this element.\n     */\n    private _unobserveElement;\n    /** Clean up the underlying MutationObserver for the specified element. */\n    private _cleanupObserver;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<ContentObserver>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<ContentObserver>;\n}\n/**\n * Directive that triggers a callback whenever the content of\n * its associated element has changed.\n */\nexport declare class CdkObserveContent implements AfterContentInit, OnDestroy {\n    private _contentObserver;\n    private _elementRef;\n    private _ngZone;\n    /** Event emitted for each change in the element's content. */\n    event: EventEmitter<MutationRecord[]>;\n    /**\n     * Whether observing content is disabled. This option can be used\n     * to disconnect the underlying MutationObserver until it is needed.\n     */\n    disabled: any;\n    private _disabled;\n    /** Debounce interval for emitting the changes. */\n    debounce: number;\n    private _debounce;\n    private _currentSubscription;\n    constructor(_contentObserver: ContentObserver, _elementRef: ElementRef<HTMLElement>, _ngZone: NgZone);\n    ngAfterContentInit(): void;\n    ngOnDestroy(): void;\n    private _subscribe;\n    private _unsubscribe;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkObserveContent>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkObserveContent, \"[cdkObserveContent]\", [\"cdkObserveContent\"], { 'disabled': \"cdkObserveContentDisabled\", 'debounce': \"debounce\" }, { 'event': \"cdkObserveContent\" }, never>;\n}\nexport declare class ObserversModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<ObserversModule, [typeof CdkObserveContent], never, [typeof CdkObserveContent]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<ObserversModule>;\n}\n\n//# sourceMappingURL=observe-content.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/observers/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './observe-content';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/fullscreen-overlay-container.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { OnDestroy } from '@angular/core';\nimport { OverlayContainer } from './overlay-container';\n/**\n * Alternative to OverlayContainer that supports correct displaying of overlay elements in\n * Fullscreen mode\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n *\n * Should be provided in the root component.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class FullscreenOverlayContainer extends OverlayContainer implements OnDestroy {\n    private _fullScreenEventName;\n    private _fullScreenListener;\n    constructor(_document: any);\n    ngOnDestroy(): void;\n    protected _createContainer(): void;\n    private _adjustParentForFullscreenChange;\n    private _addFullscreenChangeListener;\n    private _getEventName;\n    /**\n     * When the page is put into fullscreen mode, a specific element is specified.\n     * Only that element and its children are visible when in fullscreen mode.\n     */\n    getFullscreenElement(): Element;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<FullscreenOverlayContainer>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<FullscreenOverlayContainer>;\n}\n\n//# sourceMappingURL=fullscreen-overlay-container.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/index.d.ts",
      "node_modules/@angular/cdk/overlay/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\nexport { OVERLAY_KEYBOARD_DISPATCHER_PROVIDER as ɵangular_material_src_cdk_overlay_overlay_g, OVERLAY_KEYBOARD_DISPATCHER_PROVIDER_FACTORY as ɵangular_material_src_cdk_overlay_overlay_f } from './keyboard/overlay-keyboard-dispatcher';\nexport { OVERLAY_CONTAINER_PROVIDER as ɵangular_material_src_cdk_overlay_overlay_b, OVERLAY_CONTAINER_PROVIDER_FACTORY as ɵangular_material_src_cdk_overlay_overlay_a } from './overlay-container';\nexport { CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY as ɵangular_material_src_cdk_overlay_overlay_c, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER as ɵangular_material_src_cdk_overlay_overlay_e, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY as ɵangular_material_src_cdk_overlay_overlay_d } from './overlay-directives';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/keyboard/overlay-keyboard-dispatcher.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken, OnDestroy, Optional } from '@angular/core';\nimport { OverlayRef } from '../overlay-ref';\n/**\n * Service for dispatching keyboard events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class OverlayKeyboardDispatcher implements OnDestroy {\n    /** Currently attached overlays in the order they were attached. */\n    _attachedOverlays: OverlayRef[];\n    private _document;\n    private _isAttached;\n    constructor(document: any);\n    ngOnDestroy(): void;\n    /** Add a new overlay to the list of attached overlay refs. */\n    add(overlayRef: OverlayRef): void;\n    /** Remove an overlay from the list of attached overlay refs. */\n    remove(overlayRef: OverlayRef): void;\n    /** Detaches the global keyboard event listener. */\n    private _detach;\n    /** Keyboard event listener that will be attached to the body. */\n    private _keydownListener;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<OverlayKeyboardDispatcher>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<OverlayKeyboardDispatcher>;\n}\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare function OVERLAY_KEYBOARD_DISPATCHER_PROVIDER_FACTORY(dispatcher: OverlayKeyboardDispatcher, _document: any): OverlayKeyboardDispatcher;\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare const OVERLAY_KEYBOARD_DISPATCHER_PROVIDER: {\n    provide: typeof OverlayKeyboardDispatcher;\n    deps: (Optional[] | InjectionToken<any>)[];\n    useFactory: typeof OVERLAY_KEYBOARD_DISPATCHER_PROVIDER_FACTORY;\n};\n\n//# sourceMappingURL=overlay-keyboard-dispatcher.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/overlay-config.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { PositionStrategy } from './position/position-strategy';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { ScrollStrategy } from './scroll/index';\n/** Initial configuration used when creating an overlay. */\nexport declare class OverlayConfig {\n    /** Strategy with which to position the overlay. */\n    positionStrategy?: PositionStrategy;\n    /** Strategy to be used when handling scroll events while the overlay is open. */\n    scrollStrategy?: ScrollStrategy;\n    /** Custom class to add to the overlay pane. */\n    panelClass?: string | string[];\n    /** Whether the overlay has a backdrop. */\n    hasBackdrop?: boolean;\n    /** Custom class to add to the backdrop */\n    backdropClass?: string | string[];\n    /** The width of the overlay panel. If a number is provided, pixel units are assumed. */\n    width?: number | string;\n    /** The height of the overlay panel. If a number is provided, pixel units are assumed. */\n    height?: number | string;\n    /** The min-width of the overlay panel. If a number is provided, pixel units are assumed. */\n    minWidth?: number | string;\n    /** The min-height of the overlay panel. If a number is provided, pixel units are assumed. */\n    minHeight?: number | string;\n    /** The max-width of the overlay panel. If a number is provided, pixel units are assumed. */\n    maxWidth?: number | string;\n    /** The max-height of the overlay panel. If a number is provided, pixel units are assumed. */\n    maxHeight?: number | string;\n    /**\n     * Direction of the text in the overlay panel. If a `Directionality` instance\n     * is passed in, the overlay will handle changes to its value automatically.\n     */\n    direction?: Direction | Directionality;\n    /**\n     * Whether the overlay should be disposed of when the user goes backwards/forwards in history.\n     * Note that this usually doesn't include clicking on links (unless the user is using\n     * the `HashLocationStrategy`).\n     */\n    disposeOnNavigation?: boolean;\n    constructor(config?: OverlayConfig);\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/overlay-container.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken, OnDestroy, Optional } from '@angular/core';\n/** Container inside which all overlays will render. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class OverlayContainer implements OnDestroy {\n    protected _containerElement: HTMLElement;\n    protected _document: Document;\n    constructor(document: any);\n    ngOnDestroy(): void;\n    /**\n     * This method returns the overlay container element. It will lazily\n     * create the element the first time  it is called to facilitate using\n     * the container in non-browser environments.\n     * @returns the container element\n     */\n    getContainerElement(): HTMLElement;\n    /**\n     * Create the overlay container element, which is simply a div\n     * with the 'cdk-overlay-container' class on the document body.\n     */\n    protected _createContainer(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<OverlayContainer>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<OverlayContainer>;\n}\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare function OVERLAY_CONTAINER_PROVIDER_FACTORY(parentContainer: OverlayContainer, _document: any): OverlayContainer;\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare const OVERLAY_CONTAINER_PROVIDER: {\n    provide: typeof OverlayContainer;\n    deps: (Optional[] | InjectionToken<any>)[];\n    useFactory: typeof OVERLAY_CONTAINER_PROVIDER_FACTORY;\n};\n\n//# sourceMappingURL=overlay-container.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/overlay-directives.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { ElementRef, EventEmitter, InjectionToken, OnChanges, OnDestroy, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Overlay } from './overlay';\nimport { OverlayRef } from './overlay-ref';\nimport { ConnectedOverlayPositionChange } from './position/connected-position';\nimport { ConnectedPosition } from './position/flexible-connected-position-strategy';\nimport { RepositionScrollStrategy, ScrollStrategy } from './scroll/index';\n/** Injection token that determines the scroll handling while the connected overlay is open. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare const CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare function CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_FACTORY(overlay: Overlay): () => ScrollStrategy;\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nexport declare class CdkOverlayOrigin {\n    /** Reference to the element on which the directive is applied. */\n    elementRef: ElementRef;\n    constructor(\n    /** Reference to the element on which the directive is applied. */\n    elementRef: ElementRef);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkOverlayOrigin>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkOverlayOrigin, \"[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]\", [\"cdkOverlayOrigin\"], {}, {}, never>;\n}\n/**\n * Directive to facilitate declarative creation of an\n * Overlay using a FlexibleConnectedPositionStrategy.\n */\nexport declare class CdkConnectedOverlay implements OnDestroy, OnChanges {\n    private _overlay;\n    private _dir;\n    private _overlayRef;\n    private _templatePortal;\n    private _hasBackdrop;\n    private _lockPosition;\n    private _growAfterOpen;\n    private _flexibleDimensions;\n    private _push;\n    private _backdropSubscription;\n    private _offsetX;\n    private _offsetY;\n    private _position;\n    private _scrollStrategyFactory;\n    /** Origin for the connected overlay. */\n    origin: CdkOverlayOrigin;\n    /** Registered connected position pairs. */\n    positions: ConnectedPosition[];\n    /** The offset in pixels for the overlay connection point on the x-axis */\n    offsetX: number;\n    /** The offset in pixels for the overlay connection point on the y-axis */\n    offsetY: number;\n    /** The width of the overlay panel. */\n    width: number | string;\n    /** The height of the overlay panel. */\n    height: number | string;\n    /** The min width of the overlay panel. */\n    minWidth: number | string;\n    /** The min height of the overlay panel. */\n    minHeight: number | string;\n    /** The custom class to be set on the backdrop element. */\n    backdropClass: string;\n    /** The custom class to add to the overlay pane element. */\n    panelClass: string | string[];\n    /** Margin between the overlay and the viewport edges. */\n    viewportMargin: number;\n    /** Strategy to be used when handling scroll events while the overlay is open. */\n    scrollStrategy: ScrollStrategy;\n    /** Whether the overlay is open. */\n    open: boolean;\n    /** Whether or not the overlay should attach a backdrop. */\n    hasBackdrop: any;\n    /** Whether or not the overlay should be locked when scrolling. */\n    lockPosition: any;\n    /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n    flexibleDimensions: boolean;\n    /** Whether the overlay can grow after the initial open when flexible positioning is turned on. */\n    growAfterOpen: boolean;\n    /** Whether the overlay can be pushed on-screen if none of the provided positions fit. */\n    push: boolean;\n    /** Event emitted when the backdrop is clicked. */\n    backdropClick: EventEmitter<MouseEvent>;\n    /** Event emitted when the position has changed. */\n    positionChange: EventEmitter<ConnectedOverlayPositionChange>;\n    /** Event emitted when the overlay has been attached. */\n    attach: EventEmitter<void>;\n    /** Event emitted when the overlay has been detached. */\n    detach: EventEmitter<void>;\n    /** Emits when there are keyboard events that are targeted at the overlay. */\n    overlayKeydown: EventEmitter<KeyboardEvent>;\n    constructor(_overlay: Overlay, templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef, scrollStrategyFactory: any, _dir: Directionality);\n    /** The associated overlay reference. */\n    readonly overlayRef: OverlayRef;\n    /** The element's layout direction. */\n    readonly dir: Direction;\n    ngOnDestroy(): void;\n    ngOnChanges(changes: SimpleChanges): void;\n    /** Creates an overlay */\n    private _createOverlay;\n    /** Builds the overlay config based on the directive's inputs */\n    private _buildConfig;\n    /** Updates the state of a position strategy, based on the values of the directive inputs. */\n    private _updatePositionStrategy;\n    /** Returns the position strategy of the overlay to be set on the overlay config */\n    private _createPositionStrategy;\n    /** Attaches the overlay and subscribes to backdrop clicks if backdrop exists */\n    private _attachOverlay;\n    /** Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists */\n    private _detachOverlay;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkConnectedOverlay>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkConnectedOverlay, \"[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]\", [\"cdkConnectedOverlay\"], { 'viewportMargin': \"cdkConnectedOverlayViewportMargin\", 'open': \"cdkConnectedOverlayOpen\", 'scrollStrategy': \"cdkConnectedOverlayScrollStrategy\", 'offsetX': \"cdkConnectedOverlayOffsetX\", 'offsetY': \"cdkConnectedOverlayOffsetY\", 'hasBackdrop': \"cdkConnectedOverlayHasBackdrop\", 'lockPosition': \"cdkConnectedOverlayLockPosition\", 'flexibleDimensions': \"cdkConnectedOverlayFlexibleDimensions\", 'growAfterOpen': \"cdkConnectedOverlayGrowAfterOpen\", 'push': \"cdkConnectedOverlayPush\", 'positions': \"cdkConnectedOverlayPositions\", 'origin': \"cdkConnectedOverlayOrigin\", 'width': \"cdkConnectedOverlayWidth\", 'height': \"cdkConnectedOverlayHeight\", 'minWidth': \"cdkConnectedOverlayMinWidth\", 'minHeight': \"cdkConnectedOverlayMinHeight\", 'backdropClass': \"cdkConnectedOverlayBackdropClass\", 'panelClass': \"cdkConnectedOverlayPanelClass\" }, { 'backdropClick': \"backdropClick\", 'positionChange': \"positionChange\", 'attach': \"attach\", 'detach': \"detach\", 'overlayKeydown': \"overlayKeydown\" }, never>;\n}\n/** @docs-private */\nexport declare function CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay): () => RepositionScrollStrategy;\n/** @docs-private */\nexport declare const CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER: {\n    provide: InjectionToken<() => ScrollStrategy>;\n    deps: (typeof Overlay)[];\n    useFactory: typeof CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY;\n};\n\n//# sourceMappingURL=overlay-directives.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/overlay-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Provider } from '@angular/core';\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './overlay-directives';\nimport * as ɵngcc2 from '@angular/cdk/bidi';\nimport * as ɵngcc3 from '@angular/cdk/portal';\nimport * as ɵngcc4 from '@angular/cdk/scrolling';\nexport declare class OverlayModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<OverlayModule, [typeof ɵngcc1.CdkConnectedOverlay, typeof ɵngcc1.CdkOverlayOrigin], [typeof ɵngcc2.BidiModule, typeof ɵngcc3.PortalModule, typeof ɵngcc4.ScrollingModule], [typeof ɵngcc1.CdkConnectedOverlay, typeof ɵngcc1.CdkOverlayOrigin, typeof ɵngcc4.ScrollingModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<OverlayModule>;\n}\n/**\n * @deprecated Use `OverlayModule` instead.\n * @breaking-change 8.0.0\n * @docs-private\n */\nexport declare const OVERLAY_PROVIDERS: Provider[];\n\n//# sourceMappingURL=overlay-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/overlay-ref.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { ComponentPortal, PortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { ComponentRef, EmbeddedViewRef, NgZone } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Observable, Subject } from 'rxjs';\nimport { OverlayKeyboardDispatcher } from './keyboard/overlay-keyboard-dispatcher';\nimport { OverlayConfig } from './overlay-config';\nimport { OverlayReference } from './overlay-reference';\nimport { PositionStrategy } from './position/position-strategy';\nimport { ScrollStrategy } from './scroll';\n/** An object where all of its properties cannot be written. */\nexport declare type ImmutableObject<T> = {\n    readonly [P in keyof T]: T[P];\n};\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nexport declare class OverlayRef implements PortalOutlet, OverlayReference {\n    private _portalOutlet;\n    private _host;\n    private _pane;\n    private _config;\n    private _ngZone;\n    private _keyboardDispatcher;\n    private _document;\n    private _location?;\n    private _backdropElement;\n    private _backdropClick;\n    private _attachments;\n    private _detachments;\n    private _positionStrategy;\n    private _scrollStrategy;\n    private _locationChanges;\n    private _backdropClickHandler;\n    /**\n     * Reference to the parent of the `_host` at the time it was detached. Used to restore\n     * the `_host` to its original position in the DOM when it gets re-attached.\n     */\n    private _previousHostParent;\n    private _keydownEventsObservable;\n    /** Stream of keydown events dispatched to this overlay. */\n    _keydownEvents: Subject<KeyboardEvent>;\n    /** Amount of subscriptions to the keydown events. */\n    _keydownEventSubscriptions: number;\n    constructor(_portalOutlet: PortalOutlet, _host: HTMLElement, _pane: HTMLElement, _config: ImmutableObject<OverlayConfig>, _ngZone: NgZone, _keyboardDispatcher: OverlayKeyboardDispatcher, _document: Document, _location?: Location | undefined);\n    /** The overlay's HTML element */\n    readonly overlayElement: HTMLElement;\n    /** The overlay's backdrop HTML element. */\n    readonly backdropElement: HTMLElement | null;\n    /**\n     * Wrapper around the panel element. Can be used for advanced\n     * positioning where a wrapper with specific styling is\n     * required around the overlay pane.\n     */\n    readonly hostElement: HTMLElement;\n    attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n    attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;\n    attach(portal: any): any;\n    /**\n     * Detaches an overlay from a portal.\n     * @returns The portal detachment result.\n     */\n    detach(): any;\n    /** Cleans up the overlay from the DOM. */\n    dispose(): void;\n    /** Whether the overlay has attached content. */\n    hasAttached(): boolean;\n    /** Gets an observable that emits when the backdrop has been clicked. */\n    backdropClick(): Observable<MouseEvent>;\n    /** Gets an observable that emits when the overlay has been attached. */\n    attachments(): Observable<void>;\n    /** Gets an observable that emits when the overlay has been detached. */\n    detachments(): Observable<void>;\n    /** Gets an observable of keydown events targeted to this overlay. */\n    keydownEvents(): Observable<KeyboardEvent>;\n    /** Gets the current overlay configuration, which is immutable. */\n    getConfig(): OverlayConfig;\n    /** Updates the position of the overlay based on the position strategy. */\n    updatePosition(): void;\n    /** Switches to a new position strategy and updates the overlay position. */\n    updatePositionStrategy(strategy: PositionStrategy): void;\n    /** Update the size properties of the overlay. */\n    updateSize(sizeConfig: OverlaySizeConfig): void;\n    /** Sets the LTR/RTL direction for the overlay. */\n    setDirection(dir: Direction | Directionality): void;\n    /** Add a CSS class or an array of classes to the overlay pane. */\n    addPanelClass(classes: string | string[]): void;\n    /** Remove a CSS class or an array of classes from the overlay pane. */\n    removePanelClass(classes: string | string[]): void;\n    /**\n     * Returns the layout direction of the overlay panel.\n     */\n    getDirection(): Direction;\n    /** Switches to a new scroll strategy. */\n    updateScrollStrategy(strategy: ScrollStrategy): void;\n    /** Updates the text direction of the overlay panel. */\n    private _updateElementDirection;\n    /** Updates the size of the overlay element based on the overlay config. */\n    private _updateElementSize;\n    /** Toggles the pointer events for the overlay pane element. */\n    private _togglePointerEvents;\n    /** Attaches a backdrop for this overlay. */\n    private _attachBackdrop;\n    /**\n     * Updates the stacking order of the element, moving it to the top if necessary.\n     * This is required in cases where one overlay was detached, while another one,\n     * that should be behind it, was destroyed. The next time both of them are opened,\n     * the stacking will be wrong, because the detached element's pane will still be\n     * in its original DOM position.\n     */\n    private _updateStackingOrder;\n    /** Detaches the backdrop (if any) associated with the overlay. */\n    detachBackdrop(): void;\n    /** Toggles a single CSS class or an array of classes on an element. */\n    private _toggleClasses;\n    /** Detaches the overlay content next time the zone stabilizes. */\n    private _detachContentWhenStable;\n    /** Disposes of a scroll strategy. */\n    private _disposeScrollStrategy;\n}\n/** Size properties for an overlay. */\nexport interface OverlaySizeConfig {\n    width?: number | string;\n    height?: number | string;\n    minWidth?: number | string;\n    minHeight?: number | string;\n    maxWidth?: number | string;\n    maxHeight?: number | string;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/overlay-reference.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Portal } from '@angular/cdk/portal';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\n/**\n * Basic interface for an overlay. Used to avoid circular type references between\n * `OverlayRef`, `PositionStrategy` and `ScrollStrategy`, and `OverlayConfig`.\n * @docs-private\n */\nexport interface OverlayReference {\n    attach: (portal: Portal<any>) => any;\n    detach: () => any;\n    dispose: () => void;\n    overlayElement: HTMLElement;\n    hostElement: HTMLElement;\n    getConfig: () => any;\n    hasAttached: () => boolean;\n    updateSize: (config: any) => void;\n    updatePosition: () => void;\n    getDirection: () => Direction;\n    setDirection: (dir: Direction | Directionality) => void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/overlay.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Location } from '@angular/common';\nimport { ComponentFactoryResolver, Injector, NgZone } from '@angular/core';\nimport { OverlayKeyboardDispatcher } from './keyboard/overlay-keyboard-dispatcher';\nimport { OverlayConfig } from './overlay-config';\nimport { OverlayContainer } from './overlay-container';\nimport { OverlayRef } from './overlay-ref';\nimport { OverlayPositionBuilder } from './position/overlay-position-builder';\nimport { ScrollStrategyOptions } from './scroll/index';\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalOutlet, so any kind of Portal can be loaded into one.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class Overlay {\n    /** Scrolling strategies that can be used when creating an overlay. */\n    scrollStrategies: ScrollStrategyOptions;\n    private _overlayContainer;\n    private _componentFactoryResolver;\n    private _positionBuilder;\n    private _keyboardDispatcher;\n    private _injector;\n    private _ngZone;\n    private _document;\n    private _directionality;\n    private _location?;\n    private _appRef;\n    constructor(\n    /** Scrolling strategies that can be used when creating an overlay. */\n    scrollStrategies: ScrollStrategyOptions, _overlayContainer: OverlayContainer, _componentFactoryResolver: ComponentFactoryResolver, _positionBuilder: OverlayPositionBuilder, _keyboardDispatcher: OverlayKeyboardDispatcher, _injector: Injector, _ngZone: NgZone, _document: any, _directionality: Directionality, _location?: Location | undefined);\n    /**\n     * Creates an overlay.\n     * @param config Configuration applied to the overlay.\n     * @returns Reference to the created overlay.\n     */\n    create(config?: OverlayConfig): OverlayRef;\n    /**\n     * Gets a position builder that can be used, via fluent API,\n     * to construct and configure a position strategy.\n     * @returns An overlay position builder.\n     */\n    position(): OverlayPositionBuilder;\n    /**\n     * Creates the DOM element for an overlay and appends it to the overlay container.\n     * @returns Newly-created pane element\n     */\n    private _createPaneElement;\n    /**\n     * Creates the host element that wraps around an overlay\n     * and can be used for advanced positioning.\n     * @returns Newly-create host element.\n     */\n    private _createHostElement;\n    /**\n     * Create a DomPortalOutlet into which the overlay content can be loaded.\n     * @param pane The DOM element to turn into a portal outlet.\n     * @returns A portal outlet for the given DOM element.\n     */\n    private _createPortalOutlet;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<Overlay>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<Overlay>;\n}\n\n//# sourceMappingURL=overlay.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/position/connected-position-strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Platform } from '@angular/cdk/platform';\nimport { CdkScrollable, ViewportRuler } from '@angular/cdk/scrolling';\nimport { ElementRef } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { OverlayContainer } from '../overlay-container';\nimport { OverlayReference } from '../overlay-reference';\nimport { ConnectedOverlayPositionChange, ConnectionPositionPair, OriginConnectionPosition, OverlayConnectionPosition } from './connected-position';\nimport { FlexibleConnectedPositionStrategy } from './flexible-connected-position-strategy';\nimport { PositionStrategy } from './position-strategy';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative to some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n * @deprecated Use `FlexibleConnectedPositionStrategy` instead.\n * @breaking-change 8.0.0\n */\nexport declare class ConnectedPositionStrategy implements PositionStrategy {\n    /**\n     * Reference to the underlying position strategy to which all the API calls are proxied.\n     * @docs-private\n     */\n    _positionStrategy: FlexibleConnectedPositionStrategy;\n    /** The overlay to which this strategy is attached. */\n    private _overlayRef;\n    private _direction;\n    /** Whether the we're dealing with an RTL context */\n    readonly _isRtl: boolean;\n    /** Ordered list of preferred positions, from most to least desirable. */\n    _preferredPositions: ConnectionPositionPair[];\n    /** Emits an event when the connection point changes. */\n    readonly onPositionChange: Observable<ConnectedOverlayPositionChange>;\n    constructor(originPos: OriginConnectionPosition, overlayPos: OverlayConnectionPosition, connectedTo: ElementRef<HTMLElement>, viewportRuler: ViewportRuler, document: Document, platform: Platform, overlayContainer: OverlayContainer);\n    /** Ordered list of preferred positions, from most to least desirable. */\n    readonly positions: ConnectionPositionPair[];\n    /** Attach this position strategy to an overlay. */\n    attach(overlayRef: OverlayReference): void;\n    /** Disposes all resources used by the position strategy. */\n    dispose(): void;\n    /** @docs-private */\n    detach(): void;\n    /**\n     * Updates the position of the overlay element, using whichever preferred position relative\n     * to the origin fits on-screen.\n     * @docs-private\n     */\n    apply(): void;\n    /**\n     * Re-positions the overlay element with the trigger in its last calculated position,\n     * even if a position higher in the \"preferred positions\" list would now fit. This\n     * allows one to re-align the panel without changing the orientation of the panel.\n     */\n    recalculateLastPosition(): void;\n    /**\n     * Sets the list of Scrollable containers that host the origin element so that\n     * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n     * Scrollable must be an ancestor element of the strategy's origin element.\n     */\n    withScrollableContainers(scrollables: CdkScrollable[]): void;\n    /**\n     * Adds a new preferred fallback position.\n     * @param originPos\n     * @param overlayPos\n     */\n    withFallbackPosition(originPos: OriginConnectionPosition, overlayPos: OverlayConnectionPosition, offsetX?: number, offsetY?: number): this;\n    /**\n     * Sets the layout direction so the overlay's position can be adjusted to match.\n     * @param dir New layout direction.\n     */\n    withDirection(dir: 'ltr' | 'rtl'): this;\n    /**\n     * Sets an offset for the overlay's connection point on the x-axis\n     * @param offset New offset in the X axis.\n     */\n    withOffsetX(offset: number): this;\n    /**\n     * Sets an offset for the overlay's connection point on the y-axis\n     * @param  offset New offset in the Y axis.\n     */\n    withOffsetY(offset: number): this;\n    /**\n     * Sets whether the overlay's position should be locked in after it is positioned\n     * initially. When an overlay is locked in, it won't attempt to reposition itself\n     * when the position is re-applied (e.g. when the user scrolls away).\n     * @param isLocked Whether the overlay should locked in.\n     */\n    withLockedPosition(isLocked: boolean): this;\n    /**\n     * Overwrites the current set of positions with an array of new ones.\n     * @param positions Position pairs to be set on the strategy.\n     */\n    withPositions(positions: ConnectionPositionPair[]): this;\n    /**\n     * Sets the origin element, relative to which to position the overlay.\n     * @param origin Reference to the new origin element.\n     */\n    setOrigin(origin: ElementRef): this;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/position/connected-position.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare type HorizontalConnectionPos = 'start' | 'center' | 'end';\n/** Vertical dimension of a connection point on the perimeter of the origin or overlay element. */\nexport declare type VerticalConnectionPos = 'top' | 'center' | 'bottom';\n/** A connection point on the origin element. */\nexport interface OriginConnectionPosition {\n    originX: HorizontalConnectionPos;\n    originY: VerticalConnectionPos;\n}\n/** A connection point on the overlay element. */\nexport interface OverlayConnectionPosition {\n    overlayX: HorizontalConnectionPos;\n    overlayY: VerticalConnectionPos;\n}\n/** The points of the origin element and the overlay element to connect. */\nexport declare class ConnectionPositionPair {\n    /** Offset along the X axis. */\n    offsetX?: number | undefined;\n    /** Offset along the Y axis. */\n    offsetY?: number | undefined;\n    /** Class(es) to be applied to the panel while this position is active. */\n    panelClass?: string | string[] | undefined;\n    /** X-axis attachment point for connected overlay origin. Can be 'start', 'end', or 'center'. */\n    originX: HorizontalConnectionPos;\n    /** Y-axis attachment point for connected overlay origin. Can be 'top', 'bottom', or 'center'. */\n    originY: VerticalConnectionPos;\n    /** X-axis attachment point for connected overlay. Can be 'start', 'end', or 'center'. */\n    overlayX: HorizontalConnectionPos;\n    /** Y-axis attachment point for connected overlay. Can be 'top', 'bottom', or 'center'. */\n    overlayY: VerticalConnectionPos;\n    constructor(origin: OriginConnectionPosition, overlay: OverlayConnectionPosition, \n    /** Offset along the X axis. */\n    offsetX?: number | undefined, \n    /** Offset along the Y axis. */\n    offsetY?: number | undefined, \n    /** Class(es) to be applied to the panel while this position is active. */\n    panelClass?: string | string[] | undefined);\n}\n/**\n * Set of properties regarding the position of the origin and overlay relative to the viewport\n * with respect to the containing Scrollable elements.\n *\n * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the\n * bounds of any one of the strategy's Scrollable's bounding client rectangle.\n *\n * The overlay and origin are outside view if there is no overlap between their bounding client\n * rectangle and any one of the strategy's Scrollable's bounding client rectangle.\n *\n *       -----------                    -----------\n *       | outside |                    | clipped |\n *       |  view   |              --------------------------\n *       |         |              |     |         |        |\n *       ----------               |     -----------        |\n *  --------------------------    |                        |\n *  |                        |    |      Scrollable        |\n *  |                        |    |                        |\n *  |                        |     --------------------------\n *  |      Scrollable        |\n *  |                        |\n *  --------------------------\n *\n *  @docs-private\n */\nexport declare class ScrollingVisibility {\n    isOriginClipped: boolean;\n    isOriginOutsideView: boolean;\n    isOverlayClipped: boolean;\n    isOverlayOutsideView: boolean;\n}\n/** The change event emitted by the strategy when a fallback position is used. */\nexport declare class ConnectedOverlayPositionChange {\n    /** The position used as a result of this change. */\n    connectionPair: ConnectionPositionPair;\n    /** @docs-private */\n    scrollableViewProperties: ScrollingVisibility;\n    constructor(\n    /** The position used as a result of this change. */\n    connectionPair: ConnectionPositionPair, \n    /** @docs-private */\n    scrollableViewProperties: ScrollingVisibility);\n}\n/**\n * Validates whether a vertical position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nexport declare function validateVerticalPosition(property: string, value: VerticalConnectionPos): void;\n/**\n * Validates whether a horizontal position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nexport declare function validateHorizontalPosition(property: string, value: HorizontalConnectionPos): void;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/position/flexible-connected-position-strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { PositionStrategy } from './position-strategy';\nimport { ElementRef } from '@angular/core';\nimport { ViewportRuler, CdkScrollable } from '@angular/cdk/scrolling';\nimport { ConnectedOverlayPositionChange, ConnectionPositionPair } from './connected-position';\nimport { Observable } from 'rxjs';\nimport { OverlayReference } from '../overlay-reference';\nimport { Platform } from '@angular/cdk/platform';\nimport { OverlayContainer } from '../overlay-container';\n/** Possible values that can be set as the origin of a FlexibleConnectedPositionStrategy. */\nexport declare type FlexibleConnectedPositionStrategyOrigin = ElementRef | HTMLElement | Point & {\n    width?: number;\n    height?: number;\n};\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n */\nexport declare class FlexibleConnectedPositionStrategy implements PositionStrategy {\n    private _viewportRuler;\n    private _document;\n    private _platform;\n    private _overlayContainer;\n    /** The overlay to which this strategy is attached. */\n    private _overlayRef;\n    /** Whether we're performing the very first positioning of the overlay. */\n    private _isInitialRender;\n    /** Last size used for the bounding box. Used to avoid resizing the overlay after open. */\n    private _lastBoundingBoxSize;\n    /** Whether the overlay was pushed in a previous positioning. */\n    private _isPushed;\n    /** Whether the overlay can be pushed on-screen on the initial open. */\n    private _canPush;\n    /** Whether the overlay can grow via flexible width/height after the initial open. */\n    private _growAfterOpen;\n    /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n    private _hasFlexibleDimensions;\n    /** Whether the overlay position is locked. */\n    private _positionLocked;\n    /** Cached origin dimensions */\n    private _originRect;\n    /** Cached overlay dimensions */\n    private _overlayRect;\n    /** Cached viewport dimensions */\n    private _viewportRect;\n    /** Amount of space that must be maintained between the overlay and the edge of the viewport. */\n    private _viewportMargin;\n    /** The Scrollable containers used to check scrollable view properties on position change. */\n    private _scrollables;\n    /** Ordered list of preferred positions, from most to least desirable. */\n    _preferredPositions: ConnectionPositionPair[];\n    /** The origin element against which the overlay will be positioned. */\n    private _origin;\n    /** The overlay pane element. */\n    private _pane;\n    /** Whether the strategy has been disposed of already. */\n    private _isDisposed;\n    /**\n     * Parent element for the overlay panel used to constrain the overlay panel's size to fit\n     * within the viewport.\n     */\n    private _boundingBox;\n    /** The last position to have been calculated as the best fit position. */\n    private _lastPosition;\n    /** Subject that emits whenever the position changes. */\n    private _positionChanges;\n    /** Subscription to viewport size changes. */\n    private _resizeSubscription;\n    /** Default offset for the overlay along the x axis. */\n    private _offsetX;\n    /** Default offset for the overlay along the y axis. */\n    private _offsetY;\n    /** Selector to be used when finding the elements on which to set the transform origin. */\n    private _transformOriginSelector;\n    /** Keeps track of the CSS classes that the position strategy has applied on the overlay panel. */\n    private _appliedPanelClasses;\n    /** Amount by which the overlay was pushed in each axis during the last time it was positioned. */\n    private _previousPushAmount;\n    /** Observable sequence of position changes. */\n    positionChanges: Observable<ConnectedOverlayPositionChange>;\n    /** Ordered list of preferred positions, from most to least desirable. */\n    readonly positions: ConnectionPositionPair[];\n    constructor(connectedTo: FlexibleConnectedPositionStrategyOrigin, _viewportRuler: ViewportRuler, _document: Document, _platform: Platform, _overlayContainer: OverlayContainer);\n    /** Attaches this position strategy to an overlay. */\n    attach(overlayRef: OverlayReference): void;\n    /**\n     * Updates the position of the overlay element, using whichever preferred position relative\n     * to the origin best fits on-screen.\n     *\n     * The selection of a position goes as follows:\n     *  - If any positions fit completely within the viewport as-is,\n     *      choose the first position that does so.\n     *  - If flexible dimensions are enabled and at least one satifies the given minimum width/height,\n     *      choose the position with the greatest available size modified by the positions' weight.\n     *  - If pushing is enabled, take the position that went off-screen the least and push it\n     *      on-screen.\n     *  - If none of the previous criteria were met, use the position that goes off-screen the least.\n     * @docs-private\n     */\n    apply(): void;\n    detach(): void;\n    /** Cleanup after the element gets destroyed. */\n    dispose(): void;\n    /**\n     * This re-aligns the overlay element with the trigger in its last calculated position,\n     * even if a position higher in the \"preferred positions\" list would now fit. This\n     * allows one to re-align the panel without changing the orientation of the panel.\n     */\n    reapplyLastPosition(): void;\n    /**\n     * Sets the list of Scrollable containers that host the origin element so that\n     * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n     * Scrollable must be an ancestor element of the strategy's origin element.\n     */\n    withScrollableContainers(scrollables: CdkScrollable[]): this;\n    /**\n     * Adds new preferred positions.\n     * @param positions List of positions options for this overlay.\n     */\n    withPositions(positions: ConnectedPosition[]): this;\n    /**\n     * Sets a minimum distance the overlay may be positioned to the edge of the viewport.\n     * @param margin Required margin between the overlay and the viewport edge in pixels.\n     */\n    withViewportMargin(margin: number): this;\n    /** Sets whether the overlay's width and height can be constrained to fit within the viewport. */\n    withFlexibleDimensions(flexibleDimensions?: boolean): this;\n    /** Sets whether the overlay can grow after the initial open via flexible width/height. */\n    withGrowAfterOpen(growAfterOpen?: boolean): this;\n    /** Sets whether the overlay can be pushed on-screen if none of the provided positions fit. */\n    withPush(canPush?: boolean): this;\n    /**\n     * Sets whether the overlay's position should be locked in after it is positioned\n     * initially. When an overlay is locked in, it won't attempt to reposition itself\n     * when the position is re-applied (e.g. when the user scrolls away).\n     * @param isLocked Whether the overlay should locked in.\n     */\n    withLockedPosition(isLocked?: boolean): this;\n    /**\n     * Sets the origin, relative to which to position the overlay.\n     * Using an element origin is useful for building components that need to be positioned\n     * relatively to a trigger (e.g. dropdown menus or tooltips), whereas using a point can be\n     * used for cases like contextual menus which open relative to the user's pointer.\n     * @param origin Reference to the new origin.\n     */\n    setOrigin(origin: FlexibleConnectedPositionStrategyOrigin): this;\n    /**\n     * Sets the default offset for the overlay's connection point on the x-axis.\n     * @param offset New offset in the X axis.\n     */\n    withDefaultOffsetX(offset: number): this;\n    /**\n     * Sets the default offset for the overlay's connection point on the y-axis.\n     * @param offset New offset in the Y axis.\n     */\n    withDefaultOffsetY(offset: number): this;\n    /**\n     * Configures that the position strategy should set a `transform-origin` on some elements\n     * inside the overlay, depending on the current position that is being applied. This is\n     * useful for the cases where the origin of an animation can change depending on the\n     * alignment of the overlay.\n     * @param selector CSS selector that will be used to find the target\n     *    elements onto which to set the transform origin.\n     */\n    withTransformOriginOn(selector: string): this;\n    /**\n     * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n     */\n    private _getOriginPoint;\n    /**\n     * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n     * origin point to which the overlay should be connected.\n     */\n    private _getOverlayPoint;\n    /** Gets how well an overlay at the given point will fit within the viewport. */\n    private _getOverlayFit;\n    /**\n     * Whether the overlay can fit within the viewport when it may resize either its width or height.\n     * @param fit How well the overlay fits in the viewport at some position.\n     * @param point The (x, y) coordinates of the overlat at some position.\n     * @param viewport The geometry of the viewport.\n     */\n    private _canFitWithFlexibleDimensions;\n    /**\n     * Gets the point at which the overlay can be \"pushed\" on-screen. If the overlay is larger than\n     * the viewport, the top-left corner will be pushed on-screen (with overflow occuring on the\n     * right and bottom).\n     *\n     * @param start Starting point from which the overlay is pushed.\n     * @param overlay Dimensions of the overlay.\n     * @param scrollPosition Current viewport scroll position.\n     * @returns The point at which to position the overlay after pushing. This is effectively a new\n     *     originPoint.\n     */\n    private _pushOverlayOnScreen;\n    /**\n     * Applies a computed position to the overlay and emits a position change.\n     * @param position The position preference\n     * @param originPoint The point on the origin element where the overlay is connected.\n     */\n    private _applyPosition;\n    /** Sets the transform origin based on the configured selector and the passed-in position.  */\n    private _setTransformOrigin;\n    /**\n     * Gets the position and size of the overlay's sizing container.\n     *\n     * This method does no measuring and applies no styles so that we can cheaply compute the\n     * bounds for all positions and choose the best fit based on these results.\n     */\n    private _calculateBoundingBoxRect;\n    /**\n     * Sets the position and size of the overlay's sizing wrapper. The wrapper is positioned on the\n     * origin's connection point and stetches to the bounds of the viewport.\n     *\n     * @param origin The point on the origin element where the overlay is connected.\n     * @param position The position preference\n     */\n    private _setBoundingBoxStyles;\n    /** Resets the styles for the bounding box so that a new positioning can be computed. */\n    private _resetBoundingBoxStyles;\n    /** Resets the styles for the overlay pane so that a new positioning can be computed. */\n    private _resetOverlayElementStyles;\n    /** Sets positioning styles to the overlay element. */\n    private _setOverlayElementStyles;\n    /** Gets the exact top/bottom for the overlay when not using flexible sizing or when pushing. */\n    private _getExactOverlayY;\n    /** Gets the exact left/right for the overlay when not using flexible sizing or when pushing. */\n    private _getExactOverlayX;\n    /**\n     * Gets the view properties of the trigger and overlay, including whether they are clipped\n     * or completely outside the view of any of the strategy's scrollables.\n     */\n    private _getScrollVisibility;\n    /** Subtracts the amount that an element is overflowing on an axis from its length. */\n    private _subtractOverflows;\n    /** Narrows the given viewport rect by the current _viewportMargin. */\n    private _getNarrowedViewportRect;\n    /** Whether the we're dealing with an RTL context */\n    private _isRtl;\n    /** Determines whether the overlay uses exact or flexible positioning. */\n    private _hasExactPosition;\n    /** Retrieves the offset of a position along the x or y axis. */\n    private _getOffset;\n    /** Validates that the current position match the expected values. */\n    private _validatePositions;\n    /** Adds a single CSS class or an array of classes on the overlay panel. */\n    private _addPanelClasses;\n    /** Clears the classes that the position strategy has applied from the overlay panel. */\n    private _clearPanelClasses;\n    /** Returns the ClientRect of the current origin. */\n    private _getOriginRect;\n}\n/** A simple (x, y) coordinate. */\ninterface Point {\n    x: number;\n    y: number;\n}\n/** A connected position as specified by the user. */\nexport interface ConnectedPosition {\n    originX: 'start' | 'center' | 'end';\n    originY: 'top' | 'center' | 'bottom';\n    overlayX: 'start' | 'center' | 'end';\n    overlayY: 'top' | 'center' | 'bottom';\n    weight?: number;\n    offsetX?: number;\n    offsetY?: number;\n    panelClass?: string | string[];\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/position/global-position-strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { PositionStrategy } from './position-strategy';\nimport { OverlayReference } from '../overlay-reference';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport. We use flexbox, instead of\n * transforms, in order to avoid issues with subpixel rendering which can cause the\n * element to become blurry.\n */\nexport declare class GlobalPositionStrategy implements PositionStrategy {\n    /** The overlay to which this strategy is attached. */\n    private _overlayRef;\n    private _cssPosition;\n    private _topOffset;\n    private _bottomOffset;\n    private _leftOffset;\n    private _rightOffset;\n    private _alignItems;\n    private _justifyContent;\n    private _width;\n    private _height;\n    private _isDisposed;\n    attach(overlayRef: OverlayReference): void;\n    /**\n     * Sets the top position of the overlay. Clears any previously set vertical position.\n     * @param value New top offset.\n     */\n    top(value?: string): this;\n    /**\n     * Sets the left position of the overlay. Clears any previously set horizontal position.\n     * @param value New left offset.\n     */\n    left(value?: string): this;\n    /**\n     * Sets the bottom position of the overlay. Clears any previously set vertical position.\n     * @param value New bottom offset.\n     */\n    bottom(value?: string): this;\n    /**\n     * Sets the right position of the overlay. Clears any previously set horizontal position.\n     * @param value New right offset.\n     */\n    right(value?: string): this;\n    /**\n     * Sets the overlay width and clears any previously set width.\n     * @param value New width for the overlay\n     * @deprecated Pass the `width` through the `OverlayConfig`.\n     * @breaking-change 8.0.0\n     */\n    width(value?: string): this;\n    /**\n     * Sets the overlay height and clears any previously set height.\n     * @param value New height for the overlay\n     * @deprecated Pass the `height` through the `OverlayConfig`.\n     * @breaking-change 8.0.0\n     */\n    height(value?: string): this;\n    /**\n     * Centers the overlay horizontally with an optional offset.\n     * Clears any previously set horizontal position.\n     *\n     * @param offset Overlay offset from the horizontal center.\n     */\n    centerHorizontally(offset?: string): this;\n    /**\n     * Centers the overlay vertically with an optional offset.\n     * Clears any previously set vertical position.\n     *\n     * @param offset Overlay offset from the vertical center.\n     */\n    centerVertically(offset?: string): this;\n    /**\n     * Apply the position to the element.\n     * @docs-private\n     */\n    apply(): void;\n    /**\n     * Cleans up the DOM changes from the position strategy.\n     * @docs-private\n     */\n    dispose(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/position/overlay-position-builder.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Platform } from '@angular/cdk/platform';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { ElementRef } from '@angular/core';\nimport { OverlayContainer } from '../overlay-container';\nimport { OriginConnectionPosition, OverlayConnectionPosition } from './connected-position';\nimport { ConnectedPositionStrategy } from './connected-position-strategy';\nimport { FlexibleConnectedPositionStrategy, FlexibleConnectedPositionStrategyOrigin } from './flexible-connected-position-strategy';\nimport { GlobalPositionStrategy } from './global-position-strategy';\n/** Builder for overlay position strategy. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class OverlayPositionBuilder {\n    private _viewportRuler;\n    private _document;\n    private _platform;\n    private _overlayContainer;\n    constructor(_viewportRuler: ViewportRuler, _document: any, _platform: Platform, _overlayContainer: OverlayContainer);\n    /**\n     * Creates a global position strategy.\n     */\n    global(): GlobalPositionStrategy;\n    /**\n     * Creates a relative position strategy.\n     * @param elementRef\n     * @param originPos\n     * @param overlayPos\n     * @deprecated Use `flexibleConnectedTo` instead.\n     * @breaking-change 8.0.0\n     */\n    connectedTo(elementRef: ElementRef, originPos: OriginConnectionPosition, overlayPos: OverlayConnectionPosition): ConnectedPositionStrategy;\n    /**\n     * Creates a flexible position strategy.\n     * @param origin Origin relative to which to position the overlay.\n     */\n    flexibleConnectedTo(origin: FlexibleConnectedPositionStrategyOrigin): FlexibleConnectedPositionStrategy;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<OverlayPositionBuilder>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<OverlayPositionBuilder>;\n}\n\n//# sourceMappingURL=overlay-position-builder.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/position/position-strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { OverlayReference } from '../overlay-reference';\n/** Strategy for setting the position on an overlay. */\nexport interface PositionStrategy {\n    /** Attaches this position strategy to an overlay. */\n    attach(overlayRef: OverlayReference): void;\n    /** Updates the position of the overlay element. */\n    apply(): void;\n    /** Called when the overlay is detached. */\n    detach?(): void;\n    /** Cleans up any DOM modifications made by the position strategy, if necessary. */\n    dispose(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/position/scroll-clip.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is scrolled out of view\n * @docs-private\n */\nexport declare function isElementScrolledOutsideView(element: ClientRect, scrollContainers: ClientRect[]): boolean;\n/**\n * Gets whether an element is clipped by any of its scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is clipped\n * @docs-private\n */\nexport declare function isElementClippedByScrolling(element: ClientRect, scrollContainers: ClientRect[]): boolean;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './overlay-config';\nexport * from './position/connected-position';\nexport * from './scroll/index';\nexport * from './overlay-module';\nexport { Overlay } from './overlay';\nexport { OverlayContainer } from './overlay-container';\nexport { CdkOverlayOrigin, CdkConnectedOverlay } from './overlay-directives';\nexport { FullscreenOverlayContainer } from './fullscreen-overlay-container';\nexport { OverlayRef, OverlaySizeConfig } from './overlay-ref';\nexport { ViewportRuler } from '@angular/cdk/scrolling';\nexport { ComponentType } from '@angular/cdk/portal';\nexport { OverlayKeyboardDispatcher } from './keyboard/overlay-keyboard-dispatcher';\nexport { OverlayPositionBuilder } from './position/overlay-position-builder';\nexport { PositionStrategy } from './position/position-strategy';\nexport { GlobalPositionStrategy } from './position/global-position-strategy';\nexport { ConnectedPositionStrategy } from './position/connected-position-strategy';\nexport { ConnectedPosition, FlexibleConnectedPositionStrategy, FlexibleConnectedPositionStrategyOrigin, } from './position/flexible-connected-position-strategy';\nexport { VIEWPORT_RULER_PROVIDER } from '@angular/cdk/scrolling';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/scroll/block-scroll-strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ScrollStrategy } from './scroll-strategy';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\n/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nexport declare class BlockScrollStrategy implements ScrollStrategy {\n    private _viewportRuler;\n    private _previousHTMLStyles;\n    private _previousScrollPosition;\n    private _isEnabled;\n    private _document;\n    constructor(_viewportRuler: ViewportRuler, document: any);\n    /** Attaches this scroll strategy to an overlay. */\n    attach(): void;\n    /** Blocks page-level scroll while the attached overlay is open. */\n    enable(): void;\n    /** Unblocks page-level scroll while the attached overlay is open. */\n    disable(): void;\n    private _canBeEnabled;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/scroll/close-scroll-strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { NgZone } from '@angular/core';\nimport { ScrollStrategy } from './scroll-strategy';\nimport { OverlayReference } from '../overlay-reference';\nimport { ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\n/**\n * Config options for the CloseScrollStrategy.\n */\nexport interface CloseScrollStrategyConfig {\n    /** Amount of pixels the user has to scroll before the overlay is closed. */\n    threshold?: number;\n}\n/**\n * Strategy that will close the overlay as soon as the user starts scrolling.\n */\nexport declare class CloseScrollStrategy implements ScrollStrategy {\n    private _scrollDispatcher;\n    private _ngZone;\n    private _viewportRuler;\n    private _config?;\n    private _scrollSubscription;\n    private _overlayRef;\n    private _initialScrollPosition;\n    constructor(_scrollDispatcher: ScrollDispatcher, _ngZone: NgZone, _viewportRuler: ViewportRuler, _config?: CloseScrollStrategyConfig | undefined);\n    /** Attaches this scroll strategy to an overlay. */\n    attach(overlayRef: OverlayReference): void;\n    /** Enables the closing of the attached overlay on scroll. */\n    enable(): void;\n    /** Disables the closing the attached overlay on scroll. */\n    disable(): void;\n    detach(): void;\n    /** Detaches the overlay ref and disables the scroll strategy. */\n    private _detach;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/scroll/index.d.ts",
      "node_modules/@angular/cdk/overlay/scroll/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport { CdkScrollable, ScrollDispatcher } from '@angular/cdk/scrolling';\nexport { ScrollStrategy } from './scroll-strategy';\nexport { ScrollStrategyOptions } from './scroll-strategy-options';\nexport { RepositionScrollStrategy, RepositionScrollStrategyConfig } from './reposition-scroll-strategy';\nexport { CloseScrollStrategy } from './close-scroll-strategy';\nexport { NoopScrollStrategy } from './noop-scroll-strategy';\nexport { BlockScrollStrategy } from './block-scroll-strategy';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/scroll/noop-scroll-strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ScrollStrategy } from './scroll-strategy';\n/** Scroll strategy that doesn't do anything. */\nexport declare class NoopScrollStrategy implements ScrollStrategy {\n    /** Does nothing, as this scroll strategy is a no-op. */\n    enable(): void;\n    /** Does nothing, as this scroll strategy is a no-op. */\n    disable(): void;\n    /** Does nothing, as this scroll strategy is a no-op. */\n    attach(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/scroll/reposition-scroll-strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { NgZone } from '@angular/core';\nimport { ScrollStrategy } from './scroll-strategy';\nimport { OverlayReference } from '../overlay-reference';\nimport { ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\n/**\n * Config options for the RepositionScrollStrategy.\n */\nexport interface RepositionScrollStrategyConfig {\n    /** Time in milliseconds to throttle the scroll events. */\n    scrollThrottle?: number;\n    /** Whether to close the overlay once the user has scrolled away completely. */\n    autoClose?: boolean;\n}\n/**\n * Strategy that will update the element position as the user is scrolling.\n */\nexport declare class RepositionScrollStrategy implements ScrollStrategy {\n    private _scrollDispatcher;\n    private _viewportRuler;\n    private _ngZone;\n    private _config?;\n    private _scrollSubscription;\n    private _overlayRef;\n    constructor(_scrollDispatcher: ScrollDispatcher, _viewportRuler: ViewportRuler, _ngZone: NgZone, _config?: RepositionScrollStrategyConfig | undefined);\n    /** Attaches this scroll strategy to an overlay. */\n    attach(overlayRef: OverlayReference): void;\n    /** Enables repositioning of the attached overlay on scroll. */\n    enable(): void;\n    /** Disables repositioning of the attached overlay on scroll. */\n    disable(): void;\n    detach(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/scroll/scroll-strategy-options.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport { NgZone } from '@angular/core';\nimport { BlockScrollStrategy } from './block-scroll-strategy';\nimport { CloseScrollStrategy, CloseScrollStrategyConfig } from './close-scroll-strategy';\nimport { NoopScrollStrategy } from './noop-scroll-strategy';\nimport { RepositionScrollStrategy, RepositionScrollStrategyConfig } from './reposition-scroll-strategy';\n/**\n * Options for how an overlay will handle scrolling.\n *\n * Users can provide a custom value for `ScrollStrategyOptions` to replace the default\n * behaviors. This class primarily acts as a factory for ScrollStrategy instances.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class ScrollStrategyOptions {\n    private _scrollDispatcher;\n    private _viewportRuler;\n    private _ngZone;\n    private _document;\n    constructor(_scrollDispatcher: ScrollDispatcher, _viewportRuler: ViewportRuler, _ngZone: NgZone, document: any);\n    /** Do nothing on scroll. */\n    noop: () => NoopScrollStrategy;\n    /**\n     * Close the overlay as soon as the user scrolls.\n     * @param config Configuration to be used inside the scroll strategy.\n     */\n    close: (config?: CloseScrollStrategyConfig | undefined) => CloseScrollStrategy;\n    /** Block scrolling. */\n    block: () => BlockScrollStrategy;\n    /**\n     * Update the overlay's position on scroll.\n     * @param config Configuration to be used inside the scroll strategy.\n     * Allows debouncing the reposition calls.\n     */\n    reposition: (config?: RepositionScrollStrategyConfig | undefined) => RepositionScrollStrategy;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<ScrollStrategyOptions>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<ScrollStrategyOptions>;\n}\n\n//# sourceMappingURL=scroll-strategy-options.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/overlay/scroll/scroll-strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { OverlayReference } from '../overlay-reference';\n/**\n * Describes a strategy that will be used by an overlay to handle scroll events while it is open.\n */\nexport interface ScrollStrategy {\n    /** Enable this scroll strategy (called when the attached overlay is attached to a portal). */\n    enable: () => void;\n    /** Disable this scroll strategy (called when the attached overlay is detached from a portal). */\n    disable: () => void;\n    /** Attaches this `ScrollStrategy` to an overlay. */\n    attach: (overlayRef: OverlayReference) => void;\n    /** Detaches the scroll strategy from the current overlay. */\n    detach?: () => void;\n}\n/**\n * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.\n */\nexport declare function getMatScrollStrategyAlreadyAttachedError(): Error;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/platform/features/input-types.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @returns The input types supported by this browser. */\nexport declare function getSupportedInputTypes(): Set<string>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/platform/features/passive-listeners.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Checks whether the user's browser supports passive event listeners.\n * See: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nexport declare function supportsPassiveEventListeners(): boolean;\n/**\n * Normalizes an `AddEventListener` object to something that can be passed\n * to `addEventListener` on any browser, no matter whether it supports the\n * `options` parameter.\n * @param options Object to be normalized.\n */\nexport declare function normalizePassiveListenerOptions(options: AddEventListenerOptions): AddEventListenerOptions | boolean;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/platform/features/scrolling.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** The possible ways the browser may handle the horizontal scroll axis in RTL languages. */\nexport declare enum RtlScrollAxisType {\n    /**\n     * scrollLeft is 0 when scrolled all the way left and (scrollWidth - clientWidth) when scrolled\n     * all the way right.\n     */\n    NORMAL = 0,\n    /**\n     * scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n     * all the way right.\n     */\n    NEGATED = 1,\n    /**\n     * scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n     * all the way right.\n     */\n    INVERTED = 2\n}\n/** Check whether the browser supports scroll behaviors. */\nexport declare function supportsScrollBehavior(): boolean;\n/**\n * Checks the type of RTL scroll axis used by this browser. As of time of writing, Chrome is NORMAL,\n * Firefox & Safari are NEGATED, and IE & Edge are INVERTED.\n */\nexport declare function getRtlScrollAxisType(): RtlScrollAxisType;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/platform/features/shadow-dom.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Checks whether the user's browser support Shadow DOM. */\nexport declare function _supportsShadowDom(): boolean;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/platform/index.d.ts",
      "node_modules/@angular/cdk/platform/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/platform/platform-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class PlatformModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<PlatformModule, never, never, never>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<PlatformModule>;\n}\n\n//# sourceMappingURL=platform-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/platform/platform.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class Platform {\n    private _platformId?;\n    /**\n     * Whether the Angular application is being rendered in the browser.\n     * We want to use the Angular platform check because if the Document is shimmed\n     * without the navigator, the following checks will fail. This is preferred because\n     * sometimes the Document may be shimmed without the user's knowledge or intention\n     */\n    isBrowser: boolean;\n    /** Whether the current browser is Microsoft Edge. */\n    EDGE: boolean;\n    /** Whether the current rendering engine is Microsoft Trident. */\n    TRIDENT: boolean;\n    /** Whether the current rendering engine is Blink. */\n    BLINK: boolean;\n    /** Whether the current rendering engine is WebKit. */\n    WEBKIT: boolean;\n    /** Whether the current platform is Apple iOS. */\n    IOS: boolean;\n    /** Whether the current browser is Firefox. */\n    FIREFOX: boolean;\n    /** Whether the current platform is Android. */\n    ANDROID: boolean;\n    /** Whether the current browser is Safari. */\n    SAFARI: boolean;\n    /**\n     * @breaking-change 8.0.0 remove optional decorator\n     */\n    constructor(_platformId?: Object | undefined);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<Platform>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<Platform>;\n}\n\n//# sourceMappingURL=platform.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/platform/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './platform';\nexport * from './platform-module';\nexport * from './features/input-types';\nexport * from './features/passive-listeners';\nexport * from './features/scrolling';\nexport * from './features/shadow-dom';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/portal/dom-portal-outlet.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, ApplicationRef, Injector } from '@angular/core';\nimport { BasePortalOutlet, ComponentPortal, TemplatePortal } from './portal';\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nexport declare class DomPortalOutlet extends BasePortalOutlet {\n    /** Element into which the content is projected. */\n    outletElement: Element;\n    private _componentFactoryResolver;\n    private _appRef;\n    private _defaultInjector;\n    constructor(\n    /** Element into which the content is projected. */\n    outletElement: Element, _componentFactoryResolver: ComponentFactoryResolver, _appRef: ApplicationRef, _defaultInjector: Injector);\n    /**\n     * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n     * @param portal Portal to be attached\n     * @returns Reference to the created component.\n     */\n    attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n    /**\n     * Attaches a template portal to the DOM as an embedded view.\n     * @param portal Portal to be attached.\n     * @returns Reference to the created embedded view.\n     */\n    attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n    /**\n     * Clears out a portal from the DOM.\n     */\n    dispose(): void;\n    /** Gets the root HTMLElement for an instantiated component. */\n    private _getComponentRootNode;\n}\n/**\n * @deprecated Use `DomPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nexport declare class DomPortalHost extends DomPortalOutlet {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/portal/index.d.ts",
      "node_modules/@angular/cdk/portal/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/portal/portal-directives.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, EventEmitter, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { BasePortalOutlet, ComponentPortal, Portal, TemplatePortal } from './portal';\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class CdkPortal extends TemplatePortal {\n    constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkPortal>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkPortal, \"[cdkPortal]\", [\"cdkPortal\"], {}, {}, never>;\n}\n/**\n * @deprecated Use `CdkPortal` instead.\n * @breaking-change 9.0.0\n */\nexport declare class TemplatePortalDirective extends CdkPortal {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<TemplatePortalDirective>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<TemplatePortalDirective, \"[cdk-portal], [portal]\", [\"cdkPortal\"], {}, {}, never>;\n}\n/**\n * Possible attached references to the CdkPortalOutlet.\n */\nexport declare type CdkPortalOutletAttachedRef = ComponentRef<any> | EmbeddedViewRef<any> | null;\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * `<ng-template [cdkPortalOutlet]=\"greeting\"></ng-template>`\n */\nexport declare class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestroy {\n    private _componentFactoryResolver;\n    private _viewContainerRef;\n    /** Whether the portal component is initialized. */\n    private _isInitialized;\n    /** Reference to the currently-attached component/view ref. */\n    private _attachedRef;\n    constructor(_componentFactoryResolver: ComponentFactoryResolver, _viewContainerRef: ViewContainerRef);\n    /** Portal associated with the Portal outlet. */\n    portal: Portal<any> | null;\n    /** Emits when a portal is attached to the outlet. */\n    attached: EventEmitter<CdkPortalOutletAttachedRef>;\n    /** Component or view reference that is attached to the portal. */\n    readonly attachedRef: CdkPortalOutletAttachedRef;\n    ngOnInit(): void;\n    ngOnDestroy(): void;\n    /**\n     * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n     *\n     * @param portal Portal to be attached to the portal outlet.\n     * @returns Reference to the created component.\n     */\n    attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n    /**\n     * Attach the given TemplatePortal to this PortlHost as an embedded View.\n     * @param portal Portal to be attached.\n     * @returns Reference to the created embedded view.\n     */\n    attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkPortalOutlet>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkPortalOutlet, \"[cdkPortalOutlet]\", [\"cdkPortalOutlet\"], { 'portal': \"cdkPortalOutlet\" }, { 'attached': \"attached\" }, never>;\n}\n/**\n * @deprecated Use `CdkPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nexport declare class PortalHostDirective extends CdkPortalOutlet {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<PortalHostDirective>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<PortalHostDirective, \"[cdkPortalHost], [portalHost]\", [\"cdkPortalHost\"], { 'portal': \"cdkPortalHost\" }, {}, never>;\n}\nexport declare class PortalModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<PortalModule, [typeof CdkPortal, typeof CdkPortalOutlet, typeof TemplatePortalDirective, typeof PortalHostDirective], never, [typeof CdkPortal, typeof CdkPortalOutlet, typeof TemplatePortalDirective, typeof PortalHostDirective]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<PortalModule>;\n}\n\n//# sourceMappingURL=portal-directives.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/portal/portal-errors.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nexport declare function throwNullPortalError(): void;\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nexport declare function throwPortalAlreadyAttachedError(): void;\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nexport declare function throwPortalOutletAlreadyDisposedError(): void;\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nexport declare function throwUnknownPortalTypeError(): void;\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nexport declare function throwNullPortalOutletError(): void;\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nexport declare function throwNoPortalAttachedError(): void;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/portal/portal-injector.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Injector } from '@angular/core';\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * @docs-private\n */\nexport declare class PortalInjector implements Injector {\n    private _parentInjector;\n    private _customTokens;\n    constructor(_parentInjector: Injector, _customTokens: WeakMap<any, any>);\n    get(token: any, notFoundValue?: any): any;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/portal/portal.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { TemplateRef, ViewContainerRef, ElementRef, ComponentRef, EmbeddedViewRef, Injector, ComponentFactoryResolver } from '@angular/core';\n/** Interface that can be used to generically type a class. */\nexport interface ComponentType<T> {\n    new (...args: any[]): T;\n}\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nexport declare abstract class Portal<T> {\n    private _attachedHost;\n    /** Attach this portal to a host. */\n    attach(host: PortalOutlet): T;\n    /** Detach this portal from its host */\n    detach(): void;\n    /** Whether this portal is attached to a host. */\n    readonly isAttached: boolean;\n    /**\n     * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n     * the PortalOutlet when it is performing an `attach()` or `detach()`.\n     */\n    setAttachedHost(host: PortalOutlet | null): void;\n}\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport declare class ComponentPortal<T> extends Portal<ComponentRef<T>> {\n    /** The type of the component that will be instantiated for attachment. */\n    component: ComponentType<T>;\n    /**\n     * [Optional] Where the attached component should live in Angular's *logical* component tree.\n     * This is different from where the component *renders*, which is determined by the PortalOutlet.\n     * The origin is necessary when the host is outside of the Angular application context.\n     */\n    viewContainerRef?: ViewContainerRef | null;\n    /** [Optional] Injector used for the instantiation of the component. */\n    injector?: Injector | null;\n    /**\n     * Alternate `ComponentFactoryResolver` to use when resolving the associated component.\n     * Defaults to using the resolver from the outlet that the portal is attached to.\n     */\n    componentFactoryResolver?: ComponentFactoryResolver | null;\n    constructor(component: ComponentType<T>, viewContainerRef?: ViewContainerRef | null, injector?: Injector | null, componentFactoryResolver?: ComponentFactoryResolver | null);\n}\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nexport declare class TemplatePortal<C = any> extends Portal<EmbeddedViewRef<C>> {\n    /** The embedded template that will be used to instantiate an embedded View in the host. */\n    templateRef: TemplateRef<C>;\n    /** Reference to the ViewContainer into which the template will be stamped out. */\n    viewContainerRef: ViewContainerRef;\n    /** Contextual data to be passed in to the embedded view. */\n    context: C | undefined;\n    constructor(template: TemplateRef<C>, viewContainerRef: ViewContainerRef, context?: C);\n    readonly origin: ElementRef;\n    /**\n     * Attach the portal to the provided `PortalOutlet`.\n     * When a context is provided it will override the `context` property of the `TemplatePortal`\n     * instance.\n     */\n    attach(host: PortalOutlet, context?: C | undefined): EmbeddedViewRef<C>;\n    detach(): void;\n}\n/** A `PortalOutlet` is an space that can contain a single `Portal`. */\nexport interface PortalOutlet {\n    /** Attaches a portal to this outlet. */\n    attach(portal: Portal<any>): any;\n    /** Detaches the currently attached portal from this outlet. */\n    detach(): any;\n    /** Performs cleanup before the outlet is destroyed. */\n    dispose(): void;\n    /** Whether there is currently a portal attached to this outlet. */\n    hasAttached(): boolean;\n}\n/**\n * @deprecated Use `PortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nexport declare type PortalHost = PortalOutlet;\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nexport declare abstract class BasePortalOutlet implements PortalOutlet {\n    /** The portal currently attached to the host. */\n    protected _attachedPortal: Portal<any> | null;\n    /** A function that will permanently dispose this host. */\n    private _disposeFn;\n    /** Whether this host has already been permanently disposed. */\n    private _isDisposed;\n    /** Whether this host has an attached portal. */\n    hasAttached(): boolean;\n    attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n    attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;\n    attach(portal: any): any;\n    abstract attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n    abstract attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n    /** Detaches a previously attached portal. */\n    detach(): void;\n    /** Permanently dispose of this portal host. */\n    dispose(): void;\n    /** @docs-private */\n    setDisposeFn(fn: () => void): void;\n    private _invokeDisposeFn;\n}\n/**\n * @deprecated Use `BasePortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nexport declare abstract class BasePortalHost extends BasePortalOutlet {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/portal/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './portal';\nexport * from './dom-portal-outlet';\nexport * from './portal-directives';\nexport * from './portal-injector';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './version';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/index.d.ts",
      "node_modules/@angular/cdk/schematics/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics\" />\nexport * from './utils';\nexport * from './ng-update/public-api';\nexport * from './update-tool/public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-add/index.d.ts",
      "node_modules/@angular/cdk/schematics/ng-add/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-add/index\" />\nimport { Rule } from '@angular-devkit/schematics';\n/** Name of the Angular CDK version that is shipped together with the schematics. */\nexport declare const cdkVersion: string | null;\n/**\n * Schematic factory entry-point for the `ng-add` schematic. The ng-add schematic will be\n * automatically executed if developers run `ng add @angular/cdk`.\n *\n * By default, the CLI already installs the package that has been specified with `ng add`.\n * We just store the version in the `package.json` in case the package manager didn't. Also\n * this ensures that there will be no error that says that the CDK does not support `ng add`.\n */\nexport default function (): Rule;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-add/package-config.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-add/package-config\" />\nimport { Tree } from '@angular-devkit/schematics';\n/** Adds a package to the package.json in the given host tree. */\nexport declare function addPackageToPackageJson(host: Tree, pkg: string, version: string): Tree;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-add/schema.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-add/schema\" />\nexport interface Schema {\n    /** Name of the project to target. */\n    project: string;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-generate/drag-drop/index.d.ts",
      "node_modules/@angular/cdk/schematics/ng-generate/drag-drop/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-generate/drag-drop/index\" />\nimport { Rule } from '@angular-devkit/schematics';\nimport { Schema } from './schema';\n/** Scaffolds a new Angular component that uses the Drag and Drop module. */\nexport default function (options: Schema): Rule;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-generate/drag-drop/schema.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-generate/drag-drop/schema\" />\nimport { Schema as ComponentSchema } from '@schematics/angular/component/schema';\nexport interface Schema extends ComponentSchema {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/data/attribute-selectors.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/data/attribute-selectors\" />\nimport { VersionChanges } from '../../update-tool/version-changes';\nexport interface AttributeSelectorUpgradeData {\n    /** The attribute name to replace. */\n    replace: string;\n    /** The new name for the attribute. */\n    replaceWith: string;\n}\nexport declare const attributeSelectors: VersionChanges<AttributeSelectorUpgradeData>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/data/class-names.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/data/class-names\" />\nimport { VersionChanges } from '../../update-tool/version-changes';\nexport interface ClassNameUpgradeData {\n    /** The Class name to replace. */\n    replace: string;\n    /** The new name for the Class. */\n    replaceWith: string;\n}\nexport declare const classNames: VersionChanges<ClassNameUpgradeData>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/data/constructor-checks.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/data/constructor-checks\" />\nimport { VersionChanges } from '../../update-tool/version-changes';\nexport declare type ConstructorChecksUpgradeData = string;\n/**\n * List of class names for which the constructor signature has been changed. The new constructor\n * signature types don't need to be stored here because the signature will be determined\n * automatically through type checking.\n */\nexport declare const constructorChecks: VersionChanges<ConstructorChecksUpgradeData>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/data/css-selectors.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/data/css-selectors\" />\nimport { VersionChanges } from '../../update-tool/version-changes';\nexport interface CssSelectorUpgradeData {\n    /** The CSS selector to replace. */\n    replace: string;\n    /** The new CSS selector. */\n    replaceWith: string;\n    /** Whitelist where this replacement is made. If omitted it is made in all files. */\n    whitelist?: {\n        /** Replace this name in stylesheet files. */\n        stylesheet?: boolean;\n        /** Replace this name in HTML files. */\n        html?: boolean;\n        /** Replace this name in TypeScript strings. */\n        strings?: boolean;\n    };\n}\nexport declare const cssSelectors: VersionChanges<CssSelectorUpgradeData>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/data/element-selectors.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/data/element-selectors\" />\nimport { VersionChanges } from '../../update-tool/version-changes';\nexport interface ElementSelectorUpgradeData {\n    /** The element name to replace. */\n    replace: string;\n    /** The new name for the element. */\n    replaceWith: string;\n}\nexport declare const elementSelectors: VersionChanges<ElementSelectorUpgradeData>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/data/index.d.ts",
      "node_modules/@angular/cdk/schematics/ng-update/data/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/data/index\" />\nexport * from './attribute-selectors';\nexport * from './class-names';\nexport * from './constructor-checks';\nexport * from './css-selectors';\nexport * from './element-selectors';\nexport * from './input-names';\nexport * from './method-call-checks';\nexport * from './output-names';\nexport * from './property-names';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/data/input-names.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/data/input-names\" />\nimport { VersionChanges } from '../../update-tool/version-changes';\nexport interface InputNameUpgradeData {\n    /** The @Input() name to replace. */\n    replace: string;\n    /** The new name for the @Input(). */\n    replaceWith: string;\n    /** Whitelist where this replacement is made. If omitted it is made in all HTML & CSS */\n    whitelist: {\n        /** Limit to elements with any of these element tags. */\n        elements?: string[];\n        /** Limit to elements with any of these attributes. */\n        attributes?: string[];\n    };\n}\nexport declare const inputNames: VersionChanges<InputNameUpgradeData>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/data/method-call-checks.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/data/method-call-checks\" />\nimport { VersionChanges } from '../../update-tool/version-changes';\nexport interface MethodCallUpgradeData {\n    className: string;\n    method: string;\n    invalidArgCounts: {\n        count: number;\n        message: string;\n    }[];\n}\nexport declare const methodCallChecks: VersionChanges<MethodCallUpgradeData>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/data/output-names.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/data/output-names\" />\nimport { VersionChanges } from '../../update-tool/version-changes';\nexport interface OutputNameUpgradeData {\n    /** The @Output() name to replace. */\n    replace: string;\n    /** The new name for the @Output(). */\n    replaceWith: string;\n    /** Whitelist where this replacement is made. If omitted it is made in all HTML & CSS */\n    whitelist: {\n        /** Limit to elements with any of these element tags. */\n        elements?: string[];\n        /** Limit to elements with any of these attributes. */\n        attributes?: string[];\n    };\n}\nexport declare const outputNames: VersionChanges<OutputNameUpgradeData>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/data/property-names.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/data/property-names\" />\nimport { VersionChanges } from '../../update-tool/version-changes';\nexport interface PropertyNameUpgradeData {\n    /** The property name to replace. */\n    replace: string;\n    /** The new name for the property. */\n    replaceWith: string;\n    /** Whitelist where this replacement is made. If omitted it is made for all Classes. */\n    whitelist: {\n        /** Replace the property only when its type is one of the given Classes. */\n        classes: string[];\n    };\n}\nexport declare const propertyNames: VersionChanges<PropertyNameUpgradeData>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/html-parsing/angular.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/html-parsing/angular\" />\n/** Finds the specified Angular @Input in the given elements with tag name. */\nexport declare function findInputsOnElementWithTag(html: string, inputName: string, tagNames: string[]): number[];\n/** Finds the specified Angular @Input in elements that have one of the specified attributes. */\nexport declare function findInputsOnElementWithAttr(html: string, inputName: string, attrs: string[]): number[];\n/** Finds the specified Angular @Output in the given elements with tag name. */\nexport declare function findOutputsOnElementWithTag(html: string, outputName: string, tagNames: string[]): number[];\n/** Finds the specified Angular @Output in elements that have one of the specified attributes. */\nexport declare function findOutputsOnElementWithAttr(html: string, outputName: string, attrs: string[]): number[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/html-parsing/elements.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/html-parsing/elements\" />\n/**\n * Parses a HTML fragment and traverses all AST nodes in order find elements that\n * include the specified attribute.\n */\nexport declare function findElementsWithAttribute(html: string, attributeName: string): any[];\n/**\n * Finds elements with explicit tag names that also contain the specified attribute. Returns the\n * attribute start offset based on the specified HTML.\n */\nexport declare function findAttributeOnElementWithTag(html: string, name: string, tagNames: string[]): number[];\n/**\n * Finds elements that contain the given attribute and contain at least one of the other\n * specified attributes. Returns the primary attribute's start offset based on the specified HTML.\n */\nexport declare function findAttributeOnElementWithAttrs(html: string, name: string, attrs: string[]): number[];\n/** Gets the start offset of the given attribute from a Parse5 element. */\nexport declare function getStartOffsetOfAttribute(element: any, attributeName: string): number;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/index.d.ts",
      "node_modules/@angular/cdk/schematics/ng-update/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/index\" />\nimport { Rule } from '@angular-devkit/schematics';\n/** Entry point for the migration schematics with target of Angular CDK 6.0.0 */\nexport declare function updateToV6(): Rule;\n/** Entry point for the migration schematics with target of Angular CDK 7.0.0 */\nexport declare function updateToV7(): Rule;\n/** Entry point for the migration schematics with target of Angular CDK 8.0.0 */\nexport declare function updateToV8(): Rule;\n/** Entry point for the migration schematics with target of Angular CDK 9.0.0 */\nexport declare function updateToV9(): Rule;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/public-api\" />\nexport * from './upgrade-data';\nexport * from './data/index';\nexport * from './html-parsing/angular';\nexport * from './html-parsing/elements';\nexport * from './upgrade-rules/index';\nexport * from './typescript/base-types';\nexport * from './typescript/imports';\nexport * from './typescript/literal';\nexport * from './typescript/module-specifiers';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/typescript/base-types.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/typescript/base-types\" />\nimport * as ts from 'typescript';\n/** Determines the base types of the specified class declaration. */\nexport declare function determineBaseTypes(node: ts.ClassDeclaration): string[] | null;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/typescript/imports.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/typescript/imports\" />\nimport * as ts from 'typescript';\n/** Checks whether the given node is part of an import specifier node. */\nexport declare function isImportSpecifierNode(node: ts.Node): boolean;\n/** Checks whether the given node is part of an export specifier node. */\nexport declare function isExportSpecifierNode(node: ts.Node): boolean;\n/** Checks whether the given node is part of a namespace import. */\nexport declare function isNamespaceImportNode(node: ts.Node): boolean;\n/** Finds the parent import declaration of a given TypeScript node. */\nexport declare function getImportDeclaration(node: ts.Node): ts.ImportDeclaration;\n/** Finds the parent export declaration of a given TypeScript node */\nexport declare function getExportDeclaration(node: ts.Node): ts.ExportDeclaration;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/typescript/literal.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/typescript/literal\" />\nimport * as ts from 'typescript';\n/** Finds all start indices of the given search string in the input string. */\nexport declare function findAllSubstringIndices(input: string, search: string): number[];\n/**\n * Checks whether the given node is either a string literal or a no-substitution template\n * literal. Note that we cannot use `ts.isStringLiteralLike()` because if developers update\n * an outdated project, their TypeScript version is not automatically being updated\n * and therefore could throw because the function is not available yet.\n * https://github.com/Microsoft/TypeScript/commit/8518343dc8762475a5e92c9f80b5c5725bd81796\n */\nexport declare function isStringLiteralLike(node: ts.Node): node is (ts.StringLiteral | ts.NoSubstitutionTemplateLiteral);\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/typescript/module-specifiers.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/typescript/module-specifiers\" />\nimport * as ts from 'typescript';\n/** Name of the Angular Material module specifier. */\nexport declare const materialModuleSpecifier = \"@angular/material\";\n/** Name of the Angular CDK module specifier. */\nexport declare const cdkModuleSpecifier = \"@angular/cdk\";\n/** Whether the specified node is part of an Angular Material or CDK import declaration. */\nexport declare function isMaterialImportDeclaration(node: ts.Node): boolean;\n/** Whether the specified node is part of an Angular Material or CDK import declaration. */\nexport declare function isMaterialExportDeclaration(node: ts.Node): boolean;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-data.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/upgrade-data\" />\nimport { MigrationRule } from '../update-tool/migration-rule';\nimport { ValueOfChanges, VersionChanges } from '../update-tool/version-changes';\nimport { AttributeSelectorUpgradeData, ClassNameUpgradeData, ConstructorChecksUpgradeData, CssSelectorUpgradeData, ElementSelectorUpgradeData, InputNameUpgradeData, MethodCallUpgradeData, OutputNameUpgradeData, PropertyNameUpgradeData } from './data';\n/** Upgrade data for the Angular CDK. */\nexport declare const cdkUpgradeData: RuleUpgradeData;\n/**\n * Interface that describes the upgrade data that needs to be defined when using the CDK\n * upgrade rules.\n */\nexport interface RuleUpgradeData {\n    attributeSelectors: VersionChanges<AttributeSelectorUpgradeData>;\n    classNames: VersionChanges<ClassNameUpgradeData>;\n    constructorChecks: VersionChanges<ConstructorChecksUpgradeData>;\n    cssSelectors: VersionChanges<CssSelectorUpgradeData>;\n    elementSelectors: VersionChanges<ElementSelectorUpgradeData>;\n    inputNames: VersionChanges<InputNameUpgradeData>;\n    methodCallChecks: VersionChanges<MethodCallUpgradeData>;\n    outputNames: VersionChanges<OutputNameUpgradeData>;\n    propertyNames: VersionChanges<PropertyNameUpgradeData>;\n}\n/**\n * Gets the reduced upgrade data for the specified data key from the rule walker options.\n *\n * The function reads out the target version and upgrade data object from the rule options and\n * resolves the specified data portion that is specifically tied to the target version.\n */\nexport declare function getVersionUpgradeData<T extends keyof RuleUpgradeData, U = ValueOfChanges<RuleUpgradeData[T]>>(r: MigrationRule<RuleUpgradeData>, dataName: T): U[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/attribute-selectors-rule.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/upgrade-rules/attribute-selectors-rule\" />\nimport * as ts from 'typescript';\nimport { ResolvedResource } from '../../update-tool/component-resource-collector';\nimport { MigrationRule } from '../../update-tool/migration-rule';\nimport { RuleUpgradeData } from '../upgrade-data';\n/**\n * Migration rule that walks through every string literal, template and stylesheet\n * in order to switch deprecated attribute selectors to the updated selector.\n */\nexport declare class AttributeSelectorsRule extends MigrationRule<RuleUpgradeData> {\n    /** Required upgrade changes for specified target version. */\n    data: any;\n    ruleEnabled: any;\n    visitNode(node: ts.Node): void;\n    visitTemplate(template: ResolvedResource): void;\n    visitStylesheet(stylesheet: ResolvedResource): void;\n    private _visitStringLiteralLike;\n    private _replaceSelector;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/class-inheritance-rule.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/upgrade-rules/class-inheritance-rule\" />\nimport * as ts from 'typescript';\nimport { MigrationRule } from '../../update-tool/migration-rule';\nimport { PropertyNameUpgradeData } from '../data/property-names';\nimport { RuleUpgradeData } from '../upgrade-data';\n/**\n * Rule that identifies class declarations that extend CDK or Material classes\n * which had a public property change.\n */\nexport declare class ClassInheritanceRule extends MigrationRule<RuleUpgradeData> {\n    /**\n     * Map of classes that have been updated. Each class name maps to the according property\n     * change data.\n     */\n    propertyNames: Map<string, PropertyNameUpgradeData>;\n    ruleEnabled: boolean;\n    init(): void;\n    visitNode(node: ts.Node): void;\n    private _visitClassDeclaration;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/class-names-rule.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/upgrade-rules/class-names-rule\" />\nimport * as ts from 'typescript';\nimport { MigrationRule } from '../../update-tool/migration-rule';\nimport { ClassNameUpgradeData } from '../data';\nimport { RuleUpgradeData } from '../upgrade-data';\n/**\n * Rule that walks through every identifier that is part of Angular Material or thr CDK\n * and replaces the outdated name with the new one if specified in the upgrade data.\n */\nexport declare class ClassNamesRule extends MigrationRule<RuleUpgradeData> {\n    /** Change data that upgrades to the specified target version. */\n    data: ClassNameUpgradeData[];\n    /**\n     * List of identifier names that have been imported from `@angular/material` or `@angular/cdk`\n     * in the current source file and therefore can be considered trusted.\n     */\n    trustedIdentifiers: Set<string>;\n    /** List of namespaces that have been imported from `@angular/material` or `@angular/cdk`. */\n    trustedNamespaces: Set<string>;\n    ruleEnabled: boolean;\n    visitNode(node: ts.Node): void;\n    /** Method that is called for every identifier inside of the specified project. */\n    private _visitIdentifier;\n    /** Creates a failure and replacement for the specified identifier. */\n    private _createFailureWithReplacement;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/constructor-signature-rule.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/upgrade-rules/constructor-signature-rule\" />\nimport * as ts from 'typescript';\nimport { MigrationRule } from '../../update-tool/migration-rule';\nimport { RuleUpgradeData } from '../upgrade-data';\n/**\n * Rule that visits every TypeScript new expression or super call and checks if\n * the parameter type signature is invalid and needs to be updated manually.\n */\nexport declare class ConstructorSignatureRule extends MigrationRule<RuleUpgradeData> {\n    data: string[];\n    ruleEnabled: boolean;\n    visitNode(node: ts.Node): void;\n    /**\n     * Method that will be called for each source file of the upgrade project. In order to\n     * properly determine invalid constructor signatures, we take advantage of the pre-emit\n     * diagnostics from TypeScript.\n     *\n     * By using the diagnostics, the migration can handle type assignability. Not using\n     * diagnostics would mean that we need to use simple type equality checking which is\n     * too strict. See related issue: https://github.com/Microsoft/TypeScript/issues/9879\n     */\n    private _visitSourceFile;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/css-selectors-rule.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/upgrade-rules/css-selectors-rule\" />\nimport * as ts from 'typescript';\nimport { ResolvedResource } from '../../update-tool/component-resource-collector';\nimport { MigrationRule } from '../../update-tool/migration-rule';\nimport { RuleUpgradeData } from '../upgrade-data';\n/**\n * Rule that walks through every string literal, template and stylesheet in\n * order to migrate outdated CSS selectors to the new selector.\n */\nexport declare class CssSelectorsRule extends MigrationRule<RuleUpgradeData> {\n    /** Change data that upgrades to the specified target version. */\n    data: any;\n    ruleEnabled: any;\n    visitNode(node: ts.Node): void;\n    visitTemplate(template: ResolvedResource): void;\n    visitStylesheet(stylesheet: ResolvedResource): void;\n    private _visitStringLiteralLike;\n    private _replaceSelector;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/element-selectors-rule.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/upgrade-rules/element-selectors-rule\" />\nimport * as ts from 'typescript';\nimport { ResolvedResource } from '../../update-tool/component-resource-collector';\nimport { MigrationRule } from '../../update-tool/migration-rule';\nimport { RuleUpgradeData } from '../upgrade-data';\n/**\n * Rule that walks through every string literal, template and stylesheet in order\n * to migrate outdated element selectors to the new one.\n */\nexport declare class ElementSelectorsRule extends MigrationRule<RuleUpgradeData> {\n    /** Change data that upgrades to the specified target version. */\n    data: any;\n    ruleEnabled: any;\n    visitNode(node: ts.Node): void;\n    visitTemplate(template: ResolvedResource): void;\n    visitStylesheet(stylesheet: ResolvedResource): void;\n    private _visitStringLiteralLike;\n    private _replaceSelector;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/index.d.ts",
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/upgrade-rules/index\" />\nimport { Rule } from '@angular-devkit/schematics';\nimport { Constructor } from '../../update-tool';\nimport { MigrationRule } from '../../update-tool/migration-rule';\nimport { TargetVersion } from '../../update-tool/target-version';\nimport { RuleUpgradeData } from '../upgrade-data';\n/** List of migration rules which run for the CDK update. */\nexport declare const cdkMigrationRules: Constructor<MigrationRule<RuleUpgradeData>>[];\ndeclare type NullableMigrationRule = Constructor<MigrationRule<RuleUpgradeData | null>>;\n/**\n * Creates a Angular schematic rule that runs the upgrade for the\n * specified target version.\n */\nexport declare function createUpgradeRule(targetVersion: TargetVersion, extraRules: NullableMigrationRule[], upgradeData: RuleUpgradeData, onMigrationCompleteFn?: (targetVersion: TargetVersion, hasFailures: boolean) => void): Rule;\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/input-names-rule.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/upgrade-rules/input-names-rule\" />\nimport { ResolvedResource } from '../../update-tool/component-resource-collector';\nimport { MigrationRule } from '../../update-tool/migration-rule';\nimport { InputNameUpgradeData } from '../data';\nimport { RuleUpgradeData } from '../upgrade-data';\n/**\n * Rule that walks through every template or stylesheet and replaces outdated input\n * names to the new input name. Selectors in stylesheets could also target input\n * bindings declared as static attribute. See for example:\n *\n * e.g. `<my-component color=\"primary\">` becomes `my-component[color]`\n */\nexport declare class InputNamesRule extends MigrationRule<RuleUpgradeData> {\n    /** Change data that upgrades to the specified target version. */\n    data: InputNameUpgradeData[];\n    ruleEnabled: boolean;\n    visitStylesheet(stylesheet: ResolvedResource): void;\n    visitTemplate(template: ResolvedResource): void;\n    private _replaceInputName;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/method-call-arguments-rule.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/upgrade-rules/method-call-arguments-rule\" />\nimport * as ts from 'typescript';\nimport { MigrationRule } from '../../update-tool/migration-rule';\nimport { MethodCallUpgradeData } from '../data';\nimport { RuleUpgradeData } from '../upgrade-data';\n/**\n * Rule that visits every TypeScript method call expression and checks if the\n * argument count is invalid and needs to be *manually* updated.\n */\nexport declare class MethodCallArgumentsRule extends MigrationRule<RuleUpgradeData> {\n    /** Change data that upgrades to the specified target version. */\n    data: MethodCallUpgradeData[];\n    ruleEnabled: boolean;\n    visitNode(node: ts.Node): void;\n    private _checkPropertyAccessMethodCall;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/misc-template-rule.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/upgrade-rules/misc-template-rule\" />\nimport { ResolvedResource } from '../../update-tool/component-resource-collector';\nimport { MigrationRule } from '../../update-tool/migration-rule';\nimport { RuleUpgradeData } from '../upgrade-data';\n/**\n * Rule that walks through every template and reports if there are\n * instances of outdated Angular CDK API that can't be migrated automatically.\n */\nexport declare class MiscTemplateRule extends MigrationRule<RuleUpgradeData> {\n    ruleEnabled: boolean;\n    visitTemplate(template: ResolvedResource): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/output-names-rule.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/upgrade-rules/output-names-rule\" />\nimport { ResolvedResource } from '../../update-tool/component-resource-collector';\nimport { MigrationRule } from '../../update-tool/migration-rule';\nimport { OutputNameUpgradeData } from '../data';\nimport { RuleUpgradeData } from '../upgrade-data';\n/**\n * Rule that walks through every inline or external HTML template and switches\n * changed output binding names to the proper new output name.\n */\nexport declare class OutputNamesRule extends MigrationRule<RuleUpgradeData> {\n    /** Change data that upgrades to the specified target version. */\n    data: OutputNameUpgradeData[];\n    ruleEnabled: boolean;\n    visitTemplate(template: ResolvedResource): void;\n    private _replaceOutputName;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/ng-update/upgrade-rules/property-names-rule.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/ng-update/upgrade-rules/property-names-rule\" />\nimport * as ts from 'typescript';\nimport { MigrationRule } from '../../update-tool/migration-rule';\nimport { PropertyNameUpgradeData } from '../data';\nimport { RuleUpgradeData } from '../upgrade-data';\n/**\n * Rule that walks through every property access expression and updates\n * accessed properties that have been updated to a new name.\n */\nexport declare class PropertyNamesRule extends MigrationRule<RuleUpgradeData> {\n    /** Change data that upgrades to the specified target version. */\n    data: PropertyNameUpgradeData[];\n    ruleEnabled: boolean;\n    visitNode(node: ts.Node): void;\n    private _visitPropertyAccessExpression;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/update-tool/component-resource-collector.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/update-tool/component-resource-collector\" />\nimport * as ts from 'typescript';\nimport { LineAndCharacter } from './utils/line-mappings';\nexport interface ResolvedResource {\n    /** Class declaration that contains this resource. */\n    container: ts.ClassDeclaration | null;\n    /** File content of the given template. */\n    content: string;\n    /** Start offset of the resource content (e.g. in the inline source file) */\n    start: number;\n    /** Whether the given resource is inline or not. */\n    inline: boolean;\n    /** Path to the file that contains this resource. */\n    filePath: string;\n    /**\n     * Gets the character and line of a given position index in the resource.\n     * If the resource is declared inline within a TypeScript source file, the line and\n     * character are based on the full source file content.\n     */\n    getCharacterAndLineOfPosition: (pos: number) => LineAndCharacter;\n}\n/**\n * Collector that can be used to find Angular templates and stylesheets referenced within\n * given TypeScript source files (inline or external referenced files)\n */\nexport declare class ComponentResourceCollector {\n    typeChecker: ts.TypeChecker;\n    resolvedTemplates: ResolvedResource[];\n    resolvedStylesheets: ResolvedResource[];\n    constructor(typeChecker: ts.TypeChecker);\n    visitNode(node: ts.Node): void;\n    private _visitClassDeclaration;\n    /** Resolves an external stylesheet by reading its content and computing line mappings. */\n    resolveExternalStylesheet(filePath: string, container: ts.ClassDeclaration | null): ResolvedResource;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/update-tool/index.d.ts",
      "node_modules/@angular/cdk/schematics/update-tool/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/update-tool\" />\nimport { logging } from '@angular-devkit/core';\nimport { Tree } from '@angular-devkit/schematics';\nimport { MigrationRule } from './migration-rule';\nimport { TargetVersion } from './target-version';\nexport declare type Constructor<T> = new (...args: any[]) => T;\nexport declare function runMigrationRules<T>(tree: Tree, logger: logging.LoggerApi, tsconfigPath: string, targetVersion: TargetVersion, ruleTypes: Constructor<MigrationRule<T>>[], upgradeData: T, analyzedFiles: Set<string>): boolean;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/update-tool/migration-rule.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/update-tool/migration-rule\" />\nimport { UpdateRecorder } from '@angular-devkit/schematics';\nimport * as ts from 'typescript';\nimport { ResolvedResource } from './component-resource-collector';\nimport { TargetVersion } from './target-version';\nimport { LineAndCharacter } from './utils/line-mappings';\nexport interface MigrationFailure {\n    filePath: string;\n    message: string;\n    position: LineAndCharacter;\n}\nexport declare class MigrationRule<T> {\n    program: ts.Program;\n    typeChecker: ts.TypeChecker;\n    targetVersion: TargetVersion;\n    upgradeData: T;\n    /** List of migration failures that need to be reported. */\n    failures: MigrationFailure[];\n    /** Whether the migration rule is enabled or not. */\n    ruleEnabled: boolean;\n    constructor(program: ts.Program, typeChecker: ts.TypeChecker, targetVersion: TargetVersion, upgradeData: T);\n    /** Method can be used to perform global analysis of the program. */\n    init(): void;\n    /**\n     * Method that will be called for each node in a given source file. Unlike tslint, this\n     * function will only retrieve TypeScript nodes that need to be casted manually. This\n     * allows us to only walk the program source files once per program and not per\n     * migration rule (significant performance boost).\n     */\n    visitNode(node: ts.Node): void;\n    /** Method that will be called for each Angular template in the program. */\n    visitTemplate(template: ResolvedResource): void;\n    /** Method that will be called for each stylesheet in the program. */\n    visitStylesheet(stylesheet: ResolvedResource): void;\n    /** Gets the update recorder for a given source file or resolved template. */\n    getUpdateRecorder(filePath: string): UpdateRecorder;\n    /** Creates a failure with a specified message at the given node location. */\n    createFailureAtNode(node: ts.Node, message: string): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/update-tool/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/update-tool/public-api\" />\nexport * from './index';\nexport * from './target-version';\nexport * from './version-changes';\nexport * from './migration-rule';\nexport * from './component-resource-collector';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/update-tool/target-version.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/update-tool/target-version\" />\n/** Possible versions that can be automatically migrated by `ng update`. */\nexport declare enum TargetVersion {\n    V6 = \"version 6\",\n    V7 = \"version 7\",\n    V8 = \"version 8\",\n    V9 = \"version 9\"\n}\n/**\n * Returns all versions that are supported by \"ng update\". The versions are determined\n * based on the \"TargetVersion\" enum.\n */\nexport declare function getAllVersionNames(): string[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/update-tool/utils/decorators.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/update-tool/utils/decorators\" />\nimport * as ts from 'typescript';\nimport { Import } from './imports';\nexport declare type CallExpressionDecorator = ts.Decorator & {\n    expression: ts.CallExpression;\n};\nexport interface NgDecorator {\n    name: string;\n    node: CallExpressionDecorator;\n    importNode: ts.ImportDeclaration;\n}\n/**\n * Gets all decorators which are imported from an Angular package\n * (e.g. \"@angular/core\") from a list of decorators.\n */\nexport declare function getAngularDecorators(typeChecker: ts.TypeChecker, decorators: ReadonlyArray<ts.Decorator>): NgDecorator[];\nexport declare function getCallDecoratorImport(typeChecker: ts.TypeChecker, decorator: ts.Decorator): Import | null;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/update-tool/utils/functions.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/update-tool/utils/functions\" />\nimport * as ts from 'typescript';\n/**\n * Unwraps a given expression TypeScript node. Expressions can be wrapped within multiple\n * parentheses. e.g. \"(((({exp}))))()\". The function should return the TypeScript node\n * referring to the inner expression. e.g \"exp\".\n */\nexport declare function unwrapExpression(node: ts.Expression | ts.ParenthesizedExpression): ts.Expression;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/update-tool/utils/imports.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/update-tool/utils/imports\" />\nimport * as ts from 'typescript';\nexport declare type Import = {\n    name: string;\n    importModule: string;\n    node: ts.ImportDeclaration;\n};\n/** Gets import information about the specified identifier by using the type checker. */\nexport declare function getImportOfIdentifier(typeChecker: ts.TypeChecker, node: ts.Identifier): Import | null;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/update-tool/utils/line-mappings.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/update-tool/utils/line-mappings\" />\nexport interface LineAndCharacter {\n    character: number;\n    line: number;\n}\n/** Gets the line and character for the given position from the line starts map. */\nexport declare function getLineAndCharacterFromPosition(lineStartsMap: number[], position: number): {\n    character: number;\n    line: number;\n};\n/**\n * Computes the line start map of the given text. This can be used in order to\n * retrieve the line and character of a given text position index.\n */\nexport declare function computeLineStartsMap(text: string): number[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/update-tool/utils/parse-tsconfig.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/update-tool/utils/parse-tsconfig\" />\nimport * as ts from 'typescript';\nexport declare function parseTsconfigFile(tsconfigPath: string, basePath: string): ts.ParsedCommandLine;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/update-tool/utils/property-name.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/update-tool/utils/property-name\" />\nimport * as ts from 'typescript';\n/** Type that describes a property name with an obtainable text. */\ndeclare type PropertyNameWithText = Exclude<ts.PropertyName, ts.ComputedPropertyName>;\n/**\n * Gets the text of the given property name. Returns null if the property\n * name couldn't be determined statically.\n */\nexport declare function getPropertyNameText(node: ts.PropertyName): string | null;\n/** Checks whether the given property name has a text. */\nexport declare function hasPropertyNameText(node: ts.PropertyName): node is PropertyNameWithText;\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/update-tool/version-changes.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/update-tool/version-changes\" />\nimport { TargetVersion } from './target-version';\nexport declare type VersionChanges<T> = {\n    [target in TargetVersion]?: ReadableChange<T>[];\n};\nexport declare type ReadableChange<T> = {\n    pr: string;\n    changes: T[];\n};\n/** Conditional type that unwraps the value of a version changes type. */\nexport declare type ValueOfChanges<T> = T extends VersionChanges<infer X> ? X : null;\n/**\n * Gets the changes for a given target version from the specified version changes object.\n *\n * For readability and a good overview of breaking changes, the version change data always\n * includes the related Pull Request link. Since this data is not needed when performing the\n * upgrade, this unused data can be removed and the changes data can be flattened into an\n * easy iterable array.\n */\nexport declare function getChangesForTarget<T>(target: TargetVersion, data: VersionChanges<T>): T[];\n/**\n * Gets all changes from the specified version changes object. This is helpful in case a migration\n * rule does not distinguish data based on the target version, but for readability the\n * upgrade data is separated for each target version.\n */\nexport declare function getAllChanges<T>(data: VersionChanges<T>): T[];\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/utils/ast.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/utils/ast\" />\nimport { WorkspaceProject } from '@angular-devkit/core/src/experimental/workspace';\nimport { Tree } from '@angular-devkit/schematics';\nimport { Schema as ComponentOptions } from '@schematics/angular/component/schema';\nimport { typescript } from './version-agnostic-typescript';\n/** Reads file given path and returns TypeScript source file. */\nexport declare function getSourceFile(host: Tree, path: string): typescript.SourceFile;\n/** Import and add module to root app module. */\nexport declare function addModuleImportToRootModule(host: Tree, moduleName: string, src: string, project: WorkspaceProject): void;\n/**\n * Import and add module to specific module path.\n * @param host the tree we are updating\n * @param modulePath src location of the module to import\n * @param moduleName name of module to import\n * @param src src location to import\n */\nexport declare function addModuleImportToModule(host: Tree, modulePath: string, moduleName: string, src: string): void;\n/** Wraps the internal find module from options with undefined path handling  */\nexport declare function findModuleFromOptions(host: Tree, options: ComponentOptions): string | undefined;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/utils/ast/ng-module-imports.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/utils/ast/ng-module-imports\" />\nimport { Tree } from '@angular-devkit/schematics';\n/**\n * Whether the Angular module in the given path imports the specified module class name.\n */\nexport declare function hasNgModuleImport(tree: Tree, modulePath: string, className: string): boolean;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/utils/build-component.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/utils/build-component\" />\nimport { Rule } from '@angular-devkit/schematics';\nimport { Schema as ComponentOptions } from '@schematics/angular/component/schema';\n/**\n * Rule that copies and interpolates the files that belong to this schematic context. Additionally\n * a list of file paths can be passed to this rule in order to expose them inside the EJS\n * template context.\n *\n * This allows inlining the external template or stylesheet files in EJS without having\n * to manually duplicate the file content.\n */\nexport declare function buildComponent(options: ComponentOptions, additionalFiles?: {\n    [key: string]: string;\n}): Rule;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/utils/get-project.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/utils/get-project\" />\nimport { WorkspaceSchema, WorkspaceProject } from '@angular-devkit/core/src/experimental/workspace';\n/**\n * Finds the specified project configuration in the workspace. Throws an error if the project\n * couldn't be found.\n */\nexport declare function getProjectFromWorkspace(workspace: WorkspaceSchema, projectName?: string): WorkspaceProject;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/utils/html-head-element.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/utils/html-head-element\" />\nimport { Tree } from '@angular-devkit/schematics';\nimport { DefaultTreeElement } from 'parse5';\n/** Appends the given element HTML fragment to the `<head>` element of the specified HTML file. */\nexport declare function appendHtmlElementToHead(host: Tree, htmlFilePath: string, elementHtml: string): void;\n/** Parses the given HTML file and returns the head element if available. */\nexport declare function getHtmlHeadTagElement(htmlContent: string): DefaultTreeElement | null;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/utils/index.d.ts",
      "node_modules/@angular/cdk/schematics/utils/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/utils/index\" />\nexport * from './ast';\nexport * from './ast/ng-module-imports';\nexport * from './build-component';\nexport * from './get-project';\nexport * from './html-head-element';\nexport * from './parse5-element';\nexport * from './project-main-file';\nexport * from './project-style-file';\nexport * from './project-targets';\nexport * from './schematic-options';\nexport * from './version-agnostic-typescript';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/utils/parse5-element.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/utils/parse5-element\" />\nimport { DefaultTreeElement } from 'parse5';\n/** Determines the indentation of child elements for the given Parse5 element. */\nexport declare function getChildElementIndentation(element: DefaultTreeElement): number;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/utils/project-main-file.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/utils/project-main-file\" />\nimport { WorkspaceProject } from '@angular-devkit/core/src/experimental/workspace';\n/** Looks for the main TypeScript file in the given project and returns its path. */\nexport declare function getProjectMainFile(project: WorkspaceProject): string;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/utils/project-style-file.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/utils/project-style-file\" />\nimport { WorkspaceProject } from '@angular-devkit/core/src/experimental/workspace';\n/**\n * Gets a style file with the given extension in a project and returns its path. If no\n * extension is specified, any style file with a valid extension will be returned.\n */\nexport declare function getProjectStyleFile(project: WorkspaceProject, extension?: string): string | null;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/utils/project-targets.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/utils/project-targets\" />\nimport { WorkspaceProject } from '@angular-devkit/core/src/experimental/workspace';\n/** Resolves the architect options for the build target of the given project. */\nexport declare function getProjectTargetOptions(project: WorkspaceProject, buildTarget: string): any;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/utils/project-tsconfig-paths.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/utils/project-tsconfig-paths\" />\nimport { Tree } from '@angular-devkit/schematics';\n/**\n * Gets all tsconfig paths from a CLI project by reading the workspace configuration\n * and looking for common tsconfig locations.\n */\nexport declare function getProjectTsConfigPaths(tree: Tree): {\n    buildPaths: string[];\n    testPaths: string[];\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/utils/schematic-options.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/utils/schematic-options\" />\nimport { WorkspaceProject } from '@angular-devkit/core/src/experimental/workspace';\n/**\n * Returns the default options for the `@schematics/angular:component` schematic which would\n * have been specified at project initialization (ng new or ng init).\n *\n * This is necessary because the Angular CLI only exposes the default values for the \"--style\",\n * \"--inlineStyle\", \"--skipTests\" and \"--inlineTemplate\" options to the \"component\" schematic.\n */\nexport declare function getDefaultComponentOptions(project: WorkspaceProject): {\n    style: string;\n    inlineStyle: boolean;\n    inlineTemplate: boolean;\n    skipTests: boolean;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/schematics/utils/version-agnostic-typescript.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/schematics/utils/version-agnostic-typescript\" />\n/**\n * This is just a type import and won't be generated in the release output.\n *\n * Note that we always need to adjust this type import based on the location of the Typescript\n * dependency that will be shipped with `@schematics/angular`.\n */\nimport typescript = require('typescript');\n/**\n * This is an agnostic re-export of TypeScript. Depending on the context, this module file will\n * return the TypeScript version that is being shipped within the `@schematics/angular` package,\n * or fall back to the TypeScript version that has been flattened in the node modules.\n *\n * This is necessary because we parse TypeScript files and pass the resolved AST to the\n * `@schematics/angular` package which might have a different TypeScript version installed.\n */\ndeclare let ts: typeof typescript;\nexport { ts, typescript };\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/scrolling/fixed-size-virtual-scroll.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { OnChanges } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { VirtualScrollStrategy } from './virtual-scroll-strategy';\nimport { CdkVirtualScrollViewport } from './virtual-scroll-viewport';\n/** Virtual scrolling strategy for lists with items of known fixed size. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class FixedSizeVirtualScrollStrategy implements VirtualScrollStrategy {\n    private _scrolledIndexChange;\n    /** @docs-private Implemented as part of VirtualScrollStrategy. */\n    scrolledIndexChange: Observable<number>;\n    /** The attached viewport. */\n    private _viewport;\n    /** The size of the items in the virtually scrolling list. */\n    private _itemSize;\n    /** The minimum amount of buffer rendered beyond the viewport (in pixels). */\n    private _minBufferPx;\n    /** The number of buffer items to render beyond the edge of the viewport (in pixels). */\n    private _maxBufferPx;\n    /**\n     * @param itemSize The size of the items in the virtually scrolling list.\n     * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n     * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n     */\n    constructor(itemSize: number, minBufferPx: number, maxBufferPx: number);\n    /**\n     * Attaches this scroll strategy to a viewport.\n     * @param viewport The viewport to attach this strategy to.\n     */\n    attach(viewport: CdkVirtualScrollViewport): void;\n    /** Detaches this scroll strategy from the currently attached viewport. */\n    detach(): void;\n    /**\n     * Update the item size and buffer size.\n     * @param itemSize The size of the items in the virtually scrolling list.\n     * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n     * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n     */\n    updateItemAndBufferSize(itemSize: number, minBufferPx: number, maxBufferPx: number): void;\n    /** @docs-private Implemented as part of VirtualScrollStrategy. */\n    onContentScrolled(): void;\n    /** @docs-private Implemented as part of VirtualScrollStrategy. */\n    onDataLengthChanged(): void;\n    /** @docs-private Implemented as part of VirtualScrollStrategy. */\n    onContentRendered(): void;\n    /** @docs-private Implemented as part of VirtualScrollStrategy. */\n    onRenderedOffsetChanged(): void;\n    /**\n     * Scroll to the offset for the given index.\n     * @param index The index of the element to scroll to.\n     * @param behavior The ScrollBehavior to use when scrolling.\n     */\n    scrollToIndex(index: number, behavior: ScrollBehavior): void;\n    /** Update the viewport's total content size. */\n    private _updateTotalContentSize;\n    /** Update the viewport's rendered range. */\n    private _updateRenderedRange;\n}\n/**\n * Provider factory for `FixedSizeVirtualScrollStrategy` that simply extracts the already created\n * `FixedSizeVirtualScrollStrategy` from the given directive.\n * @param fixedSizeDir The instance of `CdkFixedSizeVirtualScroll` to extract the\n *     `FixedSizeVirtualScrollStrategy` from.\n */\nexport declare function _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir: CdkFixedSizeVirtualScroll): FixedSizeVirtualScrollStrategy;\n/** A virtual scroll strategy that supports fixed-size items. */\nexport declare class CdkFixedSizeVirtualScroll implements OnChanges {\n    /** The size of the items in the list (in pixels). */\n    itemSize: number;\n    _itemSize: number;\n    /**\n     * The minimum amount of buffer rendered beyond the viewport (in pixels).\n     * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.\n     */\n    minBufferPx: number;\n    _minBufferPx: number;\n    /**\n     * The number of pixels worth of buffer to render for when rendering new items. Defaults to 200px.\n     */\n    maxBufferPx: number;\n    _maxBufferPx: number;\n    /** The scroll strategy used by this directive. */\n    _scrollStrategy: FixedSizeVirtualScrollStrategy;\n    ngOnChanges(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkFixedSizeVirtualScroll>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkFixedSizeVirtualScroll, \"cdk-virtual-scroll-viewport[itemSize]\", never, { 'itemSize': \"itemSize\", 'minBufferPx': \"minBufferPx\", 'maxBufferPx': \"maxBufferPx\" }, {}, never>;\n}\n\n//# sourceMappingURL=fixed-size-virtual-scroll.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/scrolling/index.d.ts",
      "node_modules/@angular/cdk/scrolling/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/scrolling/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './fixed-size-virtual-scroll';\nexport * from './scroll-dispatcher';\nexport * from './scrollable';\nexport * from './scrolling-module';\nexport * from './viewport-ruler';\nexport * from './virtual-for-of';\nexport * from './virtual-scroll-strategy';\nexport * from './virtual-scroll-viewport';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/scrolling/scroll-dispatcher.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Platform } from '@angular/cdk/platform';\nimport { ElementRef, NgZone, OnDestroy, Optional } from '@angular/core';\nimport { Subscription, Observable } from 'rxjs';\nimport { CdkScrollable } from './scrollable';\n/** Time in ms to throttle the scrolling events by default. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare const DEFAULT_SCROLL_TIME = 20;\n/**\n * Service contained all registered Scrollable references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\nexport declare class ScrollDispatcher implements OnDestroy {\n    private _ngZone;\n    private _platform;\n    constructor(_ngZone: NgZone, _platform: Platform);\n    /** Subject for notifying that a registered scrollable reference element has been scrolled. */\n    private _scrolled;\n    /** Keeps track of the global `scroll` and `resize` subscriptions. */\n    _globalSubscription: Subscription | null;\n    /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\n    private _scrolledCount;\n    /**\n     * Map of all the scrollable references that are registered with the service and their\n     * scroll event subscriptions.\n     */\n    scrollContainers: Map<CdkScrollable, Subscription>;\n    /**\n     * Registers a scrollable instance with the service and listens for its scrolled events. When the\n     * scrollable is scrolled, the service emits the event to its scrolled observable.\n     * @param scrollable Scrollable instance to be registered.\n     */\n    register(scrollable: CdkScrollable): void;\n    /**\n     * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.\n     * @param scrollable Scrollable instance to be deregistered.\n     */\n    deregister(scrollable: CdkScrollable): void;\n    /**\n     * Returns an observable that emits an event whenever any of the registered Scrollable\n     * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n     * to override the default \"throttle\" time.\n     *\n     * **Note:** in order to avoid hitting change detection for every scroll event,\n     * all of the events emitted from this stream will be run outside the Angular zone.\n     * If you need to update any data bindings as a result of a scroll event, you have\n     * to run the callback using `NgZone.run`.\n     */\n    scrolled(auditTimeInMs?: number): Observable<CdkScrollable | void>;\n    ngOnDestroy(): void;\n    /**\n     * Returns an observable that emits whenever any of the\n     * scrollable ancestors of an element are scrolled.\n     * @param elementRef Element whose ancestors to listen for.\n     * @param auditTimeInMs Time to throttle the scroll events.\n     */\n    ancestorScrolled(elementRef: ElementRef, auditTimeInMs?: number): Observable<CdkScrollable | void>;\n    /** Returns all registered Scrollables that contain the provided element. */\n    getAncestorScrollContainers(elementRef: ElementRef): CdkScrollable[];\n    /** Returns true if the element is contained within the provided Scrollable. */\n    private _scrollableContainsElement;\n    /** Sets up the global scroll listeners. */\n    private _addGlobalListener;\n    /** Cleans up the global scroll listener. */\n    private _removeGlobalListener;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<ScrollDispatcher>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<ScrollDispatcher>;\n}\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher: ScrollDispatcher, ngZone: NgZone, platform: Platform): ScrollDispatcher;\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare const SCROLL_DISPATCHER_PROVIDER: {\n    provide: typeof ScrollDispatcher;\n    deps: (Optional[] | typeof NgZone | typeof Platform)[];\n    useFactory: typeof SCROLL_DISPATCHER_PROVIDER_FACTORY;\n};\n\n//# sourceMappingURL=scroll-dispatcher.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/scrolling/scrollable.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { ElementRef, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ScrollDispatcher } from './scroll-dispatcher';\nimport * as ɵngcc0 from '@angular/core';\nexport declare type _Without<T> = {\n    [P in keyof T]?: never;\n};\nexport declare type _XOR<T, U> = (_Without<T> & U) | (_Without<U> & T);\nexport declare type _Top = {\n    top?: number;\n};\nexport declare type _Bottom = {\n    bottom?: number;\n};\nexport declare type _Left = {\n    left?: number;\n};\nexport declare type _Right = {\n    right?: number;\n};\nexport declare type _Start = {\n    start?: number;\n};\nexport declare type _End = {\n    end?: number;\n};\nexport declare type _XAxis = _XOR<_XOR<_Left, _Right>, _XOR<_Start, _End>>;\nexport declare type _YAxis = _XOR<_Top, _Bottom>;\n/**\n * An extended version of ScrollToOptions that allows expressing scroll offsets relative to the\n * top, bottom, left, right, start, or end of the viewport rather than just the top and left.\n * Please note: the top and bottom properties are mutually exclusive, as are the left, right,\n * start, and end properties.\n */\nexport declare type ExtendedScrollToOptions = _XAxis & _YAxis & ScrollOptions;\n/**\n * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\nexport declare class CdkScrollable implements OnInit, OnDestroy {\n    protected elementRef: ElementRef<HTMLElement>;\n    protected scrollDispatcher: ScrollDispatcher;\n    protected ngZone: NgZone;\n    protected dir?: Directionality | undefined;\n    private _destroyed;\n    private _elementScrolled;\n    constructor(elementRef: ElementRef<HTMLElement>, scrollDispatcher: ScrollDispatcher, ngZone: NgZone, dir?: Directionality | undefined);\n    ngOnInit(): void;\n    ngOnDestroy(): void;\n    /** Returns observable that emits when a scroll event is fired on the host element. */\n    elementScrolled(): Observable<Event>;\n    /** Gets the ElementRef for the viewport. */\n    getElementRef(): ElementRef<HTMLElement>;\n    /**\n     * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo\n     * method, since browsers are not consistent about what scrollLeft means in RTL. For this method\n     * left and right always refer to the left and right side of the scrolling container irrespective\n     * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n     * in an RTL context.\n     * @param options specified the offsets to scroll to.\n     */\n    scrollTo(options: ExtendedScrollToOptions): void;\n    private _applyScrollToOptions;\n    /**\n     * Measures the scroll offset relative to the specified edge of the viewport. This method can be\n     * used instead of directly checking scrollLeft or scrollTop, since browsers are not consistent\n     * about what scrollLeft means in RTL. The values returned by this method are normalized such that\n     * left and right always refer to the left and right side of the scrolling container irrespective\n     * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n     * in an RTL context.\n     * @param from The edge to measure from.\n     */\n    measureScrollOffset(from: 'top' | 'left' | 'right' | 'bottom' | 'start' | 'end'): number;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkScrollable>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkScrollable, \"[cdk-scrollable], [cdkScrollable]\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=scrollable.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/scrolling/scrolling-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './fixed-size-virtual-scroll';\nimport * as ɵngcc2 from './scrollable';\nimport * as ɵngcc3 from './virtual-for-of';\nimport * as ɵngcc4 from './virtual-scroll-viewport';\nimport * as ɵngcc5 from '@angular/cdk/bidi';\nimport * as ɵngcc6 from '@angular/cdk/platform';\nexport declare class ScrollingModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<ScrollingModule, [typeof ɵngcc1.CdkFixedSizeVirtualScroll, typeof ɵngcc2.CdkScrollable, typeof ɵngcc3.CdkVirtualForOf, typeof ɵngcc4.CdkVirtualScrollViewport], [typeof ɵngcc5.BidiModule, typeof ɵngcc6.PlatformModule], [typeof ɵngcc5.BidiModule, typeof ɵngcc1.CdkFixedSizeVirtualScroll, typeof ɵngcc2.CdkScrollable, typeof ɵngcc3.CdkVirtualForOf, typeof ɵngcc4.CdkVirtualScrollViewport]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<ScrollingModule>;\n}\n/**\n * @deprecated ScrollDispatchModule has been renamed to ScrollingModule.\n * @breaking-change 8.0.0 delete this alias\n */\nexport declare class ScrollDispatchModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<ScrollDispatchModule, never, [typeof ScrollingModule], [typeof ScrollingModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<ScrollDispatchModule>;\n}\n\n//# sourceMappingURL=scrolling-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/scrolling/viewport-ruler.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Platform } from '@angular/cdk/platform';\nimport { NgZone, OnDestroy, Optional } from '@angular/core';\nimport { Observable } from 'rxjs';\n/** Time in ms to throttle the resize events by default. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare const DEFAULT_RESIZE_TIME = 20;\n/** Object that holds the scroll position of the viewport in each direction. */\nexport interface ViewportScrollPosition {\n    top: number;\n    left: number;\n}\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * @docs-private\n */\nexport declare class ViewportRuler implements OnDestroy {\n    private _platform;\n    /** Cached viewport dimensions. */\n    private _viewportSize;\n    /** Stream of viewport change events. */\n    private _change;\n    /** Subscription to streams that invalidate the cached viewport dimensions. */\n    private _invalidateCache;\n    constructor(_platform: Platform, ngZone: NgZone);\n    ngOnDestroy(): void;\n    /** Returns the viewport's width and height. */\n    getViewportSize(): Readonly<{\n        width: number;\n        height: number;\n    }>;\n    /** Gets a ClientRect for the viewport's bounds. */\n    getViewportRect(): ClientRect;\n    /** Gets the (top, left) scroll position of the viewport. */\n    getViewportScrollPosition(): ViewportScrollPosition;\n    /**\n     * Returns a stream that emits whenever the size of the viewport changes.\n     * @param throttleTime Time in milliseconds to throttle the stream.\n     */\n    change(throttleTime?: number): Observable<Event>;\n    /** Updates the cached viewport size. */\n    private _updateViewportSize;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<ViewportRuler>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<ViewportRuler>;\n}\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler: ViewportRuler, platform: Platform, ngZone: NgZone): ViewportRuler;\n/** @docs-private @deprecated @breaking-change 8.0.0 */\nexport declare const VIEWPORT_RULER_PROVIDER: {\n    provide: typeof ViewportRuler;\n    deps: (Optional[] | typeof NgZone | typeof Platform)[];\n    useFactory: typeof VIEWPORT_RULER_PROVIDER_FACTORY;\n};\n\n//# sourceMappingURL=viewport-ruler.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/scrolling/virtual-for-of.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CollectionViewer, DataSource, ListRange } from '@angular/cdk/collections';\nimport { DoCheck, IterableDiffers, NgIterable, NgZone, OnDestroy, TemplateRef, TrackByFunction, ViewContainerRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { CdkVirtualScrollViewport } from './virtual-scroll-viewport';\n/** The context for an item rendered by `CdkVirtualForOf` */\nimport * as ɵngcc0 from '@angular/core';\nexport declare type CdkVirtualForOfContext<T> = {\n    /** The item value. */\n    $implicit: T;\n    /** The DataSource, Observable, or NgIterable that was passed to *cdkVirtualFor. */\n    cdkVirtualForOf: DataSource<T> | Observable<T[]> | NgIterable<T>;\n    /** The index of the item in the DataSource. */\n    index: number;\n    /** The number of items in the DataSource. */\n    count: number;\n    /** Whether this is the first item in the DataSource. */\n    first: boolean;\n    /** Whether this is the last item in the DataSource. */\n    last: boolean;\n    /** Whether the index is even. */\n    even: boolean;\n    /** Whether the index is odd. */\n    odd: boolean;\n};\n/**\n * A directive similar to `ngForOf` to be used for rendering data inside a virtual scrolling\n * container.\n */\nexport declare class CdkVirtualForOf<T> implements CollectionViewer, DoCheck, OnDestroy {\n    /** The view container to add items to. */\n    private _viewContainerRef;\n    /** The template to use when stamping out new items. */\n    private _template;\n    /** The set of available differs. */\n    private _differs;\n    /** The virtual scrolling viewport that these items are being rendered in. */\n    private _viewport;\n    /** Emits when the rendered view of the data changes. */\n    viewChange: Subject<ListRange>;\n    /** Subject that emits when a new DataSource instance is given. */\n    private _dataSourceChanges;\n    /** The DataSource to display. */\n    cdkVirtualForOf: DataSource<T> | Observable<T[]> | NgIterable<T>;\n    _cdkVirtualForOf: DataSource<T> | Observable<T[]> | NgIterable<T>;\n    /**\n     * The `TrackByFunction` to use for tracking changes. The `TrackByFunction` takes the index and\n     * the item and produces a value to be used as the item's identity when tracking changes.\n     */\n    cdkVirtualForTrackBy: TrackByFunction<T> | undefined;\n    private _cdkVirtualForTrackBy;\n    /** The template used to stamp out new elements. */\n    cdkVirtualForTemplate: TemplateRef<CdkVirtualForOfContext<T>>;\n    /**\n     * The size of the cache used to store templates that are not being used for re-use later.\n     * Setting the cache size to `0` will disable caching. Defaults to 20 templates.\n     */\n    cdkVirtualForTemplateCacheSize: number;\n    /** Emits whenever the data in the current DataSource changes. */\n    dataStream: Observable<T[] | ReadonlyArray<T>>;\n    /** The differ used to calculate changes to the data. */\n    private _differ;\n    /** The most recent data emitted from the DataSource. */\n    private _data;\n    /** The currently rendered items. */\n    private _renderedItems;\n    /** The currently rendered range of indices. */\n    private _renderedRange;\n    /**\n     * The template cache used to hold on ot template instancess that have been stamped out, but don't\n     * currently need to be rendered. These instances will be reused in the future rather than\n     * stamping out brand new ones.\n     */\n    private _templateCache;\n    /** Whether the rendered data should be updated during the next ngDoCheck cycle. */\n    private _needsUpdate;\n    private _destroyed;\n    constructor(\n    /** The view container to add items to. */\n    _viewContainerRef: ViewContainerRef, \n    /** The template to use when stamping out new items. */\n    _template: TemplateRef<CdkVirtualForOfContext<T>>, \n    /** The set of available differs. */\n    _differs: IterableDiffers, \n    /** The virtual scrolling viewport that these items are being rendered in. */\n    _viewport: CdkVirtualScrollViewport, ngZone: NgZone);\n    /**\n     * Measures the combined size (width for horizontal orientation, height for vertical) of all items\n     * in the specified range. Throws an error if the range includes items that are not currently\n     * rendered.\n     */\n    measureRangeSize(range: ListRange, orientation: 'horizontal' | 'vertical'): number;\n    ngDoCheck(): void;\n    ngOnDestroy(): void;\n    /** React to scroll state changes in the viewport. */\n    private _onRenderedDataChange;\n    /** Swap out one `DataSource` for another. */\n    private _changeDataSource;\n    /** Update the `CdkVirtualForOfContext` for all views. */\n    private _updateContext;\n    /** Apply changes to the DOM. */\n    private _applyChanges;\n    /** Cache the given detached view. */\n    private _cacheView;\n    /** Inserts a view for a new item, either from the cache or by creating a new one. */\n    private _insertViewForNewItem;\n    /** Update the computed properties on the `CdkVirtualForOfContext`. */\n    private _updateComputedContextProperties;\n    /** Creates a new embedded view and moves it to the given index */\n    private _createEmbeddedViewAt;\n    /** Inserts a recycled view from the cache at the given index. */\n    private _insertViewFromCache;\n    /** Detaches the embedded view at the given index. */\n    private _detachView;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkVirtualForOf<any>>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkVirtualForOf<any>, \"[cdkVirtualFor][cdkVirtualForOf]\", never, { 'cdkVirtualForTemplateCacheSize': \"cdkVirtualForTemplateCacheSize\", 'cdkVirtualForOf': \"cdkVirtualForOf\", 'cdkVirtualForTrackBy': \"cdkVirtualForTrackBy\", 'cdkVirtualForTemplate': \"cdkVirtualForTemplate\" }, {}, never>;\n}\n\n//# sourceMappingURL=virtual-for-of.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/scrolling/virtual-scroll-strategy.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { CdkVirtualScrollViewport } from './virtual-scroll-viewport';\n/** The injection token used to specify the virtual scrolling strategy. */\nexport declare const VIRTUAL_SCROLL_STRATEGY: InjectionToken<VirtualScrollStrategy>;\n/** A strategy that dictates which items should be rendered in the viewport. */\nexport interface VirtualScrollStrategy {\n    /** Emits when the index of the first element visible in the viewport changes. */\n    scrolledIndexChange: Observable<number>;\n    /**\n     * Attaches this scroll strategy to a viewport.\n     * @param viewport The viewport to attach this strategy to.\n     */\n    attach(viewport: CdkVirtualScrollViewport): void;\n    /** Detaches this scroll strategy from the currently attached viewport. */\n    detach(): void;\n    /** Called when the viewport is scrolled (debounced using requestAnimationFrame). */\n    onContentScrolled(): void;\n    /** Called when the length of the data changes. */\n    onDataLengthChanged(): void;\n    /** Called when the range of items rendered in the DOM has changed. */\n    onContentRendered(): void;\n    /** Called when the offset of the rendered items changed. */\n    onRenderedOffsetChanged(): void;\n    /**\n     * Scroll to the offset for the given index.\n     * @param index The index of the element to scroll to.\n     * @param behavior The ScrollBehavior to use when scrolling.\n     */\n    scrollToIndex(index: number, behavior: ScrollBehavior): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/scrolling/virtual-scroll-viewport.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { ListRange } from '@angular/cdk/collections';\nimport { ChangeDetectorRef, ElementRef, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ScrollDispatcher } from './scroll-dispatcher';\nimport { CdkScrollable } from './scrollable';\nimport { CdkVirtualForOf } from './virtual-for-of';\nimport { VirtualScrollStrategy } from './virtual-scroll-strategy';\n/** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class CdkVirtualScrollViewport extends CdkScrollable implements OnInit, OnDestroy {\n    elementRef: ElementRef<HTMLElement>;\n    private _changeDetectorRef;\n    private _scrollStrategy;\n    /** Emits when the viewport is detached from a CdkVirtualForOf. */\n    private _detachedSubject;\n    /** Emits when the rendered range changes. */\n    private _renderedRangeSubject;\n    /** The direction the viewport scrolls. */\n    orientation: 'horizontal' | 'vertical';\n    private _orientation;\n    /** Emits when the index of the first element visible in the viewport changes. */\n    scrolledIndexChange: Observable<number>;\n    /** The element that wraps the rendered content. */\n    _contentWrapper: ElementRef<HTMLElement>;\n    /** A stream that emits whenever the rendered range changes. */\n    renderedRangeStream: Observable<ListRange>;\n    /**\n     * The total size of all content (in pixels), including content that is not currently rendered.\n     */\n    private _totalContentSize;\n    /** A string representing the `style.width` property value to be used for the spacer element. */\n    _totalContentWidth: string;\n    /** A string representing the `style.height` property value to be used for the spacer element. */\n    _totalContentHeight: string;\n    /**\n     * The CSS transform applied to the rendered subset of items so that they appear within the bounds\n     * of the visible viewport.\n     */\n    private _renderedContentTransform;\n    /** The currently rendered range of indices. */\n    private _renderedRange;\n    /** The length of the data bound to this viewport (in number of items). */\n    private _dataLength;\n    /** The size of the viewport (in pixels). */\n    private _viewportSize;\n    /** the currently attached CdkVirtualForOf. */\n    private _forOf;\n    /** The last rendered content offset that was set. */\n    private _renderedContentOffset;\n    /**\n     * Whether the last rendered content offset was to the end of the content (and therefore needs to\n     * be rewritten as an offset to the start of the content).\n     */\n    private _renderedContentOffsetNeedsRewrite;\n    /** Whether there is a pending change detection cycle. */\n    private _isChangeDetectionPending;\n    /** A list of functions to run after the next change detection cycle. */\n    private _runAfterChangeDetection;\n    constructor(elementRef: ElementRef<HTMLElement>, _changeDetectorRef: ChangeDetectorRef, ngZone: NgZone, _scrollStrategy: VirtualScrollStrategy, dir: Directionality, scrollDispatcher: ScrollDispatcher);\n    ngOnInit(): void;\n    ngOnDestroy(): void;\n    /** Attaches a `CdkVirtualForOf` to this viewport. */\n    attach(forOf: CdkVirtualForOf<any>): void;\n    /** Detaches the current `CdkVirtualForOf`. */\n    detach(): void;\n    /** Gets the length of the data bound to this viewport (in number of items). */\n    getDataLength(): number;\n    /** Gets the size of the viewport (in pixels). */\n    getViewportSize(): number;\n    /** Get the current rendered range of items. */\n    getRenderedRange(): ListRange;\n    /**\n     * Sets the total size of all content (in pixels), including content that is not currently\n     * rendered.\n     */\n    setTotalContentSize(size: number): void;\n    /** Sets the currently rendered range of indices. */\n    setRenderedRange(range: ListRange): void;\n    /**\n     * Gets the offset from the start of the viewport to the start of the rendered data (in pixels).\n     */\n    getOffsetToRenderedContentStart(): number | null;\n    /**\n     * Sets the offset from the start of the viewport to either the start or end of the rendered data\n     * (in pixels).\n     */\n    setRenderedContentOffset(offset: number, to?: 'to-start' | 'to-end'): void;\n    /**\n     * Scrolls to the given offset from the start of the viewport. Please note that this is not always\n     * the same as setting `scrollTop` or `scrollLeft`. In a horizontal viewport with right-to-left\n     * direction, this would be the equivalent of setting a fictional `scrollRight` property.\n     * @param offset The offset to scroll to.\n     * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n     */\n    scrollToOffset(offset: number, behavior?: ScrollBehavior): void;\n    /**\n     * Scrolls to the offset for the given index.\n     * @param index The index of the element to scroll to.\n     * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n     */\n    scrollToIndex(index: number, behavior?: ScrollBehavior): void;\n    /**\n     * Gets the current scroll offset from the start of the viewport (in pixels).\n     * @param from The edge to measure the offset from. Defaults to 'top' in vertical mode and 'start'\n     *     in horizontal mode.\n     */\n    measureScrollOffset(from?: 'top' | 'left' | 'right' | 'bottom' | 'start' | 'end'): number;\n    /** Measure the combined size of all of the rendered items. */\n    measureRenderedContentSize(): number;\n    /**\n     * Measure the total combined size of the given range. Throws if the range includes items that are\n     * not rendered.\n     */\n    measureRangeSize(range: ListRange): number;\n    /** Update the viewport dimensions and re-render. */\n    checkViewportSize(): void;\n    /** Measure the viewport size. */\n    private _measureViewportSize;\n    /** Queue up change detection to run. */\n    private _markChangeDetectionNeeded;\n    /** Run change detection. */\n    private _doChangeDetection;\n    /** Calculates the `style.width` and `style.height` for the spacer element. */\n    private _calculateSpacerSize;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkVirtualScrollViewport>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<CdkVirtualScrollViewport, \"cdk-virtual-scroll-viewport\", never, { 'orientation': \"orientation\" }, { 'scrolledIndexChange': \"scrolledIndexChange\" }, never>;\n}\n\n//# sourceMappingURL=virtual-scroll-viewport.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/stepper/index.d.ts",
      "node_modules/@angular/cdk/stepper/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/stepper/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './stepper';\nexport * from './step-label';\nexport * from './stepper-button';\nexport * from './stepper-module';\nexport * from './step-header';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/stepper/step-header.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef } from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\nexport declare class CdkStepHeader implements FocusableOption {\n    protected _elementRef: ElementRef<HTMLElement>;\n    constructor(_elementRef: ElementRef<HTMLElement>);\n    /** Focuses the step header. */\n    focus(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/stepper/step-label.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { TemplateRef } from '@angular/core';\nexport declare class CdkStepLabel {\n    template: TemplateRef<any>;\n    constructor(/** @docs-private */ template: TemplateRef<any>);\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/stepper/stepper-button.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkStepper } from './stepper';\n/** Button that moves to the next step in a stepper workflow. */\nexport declare class CdkStepperNext {\n    _stepper: CdkStepper;\n    /** Type of the next button. Defaults to \"submit\" if not specified. */\n    type: string;\n    constructor(_stepper: CdkStepper);\n    _handleClick(): void;\n}\n/** Button that moves to the previous step in a stepper workflow. */\nexport declare class CdkStepperPrevious {\n    _stepper: CdkStepper;\n    /** Type of the previous button. Defaults to \"button\" if not specified. */\n    type: string;\n    constructor(_stepper: CdkStepper);\n    _handleClick(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/stepper/stepper-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class CdkStepperModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/stepper/stepper.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, OnChanges, OnDestroy, QueryList, TemplateRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { CdkStepLabel } from './step-label';\n/**\n * Position state of the content of each step in stepper that is used for transitioning\n * the content into correct position upon step selection change.\n */\nexport declare type StepContentPositionState = 'previous' | 'current' | 'next';\n/** Possible orientation of a stepper. */\nexport declare type StepperOrientation = 'horizontal' | 'vertical';\n/** Change event emitted on selection changes. */\nexport declare class StepperSelectionEvent {\n    /** Index of the step now selected. */\n    selectedIndex: number;\n    /** Index of the step previously selected. */\n    previouslySelectedIndex: number;\n    /** The step instance now selected. */\n    selectedStep: CdkStep;\n    /** The step instance previously selected. */\n    previouslySelectedStep: CdkStep;\n}\n/** The state of each step. */\nexport declare type StepState = 'number' | 'edit' | 'done' | 'error' | string;\n/** Enum to represent the different states of the steps. */\nexport declare const STEP_STATE: {\n    NUMBER: string;\n    EDIT: string;\n    DONE: string;\n    ERROR: string;\n};\n/** InjectionToken that can be used to specify the global stepper options. */\nexport declare const STEPPER_GLOBAL_OPTIONS: InjectionToken<StepperOptions>;\n/**\n * InjectionToken that can be used to specify the global stepper options.\n * @deprecated Use `STEPPER_GLOBAL_OPTIONS` instead.\n * @breaking-change 8.0.0.\n */\nexport declare const MAT_STEPPER_GLOBAL_OPTIONS: InjectionToken<StepperOptions>;\n/** Configurable options for stepper. */\nexport interface StepperOptions {\n    /**\n     * Whether the stepper should display an error state or not.\n     * Default behavior is assumed to be false.\n     */\n    showError?: boolean;\n    /**\n     * Whether the stepper should display the default indicator type\n     * or not.\n     * Default behavior is assumed to be true.\n     */\n    displayDefaultIndicatorType?: boolean;\n}\nexport declare class CdkStep implements OnChanges {\n    private _stepper;\n    private _stepperOptions;\n    _showError: boolean;\n    _displayDefaultIndicatorType: boolean;\n    /** Template for step label if it exists. */\n    stepLabel: CdkStepLabel;\n    /** Template for step content. */\n    content: TemplateRef<any>;\n    /** The top level abstract control of the step. */\n    stepControl: FormControlLike;\n    /** Whether user has seen the expanded step content or not. */\n    interacted: boolean;\n    /** Plain text label of the step. */\n    label: string;\n    /** Error message to display when there's an error. */\n    errorMessage: string;\n    /** Aria label for the tab. */\n    ariaLabel: string;\n    /**\n     * Reference to the element that the tab is labelled by.\n     * Will be cleared if `aria-label` is set at the same time.\n     */\n    ariaLabelledby: string;\n    /** State of the step. */\n    state: StepState;\n    /** Whether the user can return to this step once it has been marked as completed. */\n    editable: boolean;\n    private _editable;\n    /** Whether the completion of step is optional. */\n    optional: boolean;\n    private _optional;\n    /** Whether step is marked as completed. */\n    completed: boolean;\n    _completedOverride: boolean | null;\n    private _getDefaultCompleted;\n    /** Whether step has an error. */\n    hasError: boolean;\n    private _customError;\n    private _getDefaultError;\n    /** @breaking-change 8.0.0 remove the `?` after `stepperOptions` */\n    constructor(_stepper: CdkStepper, stepperOptions?: StepperOptions);\n    /** Selects this step component. */\n    select(): void;\n    /** Resets the step to its initial state. Note that this includes resetting form data. */\n    reset(): void;\n    ngOnChanges(): void;\n}\nexport declare class CdkStepper implements AfterViewInit, OnDestroy {\n    private _dir;\n    private _changeDetectorRef;\n    private _elementRef?;\n    /** Emits when the component is destroyed. */\n    protected _destroyed: Subject<void>;\n    /** Used for managing keyboard focus. */\n    private _keyManager;\n    /**\n     * @breaking-change 8.0.0 Remove `| undefined` once the `_document`\n     * constructor param is required.\n     */\n    private _document;\n    /**\n     * The list of step components that the stepper is holding.\n     * @deprecated use `steps` instead\n     * @breaking-change 9.0.0 remove this property\n     */\n    _steps: QueryList<CdkStep>;\n    /** The list of step components that the stepper is holding. */\n    readonly steps: QueryList<CdkStep>;\n    /**\n     * The list of step headers of the steps in the stepper.\n     * @deprecated Type to be changed to `QueryList<CdkStepHeader>`.\n     * @breaking-change 8.0.0\n     */\n    _stepHeader: QueryList<FocusableOption>;\n    /** Whether the validity of previous steps should be checked or not. */\n    linear: boolean;\n    private _linear;\n    /** The index of the selected step. */\n    selectedIndex: number;\n    private _selectedIndex;\n    /** The step that is selected. */\n    selected: CdkStep;\n    /** Event emitted when the selected step has changed. */\n    selectionChange: EventEmitter<StepperSelectionEvent>;\n    /** Used to track unique ID for each stepper component. */\n    _groupId: number;\n    protected _orientation: StepperOrientation;\n    constructor(_dir: Directionality, _changeDetectorRef: ChangeDetectorRef, _elementRef?: ElementRef<HTMLElement> | undefined, _document?: any);\n    ngAfterViewInit(): void;\n    ngOnDestroy(): void;\n    /** Selects and focuses the next step in list. */\n    next(): void;\n    /** Selects and focuses the previous step in list. */\n    previous(): void;\n    /** Resets the stepper to its initial state. Note that this includes clearing form data. */\n    reset(): void;\n    /** Returns a unique id for each step label element. */\n    _getStepLabelId(i: number): string;\n    /** Returns unique id for each step content element. */\n    _getStepContentId(i: number): string;\n    /** Marks the component to be change detected. */\n    _stateChanged(): void;\n    /** Returns position state of the step with the given index. */\n    _getAnimationDirection(index: number): StepContentPositionState;\n    /** Returns the type of icon to be displayed. */\n    _getIndicatorType(index: number, state?: StepState): StepState;\n    private _getDefaultIndicatorLogic;\n    private _getGuidelineLogic;\n    private _isCurrentStep;\n    /** Returns the index of the currently-focused step header. */\n    _getFocusIndex(): number | null;\n    private _updateSelectedItemIndex;\n    _onKeydown(event: KeyboardEvent): void;\n    private _anyControlsInvalidOrPending;\n    private _layoutDirection;\n    /** Checks whether the stepper contains the focused element. */\n    private _containsFocus;\n}\n/**\n * Simplified representation of a FormControl from @angular/forms.\n * Used to avoid having to bring in @angular/forms for a single optional interface.\n * @docs-private\n */\ninterface FormControlLike {\n    asyncValidator: () => any | null;\n    dirty: boolean;\n    disabled: boolean;\n    enabled: boolean;\n    errors: {\n        [key: string]: any;\n    } | null;\n    invalid: boolean;\n    parent: any;\n    pending: boolean;\n    pristine: boolean;\n    root: FormControlLike;\n    status: string;\n    statusChanges: Observable<any>;\n    touched: boolean;\n    untouched: boolean;\n    updateOn: any;\n    valid: boolean;\n    validator: () => any | null;\n    value: any;\n    valueChanges: Observable<any>;\n    clearAsyncValidators(): void;\n    clearValidators(): void;\n    disable(opts?: any): void;\n    enable(opts?: any): void;\n    get(path: (string | number)[] | string): FormControlLike | null;\n    getError(errorCode: string, path?: (string | number)[] | string): any;\n    hasError(errorCode: string, path?: (string | number)[] | string): boolean;\n    markAllAsTouched(): void;\n    markAsDirty(opts?: any): void;\n    markAsPending(opts?: any): void;\n    markAsPristine(opts?: any): void;\n    markAsTouched(opts?: any): void;\n    markAsUntouched(opts?: any): void;\n    patchValue(value: any, options?: Object): void;\n    reset(value?: any, options?: Object): void;\n    setAsyncValidators(newValidator: () => any | (() => any)[] | null): void;\n    setErrors(errors: {\n        [key: string]: any;\n    } | null, opts?: any): void;\n    setParent(parent: any): void;\n    setValidators(newValidator: () => any | (() => any)[] | null): void;\n    setValue(value: any, options?: Object): void;\n    updateValueAndValidity(opts?: any): void;\n    patchValue(value: any, options?: any): void;\n    registerOnChange(fn: Function): void;\n    registerOnDisabledChange(fn: (isDisabled: boolean) => void): void;\n    reset(formState?: any, options?: any): void;\n    setValue(value: any, options?: any): void;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/table/can-stick.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @docs-private */\nexport declare type Constructor<T> = new (...args: any[]) => T;\n/**\n * Interface for a mixin to provide a directive with a function that checks if the sticky input has\n * been changed since the last time the function was called. Essentially adds a dirty-check to the\n * sticky value.\n * @docs-private\n */\nexport interface CanStick {\n    /** Whether sticky positioning should be applied. */\n    sticky: boolean;\n    /** Whether the sticky input has changed since it was last checked. */\n    _hasStickyChanged: boolean;\n    /** Whether the sticky value has changed since this was last called. */\n    hasStickyChanged(): boolean;\n    /** Resets the dirty check for cases where the sticky state has been used without checking. */\n    resetStickyChanged(): void;\n}\n/** @docs-private */\nexport declare type CanStickCtor = Constructor<CanStick>;\n/**\n * Mixin to provide a directive with a function that checks if the sticky input has been\n * changed since the last time the function was called. Essentially adds a dirty-check to the\n * sticky value.\n * @docs-private\n */\nexport declare function mixinHasStickyInput<T extends Constructor<{}>>(base: T): CanStickCtor & T;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/table/cell.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, TemplateRef } from '@angular/core';\nimport { CanStick, CanStickCtor } from './can-stick';\n/** Base interface for a cell definition. Captures a column's cell template definition. */\nimport * as ɵngcc0 from '@angular/core';\nexport interface CellDef {\n    template: TemplateRef<any>;\n}\n/**\n * Cell definition for a CDK table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\nexport declare class CdkCellDef implements CellDef {\n    template: TemplateRef<any>;\n    constructor(/** @docs-private */ template: TemplateRef<any>);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkCellDef>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkCellDef, \"[cdkCellDef]\", never, {}, {}, never>;\n}\n/**\n * Header cell definition for a CDK table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\nexport declare class CdkHeaderCellDef implements CellDef {\n    template: TemplateRef<any>;\n    constructor(/** @docs-private */ template: TemplateRef<any>);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkHeaderCellDef>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkHeaderCellDef, \"[cdkHeaderCellDef]\", never, {}, {}, never>;\n}\n/**\n * Footer cell definition for a CDK table.\n * Captures the template of a column's footer cell and as well as cell-specific properties.\n */\nexport declare class CdkFooterCellDef implements CellDef {\n    template: TemplateRef<any>;\n    constructor(/** @docs-private */ template: TemplateRef<any>);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkFooterCellDef>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkFooterCellDef, \"[cdkFooterCellDef]\", never, {}, {}, never>;\n}\n/** @docs-private */\ndeclare class CdkColumnDefBase {\n}\ndeclare const _CdkColumnDefBase: CanStickCtor & typeof CdkColumnDefBase;\n/**\n * Column definition for the CDK table.\n * Defines a set of cells available for a table column.\n */\nexport declare class CdkColumnDef extends _CdkColumnDefBase implements CanStick {\n    /** Unique name for this column. */\n    name: string;\n    _name: string;\n    /**\n     * Whether this column should be sticky positioned on the end of the row. Should make sure\n     * that it mimics the `CanStick` mixin such that `_hasStickyChanged` is set to true if the value\n     * has been changed.\n     */\n    stickyEnd: boolean;\n    _stickyEnd: boolean;\n    /** @docs-private */\n    cell: CdkCellDef;\n    /** @docs-private */\n    headerCell: CdkHeaderCellDef;\n    /** @docs-private */\n    footerCell: CdkFooterCellDef;\n    /**\n     * Transformed version of the column name that can be used as part of a CSS classname. Excludes\n     * all non-alphanumeric characters and the special characters '-' and '_'. Any characters that\n     * do not match are replaced by the '-' character.\n     */\n    cssClassFriendlyName: string;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkColumnDef>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkColumnDef, \"[cdkColumnDef]\", never, { 'sticky': \"sticky\", 'name': \"cdkColumnDef\", 'stickyEnd': \"stickyEnd\" }, {}, [\"cell\", \"headerCell\", \"footerCell\"]>;\n}\n/** Base class for the cells. Adds a CSS classname that identifies the column it renders in. */\nexport declare class BaseCdkCell {\n    constructor(columnDef: CdkColumnDef, elementRef: ElementRef);\n}\n/** Header cell template container that adds the right classes and role. */\nexport declare class CdkHeaderCell extends BaseCdkCell {\n    constructor(columnDef: CdkColumnDef, elementRef: ElementRef);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkHeaderCell>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkHeaderCell, \"cdk-header-cell, th[cdk-header-cell]\", never, {}, {}, never>;\n}\n/** Footer cell template container that adds the right classes and role. */\nexport declare class CdkFooterCell extends BaseCdkCell {\n    constructor(columnDef: CdkColumnDef, elementRef: ElementRef);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkFooterCell>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkFooterCell, \"cdk-footer-cell, td[cdk-footer-cell]\", never, {}, {}, never>;\n}\n/** Cell template container that adds the right classes and role. */\nexport declare class CdkCell extends BaseCdkCell {\n    constructor(columnDef: CdkColumnDef, elementRef: ElementRef);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkCell>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkCell, \"cdk-cell, td[cdk-cell]\", never, {}, {}, never>;\n}\nexport {};\n\n//# sourceMappingURL=cell.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/table/index.d.ts",
      "node_modules/@angular/cdk/table/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/table/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './table';\nexport * from './cell';\nexport * from './row';\nexport * from './table-module';\nexport * from './sticky-styler';\nexport * from './can-stick';\nexport * from './text-column';\n/** Re-export DataSource for a more intuitive experience for users of just the table. */\nexport { DataSource } from '@angular/cdk/collections';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/table/row.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { IterableChanges, IterableDiffer, IterableDiffers, OnChanges, OnDestroy, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { CanStick, CanStickCtor } from './can-stick';\nimport { CdkCellDef, CdkColumnDef } from './cell';\n/**\n * The row template that can be used by the mat-table. Should not be used outside of the\n * material library.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare const CDK_ROW_TEMPLATE = \"<ng-container cdkCellOutlet></ng-container>\";\n/**\n * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs\n * for changes and notifying the table.\n */\nexport declare abstract class BaseRowDef implements OnChanges {\n    /** @docs-private */ template: TemplateRef<any>;\n    protected _differs: IterableDiffers;\n    /** The columns to be displayed on this row. */\n    columns: Iterable<string>;\n    /** Differ used to check if any changes were made to the columns. */\n    protected _columnsDiffer: IterableDiffer<any>;\n    constructor(\n    /** @docs-private */ template: TemplateRef<any>, _differs: IterableDiffers);\n    ngOnChanges(changes: SimpleChanges): void;\n    /**\n     * Returns the difference between the current columns and the columns from the last diff, or null\n     * if there is no difference.\n     */\n    getColumnsDiff(): IterableChanges<any> | null;\n    /** Gets this row def's relevant cell template from the provided column def. */\n    extractCellTemplate(column: CdkColumnDef): TemplateRef<any>;\n}\n/** @docs-private */\ndeclare class CdkHeaderRowDefBase extends BaseRowDef {\n}\ndeclare const _CdkHeaderRowDefBase: CanStickCtor & typeof CdkHeaderRowDefBase;\n/**\n * Header row definition for the CDK table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\nexport declare class CdkHeaderRowDef extends _CdkHeaderRowDefBase implements CanStick, OnChanges {\n    constructor(template: TemplateRef<any>, _differs: IterableDiffers);\n    ngOnChanges(changes: SimpleChanges): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkHeaderRowDef>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkHeaderRowDef, \"[cdkHeaderRowDef]\", never, { 'columns': \"cdkHeaderRowDef\", 'sticky': \"cdkHeaderRowDefSticky\" }, {}, never>;\n}\n/** @docs-private */\ndeclare class CdkFooterRowDefBase extends BaseRowDef {\n}\ndeclare const _CdkFooterRowDefBase: CanStickCtor & typeof CdkFooterRowDefBase;\n/**\n * Footer row definition for the CDK table.\n * Captures the footer row's template and other footer properties such as the columns to display.\n */\nexport declare class CdkFooterRowDef extends _CdkFooterRowDefBase implements CanStick, OnChanges {\n    constructor(template: TemplateRef<any>, _differs: IterableDiffers);\n    ngOnChanges(changes: SimpleChanges): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkFooterRowDef>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkFooterRowDef, \"[cdkFooterRowDef]\", never, { 'columns': \"cdkFooterRowDef\", 'sticky': \"cdkFooterRowDefSticky\" }, {}, never>;\n}\n/**\n * Data row definition for the CDK table.\n * Captures the header row's template and other row properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\nexport declare class CdkRowDef<T> extends BaseRowDef {\n    /**\n     * Function that should return true if this row template should be used for the provided index\n     * and row data. If left undefined, this row will be considered the default row template to use\n     * when no other when functions return true for the data.\n     * For every row, there must be at least one when function that passes or an undefined to default.\n     */\n    when: (index: number, rowData: T) => boolean;\n    constructor(template: TemplateRef<any>, _differs: IterableDiffers);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkRowDef<any>>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkRowDef<any>, \"[cdkRowDef]\", never, { 'columns': \"cdkRowDefColumns\", 'when': \"cdkRowDefWhen\" }, {}, never>;\n}\n/** Context provided to the row cells when `multiTemplateDataRows` is false */\nexport interface CdkCellOutletRowContext<T> {\n    /** Data for the row that this cell is located within. */\n    $implicit?: T;\n    /** Index of the data object in the provided data array. */\n    index?: number;\n    /** Length of the number of total rows. */\n    count?: number;\n    /** True if this cell is contained in the first row. */\n    first?: boolean;\n    /** True if this cell is contained in the last row. */\n    last?: boolean;\n    /** True if this cell is contained in a row with an even-numbered index. */\n    even?: boolean;\n    /** True if this cell is contained in a row with an odd-numbered index. */\n    odd?: boolean;\n}\n/**\n * Context provided to the row cells when `multiTemplateDataRows` is true. This context is the same\n * as CdkCellOutletRowContext except that the single `index` value is replaced by `dataIndex` and\n * `renderIndex`.\n */\nexport interface CdkCellOutletMultiRowContext<T> {\n    /** Data for the row that this cell is located within. */\n    $implicit?: T;\n    /** Index of the data object in the provided data array. */\n    dataIndex?: number;\n    /** Index location of the rendered row that this cell is located within. */\n    renderIndex?: number;\n    /** Length of the number of total rows. */\n    count?: number;\n    /** True if this cell is contained in the first row. */\n    first?: boolean;\n    /** True if this cell is contained in the last row. */\n    last?: boolean;\n    /** True if this cell is contained in a row with an even-numbered index. */\n    even?: boolean;\n    /** True if this cell is contained in a row with an odd-numbered index. */\n    odd?: boolean;\n}\n/**\n * Outlet for rendering cells inside of a row or header row.\n * @docs-private\n */\nexport declare class CdkCellOutlet implements OnDestroy {\n    _viewContainer: ViewContainerRef;\n    /** The ordered list of cells to render within this outlet's view container */\n    cells: CdkCellDef[];\n    /** The data context to be provided to each cell */\n    context: any;\n    /**\n     * Static property containing the latest constructed instance of this class.\n     * Used by the CDK table when each CdkHeaderRow and CdkRow component is created using\n     * createEmbeddedView. After one of these components are created, this property will provide\n     * a handle to provide that component's cells and context. After init, the CdkCellOutlet will\n     * construct the cells with the provided context.\n     */\n    static mostRecentCellOutlet: CdkCellOutlet | null;\n    constructor(_viewContainer: ViewContainerRef);\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkCellOutlet>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkCellOutlet, \"[cdkCellOutlet]\", never, {}, {}, never>;\n}\n/** Header template container that contains the cell outlet. Adds the right class and role. */\nexport declare class CdkHeaderRow {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkHeaderRow>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<CdkHeaderRow, \"cdk-header-row, tr[cdk-header-row]\", never, {}, {}, never>;\n}\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\nexport declare class CdkFooterRow {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkFooterRow>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<CdkFooterRow, \"cdk-footer-row, tr[cdk-footer-row]\", never, {}, {}, never>;\n}\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\nexport declare class CdkRow {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkRow>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<CdkRow, \"cdk-row, tr[cdk-row]\", never, {}, {}, never>;\n}\nexport {};\n\n//# sourceMappingURL=row.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/table/sticky-styler.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Directions that can be used when setting sticky positioning.\n * @docs-private\n */\nimport { Direction } from '@angular/cdk/bidi';\nexport declare type StickyDirection = 'top' | 'bottom' | 'left' | 'right';\n/**\n * List of all possible directions that can be used for sticky positioning.\n * @docs-private\n */\nexport declare const STICKY_DIRECTIONS: StickyDirection[];\n/**\n * Applies and removes sticky positioning styles to the `CdkTable` rows and columns cells.\n * @docs-private\n */\nexport declare class StickyStyler {\n    private _isNativeHtmlTable;\n    private _stickCellCss;\n    direction: Direction;\n    private _isBrowser;\n    /**\n     * @param _isNativeHtmlTable Whether the sticky logic should be based on a table\n     *     that uses the native `<table>` element.\n     * @param _stickCellCss The CSS class that will be applied to every row/cell that has\n     *     sticky positioning applied.\n     * @param direction The directionality context of the table (ltr/rtl); affects column positioning\n     *     by reversing left/right positions.\n     * @param _isBrowser Whether the table is currently being rendered on the server or the client.\n     */\n    constructor(_isNativeHtmlTable: boolean, _stickCellCss: string, direction: Direction, _isBrowser?: boolean);\n    /**\n     * Clears the sticky positioning styles from the row and its cells by resetting the `position`\n     * style, setting the zIndex to 0, and unsetting each provided sticky direction.\n     * @param rows The list of rows that should be cleared from sticking in the provided directions\n     * @param stickyDirections The directions that should no longer be set as sticky on the rows.\n     */\n    clearStickyPositioning(rows: HTMLElement[], stickyDirections: StickyDirection[]): void;\n    /**\n     * Applies sticky left and right positions to the cells of each row according to the sticky\n     * states of the rendered column definitions.\n     * @param rows The rows that should have its set of cells stuck according to the sticky states.\n     * @param stickyStartStates A list of boolean states where each state represents whether the cell\n     *     in this index position should be stuck to the start of the row.\n     * @param stickyEndStates A list of boolean states where each state represents whether the cell\n     *     in this index position should be stuck to the end of the row.\n     */\n    updateStickyColumns(rows: HTMLElement[], stickyStartStates: boolean[], stickyEndStates: boolean[]): void;\n    /**\n     * Applies sticky positioning to the row's cells if using the native table layout, and to the\n     * row itself otherwise.\n     * @param rowsToStick The list of rows that should be stuck according to their corresponding\n     *     sticky state and to the provided top or bottom position.\n     * @param stickyStates A list of boolean states where each state represents whether the row\n     *     should be stuck in the particular top or bottom position.\n     * @param position The position direction in which the row should be stuck if that row should be\n     *     sticky.\n     *\n     */\n    stickRows(rowsToStick: HTMLElement[], stickyStates: boolean[], position: 'top' | 'bottom'): void;\n    /**\n     * When using the native table in Safari, sticky footer cells do not stick. The only way to stick\n     * footer rows is to apply sticky styling to the tfoot container. This should only be done if\n     * all footer rows are sticky. If not all footer rows are sticky, remove sticky positioning from\n     * the tfoot element.\n     */\n    updateStickyFooterContainer(tableElement: Element, stickyStates: boolean[]): void;\n    /**\n     * Removes the sticky style on the element by removing the sticky cell CSS class, re-evaluating\n     * the zIndex, removing each of the provided sticky directions, and removing the\n     * sticky position if there are no more directions.\n     */\n    _removeStickyStyle(element: HTMLElement, stickyDirections: StickyDirection[]): void;\n    /**\n     * Adds the sticky styling to the element by adding the sticky style class, changing position\n     * to be sticky (and -webkit-sticky), setting the appropriate zIndex, and adding a sticky\n     * direction and value.\n     */\n    _addStickyStyle(element: HTMLElement, dir: StickyDirection, dirValue: number): void;\n    /**\n     * Calculate what the z-index should be for the element, depending on what directions (top,\n     * bottom, left, right) have been set. It should be true that elements with a top direction\n     * should have the highest index since these are elements like a table header. If any of those\n     * elements are also sticky in another direction, then they should appear above other elements\n     * that are only sticky top (e.g. a sticky column on a sticky header). Bottom-sticky elements\n     * (e.g. footer rows) should then be next in the ordering such that they are below the header\n     * but above any non-sticky elements. Finally, left/right sticky elements (e.g. sticky columns)\n     * should minimally increment so that they are above non-sticky elements but below top and bottom\n     * elements.\n     */\n    _getCalculatedZIndex(element: HTMLElement): string;\n    /** Gets the widths for each cell in the provided row. */\n    _getCellWidths(row: HTMLElement): number[];\n    /**\n     * Determines the left and right positions of each sticky column cell, which will be the\n     * accumulation of all sticky column cell widths to the left and right, respectively.\n     * Non-sticky cells do not need to have a value set since their positions will not be applied.\n     */\n    _getStickyStartColumnPositions(widths: number[], stickyStates: boolean[]): number[];\n    /**\n     * Determines the left and right positions of each sticky column cell, which will be the\n     * accumulation of all sticky column cell widths to the left and right, respectively.\n     * Non-sticky cells do not need to have a value set since their positions will not be applied.\n     */\n    _getStickyEndColumnPositions(widths: number[], stickyStates: boolean[]): number[];\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/table/table-errors.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Returns an error to be thrown when attempting to find an unexisting column.\n * @param id Id whose lookup failed.\n * @docs-private\n */\nexport declare function getTableUnknownColumnError(id: string): Error;\n/**\n * Returns an error to be thrown when two column definitions have the same name.\n * @docs-private\n */\nexport declare function getTableDuplicateColumnNameError(name: string): Error;\n/**\n * Returns an error to be thrown when there are multiple rows that are missing a when function.\n * @docs-private\n */\nexport declare function getTableMultipleDefaultRowDefsError(): Error;\n/**\n * Returns an error to be thrown when there are no matching row defs for a particular set of data.\n * @docs-private\n */\nexport declare function getTableMissingMatchingRowDefError(data: any): Error;\n/**\n * Returns an error to be thrown when there is no row definitions present in the content.\n * @docs-private\n */\nexport declare function getTableMissingRowDefsError(): Error;\n/**\n * Returns an error to be thrown when the data source does not match the compatible types.\n * @docs-private\n */\nexport declare function getTableUnknownDataSourceError(): Error;\n/**\n * Returns an error to be thrown when the text column cannot find a parent table to inject.\n * @docs-private\n */\nexport declare function getTableTextColumnMissingParentTableError(): Error;\n/**\n * Returns an error to be thrown when a table text column doesn't have a name.\n * @docs-private\n */\nexport declare function getTableTextColumnMissingNameError(): Error;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/table/table-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './table';\nimport * as ɵngcc2 from './row';\nimport * as ɵngcc3 from './cell';\nimport * as ɵngcc4 from './text-column';\nimport * as ɵngcc5 from '@angular/common';\nexport declare class CdkTableModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<CdkTableModule, [typeof ɵngcc1.CdkTable, typeof ɵngcc2.CdkRowDef, typeof ɵngcc3.CdkCellDef, typeof ɵngcc2.CdkCellOutlet, typeof ɵngcc3.CdkHeaderCellDef, typeof ɵngcc3.CdkFooterCellDef, typeof ɵngcc3.CdkColumnDef, typeof ɵngcc3.CdkCell, typeof ɵngcc2.CdkRow, typeof ɵngcc3.CdkHeaderCell, typeof ɵngcc3.CdkFooterCell, typeof ɵngcc2.CdkHeaderRow, typeof ɵngcc2.CdkHeaderRowDef, typeof ɵngcc2.CdkFooterRow, typeof ɵngcc2.CdkFooterRowDef, typeof ɵngcc1.DataRowOutlet, typeof ɵngcc1.HeaderRowOutlet, typeof ɵngcc1.FooterRowOutlet, typeof ɵngcc4.CdkTextColumn], [typeof ɵngcc5.CommonModule], [typeof ɵngcc1.CdkTable, typeof ɵngcc2.CdkRowDef, typeof ɵngcc3.CdkCellDef, typeof ɵngcc2.CdkCellOutlet, typeof ɵngcc3.CdkHeaderCellDef, typeof ɵngcc3.CdkFooterCellDef, typeof ɵngcc3.CdkColumnDef, typeof ɵngcc3.CdkCell, typeof ɵngcc2.CdkRow, typeof ɵngcc3.CdkHeaderCell, typeof ɵngcc3.CdkFooterCell, typeof ɵngcc2.CdkHeaderRow, typeof ɵngcc2.CdkHeaderRowDef, typeof ɵngcc2.CdkFooterRow, typeof ɵngcc2.CdkFooterRowDef, typeof ɵngcc1.DataRowOutlet, typeof ɵngcc1.HeaderRowOutlet, typeof ɵngcc1.FooterRowOutlet, typeof ɵngcc4.CdkTextColumn]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<CdkTableModule>;\n}\n\n//# sourceMappingURL=table-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/table/table.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { Platform } from '@angular/cdk/platform';\nimport { AfterContentChecked, ChangeDetectorRef, ElementRef, IterableDiffers, OnDestroy, OnInit, QueryList, TrackByFunction, ViewContainerRef } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { CdkColumnDef } from './cell';\nimport { CdkCellOutletMultiRowContext, CdkCellOutletRowContext, CdkFooterRowDef, CdkHeaderRowDef, CdkRowDef } from './row';\n/** Interface used to provide an outlet for rows to be inserted into. */\nimport * as ɵngcc0 from '@angular/core';\nexport interface RowOutlet {\n    viewContainer: ViewContainerRef;\n}\n/**\n * Union of the types that can be set as the data source for a `CdkTable`.\n * @docs-private\n */\ndeclare type CdkTableDataSourceInput<T> = DataSource<T> | Observable<ReadonlyArray<T> | T[]> | ReadonlyArray<T> | T[];\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert data rows.\n * @docs-private\n */\nexport declare class DataRowOutlet implements RowOutlet {\n    viewContainer: ViewContainerRef;\n    elementRef: ElementRef;\n    constructor(viewContainer: ViewContainerRef, elementRef: ElementRef);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<DataRowOutlet>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<DataRowOutlet, \"[rowOutlet]\", never, {}, {}, never>;\n}\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert the header.\n * @docs-private\n */\nexport declare class HeaderRowOutlet implements RowOutlet {\n    viewContainer: ViewContainerRef;\n    elementRef: ElementRef;\n    constructor(viewContainer: ViewContainerRef, elementRef: ElementRef);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<HeaderRowOutlet>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<HeaderRowOutlet, \"[headerRowOutlet]\", never, {}, {}, never>;\n}\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert the footer.\n * @docs-private\n */\nexport declare class FooterRowOutlet implements RowOutlet {\n    viewContainer: ViewContainerRef;\n    elementRef: ElementRef;\n    constructor(viewContainer: ViewContainerRef, elementRef: ElementRef);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<FooterRowOutlet>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<FooterRowOutlet, \"[footerRowOutlet]\", never, {}, {}, never>;\n}\n/**\n * The table template that can be used by the mat-table. Should not be used outside of the\n * material library.\n * @docs-private\n */\nexport declare const CDK_TABLE_TEMPLATE = \"\\n  <ng-content select=\\\"caption\\\"></ng-content>\\n  <ng-container headerRowOutlet></ng-container>\\n  <ng-container rowOutlet></ng-container>\\n  <ng-container footerRowOutlet></ng-container>\\n\";\n/**\n * Interface used to conveniently type the possible context interfaces for the render row.\n * @docs-private\n */\nexport interface RowContext<T> extends CdkCellOutletMultiRowContext<T>, CdkCellOutletRowContext<T> {\n}\n/**\n * Set of properties that represents the identity of a single rendered row.\n *\n * When the table needs to determine the list of rows to render, it will do so by iterating through\n * each data object and evaluating its list of row templates to display (when multiTemplateDataRows\n * is false, there is only one template per data object). For each pair of data object and row\n * template, a `RenderRow` is added to the list of rows to render. If the data object and row\n * template pair has already been rendered, the previously used `RenderRow` is added; else a new\n * `RenderRow` is * created. Once the list is complete and all data objects have been itereated\n * through, a diff is performed to determine the changes that need to be made to the rendered rows.\n *\n * @docs-private\n */\nexport interface RenderRow<T> {\n    data: T;\n    dataIndex: number;\n    rowDef: CdkRowDef<T>;\n}\n/**\n * A data table that can render a header row, data rows, and a footer row.\n * Uses the dataSource input to determine the data to be rendered. The data can be provided either\n * as a data array, an Observable stream that emits the data array to render, or a DataSource with a\n * connect function that will return an Observable stream that emits the data array to render.\n */\nexport declare class CdkTable<T> implements AfterContentChecked, CollectionViewer, OnDestroy, OnInit {\n    protected readonly _differs: IterableDiffers;\n    protected readonly _changeDetectorRef: ChangeDetectorRef;\n    protected readonly _elementRef: ElementRef;\n    protected readonly _dir: Directionality;\n    private _platform;\n    private _document;\n    /** Latest data provided by the data source. */\n    protected _data: T[] | ReadonlyArray<T>;\n    /** Subject that emits when the component has been destroyed. */\n    private _onDestroy;\n    /** List of the rendered rows as identified by their `RenderRow` object. */\n    private _renderRows;\n    /** Subscription that listens for the data provided by the data source. */\n    private _renderChangeSubscription;\n    /**\n     * Map of all the user's defined columns (header, data, and footer cell template) identified by\n     * name. Collection populated by the column definitions gathered by `ContentChildren` as well as\n     * any custom column definitions added to `_customColumnDefs`.\n     */\n    private _columnDefsByName;\n    /**\n     * Set of all row definitions that can be used by this table. Populated by the rows gathered by\n     * using `ContentChildren` as well as any custom row definitions added to `_customRowDefs`.\n     */\n    private _rowDefs;\n    /**\n     * Set of all header row definitions that can be used by this table. Populated by the rows\n     * gathered by using `ContentChildren` as well as any custom row definitions added to\n     * `_customHeaderRowDefs`.\n     */\n    private _headerRowDefs;\n    /**\n     * Set of all row definitions that can be used by this table. Populated by the rows gathered by\n     * using `ContentChildren` as well as any custom row definitions added to\n     * `_customFooterRowDefs`.\n     */\n    private _footerRowDefs;\n    /** Differ used to find the changes in the data provided by the data source. */\n    private _dataDiffer;\n    /** Stores the row definition that does not have a when predicate. */\n    private _defaultRowDef;\n    /**\n     * Column definitions that were defined outside of the direct content children of the table.\n     * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n     * column definitions as *its* content child.\n     */\n    private _customColumnDefs;\n    /**\n     * Data row definitions that were defined outside of the direct content children of the table.\n     * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n     * built-in data rows as *its* content child.\n     */\n    private _customRowDefs;\n    /**\n     * Header row definitions that were defined outside of the direct content children of the table.\n     * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n     * built-in header rows as *its* content child.\n     */\n    private _customHeaderRowDefs;\n    /**\n     * Footer row definitions that were defined outside of the direct content children of the table.\n     * These will be defined when, e.g., creating a wrapper around the cdkTable that has a\n     * built-in footer row as *its* content child.\n     */\n    private _customFooterRowDefs;\n    /**\n     * Whether the header row definition has been changed. Triggers an update to the header row after\n     * content is checked. Initialized as true so that the table renders the initial set of rows.\n     */\n    private _headerRowDefChanged;\n    /**\n     * Whether the footer row definition has been changed. Triggers an update to the footer row after\n     * content is checked. Initialized as true so that the table renders the initial set of rows.\n     */\n    private _footerRowDefChanged;\n    /**\n     * Cache of the latest rendered `RenderRow` objects as a map for easy retrieval when constructing\n     * a new list of `RenderRow` objects for rendering rows. Since the new list is constructed with\n     * the cached `RenderRow` objects when possible, the row identity is preserved when the data\n     * and row template matches, which allows the `IterableDiffer` to check rows by reference\n     * and understand which rows are added/moved/removed.\n     *\n     * Implemented as a map of maps where the first key is the `data: T` object and the second is the\n     * `CdkRowDef<T>` object. With the two keys, the cache points to a `RenderRow<T>` object that\n     * contains an array of created pairs. The array is necessary to handle cases where the data\n     * array contains multiple duplicate data objects and each instantiated `RenderRow` must be\n     * stored.\n     */\n    private _cachedRenderRowsMap;\n    /** Whether the table is applied to a native `<table>`. */\n    private _isNativeHtmlTable;\n    /**\n     * Utility class that is responsible for applying the appropriate sticky positioning styles to\n     * the table's rows and cells.\n     */\n    private _stickyStyler;\n    /**\n     * CSS class added to any row or cell that has sticky positioning applied. May be overriden by\n     * table subclasses.\n     */\n    protected stickyCssClass: string;\n    /**\n     * Tracking function that will be used to check the differences in data changes. Used similarly\n     * to `ngFor` `trackBy` function. Optimize row operations by identifying a row based on its data\n     * relative to the function to know if a row should be added/removed/moved.\n     * Accepts a function that takes two parameters, `index` and `item`.\n     */\n    trackBy: TrackByFunction<T>;\n    private _trackByFn;\n    /**\n     * The table's source of data, which can be provided in three ways (in order of complexity):\n     *   - Simple data array (each object represents one table row)\n     *   - Stream that emits a data array each time the array changes\n     *   - `DataSource` object that implements the connect/disconnect interface.\n     *\n     * If a data array is provided, the table must be notified when the array's objects are\n     * added, removed, or moved. This can be done by calling the `renderRows()` function which will\n     * render the diff since the last table render. If the data array reference is changed, the table\n     * will automatically trigger an update to the rows.\n     *\n     * When providing an Observable stream, the table will trigger an update automatically when the\n     * stream emits a new array of data.\n     *\n     * Finally, when providing a `DataSource` object, the table will use the Observable stream\n     * provided by the connect function and trigger updates when that stream emits new data array\n     * values. During the table's ngOnDestroy or when the data source is removed from the table, the\n     * table will call the DataSource's `disconnect` function (may be useful for cleaning up any\n     * subscriptions registered during the connect process).\n     */\n    dataSource: CdkTableDataSourceInput<T>;\n    private _dataSource;\n    /**\n     * Whether to allow multiple rows per data object by evaluating which rows evaluate their 'when'\n     * predicate to true. If `multiTemplateDataRows` is false, which is the default value, then each\n     * dataobject will render the first row that evaluates its when predicate to true, in the order\n     * defined in the table, or otherwise the default row which does not have a when predicate.\n     */\n    multiTemplateDataRows: boolean;\n    _multiTemplateDataRows: boolean;\n    /**\n     * Stream containing the latest information on what rows are being displayed on screen.\n     * Can be used by the data source to as a heuristic of what data should be provided.\n     *\n     * @docs-private\n     */\n    viewChange: BehaviorSubject<{\n        start: number;\n        end: number;\n    }>;\n    _rowOutlet: DataRowOutlet;\n    _headerRowOutlet: HeaderRowOutlet;\n    _footerRowOutlet: FooterRowOutlet;\n    /**\n     * The column definitions provided by the user that contain what the header, data, and footer\n     * cells should render for each column.\n     */\n    _contentColumnDefs: QueryList<CdkColumnDef>;\n    /** Set of data row definitions that were provided to the table as content children. */\n    _contentRowDefs: QueryList<CdkRowDef<T>>;\n    /** Set of header row definitions that were provided to the table as content children. */\n    _contentHeaderRowDefs: QueryList<CdkHeaderRowDef>;\n    /** Set of footer row definitions that were provided to the table as content children. */\n    _contentFooterRowDefs: QueryList<CdkFooterRowDef>;\n    constructor(_differs: IterableDiffers, _changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef, role: string, _dir: Directionality, _document: any, _platform: Platform);\n    ngOnInit(): void;\n    ngAfterContentChecked(): void;\n    ngOnDestroy(): void;\n    /**\n     * Renders rows based on the table's latest set of data, which was either provided directly as an\n     * input or retrieved through an Observable stream (directly or from a DataSource).\n     * Checks for differences in the data since the last diff to perform only the necessary\n     * changes (add/remove/move rows).\n     *\n     * If the table's data source is a DataSource or Observable, this will be invoked automatically\n     * each time the provided Observable stream emits a new data array. Otherwise if your data is\n     * an array, this function will need to be called to render any changes.\n     */\n    renderRows(): void;\n    /**\n     * Sets the header row definition to be used. Overrides the header row definition gathered by\n     * using `ContentChild`, if one exists. Sets a flag that will re-render the header row after the\n     * table's content is checked.\n     * @docs-private\n     * @deprecated Use `addHeaderRowDef` and `removeHeaderRowDef` instead\n     * @breaking-change 8.0.0\n     */\n    setHeaderRowDef(headerRowDef: CdkHeaderRowDef): void;\n    /**\n     * Sets the footer row definition to be used. Overrides the footer row definition gathered by\n     * using `ContentChild`, if one exists. Sets a flag that will re-render the footer row after the\n     * table's content is checked.\n     * @docs-private\n     * @deprecated Use `addFooterRowDef` and `removeFooterRowDef` instead\n     * @breaking-change 8.0.0\n     */\n    setFooterRowDef(footerRowDef: CdkFooterRowDef): void;\n    /** Adds a column definition that was not included as part of the content children. */\n    addColumnDef(columnDef: CdkColumnDef): void;\n    /** Removes a column definition that was not included as part of the content children. */\n    removeColumnDef(columnDef: CdkColumnDef): void;\n    /** Adds a row definition that was not included as part of the content children. */\n    addRowDef(rowDef: CdkRowDef<T>): void;\n    /** Removes a row definition that was not included as part of the content children. */\n    removeRowDef(rowDef: CdkRowDef<T>): void;\n    /** Adds a header row definition that was not included as part of the content children. */\n    addHeaderRowDef(headerRowDef: CdkHeaderRowDef): void;\n    /** Removes a header row definition that was not included as part of the content children. */\n    removeHeaderRowDef(headerRowDef: CdkHeaderRowDef): void;\n    /** Adds a footer row definition that was not included as part of the content children. */\n    addFooterRowDef(footerRowDef: CdkFooterRowDef): void;\n    /** Removes a footer row definition that was not included as part of the content children. */\n    removeFooterRowDef(footerRowDef: CdkFooterRowDef): void;\n    /**\n     * Updates the header sticky styles. First resets all applied styles with respect to the cells\n     * sticking to the top. Then, evaluating which cells need to be stuck to the top. This is\n     * automatically called when the header row changes its displayed set of columns, or if its\n     * sticky input changes. May be called manually for cases where the cell content changes outside\n     * of these events.\n     */\n    updateStickyHeaderRowStyles(): void;\n    /**\n     * Updates the footer sticky styles. First resets all applied styles with respect to the cells\n     * sticking to the bottom. Then, evaluating which cells need to be stuck to the bottom. This is\n     * automatically called when the footer row changes its displayed set of columns, or if its\n     * sticky input changes. May be called manually for cases where the cell content changes outside\n     * of these events.\n     */\n    updateStickyFooterRowStyles(): void;\n    /**\n     * Updates the column sticky styles. First resets all applied styles with respect to the cells\n     * sticking to the left and right. Then sticky styles are added for the left and right according\n     * to the column definitions for each cell in each row. This is automatically called when\n     * the data source provides a new set of data or when a column definition changes its sticky\n     * input. May be called manually for cases where the cell content changes outside of these events.\n     */\n    updateStickyColumnStyles(): void;\n    /**\n     * Get the list of RenderRow objects to render according to the current list of data and defined\n     * row definitions. If the previous list already contained a particular pair, it should be reused\n     * so that the differ equates their references.\n     */\n    private _getAllRenderRows;\n    /**\n     * Gets a list of `RenderRow<T>` for the provided data object and any `CdkRowDef` objects that\n     * should be rendered for this data. Reuses the cached RenderRow objects if they match the same\n     * `(T, CdkRowDef)` pair.\n     */\n    private _getRenderRowsForData;\n    /** Update the map containing the content's column definitions. */\n    private _cacheColumnDefs;\n    /** Update the list of all available row definitions that can be used. */\n    private _cacheRowDefs;\n    /**\n     * Check if the header, data, or footer rows have changed what columns they want to display or\n     * whether the sticky states have changed for the header or footer. If there is a diff, then\n     * re-render that section.\n     */\n    private _renderUpdatedColumns;\n    /**\n     * Switch to the provided data source by resetting the data and unsubscribing from the current\n     * render change subscription if one exists. If the data source is null, interpret this by\n     * clearing the row outlet. Otherwise start listening for new data.\n     */\n    private _switchDataSource;\n    /** Set up a subscription for the data provided by the data source. */\n    private _observeRenderChanges;\n    /**\n     * Clears any existing content in the header row outlet and creates a new embedded view\n     * in the outlet using the header row definition.\n     */\n    private _forceRenderHeaderRows;\n    /**\n     * Clears any existing content in the footer row outlet and creates a new embedded view\n     * in the outlet using the footer row definition.\n     */\n    private _forceRenderFooterRows;\n    /** Adds the sticky column styles for the rows according to the columns' stick states. */\n    private _addStickyColumnStyles;\n    /** Gets the list of rows that have been rendered in the row outlet. */\n    _getRenderedRows(rowOutlet: RowOutlet): HTMLElement[];\n    /**\n     * Get the matching row definitions that should be used for this row data. If there is only\n     * one row definition, it is returned. Otherwise, find the row definitions that has a when\n     * predicate that returns true with the data. If none return true, return the default row\n     * definition.\n     */\n    _getRowDefs(data: T, dataIndex: number): CdkRowDef<T>[];\n    /**\n     * Create the embedded view for the data row template and place it in the correct index location\n     * within the data row view container.\n     */\n    private _insertRow;\n    /**\n     * Creates a new row template in the outlet and fills it with the set of cell templates.\n     * Optionally takes a context to provide to the row and cells, as well as an optional index\n     * of where to place the new row template in the outlet.\n     */\n    private _renderRow;\n    /**\n     * Updates the index-related context for each row to reflect any changes in the index of the rows,\n     * e.g. first/last/even/odd.\n     */\n    private _updateRowIndexContext;\n    /** Gets the column definitions for the provided row def. */\n    private _getCellTemplates;\n    /** Adds native table sections (e.g. tbody) and moves the row outlets into them. */\n    private _applyNativeTableSections;\n    /**\n     * Forces a re-render of the data rows. Should be called in cases where there has been an input\n     * change that affects the evaluation of which rows should be rendered, e.g. toggling\n     * `multiTemplateDataRows` or adding/removing row definitions.\n     */\n    private _forceRenderDataRows;\n    /**\n     * Checks if there has been a change in sticky states since last check and applies the correct\n     * sticky styles. Since checking resets the \"dirty\" state, this should only be performed once\n     * during a change detection and after the inputs are settled (after content check).\n     */\n    private _checkStickyStates;\n    /**\n     * Creates the sticky styler that will be used for sticky rows and columns. Listens\n     * for directionality changes and provides the latest direction to the styler. Re-applies column\n     * stickiness when directionality changes.\n     */\n    private _setupStickyStyler;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkTable<any>>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<CdkTable<any>, \"cdk-table, table[cdk-table]\", [\"cdkTable\"], { 'trackBy': \"trackBy\", 'dataSource': \"dataSource\", 'multiTemplateDataRows': \"multiTemplateDataRows\" }, {}, [\"_contentColumnDefs\", \"_contentRowDefs\", \"_contentHeaderRowDefs\", \"_contentFooterRowDefs\"]>;\n}\nexport {};\n\n//# sourceMappingURL=table.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/table/text-column.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken, OnDestroy, OnInit } from '@angular/core';\nimport { CdkCellDef, CdkColumnDef, CdkHeaderCellDef } from './cell';\nimport { CdkTable } from './table';\n/** Configurable options for `CdkTextColumn`. */\nimport * as ɵngcc0 from '@angular/core';\nexport interface TextColumnOptions<T> {\n    /**\n     * Default function that provides the header text based on the column name if a header\n     * text is not provided.\n     */\n    defaultHeaderTextTransform?: (name: string) => string;\n    /** Default data accessor to use if one is not provided. */\n    defaultDataAccessor?: (data: T, name: string) => string;\n}\n/** Injection token that can be used to specify the text column options. */\nexport declare const TEXT_COLUMN_OPTIONS: InjectionToken<TextColumnOptions<any>>;\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (`<table>`).\n *\n * By default, the name of this column will be the header text and data property accessor.\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\n * input.\n */\nexport declare class CdkTextColumn<T> implements OnDestroy, OnInit {\n    private _table;\n    private _options;\n    /** Column name that should be used to reference this column. */\n    name: string;\n    _name: string;\n    /**\n     * Text label that should be used for the column header. If this property is not\n     * set, the header text will default to the column name with its first letter capitalized.\n     */\n    headerText: string;\n    /**\n     * Accessor function to retrieve the data rendered for each cell. If this\n     * property is not set, the data cells will render the value found in the data's property matching\n     * the column's name. For example, if the column is named `id`, then the rendered value will be\n     * value defined by the data's `id` property.\n     */\n    dataAccessor: (data: T, name: string) => string;\n    /** Alignment of the cell values. */\n    justify: 'start' | 'end';\n    /** @docs-private */\n    columnDef: CdkColumnDef;\n    /**\n     * The column cell is provided to the column during `ngOnInit` with a static query.\n     * Normally, this will be retrieved by the column using `ContentChild`, but that assumes the\n     * column definition was provided in the same view as the table, which is not the case with this\n     * component.\n     * @docs-private\n     */\n    cell: CdkCellDef;\n    /**\n     * The column headerCell is provided to the column during `ngOnInit` with a static query.\n     * Normally, this will be retrieved by the column using `ContentChild`, but that assumes the\n     * column definition was provided in the same view as the table, which is not the case with this\n     * component.\n     * @docs-private\n     */\n    headerCell: CdkHeaderCellDef;\n    constructor(_table: CdkTable<T>, _options: TextColumnOptions<T>);\n    ngOnInit(): void;\n    ngOnDestroy(): void;\n    /**\n     * Creates a default header text. Use the options' header text transformation function if one\n     * has been provided. Otherwise simply capitalize the column name.\n     */\n    _createDefaultHeaderText(): string;\n    /** Synchronizes the column definition name with the text column name. */\n    private _syncColumnDefName;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkTextColumn<any>>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<CdkTextColumn<any>, \"cdk-text-column\", never, { 'justify': \"justify\", 'name': \"name\", 'headerText': \"headerText\", 'dataAccessor': \"dataAccessor\" }, {}, never>;\n}\n\n//# sourceMappingURL=text-column.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/component-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/component-harness\" />\nimport { TestElement } from './test-element';\n/** An async function that returns a promise when called. */\nexport declare type AsyncFactoryFn<T> = () => Promise<T>;\n/** An async function that takes an item and returns a boolean promise */\nexport declare type AsyncPredicate<T> = (item: T) => Promise<boolean>;\n/** An async function that takes an item and an option value and returns a boolean promise. */\nexport declare type AsyncOptionPredicate<T, O> = (item: T, option: O) => Promise<boolean>;\n/**\n * Interface used to load ComponentHarness objects. This interface is used by test authors to\n * instantiate `ComponentHarness`es.\n */\nexport interface HarnessLoader {\n    /**\n     * Searches for an element with the given selector under the current instances's root element,\n     * and returns a `HarnessLoader` rooted at the matching element. If multiple elements match the\n     * selector, the first is used. If no elements match, an error is thrown.\n     * @param selector The selector for the root element of the new `HarnessLoader`\n     * @return A `HarnessLoader` rooted at the element matching the given selector.\n     * @throws If a matching element can't be found.\n     */\n    getChildLoader(selector: string): Promise<HarnessLoader>;\n    /**\n     * Searches for all elements with the given selector under the current instances's root element,\n     * and returns an array of `HarnessLoader`s, one for each matching element, rooted at that\n     * element.\n     * @param selector The selector for the root element of the new `HarnessLoader`\n     * @return A list of `HarnessLoader`s, one for each matching element, rooted at that element.\n     */\n    getAllChildLoaders(selector: string): Promise<HarnessLoader[]>;\n    /**\n     * Searches for an instance of the component corresponding to the given harness type under the\n     * `HarnessLoader`'s root element, and returns a `ComponentHarness` for that instance. If multiple\n     * matching components are found, a harness for the first one is returned. If no matching\n     * component is found, an error is thrown.\n     * @param harnessType The type of harness to create\n     * @return An instance of the given harness type\n     * @throws If a matching component instance can't be found.\n     */\n    getHarness<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): Promise<T>;\n    /**\n     * Searches for all instances of the component corresponding to the given harness type under the\n     * `HarnessLoader`'s root element, and returns a list `ComponentHarness` for each instance.\n     * @param harnessType The type of harness to create\n     * @return A list instances of the given harness type.\n     */\n    getAllHarnesses<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): Promise<T[]>;\n}\n/**\n * Interface used to create asynchronous locator functions used find elements and component\n * harnesses. This interface is used by `ComponentHarness` authors to create locator functions for\n * their `ComponentHarenss` subclass.\n */\nexport interface LocatorFactory {\n    /** Gets a locator factory rooted at the document root. */\n    documentRootLocatorFactory(): LocatorFactory;\n    /** The root element of this `LocatorFactory` as a `TestElement`. */\n    rootElement: TestElement;\n    /**\n     * Creates an asynchronous locator function that can be used to search for elements with the given\n     * selector under the root element of this `LocatorFactory`. When the resulting locator function\n     * is invoked, if multiple matching elements are found, the first element is returned. If no\n     * elements are found, an error is thrown.\n     * @param selector The selector for the element that the locator function should search for.\n     * @return An asynchronous locator function that searches for elements with the given selector,\n     *     and either finds one or throws an error\n     */\n    locatorFor(selector: string): AsyncFactoryFn<TestElement>;\n    /**\n     * Creates an asynchronous locator function that can be used to find a `ComponentHarness` for a\n     * component matching the given harness type under the root element of this `LocatorFactory`.\n     * When the resulting locator function is invoked, if multiple matching components are found, a\n     * harness for the first one is returned. If no components are found, an error is thrown.\n     * @param harnessType The type of harness to search for.\n     * @return An asynchronous locator function that searches components matching the given harness\n     *     type, and either returns a `ComponentHarness` for the component, or throws an error.\n     */\n    locatorFor<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T>;\n    /**\n     * Creates an asynchronous locator function that can be used to search for elements with the given\n     * selector under the root element of this `LocatorFactory`. When the resulting locator function\n     * is invoked, if multiple matching elements are found, the first element is returned. If no\n     * elements are found, null is returned.\n     * @param selector The selector for the element that the locator function should search for.\n     * @return An asynchronous locator function that searches for elements with the given selector,\n     *     and either finds one or returns null.\n     */\n    locatorForOptional(selector: string): AsyncFactoryFn<TestElement | null>;\n    /**\n     * Creates an asynchronous locator function that can be used to find a `ComponentHarness` for a\n     * component matching the given harness type under the root element of this `LocatorFactory`.\n     * When the resulting locator function is invoked, if multiple matching components are found, a\n     * harness for the first one is returned. If no components are found, null is returned.\n     * @param harnessType The type of harness to search for.\n     * @return An asynchronous locator function that searches components matching the given harness\n     *     type, and either returns a `ComponentHarness` for the component, or null if none is found.\n     */\n    locatorForOptional<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T | null>;\n    /**\n     * Creates an asynchronous locator function that can be used to search for a list of elements with\n     * the given selector under the root element of this `LocatorFactory`. When the resulting locator\n     * function is invoked, a list of matching elements is returned.\n     * @param selector The selector for the element that the locator function should search for.\n     * @return An asynchronous locator function that searches for elements with the given selector,\n     *     and either finds one or throws an error\n     */\n    locatorForAll(selector: string): AsyncFactoryFn<TestElement[]>;\n    /**\n     * Creates an asynchronous locator function that can be used to find a list of\n     * `ComponentHarness`es for all components matching the given harness type under the root element\n     * of this `LocatorFactory`. When the resulting locator function is invoked, a list of\n     * `ComponentHarness`es for the matching components is returned.\n     * @param harnessType The type of harness to search for.\n     * @return An asynchronous locator function that searches components matching the given harness\n     *     type, and returns a list of `ComponentHarness`es.\n     */\n    locatorForAll<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T[]>;\n    /**\n     * Flushes change detection and async tasks.\n     * In most cases it should not be necessary to call this manually. However, there may be some edge\n     * cases where it is needed to fully flush animation events.\n     */\n    forceStabilize(): Promise<void>;\n}\n/**\n * Base class for component harnesses that all component harness authors should extend. This base\n * component harness provides the basic ability to locate element and sub-component harness. It\n * should be inherited when defining user's own harness.\n */\nexport declare abstract class ComponentHarness {\n    private readonly locatorFactory;\n    constructor(locatorFactory: LocatorFactory);\n    /** Gets a `Promise` for the `TestElement` representing the host element of the component. */\n    host(): Promise<TestElement>;\n    /**\n     * Gets a `LocatorFactory` for the document root element. This factory can be used to create\n     * locators for elements that a component creates outside of its own root element. (e.g. by\n     * appending to document.body).\n     */\n    protected documentRootLocatorFactory(): LocatorFactory;\n    /**\n     * Creates an asynchronous locator function that can be used to search for elements with the given\n     * selector under the host element of this `ComponentHarness`. When the resulting locator function\n     * is invoked, if multiple matching elements are found, the first element is returned. If no\n     * elements are found, an error is thrown.\n     * @param selector The selector for the element that the locator function should search for.\n     * @return An asynchronous locator function that searches for elements with the given selector,\n     *     and either finds one or throws an error\n     */\n    protected locatorFor(selector: string): AsyncFactoryFn<TestElement>;\n    /**\n     * Creates an asynchronous locator function that can be used to find a `ComponentHarness` for a\n     * component matching the given harness type under the host element of this `ComponentHarness`.\n     * When the resulting locator function is invoked, if multiple matching components are found, a\n     * harness for the first one is returned. If no components are found, an error is thrown.\n     * @param harnessType The type of harness to search for.\n     * @return An asynchronous locator function that searches components matching the given harness\n     *     type, and either returns a `ComponentHarness` for the component, or throws an error.\n     */\n    protected locatorFor<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T>;\n    /**\n     * Creates an asynchronous locator function that can be used to search for elements with the given\n     * selector under the host element of this `ComponentHarness`. When the resulting locator function\n     * is invoked, if multiple matching elements are found, the first element is returned. If no\n     * elements are found, null is returned.\n     * @param selector The selector for the element that the locator function should search for.\n     * @return An asynchronous locator function that searches for elements with the given selector,\n     *     and either finds one or returns null.\n     */\n    protected locatorForOptional(selector: string): AsyncFactoryFn<TestElement | null>;\n    /**\n     * Creates an asynchronous locator function that can be used to find a `ComponentHarness` for a\n     * component matching the given harness type under the host element of this `ComponentHarness`.\n     * When the resulting locator function is invoked, if multiple matching components are found, a\n     * harness for the first one is returned. If no components are found, null is returned.\n     * @param harnessType The type of harness to search for.\n     * @return An asynchronous locator function that searches components matching the given harness\n     *     type, and either returns a `ComponentHarness` for the component, or null if none is found.\n     */\n    protected locatorForOptional<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T | null>;\n    /**\n     * Creates an asynchronous locator function that can be used to search for a list of elements with\n     * the given selector under the host element of this `ComponentHarness`. When the resulting\n     * locator function is invoked, a list of matching elements is returned.\n     * @param selector The selector for the element that the locator function should search for.\n     * @return An asynchronous locator function that searches for elements with the given selector,\n     *     and either finds one or throws an error\n     */\n    protected locatorForAll(selector: string): AsyncFactoryFn<TestElement[]>;\n    /**\n     * Creates an asynchronous locator function that can be used to find a list of\n     * `ComponentHarness`es for all components matching the given harness type under the host element\n     * of this `ComponentHarness`. When the resulting locator function is invoked, a list of\n     * `ComponentHarness`es for the matching components is returned.\n     * @param harnessType The type of harness to search for.\n     * @return An asynchronous locator function that searches components matching the given harness\n     *     type, and returns a list of `ComponentHarness`es.\n     */\n    protected locatorForAll<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T[]>;\n    /**\n     * Flushes change detection and async tasks.\n     * In most cases it should not be necessary to call this manually. However, there may be some edge\n     * cases where it is needed to fully flush animation events.\n     */\n    protected forceStabilize(): Promise<void>;\n}\n/** Constructor for a ComponentHarness subclass. */\nexport interface ComponentHarnessConstructor<T extends ComponentHarness> {\n    new (locatorFactory: LocatorFactory): T;\n    /**\n     * `ComponentHarness` subclasses must specify a static `hostSelector` property that is used to\n     * find the host element for the corresponding component. This property should match the selector\n     * for the Angular component.\n     */\n    hostSelector: string;\n}\nexport interface BaseHarnessFilters {\n    /** Only find component instances whose host element matches the given selector. */\n    selector?: string;\n    /** Only find component instances that are nested under an element with the given selector. */\n    ancestor?: string;\n}\n/**\n * A class used to associate a ComponentHarness class with predicates functions that can be used to\n * filter instances of the class.\n */\nexport declare class HarnessPredicate<T extends ComponentHarness> {\n    harnessType: ComponentHarnessConstructor<T>;\n    private _predicates;\n    private _descriptions;\n    private _ancestor;\n    constructor(harnessType: ComponentHarnessConstructor<T>, options: BaseHarnessFilters);\n    /**\n     * Checks if a string matches the given pattern.\n     * @param s The string to check, or a Promise for the string to check.\n     * @param pattern The pattern the string is expected to match. If `pattern` is a string, `s` is\n     *   expected to match exactly. If `pattern` is a regex, a partial match is allowed.\n     * @return A Promise that resolves to whether the string matches the pattern.\n     */\n    static stringMatches(s: string | Promise<string>, pattern: string | RegExp): Promise<boolean>;\n    /**\n     * Adds a predicate function to be run against candidate harnesses.\n     * @param description A description of this predicate that may be used in error messages.\n     * @param predicate An async predicate function.\n     * @return this (for method chaining).\n     */\n    add(description: string, predicate: AsyncPredicate<T>): this;\n    /**\n     * Adds a predicate function that depends on an option value to be run against candidate\n     * harnesses. If the option value is undefined, the predicate will be ignored.\n     * @param name The name of the option (may be used in error messages).\n     * @param option The option value.\n     * @param predicate The predicate function to run if the option value is not undefined.\n     * @return this (for method chaining).\n     */\n    addOption<O>(name: string, option: O | undefined, predicate: AsyncOptionPredicate<T, O>): this;\n    /**\n     * Filters a list of harnesses on this predicate.\n     * @param harnesses The list of harnesses to filter.\n     * @return A list of harnesses that satisfy this predicate.\n     */\n    filter(harnesses: T[]): Promise<T[]>;\n    /**\n     * Evaluates whether the given harness satisfies this predicate.\n     * @param harness The harness to check\n     * @return A promise that resolves to true if the harness satisfies this predicate,\n     *   and resolves to false otherwise.\n     */\n    evaluate(harness: T): Promise<boolean>;\n    /** Gets a description of this predicate for use in error messages. */\n    getDescription(): string;\n    /** Gets the selector used to find candidate elements. */\n    getSelector(): string;\n    /** Adds base options common to all harness types. */\n    private _addBaseOptions;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/dispatch-events.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/dispatch-events\" />\nimport { ModifierKeys } from './event-objects';\n/**\n * Utility to dispatch any event on a Node.\n * @docs-private\n */\nexport declare function dispatchEvent(node: Node | Window, event: Event): Event;\n/**\n * Shorthand to dispatch a fake event on a specified node.\n * @docs-private\n */\nexport declare function dispatchFakeEvent(node: Node | Window, type: string, canBubble?: boolean): Event;\n/**\n * Shorthand to dispatch a keyboard event with a specified key code.\n * @docs-private\n */\nexport declare function dispatchKeyboardEvent(node: Node, type: string, keyCode?: number, key?: string, target?: Element, modifiers?: ModifierKeys): KeyboardEvent;\n/**\n * Shorthand to dispatch a mouse event on the specified coordinates.\n * @docs-private\n */\nexport declare function dispatchMouseEvent(node: Node, type: string, x?: number, y?: number, event?: MouseEvent): MouseEvent;\n/**\n * Shorthand to dispatch a touch event on the specified coordinates.\n * @docs-private\n */\nexport declare function dispatchTouchEvent(node: Node, type: string, x?: number, y?: number): Event;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/element-dimensions.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/element-dimensions\" />\n/**\n * Dimensions for element size and its position relative to the viewport.\n */\nexport interface ElementDimensions {\n    top: number;\n    left: number;\n    width: number;\n    height: number;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/element-focus.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/element-focus\" />\n/**\n * Patches an elements focus and blur methods to emit events consistently and predictably.\n * This is necessary, because some browsers, like IE11, will call the focus handlers asynchronously,\n * while others won't fire them at all if the browser window is not focused.\n * @docs-private\n */\nexport declare function patchElementFocus(element: HTMLElement): void;\n/** @docs-private */\nexport declare function triggerFocus(element: HTMLElement): void;\n/** @docs-private */\nexport declare function triggerBlur(element: HTMLElement): void;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/event-objects.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/event-objects\" />\n/** Modifier keys that may be held while typing. */\nexport interface ModifierKeys {\n    control?: boolean;\n    alt?: boolean;\n    shift?: boolean;\n    meta?: boolean;\n}\n/**\n * Creates a browser MouseEvent with the specified options.\n * @docs-private\n */\nexport declare function createMouseEvent(type: string, x?: number, y?: number, button?: number): MouseEvent;\n/**\n * Creates a browser TouchEvent with the specified pointer coordinates.\n * @docs-private\n */\nexport declare function createTouchEvent(type: string, pageX?: number, pageY?: number): UIEvent;\n/**\n * Dispatches a keydown event from an element.\n * @docs-private\n */\nexport declare function createKeyboardEvent(type: string, keyCode?: number, key?: string, target?: Element, modifiers?: ModifierKeys): any;\n/**\n * Creates a fake event object with any desired event type.\n * @docs-private\n */\nexport declare function createFakeEvent(type: string, canBubble?: boolean, cancelable?: boolean): Event;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/harness-environment.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/harness-environment\" />\nimport { AsyncFactoryFn, ComponentHarness, ComponentHarnessConstructor, HarnessLoader, HarnessPredicate, LocatorFactory } from './component-harness';\nimport { TestElement } from './test-element';\n/**\n * Base harness environment class that can be extended to allow `ComponentHarness`es to be used in\n * different test environments (e.g. testbed, protractor, etc.). This class implements the\n * functionality of both a `HarnessLoader` and `LocatorFactory`. This class is generic on the raw\n * element type, `E`, used by the particular test environment.\n */\nexport declare abstract class HarnessEnvironment<E> implements HarnessLoader, LocatorFactory {\n    protected rawRootElement: E;\n    rootElement: TestElement;\n    protected constructor(rawRootElement: E);\n    documentRootLocatorFactory(): LocatorFactory;\n    locatorFor(selector: string): AsyncFactoryFn<TestElement>;\n    locatorFor<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T>;\n    locatorForOptional(selector: string): AsyncFactoryFn<TestElement | null>;\n    locatorForOptional<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T | null>;\n    locatorForAll(selector: string): AsyncFactoryFn<TestElement[]>;\n    locatorForAll<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T[]>;\n    getHarness<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): Promise<T>;\n    getAllHarnesses<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): Promise<T[]>;\n    getChildLoader(selector: string): Promise<HarnessLoader>;\n    getAllChildLoaders(selector: string): Promise<HarnessLoader[]>;\n    /** Creates a `ComponentHarness` for the given harness type with the given raw host element. */\n    protected createComponentHarness<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T>, element: E): T;\n    abstract forceStabilize(): Promise<void>;\n    /** Gets the root element for the document. */\n    protected abstract getDocumentRoot(): E;\n    /** Creates a `TestElement` from a raw element. */\n    protected abstract createTestElement(element: E): TestElement;\n    /** Creates a `HarnessLoader` rooted at the given raw element. */\n    protected abstract createEnvironment(element: E): HarnessEnvironment<E>;\n    /**\n     * Gets a list of all elements matching the given selector under this environment's root element.\n     */\n    protected abstract getAllRawElements(selector: string): Promise<E[]>;\n    private _getAllHarnesses;\n    private _assertElementFound;\n    private _assertHarnessFound;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/index.d.ts",
      "node_modules/@angular/cdk/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing\" />\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/protractor/index.d.ts",
      "node_modules/@angular/cdk/testing/protractor/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/protractor\" />\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/protractor/protractor-element.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/protractor/protractor-element\" />\nimport { ModifierKeys } from '@angular/cdk/testing';\nimport { ElementFinder } from 'protractor';\nimport { ElementDimensions } from '../element-dimensions';\nimport { TestElement, TestKey } from '../test-element';\n/** A `TestElement` implementation for Protractor. */\nexport declare class ProtractorElement implements TestElement {\n    readonly element: ElementFinder;\n    constructor(element: ElementFinder);\n    blur(): Promise<void>;\n    clear(): Promise<void>;\n    click(relativeX?: number, relativeY?: number): Promise<void>;\n    focus(): Promise<void>;\n    getCssValue(property: string): Promise<string>;\n    hover(): Promise<void>;\n    sendKeys(...keys: (string | TestKey)[]): Promise<void>;\n    sendKeys(modifiers: ModifierKeys, ...keys: (string | TestKey)[]): Promise<void>;\n    text(): Promise<string>;\n    getAttribute(name: string): Promise<string | null>;\n    hasClass(name: string): Promise<boolean>;\n    getDimensions(): Promise<ElementDimensions>;\n    getProperty(name: string): Promise<any>;\n    matchesSelector(selector: string): Promise<boolean>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/protractor/protractor-harness-environment.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/protractor/protractor-harness-environment\" />\nimport { HarnessEnvironment } from '@angular/cdk/testing';\nimport { ElementFinder } from 'protractor';\nimport { HarnessLoader } from '../component-harness';\nimport { TestElement } from '../test-element';\n/** A `HarnessEnvironment` implementation for Protractor. */\nexport declare class ProtractorHarnessEnvironment extends HarnessEnvironment<ElementFinder> {\n    protected constructor(rawRootElement: ElementFinder);\n    /** Creates a `HarnessLoader` rooted at the document root. */\n    static loader(): HarnessLoader;\n    forceStabilize(): Promise<void>;\n    protected getDocumentRoot(): ElementFinder;\n    protected createTestElement(element: ElementFinder): TestElement;\n    protected createEnvironment(element: ElementFinder): HarnessEnvironment<ElementFinder>;\n    protected getAllRawElements(selector: string): Promise<ElementFinder[]>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/protractor/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/protractor/public-api\" />\nexport * from './protractor-element';\nexport * from './protractor-harness-environment';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/public-api\" />\nexport * from './component-harness';\nexport * from './dispatch-events';\nexport * from './element-focus';\nexport * from './event-objects';\nexport * from './harness-environment';\nexport * from './test-element';\nexport * from './type-in-element';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/test-element.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/test-element\" />\nimport { ElementDimensions } from './element-dimensions';\nimport { ModifierKeys } from './event-objects';\n/** An enum of non-text keys that can be used with the `sendKeys` method. */\nexport declare enum TestKey {\n    BACKSPACE = 0,\n    TAB = 1,\n    ENTER = 2,\n    SHIFT = 3,\n    CONTROL = 4,\n    ALT = 5,\n    ESCAPE = 6,\n    PAGE_UP = 7,\n    PAGE_DOWN = 8,\n    END = 9,\n    HOME = 10,\n    LEFT_ARROW = 11,\n    UP_ARROW = 12,\n    RIGHT_ARROW = 13,\n    DOWN_ARROW = 14,\n    INSERT = 15,\n    DELETE = 16,\n    F1 = 17,\n    F2 = 18,\n    F3 = 19,\n    F4 = 20,\n    F5 = 21,\n    F6 = 22,\n    F7 = 23,\n    F8 = 24,\n    F9 = 25,\n    F10 = 26,\n    F11 = 27,\n    F12 = 28,\n    META = 29\n}\n/**\n * This acts as a common interface for DOM elements across both unit and e2e tests. It is the\n * interface through which the ComponentHarness interacts with the component's DOM.\n */\nexport interface TestElement {\n    /** Blur the element. */\n    blur(): Promise<void>;\n    /** Clear the element's input (for input elements only). */\n    clear(): Promise<void>;\n    /**\n     * Click the element.\n     * @param relativeX Coordinate within the element, along the X-axis at which to click.\n     * @param relativeY Coordinate within the element, along the Y-axis at which to click.\n     */\n    click(relativeX?: number, relativeY?: number): Promise<void>;\n    /** Focus the element. */\n    focus(): Promise<void>;\n    /** Get the computed value of the given CSS property for the element. */\n    getCssValue(property: string): Promise<string>;\n    /** Hovers the mouse over the element. */\n    hover(): Promise<void>;\n    /**\n     * Sends the given string to the input as a series of key presses. Also fires input events\n     * and attempts to add the string to the Element's value.\n     */\n    sendKeys(...keys: (string | TestKey)[]): Promise<void>;\n    /**\n     * Sends the given string to the input as a series of key presses. Also fires input events\n     * and attempts to add the string to the Element's value.\n     */\n    sendKeys(modifiers: ModifierKeys, ...keys: (string | TestKey)[]): Promise<void>;\n    /** Gets the text from the element. */\n    text(): Promise<string>;\n    /** Gets the value for the given attribute from the element. */\n    getAttribute(name: string): Promise<string | null>;\n    /** Checks whether the element has the given class. */\n    hasClass(name: string): Promise<boolean>;\n    /** Gets the dimensions of the element. */\n    getDimensions(): Promise<ElementDimensions>;\n    /** Gets the value of a property of an element. */\n    getProperty(name: string): Promise<any>;\n    /** Checks whether this element matches the given selector. */\n    matchesSelector(selector: string): Promise<boolean>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/testbed/index.d.ts",
      "node_modules/@angular/cdk/testing/testbed/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/testbed\" />\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/testbed/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/testbed/public-api\" />\nexport * from './testbed-harness-environment';\nexport * from './unit-test-element';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/testbed/testbed-harness-environment.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/testbed/testbed-harness-environment\" />\nimport { HarnessEnvironment } from '@angular/cdk/testing';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { ComponentHarness, ComponentHarnessConstructor, HarnessLoader } from '../component-harness';\nimport { TestElement } from '../test-element';\n/** A `HarnessEnvironment` implementation for Angular's Testbed. */\nexport declare class TestbedHarnessEnvironment extends HarnessEnvironment<Element> {\n    private _fixture;\n    private _destroyed;\n    protected constructor(rawRootElement: Element, _fixture: ComponentFixture<unknown>);\n    /** Creates a `HarnessLoader` rooted at the given fixture's root element. */\n    static loader(fixture: ComponentFixture<unknown>): HarnessLoader;\n    /**\n     * Creates a `HarnessLoader` at the document root. This can be used if harnesses are\n     * located outside of a fixture (e.g. overlays appended to the document body).\n     */\n    static documentRootLoader(fixture: ComponentFixture<unknown>): HarnessLoader;\n    /**\n     * Creates an instance of the given harness type, using the fixture's root element as the\n     * harness's host element. This method should be used when creating a harness for the root element\n     * of a fixture, as components do not have the correct selector when they are created as the root\n     * of the fixture.\n     */\n    static harnessForFixture<T extends ComponentHarness>(fixture: ComponentFixture<unknown>, harnessType: ComponentHarnessConstructor<T>): Promise<T>;\n    forceStabilize(): Promise<void>;\n    protected getDocumentRoot(): Element;\n    protected createTestElement(element: Element): TestElement;\n    protected createEnvironment(element: Element): HarnessEnvironment<Element>;\n    protected getAllRawElements(selector: string): Promise<Element[]>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/testbed/unit-test-element.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/testbed/unit-test-element\" />\nimport { ModifierKeys } from '@angular/cdk/testing';\nimport { TestElement, TestKey } from '../test-element';\nimport { ElementDimensions } from '../element-dimensions';\n/** A `TestElement` implementation for unit tests. */\nexport declare class UnitTestElement implements TestElement {\n    readonly element: Element;\n    private _stabilize;\n    constructor(element: Element, _stabilize: () => Promise<void>);\n    blur(): Promise<void>;\n    clear(): Promise<void>;\n    click(relativeX?: number, relativeY?: number): Promise<void>;\n    focus(): Promise<void>;\n    getCssValue(property: string): Promise<string>;\n    hover(): Promise<void>;\n    sendKeys(...keys: (string | TestKey)[]): Promise<void>;\n    sendKeys(modifiers: ModifierKeys, ...keys: (string | TestKey)[]): Promise<void>;\n    text(): Promise<string>;\n    getAttribute(name: string): Promise<string | null>;\n    hasClass(name: string): Promise<boolean>;\n    getDimensions(): Promise<ElementDimensions>;\n    getProperty(name: string): Promise<any>;\n    matchesSelector(selector: string): Promise<boolean>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/testing/type-in-element.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// <amd-module name=\"@angular/cdk/testing/type-in-element\" />\nimport { ModifierKeys } from './event-objects';\n/**\n * Checks whether the given Element is a text input element.\n * @docs-private\n */\nexport declare function isTextInput(element: Element): element is HTMLInputElement | HTMLTextAreaElement;\n/**\n * Focuses an input, sets its value and dispatches\n * the `input` event, simulating the user typing.\n * @param element Element onto which to set the value.\n * @param keys The keys to send to the element.\n * @docs-private\n */\nexport declare function typeInElement(element: HTMLElement, ...keys: (string | {\n    keyCode?: number;\n    key?: string;\n})[]): void;\n/**\n * Focuses an input, sets its value and dispatches\n * the `input` event, simulating the user typing.\n * @param element Element onto which to set the value.\n * @param modifiers Modifier keys that are held while typing.\n * @param keys The keys to send to the element.\n * @docs-private\n */\nexport declare function typeInElement(element: HTMLElement, modifiers: ModifierKeys, ...keys: (string | {\n    keyCode?: number;\n    key?: string;\n})[]): void;\n/**\n * Clears the text in an input or textarea element.\n * @docs-private\n */\nexport declare function clearElement(element: HTMLInputElement | HTMLTextAreaElement): void;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/text-field/autofill.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Platform } from '@angular/cdk/platform';\nimport { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\n/** An event that is emitted when the autofill state of an input changes. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare type AutofillEvent = {\n    /** The element whose autofill state changes. */\n    target: Element;\n    /** Whether the element is currently autofilled. */\n    isAutofilled: boolean;\n};\n/**\n * An injectable service that can be used to monitor the autofill state of an input.\n * Based on the following blog post:\n * https://medium.com/@brunn/detecting-autofilled-fields-in-javascript-aed598d25da7\n */\nexport declare class AutofillMonitor implements OnDestroy {\n    private _platform;\n    private _ngZone;\n    private _monitoredElements;\n    constructor(_platform: Platform, _ngZone: NgZone);\n    /**\n     * Monitor for changes in the autofill state of the given input element.\n     * @param element The element to monitor.\n     * @return A stream of autofill state changes.\n     */\n    monitor(element: Element): Observable<AutofillEvent>;\n    /**\n     * Monitor for changes in the autofill state of the given input element.\n     * @param element The element to monitor.\n     * @return A stream of autofill state changes.\n     */\n    monitor(element: ElementRef<Element>): Observable<AutofillEvent>;\n    /**\n     * Stop monitoring the autofill state of the given input element.\n     * @param element The element to stop monitoring.\n     */\n    stopMonitoring(element: Element): void;\n    /**\n     * Stop monitoring the autofill state of the given input element.\n     * @param element The element to stop monitoring.\n     */\n    stopMonitoring(element: ElementRef<Element>): void;\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<AutofillMonitor>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<AutofillMonitor>;\n}\n/** A directive that can be used to monitor the autofill state of an input. */\nexport declare class CdkAutofill implements OnDestroy, OnInit {\n    private _elementRef;\n    private _autofillMonitor;\n    /** Emits when the autofill state of the element changes. */\n    cdkAutofill: EventEmitter<AutofillEvent>;\n    constructor(_elementRef: ElementRef<HTMLElement>, _autofillMonitor: AutofillMonitor);\n    ngOnInit(): void;\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkAutofill>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkAutofill, \"[cdkAutofill]\", never, {}, { 'cdkAutofill': \"cdkAutofill\" }, never>;\n}\n\n//# sourceMappingURL=autofill.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/text-field/autosize.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, AfterViewInit, DoCheck, OnDestroy, NgZone } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\n/** Directive to automatically resize a textarea to fit its content. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class CdkTextareaAutosize implements AfterViewInit, DoCheck, OnDestroy {\n    private _elementRef;\n    private _platform;\n    private _ngZone;\n    /** Keep track of the previous textarea value to avoid resizing when the value hasn't changed. */\n    private _previousValue?;\n    private _initialHeight;\n    private readonly _destroyed;\n    private _minRows;\n    private _maxRows;\n    private _enabled;\n    /**\n     * Value of minRows as of last resize. If the minRows has decreased, the\n     * height of the textarea needs to be recomputed to reflect the new minimum. The maxHeight\n     * does not have the same problem because it does not affect the textarea's scrollHeight.\n     */\n    private _previousMinRows;\n    private _textareaElement;\n    /** Minimum amount of rows in the textarea. */\n    minRows: number;\n    /** Maximum amount of rows in the textarea. */\n    maxRows: number;\n    /** Whether autosizing is enabled or not */\n    enabled: boolean;\n    /** Cached height of a textarea with a single row. */\n    private _cachedLineHeight;\n    constructor(_elementRef: ElementRef<HTMLElement>, _platform: Platform, _ngZone: NgZone);\n    /** Sets the minimum height of the textarea as determined by minRows. */\n    _setMinHeight(): void;\n    /** Sets the maximum height of the textarea as determined by maxRows. */\n    _setMaxHeight(): void;\n    ngAfterViewInit(): void;\n    ngOnDestroy(): void;\n    /**\n     * Cache the height of a single-row textarea if it has not already been cached.\n     *\n     * We need to know how large a single \"row\" of a textarea is in order to apply minRows and\n     * maxRows. For the initial version, we will assume that the height of a single line in the\n     * textarea does not ever change.\n     */\n    private _cacheTextareaLineHeight;\n    ngDoCheck(): void;\n    /**\n     * Resize the textarea to fit its content.\n     * @param force Whether to force a height recalculation. By default the height will be\n     *    recalculated only if the value changed since the last call.\n     */\n    resizeToFitContent(force?: boolean): void;\n    /**\n     * Resets the textarea to its original size\n     */\n    reset(): void;\n    _noopInputHandler(): void;\n    /**\n     * Scrolls a textarea to the caret position. On Firefox resizing the textarea will\n     * prevent it from scrolling to the caret position. We need to re-set the selection\n     * in order for it to scroll to the proper position.\n     */\n    private _scrollToCaretPosition;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CdkTextareaAutosize>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CdkTextareaAutosize, \"textarea[cdkTextareaAutosize]\", [\"cdkTextareaAutosize\"], { 'minRows': \"cdkAutosizeMinRows\", 'maxRows': \"cdkAutosizeMaxRows\", 'enabled': \"cdkTextareaAutosize\" }, {}, never>;\n}\n\n//# sourceMappingURL=autosize.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/text-field/index.d.ts",
      "node_modules/@angular/cdk/text-field/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/text-field/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './autofill';\nexport * from './autosize';\nexport * from './text-field-module';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/text-field/text-field-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './autofill';\nimport * as ɵngcc2 from './autosize';\nimport * as ɵngcc3 from '@angular/cdk/platform';\nexport declare class TextFieldModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<TextFieldModule, [typeof ɵngcc1.CdkAutofill, typeof ɵngcc2.CdkTextareaAutosize], [typeof ɵngcc3.PlatformModule], [typeof ɵngcc1.CdkAutofill, typeof ɵngcc2.CdkTextareaAutosize]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<TextFieldModule>;\n}\n\n//# sourceMappingURL=text-field-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/control/base-tree-control.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { Observable } from 'rxjs';\nimport { TreeControl } from './tree-control';\n/** Base tree control. It has basic toggle/expand/collapse operations on a single data node. */\nexport declare abstract class BaseTreeControl<T> implements TreeControl<T> {\n    /** Gets a list of descendent data nodes of a subtree rooted at given data node recursively. */\n    abstract getDescendants(dataNode: T): T[];\n    /** Expands all data nodes in the tree. */\n    abstract expandAll(): void;\n    /** Saved data node for `expandAll` action. */\n    dataNodes: T[];\n    /** A selection model with multi-selection to track expansion status. */\n    expansionModel: SelectionModel<T>;\n    /** Get depth of a given data node, return the level number. This is for flat tree node. */\n    getLevel: (dataNode: T) => number;\n    /**\n     * Whether the data node is expandable. Returns true if expandable.\n     * This is for flat tree node.\n     */\n    isExpandable: (dataNode: T) => boolean;\n    /** Gets a stream that emits whenever the given data node's children change. */\n    getChildren: (dataNode: T) => (Observable<T[]> | T[] | undefined | null);\n    /** Toggles one single data node's expanded/collapsed state. */\n    toggle(dataNode: T): void;\n    /** Expands one single data node. */\n    expand(dataNode: T): void;\n    /** Collapses one single data node. */\n    collapse(dataNode: T): void;\n    /** Whether a given data node is expanded or not. Returns true if the data node is expanded. */\n    isExpanded(dataNode: T): boolean;\n    /** Toggles a subtree rooted at `node` recursively. */\n    toggleDescendants(dataNode: T): void;\n    /** Collapse all dataNodes in the tree. */\n    collapseAll(): void;\n    /** Expands a subtree rooted at given data node recursively. */\n    expandDescendants(dataNode: T): void;\n    /** Collapses a subtree rooted at given data node recursively. */\n    collapseDescendants(dataNode: T): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/control/flat-tree-control.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseTreeControl } from './base-tree-control';\n/** Flat tree control. Able to expand/collapse a subtree recursively for flattened tree. */\nexport declare class FlatTreeControl<T> extends BaseTreeControl<T> {\n    getLevel: (dataNode: T) => number;\n    isExpandable: (dataNode: T) => boolean;\n    /** Construct with flat tree data node functions getLevel and isExpandable. */\n    constructor(getLevel: (dataNode: T) => number, isExpandable: (dataNode: T) => boolean);\n    /**\n     * Gets a list of the data node's subtree of descendent data nodes.\n     *\n     * To make this working, the `dataNodes` of the TreeControl must be flattened tree nodes\n     * with correct levels.\n     */\n    getDescendants(dataNode: T): T[];\n    /**\n     * Expands all data nodes in the tree.\n     *\n     * To make this working, the `dataNodes` variable of the TreeControl must be set to all flattened\n     * data nodes of the tree.\n     */\n    expandAll(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/control/nested-tree-control.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Observable } from 'rxjs';\nimport { BaseTreeControl } from './base-tree-control';\n/** Nested tree control. Able to expand/collapse a subtree recursively for NestedNode type. */\nexport declare class NestedTreeControl<T> extends BaseTreeControl<T> {\n    getChildren: (dataNode: T) => (Observable<T[]> | T[] | undefined | null);\n    /** Construct with nested tree function getChildren. */\n    constructor(getChildren: (dataNode: T) => (Observable<T[]> | T[] | undefined | null));\n    /**\n     * Expands all dataNodes in the tree.\n     *\n     * To make this working, the `dataNodes` variable of the TreeControl must be set to all root level\n     * data nodes of the tree.\n     */\n    expandAll(): void;\n    /** Gets a list of descendant dataNodes of a subtree rooted at given data node recursively. */\n    getDescendants(dataNode: T): T[];\n    /** A helper function to get descendants recursively. */\n    protected _getDescendants(descendants: T[], dataNode: T): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/control/tree-control.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { Observable } from 'rxjs';\n/**\n * Tree control interface. User can implement TreeControl to expand/collapse dataNodes in the tree.\n * The CDKTree will use this TreeControl to expand/collapse a node.\n * User can also use it outside the `<cdk-tree>` to control the expansion status of the tree.\n */\nexport interface TreeControl<T> {\n    /** The saved tree nodes data for `expandAll` action. */\n    dataNodes: T[];\n    /** The expansion model */\n    expansionModel: SelectionModel<T>;\n    /** Whether the data node is expanded or collapsed. Return true if it's expanded. */\n    isExpanded(dataNode: T): boolean;\n    /** Get all descendants of a data node */\n    getDescendants(dataNode: T): any[];\n    /** Expand or collapse data node */\n    toggle(dataNode: T): void;\n    /** Expand one data node */\n    expand(dataNode: T): void;\n    /** Collapse one data node */\n    collapse(dataNode: T): void;\n    /** Expand all the dataNodes in the tree */\n    expandAll(): void;\n    /** Collapse all the dataNodes in the tree */\n    collapseAll(): void;\n    /** Toggle a data node by expand/collapse it and all its descendants */\n    toggleDescendants(dataNode: T): void;\n    /** Expand a data node and all its descendants */\n    expandDescendants(dataNode: T): void;\n    /** Collapse a data node and all its descendants */\n    collapseDescendants(dataNode: T): void;\n    /** Get depth of a given data node, return the level number. This is for flat tree node. */\n    readonly getLevel: (dataNode: T) => number;\n    /**\n     * Whether the data node is expandable. Returns true if expandable.\n     * This is for flat tree node.\n     */\n    readonly isExpandable: (dataNode: T) => boolean;\n    /** Gets a stream that emits whenever the given data node's children change. */\n    readonly getChildren: (dataNode: T) => Observable<T[]> | T[] | undefined | null;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/index.d.ts",
      "node_modules/@angular/cdk/tree/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/nested-node.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AfterContentInit, ElementRef, IterableDiffers, OnDestroy, QueryList } from '@angular/core';\nimport { CdkTreeNodeOutlet } from './outlet';\nimport { CdkTree, CdkTreeNode } from './tree';\n/**\n * Nested node is a child of `<cdk-tree>`. It works with nested tree.\n * By using `cdk-nested-tree-node` component in tree node template, children of the parent node will\n * be added in the `cdkTreeNodeOutlet` in tree node template.\n * For example:\n *   ```html\n *   <cdk-nested-tree-node>\n *     {{node.name}}\n *     <ng-template cdkTreeNodeOutlet></ng-template>\n *   </cdk-nested-tree-node>\n *   ```\n * The children of node will be automatically added to `cdkTreeNodeOutlet`, the result dom will be\n * like this:\n *   ```html\n *   <cdk-nested-tree-node>\n *     {{node.name}}\n *      <cdk-nested-tree-node>{{child1.name}}</cdk-nested-tree-node>\n *      <cdk-nested-tree-node>{{child2.name}}</cdk-nested-tree-node>\n *   </cdk-nested-tree-node>\n *   ```\n */\nexport declare class CdkNestedTreeNode<T> extends CdkTreeNode<T> implements AfterContentInit, OnDestroy {\n    protected _elementRef: ElementRef<HTMLElement>;\n    protected _tree: CdkTree<T>;\n    protected _differs: IterableDiffers;\n    /** Differ used to find the changes in the data provided by the data source. */\n    private _dataDiffer;\n    /** The children data dataNodes of current node. They will be placed in `CdkTreeNodeOutlet`. */\n    protected _children: T[];\n    /** The children node placeholder. */\n    nodeOutlet: QueryList<CdkTreeNodeOutlet>;\n    constructor(_elementRef: ElementRef<HTMLElement>, _tree: CdkTree<T>, _differs: IterableDiffers);\n    ngAfterContentInit(): void;\n    ngOnDestroy(): void;\n    /** Add children dataNodes to the NodeOutlet */\n    protected updateChildrenNodes(children?: T[]): void;\n    /** Clear the children dataNodes. */\n    protected _clear(): void;\n    /** Gets the outlet for the current node. */\n    private _getNodeOutlet;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/node.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { TemplateRef } from '@angular/core';\n/** Context provided to the tree node component. */\nexport declare class CdkTreeNodeOutletContext<T> {\n    /** Data for the node. */\n    $implicit: T;\n    /** Depth of the node. */\n    level: number;\n    /** Index location of the node. */\n    index?: number;\n    /** Length of the number of total dataNodes. */\n    count?: number;\n    constructor(data: T);\n}\n/**\n * Data node definition for the CdkTree.\n * Captures the node's template and a when predicate that describes when this node should be used.\n */\nexport declare class CdkTreeNodeDef<T> {\n    template: TemplateRef<any>;\n    /**\n     * Function that should return true if this node template should be used for the provided node\n     * data and index. If left undefined, this node will be considered the default node template to\n     * use when no other when functions return true for the data.\n     * For every node, there must be at least one when function that passes or an undefined to\n     * default.\n     */\n    when: (index: number, nodeData: T) => boolean;\n    /** @docs-private */\n    constructor(template: TemplateRef<any>);\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/outlet.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken, ViewContainerRef } from '@angular/core';\n/**\n * Injection token used to provide a `CdkTreeNode` to its outlet.\n * Used primarily to avoid circular imports.\n * @docs-private\n */\nexport declare const CDK_TREE_NODE_OUTLET_NODE: InjectionToken<{}>;\n/**\n * Outlet for nested CdkNode. Put `[cdkTreeNodeOutlet]` on a tag to place children dataNodes\n * inside the outlet.\n */\nexport declare class CdkTreeNodeOutlet {\n    viewContainer: ViewContainerRef;\n    _node?: any;\n    constructor(viewContainer: ViewContainerRef, _node?: any);\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/padding.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { ElementRef, OnDestroy, Renderer2 } from '@angular/core';\nimport { CdkTree, CdkTreeNode } from './tree';\n/**\n * Indent for the children tree dataNodes.\n * This directive will add left-padding to the node to show hierarchy.\n */\nexport declare class CdkTreeNodePadding<T> implements OnDestroy {\n    private _treeNode;\n    private _tree;\n    private _renderer;\n    private _element;\n    private _dir;\n    /** Current padding value applied to the element. Used to avoid unnecessarily hitting the DOM. */\n    private _currentPadding;\n    /** Subject that emits when the component has been destroyed. */\n    private _destroyed;\n    /** CSS units used for the indentation value. */\n    indentUnits: string;\n    /** The level of depth of the tree node. The padding will be `level * indent` pixels. */\n    level: number;\n    _level: number;\n    /**\n     * The indent for each level. Can be a number or a CSS string.\n     * Default number 40px from material design menu sub-menu spec.\n     */\n    indent: number | string;\n    _indent: number;\n    constructor(_treeNode: CdkTreeNode<T>, _tree: CdkTree<T>, _renderer: Renderer2, _element: ElementRef<HTMLElement>, _dir: Directionality);\n    ngOnDestroy(): void;\n    /** The padding indent value for the tree node. Returns a string with px numbers if not null. */\n    _paddingIndent(): string | null;\n    _setPadding(forceChange?: boolean): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './control/base-tree-control';\nexport * from './control/flat-tree-control';\nexport * from './control/nested-tree-control';\nexport * from './control/tree-control';\nexport * from './nested-node';\nexport * from './node';\nexport * from './padding';\nexport * from './outlet';\nexport * from './tree';\nexport * from './tree-errors';\nexport * from './tree-module';\nexport * from './toggle';\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/toggle.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkTree, CdkTreeNode } from './tree';\n/**\n * Node toggle to expand/collapse the node.\n */\nexport declare class CdkTreeNodeToggle<T> {\n    protected _tree: CdkTree<T>;\n    protected _treeNode: CdkTreeNode<T>;\n    /** Whether expand/collapse the node recursively. */\n    recursive: boolean;\n    protected _recursive: boolean;\n    constructor(_tree: CdkTree<T>, _treeNode: CdkTreeNode<T>);\n    _toggle(event: Event): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/tree-errors.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Returns an error to be thrown when there is no usable data.\n * @docs-private\n */\nexport declare function getTreeNoValidDataSourceError(): Error;\n/**\n * Returns an error to be thrown when there are multiple nodes that are missing a when function.\n * @docs-private\n */\nexport declare function getTreeMultipleDefaultNodeDefsError(): Error;\n/**\n * Returns an error to be thrown when there are no matching node defs for a particular set of data.\n * @docs-private\n */\nexport declare function getTreeMissingMatchingNodeDefError(): Error;\n/**\n * Returns an error to be thrown when there are tree control.\n * @docs-private\n */\nexport declare function getTreeControlMissingError(): Error;\n/**\n * Returns an error to be thrown when tree control did not implement functions for flat/nested node.\n * @docs-private\n */\nexport declare function getTreeControlFunctionsMissingError(): Error;\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/tree-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class CdkTreeModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/tree/tree.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { AfterContentChecked, ChangeDetectorRef, ElementRef, IterableDiffer, IterableDiffers, OnDestroy, OnInit, QueryList, ViewContainerRef, TrackByFunction } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { TreeControl } from './control/tree-control';\nimport { CdkTreeNodeDef } from './node';\nimport { CdkTreeNodeOutlet } from './outlet';\n/**\n * CDK tree component that connects with a data source to retrieve data of type `T` and renders\n * dataNodes with hierarchy. Updates the dataNodes when new data is provided by the data source.\n */\nexport declare class CdkTree<T> implements AfterContentChecked, CollectionViewer, OnDestroy, OnInit {\n    private _differs;\n    private _changeDetectorRef;\n    /** Subject that emits when the component has been destroyed. */\n    private _onDestroy;\n    /** Differ used to find the changes in the data provided by the data source. */\n    private _dataDiffer;\n    /** Stores the node definition that does not have a when predicate. */\n    private _defaultNodeDef;\n    /** Data subscription */\n    private _dataSubscription;\n    /** Level of nodes */\n    private _levels;\n    /**\n     * Provides a stream containing the latest data array to render. Influenced by the tree's\n     * stream of view window (what dataNodes are currently on screen).\n     * Data source can be an observable of data array, or a data array to render.\n     */\n    dataSource: DataSource<T> | Observable<T[]> | T[];\n    private _dataSource;\n    /** The tree controller */\n    treeControl: TreeControl<T>;\n    /**\n     * Tracking function that will be used to check the differences in data changes. Used similarly\n     * to `ngFor` `trackBy` function. Optimize node operations by identifying a node based on its data\n     * relative to the function to know if a node should be added/removed/moved.\n     * Accepts a function that takes two parameters, `index` and `item`.\n     */\n    trackBy: TrackByFunction<T>;\n    _nodeOutlet: CdkTreeNodeOutlet;\n    /** The tree node template for the tree */\n    _nodeDefs: QueryList<CdkTreeNodeDef<T>>;\n    /**\n     * Stream containing the latest information on what rows are being displayed on screen.\n     * Can be used by the data source to as a heuristic of what data should be provided.\n     */\n    viewChange: BehaviorSubject<{\n        start: number;\n        end: number;\n    }>;\n    constructor(_differs: IterableDiffers, _changeDetectorRef: ChangeDetectorRef);\n    ngOnInit(): void;\n    ngOnDestroy(): void;\n    ngAfterContentChecked(): void;\n    /**\n     * Switch to the provided data source by resetting the data and unsubscribing from the current\n     * render change subscription if one exists. If the data source is null, interpret this by\n     * clearing the node outlet. Otherwise start listening for new data.\n     */\n    private _switchDataSource;\n    /** Set up a subscription for the data provided by the data source. */\n    private _observeRenderChanges;\n    /** Check for changes made in the data and render each change (node added/removed/moved). */\n    renderNodeChanges(data: T[] | ReadonlyArray<T>, dataDiffer?: IterableDiffer<T>, viewContainer?: ViewContainerRef, parentData?: T): void;\n    /**\n     * Finds the matching node definition that should be used for this node data. If there is only\n     * one node definition, it is returned. Otherwise, find the node definition that has a when\n     * predicate that returns true with the data. If none return true, return the default node\n     * definition.\n     */\n    _getNodeDef(data: T, i: number): CdkTreeNodeDef<T>;\n    /**\n     * Create the embedded view for the data node template and place it in the correct index location\n     * within the data node view container.\n     */\n    insertNode(nodeData: T, index: number, viewContainer?: ViewContainerRef, parentData?: T): void;\n}\n/**\n * Tree node for CdkTree. It contains the data in the tree node.\n */\nexport declare class CdkTreeNode<T> implements FocusableOption, OnDestroy {\n    protected _elementRef: ElementRef<HTMLElement>;\n    protected _tree: CdkTree<T>;\n    /**\n     * The most recently created `CdkTreeNode`. We save it in static variable so we can retrieve it\n     * in `CdkTree` and set the data to it.\n     */\n    static mostRecentTreeNode: CdkTreeNode<any> | null;\n    /** Subject that emits when the component has been destroyed. */\n    protected _destroyed: Subject<void>;\n    /** Emits when the node's data has changed. */\n    _dataChanges: Subject<void>;\n    /** The tree node's data. */\n    data: T;\n    protected _data: T;\n    readonly isExpanded: boolean;\n    readonly level: number;\n    /**\n     * The role of the node should be 'group' if it's an internal node,\n     * and 'treeitem' if it's a leaf node.\n     */\n    role: 'treeitem' | 'group';\n    constructor(_elementRef: ElementRef<HTMLElement>, _tree: CdkTree<T>);\n    ngOnDestroy(): void;\n    /** Focuses the menu item. Implements for FocusableOption. */\n    focus(): void;\n    protected _setRoleFromData(): void;\n    protected _setRoleFromChildren(children: T[]): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/typings.d.ts"
    ],
    "content": "declare var module: {id: string};\n"
  },
  {
    "paths": [
      "node_modules/@angular/cdk/version.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Version } from '@angular/core';\n/** Current version of the Angular Component Development Kit. */\nexport declare const VERSION: Version;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/autocomplete/autocomplete-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatAutocompleteModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/autocomplete/autocomplete-origin.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef } from '@angular/core';\n/**\n * Directive applied to an element to make it usable\n * as a connection point for an autocomplete panel.\n */\nexport declare class MatAutocompleteOrigin {\n    /** Reference to the element on which the directive is applied. */\n    elementRef: ElementRef<HTMLElement>;\n    constructor(\n    /** Reference to the element on which the directive is applied. */\n    elementRef: ElementRef<HTMLElement>);\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/autocomplete/autocomplete-trigger.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { AfterViewInit, ChangeDetectorRef, ElementRef, InjectionToken, NgZone, OnDestroy, ViewContainerRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { MatOption, MatOptionSelectionChange } from '@angular/material/core';\nimport { MatFormField } from '@angular/material/form-field';\nimport { Observable } from 'rxjs';\nimport { MatAutocomplete } from './autocomplete';\nimport { MatAutocompleteOrigin } from './autocomplete-origin';\n/**\n * The following style constants are necessary to save here in order\n * to properly calculate the scrollTop of the panel. Because we are not\n * actually focusing the active item, scroll must be handled manually.\n */\n/** The height of each autocomplete option. */\nexport declare const AUTOCOMPLETE_OPTION_HEIGHT = 48;\n/** The total height of the autocomplete panel. */\nexport declare const AUTOCOMPLETE_PANEL_HEIGHT = 256;\n/** Injection token that determines the scroll handling while the autocomplete panel is open. */\nexport declare const MAT_AUTOCOMPLETE_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;\n/** @docs-private */\nexport declare function MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY(overlay: Overlay): () => ScrollStrategy;\n/** @docs-private */\nexport declare const MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER: {\n    provide: InjectionToken<() => ScrollStrategy>;\n    deps: (typeof Overlay)[];\n    useFactory: typeof MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY;\n};\n/**\n * Provider that allows the autocomplete to register as a ControlValueAccessor.\n * @docs-private\n */\nexport declare const MAT_AUTOCOMPLETE_VALUE_ACCESSOR: any;\n/**\n * Creates an error to be thrown when attempting to use an autocomplete trigger without a panel.\n * @docs-private\n */\nexport declare function getMatAutocompleteMissingPanelError(): Error;\nexport declare class MatAutocompleteTrigger implements ControlValueAccessor, AfterViewInit, OnChanges, OnDestroy {\n    private _element;\n    private _overlay;\n    private _viewContainerRef;\n    private _zone;\n    private _changeDetectorRef;\n    private _dir;\n    private _formField;\n    private _document;\n    private _viewportRuler?;\n    private _overlayRef;\n    private _portal;\n    private _componentDestroyed;\n    private _autocompleteDisabled;\n    private _scrollStrategy;\n    /** Old value of the native input. Used to work around issues with the `input` event on IE. */\n    private _previousValue;\n    /** Strategy that is used to position the panel. */\n    private _positionStrategy;\n    /** Whether or not the label state is being overridden. */\n    private _manuallyFloatingLabel;\n    /** The subscription for closing actions (some are bound to document). */\n    private _closingActionsSubscription;\n    /** Subscription to viewport size changes. */\n    private _viewportSubscription;\n    /**\n     * Whether the autocomplete can open the next time it is focused. Used to prevent a focused,\n     * closed autocomplete from being reopened if the user switches to another browser tab and then\n     * comes back.\n     */\n    private _canOpenOnNextFocus;\n    /** Whether the element is inside of a ShadowRoot component. */\n    private _isInsideShadowRoot;\n    /** Stream of keyboard events that can close the panel. */\n    private readonly _closeKeyEventStream;\n    /**\n     * Event handler for when the window is blurred. Needs to be an\n     * arrow function in order to preserve the context.\n     */\n    private _windowBlurHandler;\n    /** `View -> model callback called when value changes` */\n    _onChange: (value: any) => void;\n    /** `View -> model callback called when autocomplete has been touched` */\n    _onTouched: () => void;\n    /** The autocomplete panel to be attached to this trigger. */\n    autocomplete: MatAutocomplete;\n    /**\n     * Position of the autocomplete panel relative to the trigger element. A position of `auto`\n     * will render the panel underneath the trigger if there is enough space for it to fit in\n     * the viewport, otherwise the panel will be shown above it. If the position is set to\n     * `above` or `below`, the panel will always be shown above or below the trigger. no matter\n     * whether it fits completely in the viewport.\n     */\n    position: 'auto' | 'above' | 'below';\n    /**\n     * Reference relative to which to position the autocomplete panel.\n     * Defaults to the autocomplete trigger element.\n     */\n    connectedTo: MatAutocompleteOrigin;\n    /**\n     * `autocomplete` attribute to be set on the input element.\n     * @docs-private\n     */\n    autocompleteAttribute: string;\n    /**\n     * Whether the autocomplete is disabled. When disabled, the element will\n     * act as a regular input and the user won't be able to open the panel.\n     */\n    autocompleteDisabled: boolean;\n    constructor(_element: ElementRef<HTMLInputElement>, _overlay: Overlay, _viewContainerRef: ViewContainerRef, _zone: NgZone, _changeDetectorRef: ChangeDetectorRef, scrollStrategy: any, _dir: Directionality, _formField: MatFormField, _document: any, _viewportRuler?: ViewportRuler | undefined);\n    ngAfterViewInit(): void;\n    ngOnChanges(changes: SimpleChanges): void;\n    ngOnDestroy(): void;\n    /** Whether or not the autocomplete panel is open. */\n    readonly panelOpen: boolean;\n    private _overlayAttached;\n    /** Opens the autocomplete suggestion panel. */\n    openPanel(): void;\n    /** Closes the autocomplete suggestion panel. */\n    closePanel(): void;\n    /**\n     * Updates the position of the autocomplete suggestion panel to ensure that it fits all options\n     * within the viewport.\n     */\n    updatePosition(): void;\n    /**\n     * A stream of actions that should close the autocomplete panel, including\n     * when an option is selected, on blur, and when TAB is pressed.\n     */\n    readonly panelClosingActions: Observable<MatOptionSelectionChange | null>;\n    /** Stream of autocomplete option selections. */\n    readonly optionSelections: Observable<MatOptionSelectionChange>;\n    /** The currently active option, coerced to MatOption type. */\n    readonly activeOption: MatOption | null;\n    /** Stream of clicks outside of the autocomplete panel. */\n    private _getOutsideClickStream;\n    writeValue(value: any): void;\n    registerOnChange(fn: (value: any) => {}): void;\n    registerOnTouched(fn: () => {}): void;\n    setDisabledState(isDisabled: boolean): void;\n    _handleKeydown(event: KeyboardEvent): void;\n    _handleInput(event: KeyboardEvent): void;\n    _handleFocus(): void;\n    /**\n     * In \"auto\" mode, the label will animate down as soon as focus is lost.\n     * This causes the value to jump when selecting an option with the mouse.\n     * This method manually floats the label until the panel can be closed.\n     * @param shouldAnimate Whether the label should be animated when it is floated.\n     */\n    private _floatLabel;\n    /** If the label has been manually elevated, return it to its normal state. */\n    private _resetLabel;\n    /**\n     * Given that we are not actually focusing active options, we must manually adjust scroll\n     * to reveal options below the fold. First, we find the offset of the option from the top\n     * of the panel. If that offset is below the fold, the new scrollTop will be the offset -\n     * the panel height + the option height, so the active option will be just visible at the\n     * bottom of the panel. If that offset is above the top of the visible panel, the new scrollTop\n     * will become the offset. If that offset is visible within the panel already, the scrollTop is\n     * not adjusted.\n     */\n    private _scrollToOption;\n    /**\n     * This method listens to a stream of panel closing actions and resets the\n     * stream every time the option list changes.\n     */\n    private _subscribeToClosingActions;\n    /** Destroys the autocomplete suggestion panel. */\n    private _destroyPanel;\n    private _setTriggerValue;\n    /**\n     * This method closes the panel, and if a value is specified, also sets the associated\n     * control to that value. It will also mark the control as dirty if this interaction\n     * stemmed from the user.\n     */\n    private _setValueAndClose;\n    /**\n     * Clear any previous selected option and emit a selection change event for this option\n     */\n    private _clearPreviousSelectedOption;\n    private _attachOverlay;\n    private _getOverlayConfig;\n    private _getOverlayPosition;\n    /** Sets the positions on a position strategy based on the directive's input state. */\n    private _setStrategyPositions;\n    private _getConnectedElement;\n    private _getPanelWidth;\n    /** Returns the width of the input element, so the panel width can match it. */\n    private _getHostWidth;\n    /**\n     * Resets the active item to -1 so arrow events will activate the\n     * correct options, or to 0 if the consumer opted into it.\n     */\n    private _resetActiveItem;\n    /** Determines whether the panel can be opened. */\n    private _canOpen;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/autocomplete/autocomplete.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, QueryList, TemplateRef } from '@angular/core';\nimport { CanDisableRipple, CanDisableRippleCtor, MatOptgroup, MatOption } from '@angular/material/core';\n/** Event object that is emitted when an autocomplete option is selected. */\nexport declare class MatAutocompleteSelectedEvent {\n    /** Reference to the autocomplete panel that emitted the event. */\n    source: MatAutocomplete;\n    /** Option that was selected. */\n    option: MatOption;\n    constructor(\n    /** Reference to the autocomplete panel that emitted the event. */\n    source: MatAutocomplete, \n    /** Option that was selected. */\n    option: MatOption);\n}\n/** @docs-private */\ndeclare class MatAutocompleteBase {\n}\ndeclare const _MatAutocompleteMixinBase: CanDisableRippleCtor & typeof MatAutocompleteBase;\n/** Default `mat-autocomplete` options that can be overridden. */\nexport interface MatAutocompleteDefaultOptions {\n    /** Whether the first option should be highlighted when an autocomplete panel is opened. */\n    autoActiveFirstOption?: boolean;\n}\n/** Injection token to be used to override the default options for `mat-autocomplete`. */\nexport declare const MAT_AUTOCOMPLETE_DEFAULT_OPTIONS: InjectionToken<MatAutocompleteDefaultOptions>;\n/** @docs-private */\nexport declare function MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY(): MatAutocompleteDefaultOptions;\nexport declare class MatAutocomplete extends _MatAutocompleteMixinBase implements AfterContentInit, CanDisableRipple {\n    private _changeDetectorRef;\n    private _elementRef;\n    /** Manages active item in option list based on key events. */\n    _keyManager: ActiveDescendantKeyManager<MatOption>;\n    /** Whether the autocomplete panel should be visible, depending on option length. */\n    showPanel: boolean;\n    /** Whether the autocomplete panel is open. */\n    readonly isOpen: boolean;\n    _isOpen: boolean;\n    /** @docs-private */\n    template: TemplateRef<any>;\n    /** Element for the panel containing the autocomplete options. */\n    panel: ElementRef;\n    /** @docs-private */\n    options: QueryList<MatOption>;\n    /** @docs-private */\n    optionGroups: QueryList<MatOptgroup>;\n    /** Function that maps an option's control value to its display value in the trigger. */\n    displayWith: ((value: any) => string) | null;\n    /**\n     * Whether the first option should be highlighted when the autocomplete panel is opened.\n     * Can be configured globally through the `MAT_AUTOCOMPLETE_DEFAULT_OPTIONS` token.\n     */\n    autoActiveFirstOption: boolean;\n    private _autoActiveFirstOption;\n    /**\n     * Specify the width of the autocomplete panel.  Can be any CSS sizing value, otherwise it will\n     * match the width of its host.\n     */\n    panelWidth: string | number;\n    /** Event that is emitted whenever an option from the list is selected. */\n    readonly optionSelected: EventEmitter<MatAutocompleteSelectedEvent>;\n    /** Event that is emitted when the autocomplete panel is opened. */\n    readonly opened: EventEmitter<void>;\n    /** Event that is emitted when the autocomplete panel is closed. */\n    readonly closed: EventEmitter<void>;\n    /**\n     * Takes classes set on the host mat-autocomplete element and applies them to the panel\n     * inside the overlay container to allow for easy styling.\n     */\n    classList: string;\n    _classList: {\n        [key: string]: boolean;\n    };\n    /** Unique ID to be used by autocomplete trigger's \"aria-owns\" property. */\n    id: string;\n    constructor(_changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef<HTMLElement>, defaults: MatAutocompleteDefaultOptions);\n    ngAfterContentInit(): void;\n    /**\n     * Sets the panel scrollTop. This allows us to manually scroll to display options\n     * above or below the fold, as they are not actually being focused when active.\n     */\n    _setScrollTop(scrollTop: number): void;\n    /** Returns the panel's scrollTop. */\n    _getScrollTop(): number;\n    /** Panel should hide itself when the option list is empty. */\n    _setVisibility(): void;\n    /** Emits the `select` event. */\n    _emitSelectEvent(option: MatOption): void;\n    /** Sets the autocomplete visibility classes on a classlist based on the panel is visible. */\n    private _setVisibilityClasses;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/autocomplete/index.d.ts",
      "node_modules/@angular/material/autocomplete/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/autocomplete/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './autocomplete';\nexport * from './autocomplete-module';\nexport * from './autocomplete-trigger';\nexport * from './autocomplete-origin';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/autocomplete/testing/autocomplete-harness-filters.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface AutocompleteHarnessFilters extends BaseHarnessFilters {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/autocomplete/testing/autocomplete-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate, TestElement } from '@angular/cdk/testing';\nimport { AutocompleteHarnessFilters } from './autocomplete-harness-filters';\nimport { MatAutocompleteOptionHarness, MatAutocompleteOptionGroupHarness } from './option-harness';\n/**\n * Harness for interacting with a standard mat-autocomplete in tests.\n * @dynamic\n */\nexport declare class MatAutocompleteHarness extends ComponentHarness {\n    private _documentRootLocator;\n    private _panel;\n    private _optionalPanel;\n    private _options;\n    private _groups;\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for an autocomplete with\n     * specific attributes.\n     * @param options Options for narrowing the search:\n     *   - `name` finds an autocomplete with a specific name.\n     * @return a `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: AutocompleteHarnessFilters): HarnessPredicate<MatAutocompleteHarness>;\n    getAttribute(attributeName: string): Promise<string | null>;\n    /** Gets a boolean promise indicating if the autocomplete input is disabled. */\n    isDisabled(): Promise<boolean>;\n    /** Gets a promise for the autocomplete's text. */\n    getText(): Promise<string>;\n    /** Focuses the input and returns a void promise that indicates when the action is complete. */\n    focus(): Promise<void>;\n    /** Blurs the input and returns a void promise that indicates when the action is complete. */\n    blur(): Promise<void>;\n    /** Enters text into the autocomplete. */\n    enterText(value: string): Promise<void>;\n    /** Gets the autocomplete panel. */\n    getPanel(): Promise<TestElement>;\n    /** Gets the options inside the autocomplete panel. */\n    getOptions(): Promise<MatAutocompleteOptionHarness[]>;\n    /** Gets the groups of options inside the panel. */\n    getOptionGroups(): Promise<MatAutocompleteOptionGroupHarness[]>;\n    /** Gets whether the autocomplete panel is visible. */\n    isPanelVisible(): Promise<boolean>;\n    /** Gets whether the autocomplete is open. */\n    isOpen(): Promise<boolean>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/autocomplete/testing/index.d.ts",
      "node_modules/@angular/material/autocomplete/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/autocomplete/testing/option-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate, BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface OptionHarnessFilters extends BaseHarnessFilters {\n    text?: string;\n}\nexport interface OptionGroupHarnessFilters extends BaseHarnessFilters {\n    labelText?: string;\n}\n/**\n * Harness for interacting with a the `mat-option` for a `mat-autocomplete` in tests.\n * @dynamic\n */\nexport declare class MatAutocompleteOptionHarness extends ComponentHarness {\n    static hostSelector: string;\n    static with(options?: OptionHarnessFilters): HarnessPredicate<MatAutocompleteOptionHarness>;\n    /** Clicks the option. */\n    click(): Promise<void>;\n    /** Gets a promise for the option's label text. */\n    getText(): Promise<string>;\n}\n/**\n * Harness for interacting with a the `mat-optgroup` for a `mat-autocomplete` in tests.\n * @dynamic\n */\nexport declare class MatAutocompleteOptionGroupHarness extends ComponentHarness {\n    private _label;\n    static hostSelector: string;\n    static with(options?: OptionGroupHarnessFilters): HarnessPredicate<MatAutocompleteOptionGroupHarness>;\n    /** Gets a promise for the option group's label text. */\n    getLabelText(): Promise<string>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/autocomplete/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './autocomplete-harness';\nexport * from './autocomplete-harness-filters';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/badge/badge-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatBadgeModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/badge/badge.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AriaDescriber } from '@angular/cdk/a11y';\nimport { ElementRef, NgZone, OnChanges, OnDestroy, Renderer2, SimpleChanges } from '@angular/core';\nimport { CanDisable, CanDisableCtor, ThemePalette } from '@angular/material/core';\n/** @docs-private */\ndeclare class MatBadgeBase {\n}\ndeclare const _MatBadgeMixinBase: CanDisableCtor & typeof MatBadgeBase;\nexport declare type MatBadgePosition = 'above after' | 'above before' | 'below before' | 'below after';\nexport declare type MatBadgeSize = 'small' | 'medium' | 'large';\n/** Directive to display a text badge. */\nexport declare class MatBadge extends _MatBadgeMixinBase implements OnDestroy, OnChanges, CanDisable {\n    private _ngZone;\n    private _elementRef;\n    private _ariaDescriber;\n    private _renderer;\n    private _animationMode?;\n    /** Whether the badge has any content. */\n    _hasContent: boolean;\n    /** The color of the badge. Can be `primary`, `accent`, or `warn`. */\n    color: ThemePalette;\n    private _color;\n    /** Whether the badge should overlap its contents or not */\n    overlap: boolean;\n    private _overlap;\n    /**\n     * Position the badge should reside.\n     * Accepts any combination of 'above'|'below' and 'before'|'after'\n     */\n    position: MatBadgePosition;\n    /** The content for the badge */\n    content: string;\n    /** Message used to describe the decorated element via aria-describedby */\n    description: string;\n    private _description;\n    /** Size of the badge. Can be 'small', 'medium', or 'large'. */\n    size: MatBadgeSize;\n    /** Whether the badge is hidden. */\n    hidden: boolean;\n    private _hidden;\n    /** Unique id for the badge */\n    _id: number;\n    private _badgeElement;\n    constructor(_ngZone: NgZone, _elementRef: ElementRef<HTMLElement>, _ariaDescriber: AriaDescriber, _renderer: Renderer2, _animationMode?: string | undefined);\n    /** Whether the badge is above the host or not */\n    isAbove(): boolean;\n    /** Whether the badge is after the host or not */\n    isAfter(): boolean;\n    ngOnChanges(changes: SimpleChanges): void;\n    ngOnDestroy(): void;\n    /**\n     * Gets the element into which the badge's content is being rendered.\n     * Undefined if the element hasn't been created (e.g. if the badge doesn't have content).\n     */\n    getBadgeElement(): HTMLElement | undefined;\n    /** Injects a span element into the DOM with the content. */\n    private _updateTextContent;\n    /** Creates the badge element */\n    private _createBadgeElement;\n    /** Sets the aria-label property on the element */\n    private _updateHostAriaDescription;\n    /** Adds css theme class given the color to the component host */\n    private _setColor;\n    /** Clears any existing badges that might be left over from server-side rendering. */\n    private _clearExistingBadges;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/badge/index.d.ts",
      "node_modules/@angular/material/badge/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/badge/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './badge-module';\nexport * from './badge';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/bottom-sheet/bottom-sheet-animations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationTriggerMetadata } from '@angular/animations';\n/** Animations used by the Material bottom sheet. */\nexport declare const matBottomSheetAnimations: {\n    readonly bottomSheetState: AnimationTriggerMetadata;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/bottom-sheet/bottom-sheet-config.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Direction } from '@angular/cdk/bidi';\nimport { ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken, ViewContainerRef } from '@angular/core';\n/** Injection token that can be used to access the data that was passed in to a bottom sheet. */\nexport declare const MAT_BOTTOM_SHEET_DATA: InjectionToken<any>;\n/**\n * Configuration used when opening a bottom sheet.\n */\nexport declare class MatBottomSheetConfig<D = any> {\n    /** The view container to place the overlay for the bottom sheet into. */\n    viewContainerRef?: ViewContainerRef;\n    /** Extra CSS classes to be added to the bottom sheet container. */\n    panelClass?: string | string[];\n    /** Text layout direction for the bottom sheet. */\n    direction?: Direction;\n    /** Data being injected into the child component. */\n    data?: D | null;\n    /** Whether the bottom sheet has a backdrop. */\n    hasBackdrop?: boolean;\n    /** Custom class for the backdrop. */\n    backdropClass?: string;\n    /** Whether the user can use escape or clicking outside to close the bottom sheet. */\n    disableClose?: boolean;\n    /** Aria label to assign to the bottom sheet element. */\n    ariaLabel?: string | null;\n    /**\n     * Whether the bottom sheet should close when the user goes backwards/forwards in history.\n     * Note that this usually doesn't include clicking on links (unless the user is using\n     * the `HashLocationStrategy`).\n     */\n    closeOnNavigation?: boolean;\n    /** Whether the bottom sheet should focus the first focusable element on open. */\n    autoFocus?: boolean;\n    /**\n     * Whether the bottom sheet should restore focus to the\n     * previously-focused element, after it's closed.\n     */\n    restoreFocus?: boolean;\n    /** Scroll strategy to be used for the bottom sheet. */\n    scrollStrategy?: ScrollStrategy;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/bottom-sheet/bottom-sheet-container.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentRef, EmbeddedViewRef, OnDestroy, ElementRef, ChangeDetectorRef, EventEmitter } from '@angular/core';\nimport { AnimationEvent } from '@angular/animations';\nimport { BasePortalOutlet, ComponentPortal, TemplatePortal, CdkPortalOutlet } from '@angular/cdk/portal';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { MatBottomSheetConfig } from './bottom-sheet-config';\nimport { FocusTrapFactory } from '@angular/cdk/a11y';\n/**\n * Internal component that wraps user-provided bottom sheet content.\n * @docs-private\n */\nexport declare class MatBottomSheetContainer extends BasePortalOutlet implements OnDestroy {\n    private _elementRef;\n    private _changeDetectorRef;\n    private _focusTrapFactory;\n    /** The bottom sheet configuration. */\n    bottomSheetConfig: MatBottomSheetConfig;\n    private _breakpointSubscription;\n    /** The portal outlet inside of this container into which the content will be loaded. */\n    _portalOutlet: CdkPortalOutlet;\n    /** The state of the bottom sheet animations. */\n    _animationState: 'void' | 'visible' | 'hidden';\n    /** Emits whenever the state of the animation changes. */\n    _animationStateChanged: EventEmitter<AnimationEvent>;\n    /** The class that traps and manages focus within the bottom sheet. */\n    private _focusTrap;\n    /** Element that was focused before the bottom sheet was opened. */\n    private _elementFocusedBeforeOpened;\n    /** Server-side rendering-compatible reference to the global document object. */\n    private _document;\n    /** Whether the component has been destroyed. */\n    private _destroyed;\n    constructor(_elementRef: ElementRef<HTMLElement>, _changeDetectorRef: ChangeDetectorRef, _focusTrapFactory: FocusTrapFactory, breakpointObserver: BreakpointObserver, document: any, \n    /** The bottom sheet configuration. */\n    bottomSheetConfig: MatBottomSheetConfig);\n    /** Attach a component portal as content to this bottom sheet container. */\n    attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n    /** Attach a template portal as content to this bottom sheet container. */\n    attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n    /** Begin animation of bottom sheet entrance into view. */\n    enter(): void;\n    /** Begin animation of the bottom sheet exiting from view. */\n    exit(): void;\n    ngOnDestroy(): void;\n    _onAnimationDone(event: AnimationEvent): void;\n    _onAnimationStart(event: AnimationEvent): void;\n    private _toggleClass;\n    private _validatePortalAttached;\n    private _setPanelClass;\n    /** Moves the focus inside the focus trap. */\n    private _trapFocus;\n    /** Restores focus to the element that was focused before the bottom sheet was opened. */\n    private _restoreFocus;\n    /** Saves a reference to the element that was focused before the bottom sheet was opened. */\n    private _savePreviouslyFocusedElement;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/bottom-sheet/bottom-sheet-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatBottomSheetModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/bottom-sheet/bottom-sheet-ref.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Location } from '@angular/common';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { Observable } from 'rxjs';\nimport { MatBottomSheetContainer } from './bottom-sheet-container';\n/**\n * Reference to a bottom sheet dispatched from the bottom sheet service.\n */\nexport declare class MatBottomSheetRef<T = any, R = any> {\n    private _overlayRef;\n    /** Instance of the component making up the content of the bottom sheet. */\n    instance: T;\n    /**\n     * Instance of the component into which the bottom sheet content is projected.\n     * @docs-private\n     */\n    containerInstance: MatBottomSheetContainer;\n    /** Whether the user is allowed to close the bottom sheet. */\n    disableClose: boolean | undefined;\n    /** Subject for notifying the user that the bottom sheet has been dismissed. */\n    private readonly _afterDismissed;\n    /** Subject for notifying the user that the bottom sheet has opened and appeared. */\n    private readonly _afterOpened;\n    /** Result to be passed down to the `afterDismissed` stream. */\n    private _result;\n    /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */\n    private _closeFallbackTimeout;\n    constructor(containerInstance: MatBottomSheetContainer, _overlayRef: OverlayRef, _location?: Location);\n    /**\n     * Dismisses the bottom sheet.\n     * @param result Data to be passed back to the bottom sheet opener.\n     */\n    dismiss(result?: R): void;\n    /** Gets an observable that is notified when the bottom sheet is finished closing. */\n    afterDismissed(): Observable<R | undefined>;\n    /** Gets an observable that is notified when the bottom sheet has opened and appeared. */\n    afterOpened(): Observable<void>;\n    /**\n     * Gets an observable that emits when the overlay's backdrop has been clicked.\n     */\n    backdropClick(): Observable<MouseEvent>;\n    /**\n     * Gets an observable that emits when keydown events are targeted on the overlay.\n     */\n    keydownEvents(): Observable<KeyboardEvent>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/bottom-sheet/bottom-sheet.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { Injector, TemplateRef, InjectionToken, OnDestroy } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { MatBottomSheetConfig } from './bottom-sheet-config';\nimport { MatBottomSheetRef } from './bottom-sheet-ref';\n/** Injection token that can be used to specify default bottom sheet options. */\nexport declare const MAT_BOTTOM_SHEET_DEFAULT_OPTIONS: InjectionToken<MatBottomSheetConfig<any>>;\n/**\n * Service to trigger Material Design bottom sheets.\n */\nexport declare class MatBottomSheet implements OnDestroy {\n    private _overlay;\n    private _injector;\n    private _parentBottomSheet;\n    private _location?;\n    private _defaultOptions?;\n    private _bottomSheetRefAtThisLevel;\n    /** Reference to the currently opened bottom sheet. */\n    _openedBottomSheetRef: MatBottomSheetRef<any> | null;\n    constructor(_overlay: Overlay, _injector: Injector, _parentBottomSheet: MatBottomSheet, _location?: Location | undefined, _defaultOptions?: MatBottomSheetConfig<any> | undefined);\n    open<T, D = any, R = any>(component: ComponentType<T>, config?: MatBottomSheetConfig<D>): MatBottomSheetRef<T, R>;\n    open<T, D = any, R = any>(template: TemplateRef<T>, config?: MatBottomSheetConfig<D>): MatBottomSheetRef<T, R>;\n    /**\n     * Dismisses the currently-visible bottom sheet.\n     */\n    dismiss(): void;\n    ngOnDestroy(): void;\n    /**\n     * Attaches the bottom sheet container component to the overlay.\n     */\n    private _attachContainer;\n    /**\n     * Creates a new overlay and places it in the correct location.\n     * @param config The user-specified bottom sheet config.\n     */\n    private _createOverlay;\n    /**\n     * Creates an injector to be used inside of a bottom sheet component.\n     * @param config Config that was used to create the bottom sheet.\n     * @param bottomSheetRef Reference to the bottom sheet.\n     */\n    private _createInjector;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/bottom-sheet/index.d.ts",
      "node_modules/@angular/material/bottom-sheet/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/bottom-sheet/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './bottom-sheet-module';\nexport * from './bottom-sheet';\nexport * from './bottom-sheet-config';\nexport * from './bottom-sheet-container';\nexport * from './bottom-sheet-animations';\nexport * from './bottom-sheet-ref';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/button/button-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './button';\nimport * as ɵngcc2 from '@angular/common';\nimport * as ɵngcc3 from '@angular/material/core';\nexport declare class MatButtonModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatButtonModule, [typeof ɵngcc1.MatButton, typeof ɵngcc1.MatAnchor], [typeof ɵngcc2.CommonModule, typeof ɵngcc3.MatRippleModule, typeof ɵngcc3.MatCommonModule], [typeof ɵngcc1.MatButton, typeof ɵngcc1.MatAnchor, typeof ɵngcc3.MatCommonModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatButtonModule>;\n}\n\n//# sourceMappingURL=button-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/button/button.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusMonitor, FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport { ElementRef, OnDestroy } from '@angular/core';\nimport { CanColor, CanDisable, CanDisableRipple, CanColorCtor, CanDisableCtor, CanDisableRippleCtor, MatRipple } from '@angular/material/core';\n/** @docs-private */\nimport * as ɵngcc0 from '@angular/core';\ndeclare class MatButtonBase {\n    _elementRef: ElementRef;\n    constructor(_elementRef: ElementRef);\n}\ndeclare const _MatButtonMixinBase: CanDisableRippleCtor & CanDisableCtor & CanColorCtor & typeof MatButtonBase;\n/**\n * Material design button.\n */\nexport declare class MatButton extends _MatButtonMixinBase implements OnDestroy, CanDisable, CanColor, CanDisableRipple, FocusableOption {\n    private _focusMonitor;\n    _animationMode: string;\n    /** Whether the button is round. */\n    readonly isRoundButton: boolean;\n    /** Whether the button is icon button. */\n    readonly isIconButton: boolean;\n    /** Reference to the MatRipple instance of the button. */\n    ripple: MatRipple;\n    constructor(elementRef: ElementRef, _focusMonitor: FocusMonitor, _animationMode: string);\n    ngOnDestroy(): void;\n    /** Focuses the button. */\n    focus(origin?: FocusOrigin, options?: FocusOptions): void;\n    _getHostElement(): any;\n    _isRippleDisabled(): boolean;\n    /** Gets whether the button has one of the given attributes. */\n    _hasHostAttributes(...attributes: string[]): boolean;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatButton>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatButton, \"button[mat-button], button[mat-raised-button], button[mat-icon-button],             button[mat-fab], button[mat-mini-fab], button[mat-stroked-button],             button[mat-flat-button]\", [\"matButton\"], { 'disabled': \"disabled\", 'disableRipple': \"disableRipple\", 'color': \"color\" }, {}, never>;\n}\n/**\n * Material design anchor button.\n */\nexport declare class MatAnchor extends MatButton {\n    /** Tabindex of the button. */\n    tabIndex: number;\n    constructor(focusMonitor: FocusMonitor, elementRef: ElementRef, animationMode: string);\n    _haltDisabledEvents(event: Event): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatAnchor>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatAnchor, \"a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab],             a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]\", [\"matButton\", \"matAnchor\"], { 'disabled': \"disabled\", 'disableRipple': \"disableRipple\", 'color': \"color\", 'tabIndex': \"tabIndex\" }, {}, never>;\n}\nexport {};\n\n//# sourceMappingURL=button.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/button/index.d.ts",
      "node_modules/@angular/material/button/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/button/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './button-module';\nexport * from './button';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/button/testing/button-harness-filters.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface ButtonHarnessFilters extends BaseHarnessFilters {\n    text?: string | RegExp;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/button/testing/button-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { ButtonHarnessFilters } from './button-harness-filters';\n/**\n * Harness for interacting with a standard mat-button in tests.\n * @dynamic\n */\nexport declare class MatButtonHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a button with specific attributes.\n     * @param options Options for narrowing the search:\n     *   - `selector` finds a button whose host element matches the given selector.\n     *   - `text` finds a button with specific text content.\n     * @return a `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: ButtonHarnessFilters): HarnessPredicate<MatButtonHarness>;\n    /** Clicks the button. */\n    click(): Promise<void>;\n    /** Gets a boolean promise indicating if the button is disabled. */\n    isDisabled(): Promise<boolean>;\n    /** Gets a promise for the button's label text. */\n    getText(): Promise<string>;\n    /** Focuses the button and returns a void promise that indicates when the action is complete. */\n    focus(): Promise<void>;\n    /** Blurs the button and returns a void promise that indicates when the action is complete. */\n    blur(): Promise<void>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/button/testing/index.d.ts",
      "node_modules/@angular/material/button/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/button/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './button-harness';\nexport * from './button-harness-filters';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/button-toggle/button-toggle-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatButtonToggleModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/button-toggle/button-toggle.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList, InjectionToken } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { CanDisableRipple, CanDisableRippleCtor } from '@angular/material/core';\n/** Acceptable types for a button toggle. */\nexport declare type ToggleType = 'checkbox' | 'radio';\n/** Possible appearance styles for the button toggle. */\nexport declare type MatButtonToggleAppearance = 'legacy' | 'standard';\n/**\n * Represents the default options for the button toggle that can be configured\n * using the `MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS` injection token.\n */\nexport interface MatButtonToggleDefaultOptions {\n    appearance?: MatButtonToggleAppearance;\n}\n/**\n * Injection token that can be used to configure the\n * default options for all button toggles within an app.\n */\nexport declare const MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS: InjectionToken<MatButtonToggleDefaultOptions>;\n/**\n * Provider Expression that allows mat-button-toggle-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport declare const MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any;\n/**\n * @deprecated Use `MatButtonToggleGroup` instead.\n * @breaking-change 8.0.0\n */\nexport declare class MatButtonToggleGroupMultiple {\n}\n/** Change event object emitted by MatButtonToggle. */\nexport declare class MatButtonToggleChange {\n    /** The MatButtonToggle that emits the event. */\n    source: MatButtonToggle;\n    /** The value assigned to the MatButtonToggle. */\n    value: any;\n    constructor(\n    /** The MatButtonToggle that emits the event. */\n    source: MatButtonToggle, \n    /** The value assigned to the MatButtonToggle. */\n    value: any);\n}\n/** Exclusive selection button toggle group that behaves like a radio-button group. */\nexport declare class MatButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {\n    private _changeDetector;\n    private _vertical;\n    private _multiple;\n    private _disabled;\n    private _selectionModel;\n    /**\n     * Reference to the raw value that the consumer tried to assign. The real\n     * value will exclude any values from this one that don't correspond to a\n     * toggle. Useful for the cases where the value is assigned before the toggles\n     * have been initialized or at the same that they're being swapped out.\n     */\n    private _rawValue;\n    /**\n     * The method to be called in order to update ngModel.\n     * Now `ngModel` binding is not supported in multiple selection mode.\n     */\n    _controlValueAccessorChangeFn: (value: any) => void;\n    /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n    _onTouched: () => any;\n    /** Child button toggle buttons. */\n    _buttonToggles: QueryList<MatButtonToggle>;\n    /** The appearance for all the buttons in the group. */\n    appearance: MatButtonToggleAppearance;\n    /** `name` attribute for the underlying `input` element. */\n    name: string;\n    private _name;\n    /** Whether the toggle group is vertical. */\n    vertical: boolean;\n    /** Value of the toggle group. */\n    value: any;\n    /**\n     * Event that emits whenever the value of the group changes.\n     * Used to facilitate two-way data binding.\n     * @docs-private\n     */\n    readonly valueChange: EventEmitter<any>;\n    /** Selected button toggles in the group. */\n    readonly selected: MatButtonToggle | MatButtonToggle[];\n    /** Whether multiple button toggles can be selected. */\n    multiple: boolean;\n    /** Whether multiple button toggle group is disabled. */\n    disabled: boolean;\n    /** Event emitted when the group's value changes. */\n    readonly change: EventEmitter<MatButtonToggleChange>;\n    constructor(_changeDetector: ChangeDetectorRef, defaultOptions?: MatButtonToggleDefaultOptions);\n    ngOnInit(): void;\n    ngAfterContentInit(): void;\n    /**\n     * Sets the model value. Implemented as part of ControlValueAccessor.\n     * @param value Value to be set to the model.\n     */\n    writeValue(value: any): void;\n    registerOnChange(fn: (value: any) => void): void;\n    registerOnTouched(fn: any): void;\n    setDisabledState(isDisabled: boolean): void;\n    /** Dispatch change event with current selection and group value. */\n    _emitChangeEvent(): void;\n    /**\n     * Syncs a button toggle's selected state with the model value.\n     * @param toggle Toggle to be synced.\n     * @param select Whether the toggle should be selected.\n     * @param isUserInput Whether the change was a result of a user interaction.\n     * @param deferEvents Whether to defer emitting the change events.\n     */\n    _syncButtonToggle(toggle: MatButtonToggle, select: boolean, isUserInput?: boolean, deferEvents?: boolean): void;\n    /** Checks whether a button toggle is selected. */\n    _isSelected(toggle: MatButtonToggle): boolean;\n    /** Determines whether a button toggle should be checked on init. */\n    _isPrechecked(toggle: MatButtonToggle): boolean;\n    /** Updates the selection state of the toggles in the group based on a value. */\n    private _setSelectionByValue;\n    /** Clears the selected toggles. */\n    private _clearSelection;\n    /** Selects a value if there's a toggle that corresponds to it. */\n    private _selectValue;\n    /** Syncs up the group's value with the model and emits the change event. */\n    private _updateModelValue;\n}\n/** @docs-private */\ndeclare class MatButtonToggleBase {\n}\ndeclare const _MatButtonToggleMixinBase: CanDisableRippleCtor & typeof MatButtonToggleBase;\n/** Single button inside of a toggle group. */\nexport declare class MatButtonToggle extends _MatButtonToggleMixinBase implements OnInit, CanDisableRipple, OnDestroy {\n    private _changeDetectorRef;\n    private _elementRef;\n    private _focusMonitor;\n    private _isSingleSelector;\n    private _checked;\n    /**\n     * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will\n     * take precedence so this may be omitted.\n     */\n    ariaLabel: string;\n    /**\n     * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n     */\n    ariaLabelledby: string | null;\n    /** Type of the button toggle. Either 'radio' or 'checkbox'. */\n    _type: ToggleType;\n    _buttonElement: ElementRef<HTMLButtonElement>;\n    /** The parent button toggle group (exclusive selection). Optional. */\n    buttonToggleGroup: MatButtonToggleGroup;\n    /** Unique ID for the underlying `button` element. */\n    readonly buttonId: string;\n    /** The unique ID for this button toggle. */\n    id: string;\n    /** HTML's 'name' attribute used to group radios for unique selection. */\n    name: string;\n    /** MatButtonToggleGroup reads this to assign its own value. */\n    value: any;\n    /** Tabindex for the toggle. */\n    tabIndex: number | null;\n    /** The appearance style of the button. */\n    appearance: MatButtonToggleAppearance;\n    private _appearance;\n    /** Whether the button is checked. */\n    checked: boolean;\n    /** Whether the button is disabled. */\n    disabled: boolean;\n    private _disabled;\n    /** Event emitted when the group value changes. */\n    readonly change: EventEmitter<MatButtonToggleChange>;\n    constructor(toggleGroup: MatButtonToggleGroup, _changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef<HTMLElement>, _focusMonitor: FocusMonitor, defaultTabIndex: string, defaultOptions?: MatButtonToggleDefaultOptions);\n    ngOnInit(): void;\n    ngOnDestroy(): void;\n    /** Focuses the button. */\n    focus(options?: FocusOptions): void;\n    /** Checks the button toggle due to an interaction with the underlying native button. */\n    _onButtonClick(): void;\n    /**\n     * Marks the button toggle as needing checking for change detection.\n     * This method is exposed because the parent button toggle group will directly\n     * update bound properties of the radio button.\n     */\n    _markForCheck(): void;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/button-toggle/index.d.ts",
      "node_modules/@angular/material/button-toggle/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/button-toggle/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './button-toggle';\nexport * from './button-toggle-module';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/card/card-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './card';\nimport * as ɵngcc2 from '@angular/material/core';\nexport declare class MatCardModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatCardModule, [typeof ɵngcc1.MatCard, typeof ɵngcc1.MatCardHeader, typeof ɵngcc1.MatCardTitleGroup, typeof ɵngcc1.MatCardContent, typeof ɵngcc1.MatCardTitle, typeof ɵngcc1.MatCardSubtitle, typeof ɵngcc1.MatCardActions, typeof ɵngcc1.MatCardFooter, typeof ɵngcc1.MatCardSmImage, typeof ɵngcc1.MatCardMdImage, typeof ɵngcc1.MatCardLgImage, typeof ɵngcc1.MatCardImage, typeof ɵngcc1.MatCardXlImage, typeof ɵngcc1.MatCardAvatar], [typeof ɵngcc2.MatCommonModule], [typeof ɵngcc1.MatCard, typeof ɵngcc1.MatCardHeader, typeof ɵngcc1.MatCardTitleGroup, typeof ɵngcc1.MatCardContent, typeof ɵngcc1.MatCardTitle, typeof ɵngcc1.MatCardSubtitle, typeof ɵngcc1.MatCardActions, typeof ɵngcc1.MatCardFooter, typeof ɵngcc1.MatCardSmImage, typeof ɵngcc1.MatCardMdImage, typeof ɵngcc1.MatCardLgImage, typeof ɵngcc1.MatCardImage, typeof ɵngcc1.MatCardXlImage, typeof ɵngcc1.MatCardAvatar, typeof ɵngcc2.MatCommonModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatCardModule>;\n}\n\n//# sourceMappingURL=card-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/card/card.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Content of a card, needed as it's used as a selector in the API.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatCardContent {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCardContent>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCardContent, \"mat-card-content\", never, {}, {}, never>;\n}\n/**\n * Title of a card, needed as it's used as a selector in the API.\n * @docs-private\n */\nexport declare class MatCardTitle {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCardTitle>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCardTitle, \"mat-card-title, [mat-card-title], [matCardTitle]\", never, {}, {}, never>;\n}\n/**\n * Sub-title of a card, needed as it's used as a selector in the API.\n * @docs-private\n */\nexport declare class MatCardSubtitle {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCardSubtitle>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCardSubtitle, \"mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]\", never, {}, {}, never>;\n}\n/**\n * Action section of a card, needed as it's used as a selector in the API.\n * @docs-private\n */\nexport declare class MatCardActions {\n    /** Position of the actions inside the card. */\n    align: 'start' | 'end';\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCardActions>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCardActions, \"mat-card-actions\", [\"matCardActions\"], { 'align': \"align\" }, {}, never>;\n}\n/**\n * Footer of a card, needed as it's used as a selector in the API.\n * @docs-private\n */\nexport declare class MatCardFooter {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCardFooter>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCardFooter, \"mat-card-footer\", never, {}, {}, never>;\n}\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * @docs-private\n */\nexport declare class MatCardImage {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCardImage>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCardImage, \"[mat-card-image], [matCardImage]\", never, {}, {}, never>;\n}\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * @docs-private\n */\nexport declare class MatCardSmImage {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCardSmImage>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCardSmImage, \"[mat-card-sm-image], [matCardImageSmall]\", never, {}, {}, never>;\n}\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * @docs-private\n */\nexport declare class MatCardMdImage {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCardMdImage>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCardMdImage, \"[mat-card-md-image], [matCardImageMedium]\", never, {}, {}, never>;\n}\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * @docs-private\n */\nexport declare class MatCardLgImage {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCardLgImage>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCardLgImage, \"[mat-card-lg-image], [matCardImageLarge]\", never, {}, {}, never>;\n}\n/**\n * Large image used in a card, needed to add the mat- CSS styling.\n * @docs-private\n */\nexport declare class MatCardXlImage {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCardXlImage>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCardXlImage, \"[mat-card-xl-image], [matCardImageXLarge]\", never, {}, {}, never>;\n}\n/**\n * Avatar image used in a card, needed to add the mat- CSS styling.\n * @docs-private\n */\nexport declare class MatCardAvatar {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCardAvatar>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCardAvatar, \"[mat-card-avatar], [matCardAvatar]\", never, {}, {}, never>;\n}\n/**\n * A basic content container component that adds the styles of a Material design card.\n *\n * While this component can be used alone, it also provides a number\n * of preset styles for common card sections, including:\n * - mat-card-title\n * - mat-card-subtitle\n * - mat-card-content\n * - mat-card-actions\n * - mat-card-footer\n */\nexport declare class MatCard {\n    _animationMode?: string | undefined;\n    constructor(_animationMode?: string | undefined);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCard>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatCard, \"mat-card\", [\"matCard\"], {}, {}, never>;\n}\n/**\n * Component intended to be used within the `<mat-card>` component. It adds styles for a\n * preset header section (i.e. a title, subtitle, and avatar layout).\n * @docs-private\n */\nexport declare class MatCardHeader {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCardHeader>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatCardHeader, \"mat-card-header\", never, {}, {}, never>;\n}\n/**\n * Component intended to be used within the `<mat-card>` component. It adds styles for a preset\n * layout that groups an image with a title section.\n * @docs-private\n */\nexport declare class MatCardTitleGroup {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCardTitleGroup>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatCardTitleGroup, \"mat-card-title-group\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=card.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/card/index.d.ts",
      "node_modules/@angular/material/card/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/card/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './card';\nexport * from './card-module';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/checkbox/checkbox-config.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\n/**\n * Checkbox click action when user click on input element.\n * noop: Do not toggle checked or indeterminate.\n * check: Only toggle checked status, ignore indeterminate.\n * check-indeterminate: Toggle checked status, set indeterminate to false. Default behavior.\n * undefined: Same as `check-indeterminate`.\n */\nexport declare type MatCheckboxClickAction = 'noop' | 'check' | 'check-indeterminate' | undefined;\n/**\n * Injection token that can be used to specify the checkbox click behavior.\n */\nexport declare const MAT_CHECKBOX_CLICK_ACTION: InjectionToken<MatCheckboxClickAction>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/checkbox/checkbox-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** This module is used by both original and MDC-based checkbox implementations. */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './checkbox-required-validator';\nimport * as ɵngcc2 from './checkbox';\nimport * as ɵngcc3 from '@angular/common';\nimport * as ɵngcc4 from '@angular/material/core';\nimport * as ɵngcc5 from '@angular/cdk/observers';\nexport declare class _MatCheckboxRequiredValidatorModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<_MatCheckboxRequiredValidatorModule, [typeof ɵngcc1.MatCheckboxRequiredValidator], never, [typeof ɵngcc1.MatCheckboxRequiredValidator]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<_MatCheckboxRequiredValidatorModule>;\n}\nexport declare class MatCheckboxModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatCheckboxModule, [typeof ɵngcc2.MatCheckbox], [typeof ɵngcc3.CommonModule, typeof ɵngcc4.MatRippleModule, typeof ɵngcc4.MatCommonModule, typeof ɵngcc5.ObserversModule, typeof _MatCheckboxRequiredValidatorModule], [typeof ɵngcc2.MatCheckbox, typeof ɵngcc4.MatCommonModule, typeof _MatCheckboxRequiredValidatorModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatCheckboxModule>;\n}\n\n//# sourceMappingURL=checkbox-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/checkbox/checkbox-required-validator.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Provider } from '@angular/core';\nimport { CheckboxRequiredValidator } from '@angular/forms';\nimport * as ɵngcc0 from '@angular/core';\nexport declare const MAT_CHECKBOX_REQUIRED_VALIDATOR: Provider;\n/**\n * Validator for Material checkbox's required attribute in template-driven checkbox.\n * Current CheckboxRequiredValidator only work with `input type=checkbox` and does not\n * work with `mat-checkbox`.\n */\nexport declare class MatCheckboxRequiredValidator extends CheckboxRequiredValidator {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCheckboxRequiredValidator>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCheckboxRequiredValidator, \"mat-checkbox[required][formControlName],             mat-checkbox[required][formControl], mat-checkbox[required][ngModel]\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=checkbox-required-validator.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/checkbox/checkbox.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusMonitor, FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, AfterViewChecked } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { CanColor, CanColorCtor, CanDisable, CanDisableCtor, CanDisableRipple, CanDisableRippleCtor, HasTabIndex, HasTabIndexCtor, MatRipple } from '@angular/material/core';\nimport { MatCheckboxClickAction } from './checkbox-config';\n/**\n * Provider Expression that allows mat-checkbox to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare const MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR: any;\n/**\n * Represents the different states that require custom transitions between them.\n * @docs-private\n */\nexport declare enum TransitionCheckState {\n    /** The initial state of the component before any user interaction. */\n    Init = 0,\n    /** The state representing the component when it's becoming checked. */\n    Checked = 1,\n    /** The state representing the component when it's becoming unchecked. */\n    Unchecked = 2,\n    /** The state representing the component when it's becoming indeterminate. */\n    Indeterminate = 3\n}\n/** Change event object emitted by MatCheckbox. */\nexport declare class MatCheckboxChange {\n    /** The source MatCheckbox of the event. */\n    source: MatCheckbox;\n    /** The new `checked` value of the checkbox. */\n    checked: boolean;\n}\n/** @docs-private */\ndeclare class MatCheckboxBase {\n    _elementRef: ElementRef;\n    constructor(_elementRef: ElementRef);\n}\ndeclare const _MatCheckboxMixinBase: HasTabIndexCtor & CanColorCtor & CanDisableRippleCtor & CanDisableCtor & typeof MatCheckboxBase;\n/**\n * A material design checkbox component. Supports all of the functionality of an HTML5 checkbox,\n * and exposes a similar API. A MatCheckbox can be either checked, unchecked, indeterminate, or\n * disabled. Note that all additional accessibility attributes are taken care of by the component,\n * so there is no need to provide them yourself. However, if you want to omit a label and still\n * have the checkbox be accessible, you may supply an [aria-label] input.\n * See: https://material.io/design/components/selection-controls.html\n */\nexport declare class MatCheckbox extends _MatCheckboxMixinBase implements ControlValueAccessor, AfterViewChecked, OnDestroy, CanColor, CanDisable, HasTabIndex, CanDisableRipple, FocusableOption {\n    private _changeDetectorRef;\n    private _focusMonitor;\n    private _ngZone;\n    private _clickAction;\n    _animationMode?: string | undefined;\n    /**\n     * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will\n     * take precedence so this may be omitted.\n     */\n    ariaLabel: string;\n    /**\n     * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n     */\n    ariaLabelledby: string | null;\n    private _uniqueId;\n    /** A unique id for the checkbox input. If none is supplied, it will be auto-generated. */\n    id: string;\n    /** Returns the unique id for the visual hidden input. */\n    readonly inputId: string;\n    /** Whether the checkbox is required. */\n    required: boolean;\n    private _required;\n    /** Whether the label should appear after or before the checkbox. Defaults to 'after' */\n    labelPosition: 'before' | 'after';\n    /** Name value will be applied to the input element if present */\n    name: string | null;\n    /** Event emitted when the checkbox's `checked` value changes. */\n    readonly change: EventEmitter<MatCheckboxChange>;\n    /** Event emitted when the checkbox's `indeterminate` value changes. */\n    readonly indeterminateChange: EventEmitter<boolean>;\n    /** The value attribute of the native input element */\n    value: string;\n    /** The native `<input type=\"checkbox\">` element */\n    _inputElement: ElementRef<HTMLInputElement>;\n    /** Reference to the ripple instance of the checkbox. */\n    ripple: MatRipple;\n    /**\n     * Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor.\n     * @docs-private\n     */\n    _onTouched: () => any;\n    private _currentAnimationClass;\n    private _currentCheckState;\n    private _controlValueAccessorChangeFn;\n    constructor(elementRef: ElementRef<HTMLElement>, _changeDetectorRef: ChangeDetectorRef, _focusMonitor: FocusMonitor, _ngZone: NgZone, tabIndex: string, _clickAction: MatCheckboxClickAction, _animationMode?: string | undefined);\n    ngAfterViewChecked(): void;\n    ngOnDestroy(): void;\n    /**\n     * Whether the checkbox is checked.\n     */\n    checked: boolean;\n    private _checked;\n    /**\n     * Whether the checkbox is disabled. This fully overrides the implementation provided by\n     * mixinDisabled, but the mixin is still required because mixinTabIndex requires it.\n     */\n    disabled: any;\n    private _disabled;\n    /**\n     * Whether the checkbox is indeterminate. This is also known as \"mixed\" mode and can be used to\n     * represent a checkbox with three states, e.g. a checkbox that represents a nested list of\n     * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately\n     * set to false.\n     */\n    indeterminate: boolean;\n    private _indeterminate;\n    _isRippleDisabled(): any;\n    /** Method being called whenever the label text changes. */\n    _onLabelTextChange(): void;\n    writeValue(value: any): void;\n    registerOnChange(fn: (value: any) => void): void;\n    registerOnTouched(fn: any): void;\n    setDisabledState(isDisabled: boolean): void;\n    _getAriaChecked(): 'true' | 'false' | 'mixed';\n    private _transitionCheckState;\n    private _emitChangeEvent;\n    /** Toggles the `checked` state of the checkbox. */\n    toggle(): void;\n    /**\n     * Event handler for checkbox input element.\n     * Toggles checked state if element is not disabled.\n     * Do not toggle on (change) event since IE doesn't fire change event when\n     *   indeterminate checkbox is clicked.\n     * @param event\n     */\n    _onInputClick(event: Event): void;\n    /** Focuses the checkbox. */\n    focus(origin?: FocusOrigin, options?: FocusOptions): void;\n    _onInteractionEvent(event: Event): void;\n    private _getAnimationClassForCheckStateTransition;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCheckbox>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatCheckbox, \"mat-checkbox\", [\"matCheckbox\"], { 'disableRipple': \"disableRipple\", 'color': \"color\", 'tabIndex': \"tabIndex\", 'ariaLabel': \"aria-label\", 'ariaLabelledby': \"aria-labelledby\", 'id': \"id\", 'labelPosition': \"labelPosition\", 'name': \"name\", 'required': \"required\", 'checked': \"checked\", 'disabled': \"disabled\", 'indeterminate': \"indeterminate\", 'value': \"value\" }, { 'change': \"change\", 'indeterminateChange': \"indeterminateChange\" }, never>;\n}\nexport {};\n\n//# sourceMappingURL=checkbox.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/checkbox/index.d.ts",
      "node_modules/@angular/material/checkbox/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/checkbox/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './checkbox';\nexport * from './checkbox-config';\nexport * from './checkbox-module';\nexport * from './checkbox-required-validator';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/checkbox/testing/checkbox-harness-filters.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface CheckboxHarnessFilters extends BaseHarnessFilters {\n    label?: string | RegExp;\n    name?: string;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/checkbox/testing/checkbox-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { CheckboxHarnessFilters } from './checkbox-harness-filters';\n/**\n * Harness for interacting with a standard mat-checkbox in tests.\n * @dynamic\n */\nexport declare class MatCheckboxHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a checkbox with specific attributes.\n     * @param options Options for narrowing the search:\n     *   - `selector` finds a checkbox whose host element matches the given selector.\n     *   - `label` finds a checkbox with specific label text.\n     *   - `name` finds a checkbox with specific name.\n     * @return a `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: CheckboxHarnessFilters): HarnessPredicate<MatCheckboxHarness>;\n    private _label;\n    private _input;\n    private _inputContainer;\n    /** Gets a boolean promise indicating if the checkbox is checked. */\n    isChecked(): Promise<boolean>;\n    /** Gets a boolean promise indicating if the checkbox is in an indeterminate state. */\n    isIndeterminate(): Promise<boolean>;\n    /** Gets a boolean promise indicating if the checkbox is disabled. */\n    isDisabled(): Promise<boolean>;\n    /** Gets a boolean promise indicating if the checkbox is required. */\n    isRequired(): Promise<boolean>;\n    /** Gets a boolean promise indicating if the checkbox is valid. */\n    isValid(): Promise<boolean>;\n    /** Gets a promise for the checkbox's name. */\n    getName(): Promise<string | null>;\n    /** Gets a promise for the checkbox's value. */\n    getValue(): Promise<string | null>;\n    /** Gets a promise for the checkbox's aria-label. */\n    getAriaLabel(): Promise<string | null>;\n    /** Gets a promise for the checkbox's aria-labelledby. */\n    getAriaLabelledby(): Promise<string | null>;\n    /** Gets a promise for the checkbox's label text. */\n    getLabelText(): Promise<string>;\n    /** Focuses the checkbox and returns a void promise that indicates when the action is complete. */\n    focus(): Promise<void>;\n    /** Blurs the checkbox and returns a void promise that indicates when the action is complete. */\n    blur(): Promise<void>;\n    /**\n     * Toggle the checked state of the checkbox and returns a void promise that indicates when the\n     * action is complete.\n     *\n     * Note: This attempts to toggle the checkbox as a user would, by clicking it. Therefore if you\n     * are using `MAT_CHECKBOX_CLICK_ACTION` to change the behavior on click, calling this method\n     * might not have the expected result.\n     */\n    toggle(): Promise<void>;\n    /**\n     * Puts the checkbox in a checked state by toggling it if it is currently unchecked, or doing\n     * nothing if it is already checked. Returns a void promise that indicates when the action is\n     * complete.\n     *\n     * Note: This attempts to check the checkbox as a user would, by clicking it. Therefore if you\n     * are using `MAT_CHECKBOX_CLICK_ACTION` to change the behavior on click, calling this method\n     * might not have the expected result.\n     */\n    check(): Promise<void>;\n    /**\n     * Puts the checkbox in an unchecked state by toggling it if it is currently checked, or doing\n     * nothing if it is already unchecked. Returns a void promise that indicates when the action is\n     * complete.\n     *\n     * Note: This attempts to uncheck the checkbox as a user would, by clicking it. Therefore if you\n     * are using `MAT_CHECKBOX_CLICK_ACTION` to change the behavior on click, calling this method\n     * might not have the expected result.\n     */\n    uncheck(): Promise<void>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/checkbox/testing/index.d.ts",
      "node_modules/@angular/material/checkbox/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/checkbox/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './checkbox-harness';\nexport * from './checkbox-harness-filters';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/chips/chip-default-options.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\n/** Default options, for the chips module, that can be overridden. */\nexport interface MatChipsDefaultOptions {\n    /** The list of key codes that will trigger a chipEnd event. */\n    separatorKeyCodes: number[] | Set<number>;\n}\n/** Injection token to be used to override the default options for the chips module. */\nexport declare const MAT_CHIPS_DEFAULT_OPTIONS: InjectionToken<MatChipsDefaultOptions>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/chips/chip-input.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, EventEmitter, OnChanges } from '@angular/core';\nimport { MatChipsDefaultOptions } from './chip-default-options';\nimport { MatChipList } from './chip-list';\nimport { MatChipTextControl } from './chip-text-control';\n/** Represents an input event on a `matChipInput`. */\nexport interface MatChipInputEvent {\n    /** The native `<input>` element that the event is being fired for. */\n    input: HTMLInputElement;\n    /** The value of the input. */\n    value: string;\n}\n/**\n * Directive that adds chip-specific behaviors to an input element inside `<mat-form-field>`.\n * May be placed inside or outside of an `<mat-chip-list>`.\n */\nexport declare class MatChipInput implements MatChipTextControl, OnChanges {\n    protected _elementRef: ElementRef<HTMLInputElement>;\n    private _defaultOptions;\n    /** Whether the control is focused. */\n    focused: boolean;\n    _chipList: MatChipList;\n    /** Register input for chip list */\n    chipList: MatChipList;\n    /**\n     * Whether or not the chipEnd event will be emitted when the input is blurred.\n     */\n    addOnBlur: boolean;\n    _addOnBlur: boolean;\n    /**\n     * The list of key codes that will trigger a chipEnd event.\n     *\n     * Defaults to `[ENTER]`.\n     */\n    separatorKeyCodes: number[] | Set<number>;\n    /** Emitted when a chip is to be added. */\n    chipEnd: EventEmitter<MatChipInputEvent>;\n    /** The input's placeholder text. */\n    placeholder: string;\n    /** Unique id for the input. */\n    id: string;\n    /** Whether the input is disabled. */\n    disabled: boolean;\n    private _disabled;\n    /** Whether the input is empty. */\n    readonly empty: boolean;\n    /** The native input element to which this directive is attached. */\n    protected _inputElement: HTMLInputElement;\n    constructor(_elementRef: ElementRef<HTMLInputElement>, _defaultOptions: MatChipsDefaultOptions);\n    ngOnChanges(): void;\n    /** Utility method to make host definition/tests more clear. */\n    _keydown(event?: KeyboardEvent): void;\n    /** Checks to see if the blur should emit the (chipEnd) event. */\n    _blur(): void;\n    _focus(): void;\n    /** Checks to see if the (chipEnd) event needs to be emitted. */\n    _emitChipEnd(event?: KeyboardEvent): void;\n    _onInput(): void;\n    /** Focuses the input. */\n    focus(options?: FocusOptions): void;\n    /** Checks whether a keycode is one of the configured separators. */\n    private _isSeparatorKey;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/chips/chip-list.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { AfterContentInit, ChangeDetectorRef, DoCheck, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { CanUpdateErrorState, CanUpdateErrorStateCtor, ErrorStateMatcher } from '@angular/material/core';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { Observable } from 'rxjs';\nimport { MatChip, MatChipEvent, MatChipSelectionChange } from './chip';\nimport { MatChipTextControl } from './chip-text-control';\n/** @docs-private */\ndeclare class MatChipListBase {\n    _defaultErrorStateMatcher: ErrorStateMatcher;\n    _parentForm: NgForm;\n    _parentFormGroup: FormGroupDirective;\n    /** @docs-private */\n    ngControl: NgControl;\n    constructor(_defaultErrorStateMatcher: ErrorStateMatcher, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, \n    /** @docs-private */\n    ngControl: NgControl);\n}\ndeclare const _MatChipListMixinBase: CanUpdateErrorStateCtor & typeof MatChipListBase;\n/** Change event object that is emitted when the chip list value has changed. */\nexport declare class MatChipListChange {\n    /** Chip list that emitted the event. */\n    source: MatChipList;\n    /** Value of the chip list when the event was emitted. */\n    value: any;\n    constructor(\n    /** Chip list that emitted the event. */\n    source: MatChipList, \n    /** Value of the chip list when the event was emitted. */\n    value: any);\n}\n/**\n * A material design chips component (named ChipList for its similarity to the List component).\n */\nexport declare class MatChipList extends _MatChipListMixinBase implements MatFormFieldControl<any>, ControlValueAccessor, AfterContentInit, DoCheck, OnInit, OnDestroy, CanUpdateErrorState {\n    protected _elementRef: ElementRef<HTMLElement>;\n    private _changeDetectorRef;\n    private _dir;\n    /** @docs-private */\n    ngControl: NgControl;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    readonly controlType: string;\n    /**\n     * When a chip is destroyed, we store the index of the destroyed chip until the chips\n     * query list notifies about the update. This is necessary because we cannot determine an\n     * appropriate chip that should receive focus until the array of chips updated completely.\n     */\n    private _lastDestroyedChipIndex;\n    /** Subject that emits when the component has been destroyed. */\n    private _destroyed;\n    /** Subscription to focus changes in the chips. */\n    private _chipFocusSubscription;\n    /** Subscription to blur changes in the chips. */\n    private _chipBlurSubscription;\n    /** Subscription to selection changes in chips. */\n    private _chipSelectionSubscription;\n    /** Subscription to remove changes in chips. */\n    private _chipRemoveSubscription;\n    /** The chip input to add more chips */\n    protected _chipInput: MatChipTextControl;\n    /** Uid of the chip list */\n    _uid: string;\n    /** The aria-describedby attribute on the chip list for improved a11y. */\n    _ariaDescribedby: string;\n    /** Tab index for the chip list. */\n    _tabIndex: number;\n    /**\n     * User defined tab index.\n     * When it is not null, use user defined tab index. Otherwise use _tabIndex\n     */\n    _userTabIndex: number | null;\n    /** The FocusKeyManager which handles focus. */\n    _keyManager: FocusKeyManager<MatChip>;\n    /** Function when touched */\n    _onTouched: () => void;\n    /** Function when changed */\n    _onChange: (value: any) => void;\n    _selectionModel: SelectionModel<MatChip>;\n    /** The array of selected chips inside chip list. */\n    readonly selected: MatChip[] | MatChip;\n    /** The ARIA role applied to the chip list. */\n    readonly role: string | null;\n    /** An object used to control when error messages are shown. */\n    errorStateMatcher: ErrorStateMatcher;\n    /** Whether the user should be allowed to select multiple chips. */\n    multiple: boolean;\n    private _multiple;\n    /**\n     * A function to compare the option values with the selected values. The first argument\n     * is a value from an option. The second is a value from the selection. A boolean\n     * should be returned.\n     */\n    compareWith: (o1: any, o2: any) => boolean;\n    private _compareWith;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    value: any;\n    protected _value: any;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    readonly id: string;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    required: boolean;\n    protected _required: boolean;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    placeholder: string;\n    protected _placeholder: string;\n    /** Whether any chips or the matChipInput inside of this chip-list has focus. */\n    readonly focused: boolean;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    readonly empty: boolean;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    readonly shouldLabelFloat: boolean;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    disabled: boolean;\n    protected _disabled: boolean;\n    /** Orientation of the chip list. */\n    ariaOrientation: 'horizontal' | 'vertical';\n    /**\n     * Whether or not this chip list is selectable. When a chip list is not selectable,\n     * the selected states for all the chips inside the chip list are always ignored.\n     */\n    selectable: boolean;\n    protected _selectable: boolean;\n    tabIndex: number;\n    /** Combined stream of all of the child chips' selection change events. */\n    readonly chipSelectionChanges: Observable<MatChipSelectionChange>;\n    /** Combined stream of all of the child chips' focus change events. */\n    readonly chipFocusChanges: Observable<MatChipEvent>;\n    /** Combined stream of all of the child chips' blur change events. */\n    readonly chipBlurChanges: Observable<MatChipEvent>;\n    /** Combined stream of all of the child chips' remove change events. */\n    readonly chipRemoveChanges: Observable<MatChipEvent>;\n    /** Event emitted when the selected chip list value has been changed by the user. */\n    readonly change: EventEmitter<MatChipListChange>;\n    /**\n     * Event that emits whenever the raw value of the chip-list changes. This is here primarily\n     * to facilitate the two-way binding for the `value` input.\n     * @docs-private\n     */\n    readonly valueChange: EventEmitter<any>;\n    /** The chip components contained within this chip list. */\n    chips: QueryList<MatChip>;\n    constructor(_elementRef: ElementRef<HTMLElement>, _changeDetectorRef: ChangeDetectorRef, _dir: Directionality, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, _defaultErrorStateMatcher: ErrorStateMatcher, \n    /** @docs-private */\n    ngControl: NgControl);\n    ngAfterContentInit(): void;\n    ngOnInit(): void;\n    ngDoCheck(): void;\n    ngOnDestroy(): void;\n    /** Associates an HTML input element with this chip list. */\n    registerInput(inputElement: MatChipTextControl): void;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    setDescribedByIds(ids: string[]): void;\n    writeValue(value: any): void;\n    registerOnChange(fn: (value: any) => void): void;\n    registerOnTouched(fn: () => void): void;\n    setDisabledState(isDisabled: boolean): void;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    onContainerClick(event: MouseEvent): void;\n    /**\n     * Focuses the first non-disabled chip in this chip list, or the associated input when there\n     * are no eligible chips.\n     */\n    focus(options?: FocusOptions): void;\n    /** Attempt to focus an input if we have one. */\n    _focusInput(options?: FocusOptions): void;\n    /**\n     * Pass events to the keyboard manager. Available here for tests.\n     */\n    _keydown(event: KeyboardEvent): void;\n    /**\n     * Check the tab index as you should not be allowed to focus an empty list.\n     */\n    protected _updateTabIndex(): void;\n    /**\n     * If the amount of chips changed, we need to update the\n     * key manager state and focus the next closest chip.\n     */\n    protected _updateFocusForDestroyedChips(): void;\n    /**\n     * Utility to ensure all indexes are valid.\n     *\n     * @param index The index to be checked.\n     * @returns True if the index is valid for our list of chips.\n     */\n    private _isValidIndex;\n    private _isInputEmpty;\n    _setSelectionByValue(value: any, isUserInput?: boolean): void;\n    /**\n     * Finds and selects the chip based on its value.\n     * @returns Chip that has the corresponding value.\n     */\n    private _selectValue;\n    private _initializeSelection;\n    /**\n     * Deselects every chip in the list.\n     * @param skip Chip that should not be deselected.\n     */\n    private _clearSelection;\n    /**\n     * Sorts the model values, ensuring that they keep the same\n     * order that they have in the panel.\n     */\n    private _sortValues;\n    /** Emits change event to set the model value. */\n    private _propagateChanges;\n    /** When blurred, mark the field as touched when focus moved outside the chip list. */\n    _blur(): void;\n    /** Mark the field as touched */\n    _markAsTouched(): void;\n    /**\n     * Removes the `tabindex` from the chip list and resets it back afterwards, allowing the\n     * user to tab out of it. This prevents the list from capturing focus and redirecting\n     * it back to the first chip, creating a focus trap, if it user tries to tab away.\n     */\n    _allowFocusEscape(): void;\n    private _resetChips;\n    private _dropSubscriptions;\n    /** Listens to user-generated selection events on each chip. */\n    private _listenToChipsSelection;\n    /** Listens to user-generated selection events on each chip. */\n    private _listenToChipsFocus;\n    private _listenToChipsRemoved;\n    /** Checks whether an event comes from inside a chip element. */\n    private _originatesFromChip;\n    /** Checks whether any of the chips is focused. */\n    private _hasFocusedChip;\n    /** Syncs the list's state with the individual chips. */\n    private _syncChipsState;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/chips/chip-text-control.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Interface for a text control that is used to drive interaction with a mat-chip-list. */\nexport interface MatChipTextControl {\n    /** Unique identifier for the text control. */\n    id: string;\n    /** The text control's placeholder text. */\n    placeholder: string;\n    /** Whether the text control has browser focus. */\n    focused: boolean;\n    /** Whether the text control is empty. */\n    empty: boolean;\n    /** Focuses the text control. */\n    focus(options?: FocusOptions): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/chips/chip.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\nimport { ElementRef, EventEmitter, NgZone, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { CanColor, CanColorCtor, CanDisable, CanDisableCtor, CanDisableRipple, CanDisableRippleCtor, RippleConfig, RippleGlobalOptions, RippleTarget } from '@angular/material/core';\nimport { Subject } from 'rxjs';\n/** Represents an event fired on an individual `mat-chip`. */\nexport interface MatChipEvent {\n    /** The chip the event was fired on. */\n    chip: MatChip;\n}\n/** Event object emitted by MatChip when selected or deselected. */\nexport declare class MatChipSelectionChange {\n    /** Reference to the chip that emitted the event. */\n    source: MatChip;\n    /** Whether the chip that emitted the event is selected. */\n    selected: boolean;\n    /** Whether the selection change was a result of a user interaction. */\n    isUserInput: boolean;\n    constructor(\n    /** Reference to the chip that emitted the event. */\n    source: MatChip, \n    /** Whether the chip that emitted the event is selected. */\n    selected: boolean, \n    /** Whether the selection change was a result of a user interaction. */\n    isUserInput?: boolean);\n}\n/** @docs-private */\ndeclare class MatChipBase {\n    _elementRef: ElementRef;\n    constructor(_elementRef: ElementRef);\n}\ndeclare const _MatChipMixinBase: CanColorCtor & CanDisableRippleCtor & CanDisableCtor & typeof MatChipBase;\n/**\n * Dummy directive to add CSS class to chip avatar.\n * @docs-private\n */\nexport declare class MatChipAvatar {\n}\n/**\n * Dummy directive to add CSS class to chip trailing icon.\n * @docs-private\n */\nexport declare class MatChipTrailingIcon {\n}\n/**\n * Material design styled Chip component. Used inside the MatChipList component.\n */\nexport declare class MatChip extends _MatChipMixinBase implements FocusableOption, OnDestroy, CanColor, CanDisable, CanDisableRipple, RippleTarget {\n    _elementRef: ElementRef<HTMLElement>;\n    private _ngZone;\n    private _changeDetectorRef?;\n    /** Reference to the RippleRenderer for the chip. */\n    private _chipRipple;\n    /**\n     * Ripple configuration for ripples that are launched on pointer down. The ripple config\n     * is set to the global ripple options since we don't have any configurable options for\n     * the chip ripples.\n     * @docs-private\n     */\n    rippleConfig: RippleConfig & RippleGlobalOptions;\n    /**\n     * Whether ripples are disabled on interaction\n     * @docs-private\n     */\n    readonly rippleDisabled: boolean;\n    /** Whether the chip has focus. */\n    _hasFocus: boolean;\n    /** Whether animations for the chip are enabled. */\n    _animationsDisabled: boolean;\n    /** Whether the chip list is selectable */\n    chipListSelectable: boolean;\n    /** Whether the chip list is in multi-selection mode. */\n    _chipListMultiple: boolean;\n    /** The chip avatar */\n    avatar: MatChipAvatar;\n    /** The chip's trailing icon. */\n    trailingIcon: MatChipTrailingIcon;\n    /** The chip's remove toggler. */\n    removeIcon: MatChipRemove;\n    /** Whether the chip is selected. */\n    selected: boolean;\n    protected _selected: boolean;\n    /** The value of the chip. Defaults to the content inside `<mat-chip>` tags. */\n    value: any;\n    protected _value: any;\n    /**\n     * Whether or not the chip is selectable. When a chip is not selectable,\n     * changes to its selected state are always ignored. By default a chip is\n     * selectable, and it becomes non-selectable if its parent chip list is\n     * not selectable.\n     */\n    selectable: boolean;\n    protected _selectable: boolean;\n    /**\n     * Determines whether or not the chip displays the remove styling and emits (removed) events.\n     */\n    removable: boolean;\n    protected _removable: boolean;\n    /** Emits when the chip is focused. */\n    readonly _onFocus: Subject<MatChipEvent>;\n    /** Emits when the chip is blured. */\n    readonly _onBlur: Subject<MatChipEvent>;\n    /** Emitted when the chip is selected or deselected. */\n    readonly selectionChange: EventEmitter<MatChipSelectionChange>;\n    /** Emitted when the chip is destroyed. */\n    readonly destroyed: EventEmitter<MatChipEvent>;\n    /** Emitted when a chip is to be removed. */\n    readonly removed: EventEmitter<MatChipEvent>;\n    /** The ARIA selected applied to the chip. */\n    readonly ariaSelected: string | null;\n    constructor(_elementRef: ElementRef<HTMLElement>, _ngZone: NgZone, platform: Platform, globalRippleOptions: RippleGlobalOptions | null, animationMode?: string, _changeDetectorRef?: ChangeDetectorRef | undefined);\n    _addHostClassName(): void;\n    ngOnDestroy(): void;\n    /** Selects the chip. */\n    select(): void;\n    /** Deselects the chip. */\n    deselect(): void;\n    /** Select this chip and emit selected event */\n    selectViaInteraction(): void;\n    /** Toggles the current selected state of this chip. */\n    toggleSelected(isUserInput?: boolean): boolean;\n    /** Allows for programmatic focusing of the chip. */\n    focus(): void;\n    /**\n     * Allows for programmatic removal of the chip. Called by the MatChipList when the DELETE or\n     * BACKSPACE keys are pressed.\n     *\n     * Informs any listeners of the removal request. Does not remove the chip from the DOM.\n     */\n    remove(): void;\n    /** Handles click events on the chip. */\n    _handleClick(event: Event): void;\n    /** Handle custom key presses. */\n    _handleKeydown(event: KeyboardEvent): void;\n    _blur(): void;\n    private _dispatchSelectionChange;\n    private _markForCheck;\n}\n/**\n * Applies proper (click) support and adds styling for use with the Material Design \"cancel\" icon\n * available at https://material.io/icons/#ic_cancel.\n *\n * Example:\n *\n *     `<mat-chip>\n *       <mat-icon matChipRemove>cancel</mat-icon>\n *     </mat-chip>`\n *\n * You *may* use a custom icon, but you may need to override the `mat-chip-remove` positioning\n * styles to properly center the icon within the chip.\n */\nexport declare class MatChipRemove {\n    protected _parentChip: MatChip;\n    constructor(_parentChip: MatChip);\n    /** Calls the parent chip's public `remove()` method if applicable. */\n    _handleClick(event: Event): void;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/chips/chips-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatChipsModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/chips/index.d.ts",
      "node_modules/@angular/material/chips/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/chips/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './chips-module';\nexport * from './chip-list';\nexport * from './chip';\nexport * from './chip-input';\nexport * from './chip-default-options';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/animation/animation.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @docs-private */\nexport declare class AnimationCurves {\n    static STANDARD_CURVE: string;\n    static DECELERATION_CURVE: string;\n    static ACCELERATION_CURVE: string;\n    static SHARP_CURVE: string;\n}\n/** @docs-private */\nexport declare class AnimationDurations {\n    static COMPLEX: string;\n    static ENTERING: string;\n    static EXITING: string;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/common-behaviors/color.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Constructor } from './constructor';\nimport { ElementRef } from '@angular/core';\n/** @docs-private */\nexport interface CanColor {\n    /** Theme color palette for the component. */\n    color: ThemePalette;\n}\n/** @docs-private */\nexport declare type CanColorCtor = Constructor<CanColor>;\n/** @docs-private */\nexport interface HasElementRef {\n    _elementRef: ElementRef;\n}\n/** Possible color palette values. */\nexport declare type ThemePalette = 'primary' | 'accent' | 'warn' | undefined;\n/** Mixin to augment a directive with a `color` property. */\nexport declare function mixinColor<T extends Constructor<HasElementRef>>(base: T, defaultColor?: ThemePalette): CanColorCtor & T;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/common-behaviors/common-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\n/** @docs-private */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/cdk/bidi';\nexport declare function MATERIAL_SANITY_CHECKS_FACTORY(): SanityChecks;\n/** Injection token that configures whether the Material sanity checks are enabled. */\nexport declare const MATERIAL_SANITY_CHECKS: InjectionToken<SanityChecks>;\n/**\n * Possible sanity checks that can be enabled. If set to\n * true/false, all checks will be enabled/disabled.\n */\nexport declare type SanityChecks = boolean | GranularSanityChecks;\n/** Object that can be used to configure the sanity checks granularly. */\nexport interface GranularSanityChecks {\n    doctype: boolean;\n    theme: boolean;\n    version: boolean;\n    /**\n     * @deprecated No longer being used.\n     * @breaking-change 10.0.0\n     */\n    hammer: boolean;\n}\n/**\n * Module that captures anything that should be loaded and/or run for *all* Angular Material\n * components. This includes Bidi, etc.\n *\n * This module should be imported to each top-level component module (e.g., MatTabsModule).\n */\nexport declare class MatCommonModule {\n    /** Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype). */\n    private _hasDoneGlobalChecks;\n    /** Reference to the global `document` object. */\n    private _document;\n    /** Reference to the global 'window' object. */\n    private _window;\n    /** Configured sanity checks. */\n    private _sanityChecks;\n    constructor(sanityChecks: any);\n    /** Whether any sanity checks are enabled. */\n    private _checksAreEnabled;\n    /** Whether the code is running in tests. */\n    private _isTestEnv;\n    private _checkDoctypeIsDefined;\n    private _checkThemeIsPresent;\n    /** Checks whether the material version matches the cdk version */\n    private _checkCdkVersionMatch;\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatCommonModule, never, [typeof ɵngcc1.BidiModule], [typeof ɵngcc1.BidiModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatCommonModule>;\n}\n\n//# sourceMappingURL=common-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/common-behaviors/constructor.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @docs-private */\nexport declare type Constructor<T> = new (...args: any[]) => T;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/common-behaviors/disable-ripple.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Constructor } from './constructor';\n/** @docs-private */\nexport interface CanDisableRipple {\n    /** Whether ripples are disabled. */\n    disableRipple: boolean;\n}\n/** @docs-private */\nexport declare type CanDisableRippleCtor = Constructor<CanDisableRipple>;\n/** Mixin to augment a directive with a `disableRipple` property. */\nexport declare function mixinDisableRipple<T extends Constructor<{}>>(base: T): CanDisableRippleCtor & T;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/common-behaviors/disabled.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Constructor } from './constructor';\n/** @docs-private */\nexport interface CanDisable {\n    /** Whether the component is disabled. */\n    disabled: boolean;\n}\n/** @docs-private */\nexport declare type CanDisableCtor = Constructor<CanDisable>;\n/** Mixin to augment a directive with a `disabled` property. */\nexport declare function mixinDisabled<T extends Constructor<{}>>(base: T): CanDisableCtor & T;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/common-behaviors/error-state.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { ErrorStateMatcher } from '../error/error-options';\nimport { Constructor } from './constructor';\n/** @docs-private */\nexport interface CanUpdateErrorState {\n    updateErrorState(): void;\n    readonly stateChanges: Subject<void>;\n    errorState: boolean;\n    errorStateMatcher: ErrorStateMatcher;\n}\n/** @docs-private */\nexport declare type CanUpdateErrorStateCtor = Constructor<CanUpdateErrorState>;\n/** @docs-private */\nexport interface HasErrorState {\n    _parentFormGroup: FormGroupDirective;\n    _parentForm: NgForm;\n    _defaultErrorStateMatcher: ErrorStateMatcher;\n    ngControl: NgControl;\n}\n/**\n * Mixin to augment a directive with updateErrorState method.\n * For component with `errorState` and need to update `errorState`.\n */\nexport declare function mixinErrorState<T extends Constructor<HasErrorState>>(base: T): CanUpdateErrorStateCtor & T;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/common-behaviors/index.d.ts",
      "node_modules/@angular/material/core/common-behaviors/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport { MatCommonModule, MATERIAL_SANITY_CHECKS, SanityChecks, GranularSanityChecks, } from './common-module';\nexport { CanDisable, CanDisableCtor, mixinDisabled } from './disabled';\nexport { CanColor, CanColorCtor, mixinColor, ThemePalette } from './color';\nexport { CanDisableRipple, CanDisableRippleCtor, mixinDisableRipple } from './disable-ripple';\nexport { HasTabIndex, HasTabIndexCtor, mixinTabIndex } from './tabindex';\nexport { CanUpdateErrorState, CanUpdateErrorStateCtor, mixinErrorState } from './error-state';\nexport { HasInitialized, HasInitializedCtor, mixinInitialized } from './initialized';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/common-behaviors/initialized.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Observable } from 'rxjs';\nimport { Constructor } from './constructor';\n/**\n * Mixin that adds an initialized property to a directive which, when subscribed to, will emit a\n * value once markInitialized has been called, which should be done during the ngOnInit function.\n * If the subscription is made after it has already been marked as initialized, then it will trigger\n * an emit immediately.\n * @docs-private\n */\nexport interface HasInitialized {\n    /** Stream that emits once during the directive/component's ngOnInit. */\n    initialized: Observable<void>;\n    /**\n     * Sets the state as initialized and must be called during ngOnInit to notify subscribers that\n     * the directive has been initialized.\n     * @docs-private\n     */\n    _markInitialized: () => void;\n}\n/** @docs-private */\nexport declare type HasInitializedCtor = Constructor<HasInitialized>;\n/** Mixin to augment a directive with an initialized property that will emits when ngOnInit ends. */\nexport declare function mixinInitialized<T extends Constructor<{}>>(base: T): HasInitializedCtor & T;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/common-behaviors/tabindex.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Constructor } from './constructor';\nimport { CanDisable } from './disabled';\n/** @docs-private */\nexport interface HasTabIndex {\n    /** Tabindex of the component. */\n    tabIndex: number;\n}\n/** @docs-private */\nexport declare type HasTabIndexCtor = Constructor<HasTabIndex>;\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport declare function mixinTabIndex<T extends Constructor<CanDisable>>(base: T, defaultTabIndex?: number): HasTabIndexCtor & T;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/datetime/date-adapter.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n/** InjectionToken for datepicker that can be used to override default locale code. */\nexport declare const MAT_DATE_LOCALE: InjectionToken<string>;\n/** @docs-private */\nexport declare function MAT_DATE_LOCALE_FACTORY(): string;\n/**\n * No longer needed since MAT_DATE_LOCALE has been changed to a scoped injectable.\n * If you are importing and providing this in your code you can simply remove it.\n * @deprecated\n * @breaking-change 8.0.0\n */\nexport declare const MAT_DATE_LOCALE_PROVIDER: {\n    provide: InjectionToken<string>;\n    useExisting: InjectionToken<string>;\n};\n/** Adapts type `D` to be usable as a date by cdk-based components that work with dates. */\nexport declare abstract class DateAdapter<D> {\n    /** The locale to use for all dates. */\n    protected locale: any;\n    /** A stream that emits when the locale changes. */\n    readonly localeChanges: Observable<void>;\n    protected _localeChanges: Subject<void>;\n    /**\n     * Gets the year component of the given date.\n     * @param date The date to extract the year from.\n     * @returns The year component.\n     */\n    abstract getYear(date: D): number;\n    /**\n     * Gets the month component of the given date.\n     * @param date The date to extract the month from.\n     * @returns The month component (0-indexed, 0 = January).\n     */\n    abstract getMonth(date: D): number;\n    /**\n     * Gets the date of the month component of the given date.\n     * @param date The date to extract the date of the month from.\n     * @returns The month component (1-indexed, 1 = first of month).\n     */\n    abstract getDate(date: D): number;\n    /**\n     * Gets the day of the week component of the given date.\n     * @param date The date to extract the day of the week from.\n     * @returns The month component (0-indexed, 0 = Sunday).\n     */\n    abstract getDayOfWeek(date: D): number;\n    /**\n     * Gets a list of names for the months.\n     * @param style The naming style (e.g. long = 'January', short = 'Jan', narrow = 'J').\n     * @returns An ordered list of all month names, starting with January.\n     */\n    abstract getMonthNames(style: 'long' | 'short' | 'narrow'): string[];\n    /**\n     * Gets a list of names for the dates of the month.\n     * @returns An ordered list of all date of the month names, starting with '1'.\n     */\n    abstract getDateNames(): string[];\n    /**\n     * Gets a list of names for the days of the week.\n     * @param style The naming style (e.g. long = 'Sunday', short = 'Sun', narrow = 'S').\n     * @returns An ordered list of all weekday names, starting with Sunday.\n     */\n    abstract getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[];\n    /**\n     * Gets the name for the year of the given date.\n     * @param date The date to get the year name for.\n     * @returns The name of the given year (e.g. '2017').\n     */\n    abstract getYearName(date: D): string;\n    /**\n     * Gets the first day of the week.\n     * @returns The first day of the week (0-indexed, 0 = Sunday).\n     */\n    abstract getFirstDayOfWeek(): number;\n    /**\n     * Gets the number of days in the month of the given date.\n     * @param date The date whose month should be checked.\n     * @returns The number of days in the month of the given date.\n     */\n    abstract getNumDaysInMonth(date: D): number;\n    /**\n     * Clones the given date.\n     * @param date The date to clone\n     * @returns A new date equal to the given date.\n     */\n    abstract clone(date: D): D;\n    /**\n     * Creates a date with the given year, month, and date. Does not allow over/under-flow of the\n     * month and date.\n     * @param year The full year of the date. (e.g. 89 means the year 89, not the year 1989).\n     * @param month The month of the date (0-indexed, 0 = January). Must be an integer 0 - 11.\n     * @param date The date of month of the date. Must be an integer 1 - length of the given month.\n     * @returns The new date, or null if invalid.\n     */\n    abstract createDate(year: number, month: number, date: number): D;\n    /**\n     * Gets today's date.\n     * @returns Today's date.\n     */\n    abstract today(): D;\n    /**\n     * Parses a date from a user-provided value.\n     * @param value The value to parse.\n     * @param parseFormat The expected format of the value being parsed\n     *     (type is implementation-dependent).\n     * @returns The parsed date.\n     */\n    abstract parse(value: any, parseFormat: any): D | null;\n    /**\n     * Formats a date as a string according to the given format.\n     * @param date The value to format.\n     * @param displayFormat The format to use to display the date as a string.\n     * @returns The formatted date string.\n     */\n    abstract format(date: D, displayFormat: any): string;\n    /**\n     * Adds the given number of years to the date. Years are counted as if flipping 12 pages on the\n     * calendar for each year and then finding the closest date in the new month. For example when\n     * adding 1 year to Feb 29, 2016, the resulting date will be Feb 28, 2017.\n     * @param date The date to add years to.\n     * @param years The number of years to add (may be negative).\n     * @returns A new date equal to the given one with the specified number of years added.\n     */\n    abstract addCalendarYears(date: D, years: number): D;\n    /**\n     * Adds the given number of months to the date. Months are counted as if flipping a page on the\n     * calendar for each month and then finding the closest date in the new month. For example when\n     * adding 1 month to Jan 31, 2017, the resulting date will be Feb 28, 2017.\n     * @param date The date to add months to.\n     * @param months The number of months to add (may be negative).\n     * @returns A new date equal to the given one with the specified number of months added.\n     */\n    abstract addCalendarMonths(date: D, months: number): D;\n    /**\n     * Adds the given number of days to the date. Days are counted as if moving one cell on the\n     * calendar for each day.\n     * @param date The date to add days to.\n     * @param days The number of days to add (may be negative).\n     * @returns A new date equal to the given one with the specified number of days added.\n     */\n    abstract addCalendarDays(date: D, days: number): D;\n    /**\n     * Gets the RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339) for the given date.\n     * This method is used to generate date strings that are compatible with native HTML attributes\n     * such as the `min` or `max` attribute of an `<input>`.\n     * @param date The date to get the ISO date string for.\n     * @returns The ISO date string date string.\n     */\n    abstract toIso8601(date: D): string;\n    /**\n     * Checks whether the given object is considered a date instance by this DateAdapter.\n     * @param obj The object to check\n     * @returns Whether the object is a date instance.\n     */\n    abstract isDateInstance(obj: any): boolean;\n    /**\n     * Checks whether the given date is valid.\n     * @param date The date to check.\n     * @returns Whether the date is valid.\n     */\n    abstract isValid(date: D): boolean;\n    /**\n     * Gets date instance that is not valid.\n     * @returns An invalid date.\n     */\n    abstract invalid(): D;\n    /**\n     * Attempts to deserialize a value to a valid date object. This is different from parsing in that\n     * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601\n     * string). The default implementation does not allow any deserialization, it simply checks that\n     * the given value is already a valid date object or null. The `<mat-datepicker>` will call this\n     * method on all of its `@Input()` properties that accept dates. It is therefore possible to\n     * support passing values from your backend directly to these properties by overriding this method\n     * to also deserialize the format used by your backend.\n     * @param value The value to be deserialized into a date object.\n     * @returns The deserialized date object, either a valid date, null if the value can be\n     *     deserialized into a null date (e.g. the empty string), or an invalid date.\n     */\n    deserialize(value: any): D | null;\n    /**\n     * Sets the locale used for all dates.\n     * @param locale The new locale.\n     */\n    setLocale(locale: any): void;\n    /**\n     * Compares two dates.\n     * @param first The first date to compare.\n     * @param second The second date to compare.\n     * @returns 0 if the dates are equal, a number less than 0 if the first date is earlier,\n     *     a number greater than 0 if the first date is later.\n     */\n    compareDate(first: D, second: D): number;\n    /**\n     * Checks if two dates are equal.\n     * @param first The first date to check.\n     * @param second The second date to check.\n     * @returns Whether the two dates are equal.\n     *     Null dates are considered equal to other null dates.\n     */\n    sameDate(first: D | null, second: D | null): boolean;\n    /**\n     * Clamp the given date between min and max dates.\n     * @param date The date to clamp.\n     * @param min The minimum value to allow. If null or omitted no min is enforced.\n     * @param max The maximum value to allow. If null or omitted no max is enforced.\n     * @returns `min` if `date` is less than `min`, `max` if date is greater than `max`,\n     *     otherwise `date`.\n     */\n    clampDate(date: D, min?: D | null, max?: D | null): D;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/datetime/date-formats.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\nexport declare type MatDateFormats = {\n    parse: {\n        dateInput: any;\n    };\n    display: {\n        dateInput: any;\n        monthYearLabel: any;\n        dateA11yLabel: any;\n        monthYearA11yLabel: any;\n    };\n};\nexport declare const MAT_DATE_FORMATS: InjectionToken<MatDateFormats>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/datetime/index.d.ts",
      "node_modules/@angular/material/core/datetime/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/cdk/platform';\nexport * from './date-adapter';\nexport * from './date-formats';\nexport * from './native-date-adapter';\nexport * from './native-date-formats';\nexport declare class NativeDateModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<NativeDateModule, never, [typeof ɵngcc1.PlatformModule], never>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<NativeDateModule>;\n}\nexport declare class MatNativeDateModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatNativeDateModule, never, [typeof NativeDateModule], never>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatNativeDateModule>;\n}\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/datetime/native-date-adapter.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Platform } from '@angular/cdk/platform';\nimport { DateAdapter } from './date-adapter';\n/** Adapts the native JS Date for use with cdk-based components that work with dates. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class NativeDateAdapter extends DateAdapter<Date> {\n    /** Whether to clamp the date between 1 and 9999 to avoid IE and Edge errors. */\n    private readonly _clampDate;\n    /**\n     * Whether to use `timeZone: 'utc'` with `Intl.DateTimeFormat` when formatting dates.\n     * Without this `Intl.DateTimeFormat` sometimes chooses the wrong timeZone, which can throw off\n     * the result. (e.g. in the en-US locale `new Date(1800, 7, 14).toLocaleDateString()`\n     * will produce `'8/13/1800'`.\n     *\n     * TODO(mmalerba): drop this variable. It's not being used in the code right now. We're now\n     * getting the string representation of a Date object from its utc representation. We're keeping\n     * it here for sometime, just for precaution, in case we decide to revert some of these changes\n     * though.\n     */\n    useUtcForDisplay: boolean;\n    constructor(matDateLocale: string, platform: Platform);\n    getYear(date: Date): number;\n    getMonth(date: Date): number;\n    getDate(date: Date): number;\n    getDayOfWeek(date: Date): number;\n    getMonthNames(style: 'long' | 'short' | 'narrow'): string[];\n    getDateNames(): string[];\n    getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[];\n    getYearName(date: Date): string;\n    getFirstDayOfWeek(): number;\n    getNumDaysInMonth(date: Date): number;\n    clone(date: Date): Date;\n    createDate(year: number, month: number, date: number): Date;\n    today(): Date;\n    parse(value: any): Date | null;\n    format(date: Date, displayFormat: Object): string;\n    addCalendarYears(date: Date, years: number): Date;\n    addCalendarMonths(date: Date, months: number): Date;\n    addCalendarDays(date: Date, days: number): Date;\n    toIso8601(date: Date): string;\n    /**\n     * Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings\n     * (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an\n     * invalid date for all other values.\n     */\n    deserialize(value: any): Date | null;\n    isDateInstance(obj: any): boolean;\n    isValid(date: Date): boolean;\n    invalid(): Date;\n    /** Creates a date but allows the month and date to overflow. */\n    private _createDateWithOverflow;\n    /**\n     * Pads a number to make it two digits.\n     * @param n The number to pad.\n     * @returns The padded number.\n     */\n    private _2digit;\n    /**\n     * Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while\n     * other browsers do not. We remove them to make output consistent and because they interfere with\n     * date parsing.\n     * @param str The string to strip direction characters from.\n     * @returns The stripped string.\n     */\n    private _stripDirectionalityCharacters;\n    /**\n     * When converting Date object to string, javascript built-in functions may return wrong\n     * results because it applies its internal DST rules. The DST rules around the world change\n     * very frequently, and the current valid rule is not always valid in previous years though.\n     * We work around this problem building a new Date object which has its internal UTC\n     * representation with the local date and time.\n     * @param dtf Intl.DateTimeFormat object, containg the desired string format. It must have\n     *    timeZone set to 'utc' to work fine.\n     * @param date Date from which we want to get the string representation according to dtf\n     * @returns A Date object with its UTC representation based on the passed in date info\n     */\n    private _format;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<NativeDateAdapter>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<NativeDateAdapter>;\n}\n\n//# sourceMappingURL=native-date-adapter.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/datetime/native-date-formats.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { MatDateFormats } from './date-formats';\nexport declare const MAT_NATIVE_DATE_FORMATS: MatDateFormats;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/error/error-options.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FormGroupDirective, NgForm, FormControl } from '@angular/forms';\n/** Error state matcher that matches when a control is invalid and dirty. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class ShowOnDirtyErrorStateMatcher implements ErrorStateMatcher {\n    isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<ShowOnDirtyErrorStateMatcher>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<ShowOnDirtyErrorStateMatcher>;\n}\n/** Provider that defines how form controls behave with regards to displaying error messages. */\nexport declare class ErrorStateMatcher {\n    isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<ErrorStateMatcher>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<ErrorStateMatcher>;\n}\n\n//# sourceMappingURL=error-options.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/gestures/gesture-annotations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Stripped-down HammerJS annotations to be used within Material, which are necessary,\n * because HammerJS is an optional dependency. For the full annotations see:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/hammerjs/index.d.ts\n */\n/**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 10.0.0\n * @docs-private\n */\nexport interface HammerInput {\n    preventDefault: () => {};\n    deltaX: number;\n    deltaY: number;\n    center: {\n        x: number;\n        y: number;\n    };\n}\n/**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 10.0.0\n * @docs-private\n */\nexport interface HammerStatic {\n    new (element: HTMLElement | SVGElement, options?: any): HammerManager;\n    Pan: Recognizer;\n    Swipe: Recognizer;\n    Press: Recognizer;\n}\n/**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 10.0.0\n * @docs-private\n */\nexport interface Recognizer {\n    new (options?: any): Recognizer;\n    recognizeWith(otherRecognizer: Recognizer | string): Recognizer;\n}\n/**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 10.0.0\n * @docs-private\n */\nexport interface RecognizerStatic {\n    new (options?: any): Recognizer;\n}\n/**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 10.0.0\n * @docs-private\n */\nexport interface HammerInstance {\n    on(eventName: string, callback: Function): void;\n    off(eventName: string, callback: Function): void;\n}\n/**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 10.0.0\n * @docs-private\n */\nexport interface HammerManager {\n    add(recogniser: Recognizer | Recognizer[]): Recognizer;\n    set(options: any): HammerManager;\n    emit(event: string, data: any): void;\n    off(events: string, handler?: Function): void;\n    on(events: string, handler: Function): void;\n}\n/**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 10.0.0\n * @docs-private\n */\nexport interface HammerOptions {\n    cssProps?: {\n        [key: string]: string;\n    };\n    domEvents?: boolean;\n    enable?: boolean | ((manager: HammerManager) => boolean);\n    preset?: any[];\n    touchAction?: string;\n    recognizers?: any[];\n    inputClass?: HammerInput;\n    inputTarget?: EventTarget;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/gestures/gesture-config.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\nimport { HammerGestureConfig } from '@angular/platform-browser';\nimport { MatCommonModule } from '../common-behaviors/common-module';\nimport { HammerInstance, HammerOptions } from './gesture-annotations';\n/**\n * Injection token that can be used to provide options to the Hammerjs instance.\n * More info at http://hammerjs.github.io/api/.\n * @deprecated No longer being used. To be removed.\n * @breaking-change 10.0.0\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare const MAT_HAMMER_OPTIONS: InjectionToken<HammerOptions>;\n/**\n * Adjusts configuration of our gesture library, Hammer.\n * @deprecated No longer being used. To be removed.\n * @breaking-change 10.0.0\n */\nexport declare class GestureConfig extends HammerGestureConfig {\n    private _hammerOptions?;\n    /** List of new event names to add to the gesture support list */\n    events: string[];\n    constructor(_hammerOptions?: HammerOptions | undefined, _commonModule?: MatCommonModule);\n    /**\n     * Builds Hammer instance manually to add custom recognizers that match the Material Design spec.\n     *\n     * Our gesture names come from the Material Design gestures spec:\n     * https://material.io/design/#gestures-touch-mechanics\n     *\n     * More information on default recognizers can be found in Hammer docs:\n     * http://hammerjs.github.io/recognizer-pan/\n     * http://hammerjs.github.io/recognizer-press/\n     *\n     * @param element Element to which to assign the new HammerJS gestures.\n     * @returns Newly-created HammerJS instance.\n     */\n    buildHammer(element: HTMLElement): HammerInstance;\n    /** Creates a new recognizer, without affecting the default recognizers of HammerJS */\n    private _createRecognizer;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<GestureConfig>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<GestureConfig>;\n}\n\n//# sourceMappingURL=gesture-config.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/index.d.ts",
      "node_modules/@angular/material/core/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\nexport { MATERIAL_SANITY_CHECKS_FACTORY as ɵangular_material_src_material_core_core_a } from './common-behaviors/common-module';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/label/label-options.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\n/** InjectionToken that can be used to specify the global label options. */\nexport declare const MAT_LABEL_GLOBAL_OPTIONS: InjectionToken<LabelOptions>;\n/** Type for the available floatLabel values. */\nexport declare type FloatLabelType = 'always' | 'never' | 'auto';\n/** Configurable options for floating labels. */\nexport interface LabelOptions {\n    /**\n     * Whether the label should float `always`, `never`, or `auto` (only when necessary).\n     * Default behavior is assumed to be `auto`.\n     */\n    float?: FloatLabelType;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/line/line.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, QueryList } from '@angular/core';\n/**\n * Shared directive to count lines inside a text area, such as a list item.\n * Line elements can be extracted with a @ContentChildren(MatLine) query, then\n * counted by checking the query list's length.\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '../common-behaviors/common-module';\nexport declare class MatLine {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatLine>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatLine, \"[mat-line], [matLine]\", never, {}, {}, never>;\n}\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * @docs-private\n */\nexport declare function setLines(lines: QueryList<MatLine>, element: ElementRef<HTMLElement>): void;\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * @docs-private\n * @deprecated Use `setLines` instead.\n * @breaking-change 8.0.0\n */\nexport declare class MatLineSetter {\n    constructor(lines: QueryList<MatLine>, element: ElementRef<HTMLElement>);\n}\nexport declare class MatLineModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatLineModule, [typeof MatLine], [typeof ɵngcc1.MatCommonModule], [typeof MatLine, typeof ɵngcc1.MatCommonModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatLineModule>;\n}\n\n//# sourceMappingURL=line.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/month-constants.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * When constructing a Date, the month is zero-based. This can be confusing, since people are\n * used to seeing them one-based. So we create these aliases to make writing the tests easier.\n * @docs-private\n * @breaking-change 8.0.0 Remove this with V8 since it was only targeted for testing.\n */\nexport declare const JAN = 0, FEB = 1, MAR = 2, APR = 3, MAY = 4, JUN = 5, JUL = 6, AUG = 7, SEP = 8, OCT = 9, NOV = 10, DEC = 11;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/option/index.d.ts",
      "node_modules/@angular/material/core/option/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './option';\nimport * as ɵngcc2 from './optgroup';\nimport * as ɵngcc3 from '../ripple/index';\nimport * as ɵngcc4 from '@angular/common';\nimport * as ɵngcc5 from '../selection/index';\nexport declare class MatOptionModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatOptionModule, [typeof ɵngcc1.MatOption, typeof ɵngcc2.MatOptgroup], [typeof ɵngcc3.MatRippleModule, typeof ɵngcc4.CommonModule, typeof ɵngcc5.MatPseudoCheckboxModule], [typeof ɵngcc1.MatOption, typeof ɵngcc2.MatOptgroup]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatOptionModule>;\n}\nexport * from './option';\nexport * from './optgroup';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/option/optgroup.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CanDisable, CanDisableCtor } from '../common-behaviors/disabled';\n/** @docs-private */\nimport * as ɵngcc0 from '@angular/core';\ndeclare class MatOptgroupBase {\n}\ndeclare const _MatOptgroupMixinBase: CanDisableCtor & typeof MatOptgroupBase;\n/**\n * Component that is used to group instances of `mat-option`.\n */\nexport declare class MatOptgroup extends _MatOptgroupMixinBase implements CanDisable {\n    /** Label for the option group. */\n    label: string;\n    /** Unique id for the underlying label. */\n    _labelId: string;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatOptgroup>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatOptgroup, \"mat-optgroup\", [\"matOptgroup\"], { 'disabled': \"disabled\", 'label': \"label\" }, {}, never>;\n}\nexport {};\n\n//# sourceMappingURL=optgroup.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/option/option.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AfterViewChecked, ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, OnDestroy, QueryList } from '@angular/core';\nimport { FocusOptions, FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport { Subject } from 'rxjs';\nimport { MatOptgroup } from './optgroup';\n/** Event object emitted by MatOption when selected or deselected. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatOptionSelectionChange {\n    /** Reference to the option that emitted the event. */\n    source: MatOption;\n    /** Whether the change in the option's value was a result of a user action. */\n    isUserInput: boolean;\n    constructor(\n    /** Reference to the option that emitted the event. */\n    source: MatOption, \n    /** Whether the change in the option's value was a result of a user action. */\n    isUserInput?: boolean);\n}\n/**\n * Describes a parent component that manages a list of options.\n * Contains properties that the options can inherit.\n * @docs-private\n */\nexport interface MatOptionParentComponent {\n    disableRipple?: boolean;\n    multiple?: boolean;\n}\n/**\n * Injection token used to provide the parent component to options.\n */\nexport declare const MAT_OPTION_PARENT_COMPONENT: InjectionToken<MatOptionParentComponent>;\n/**\n * Single option inside of a `<mat-select>` element.\n */\nexport declare class MatOption implements FocusableOption, AfterViewChecked, OnDestroy {\n    private _element;\n    private _changeDetectorRef;\n    private _parent;\n    readonly group: MatOptgroup;\n    private _selected;\n    private _active;\n    private _disabled;\n    private _mostRecentViewValue;\n    /** Whether the wrapping component is in multiple selection mode. */\n    readonly multiple: boolean | undefined;\n    /** Whether or not the option is currently selected. */\n    readonly selected: boolean;\n    /** The form value of the option. */\n    value: any;\n    /** The unique ID of the option. */\n    id: string;\n    /** Whether the option is disabled. */\n    disabled: any;\n    /** Whether ripples for the option are disabled. */\n    readonly disableRipple: boolean | undefined;\n    /** Event emitted when the option is selected or deselected. */\n    readonly onSelectionChange: EventEmitter<MatOptionSelectionChange>;\n    /** Emits when the state of the option changes and any parents have to be notified. */\n    readonly _stateChanges: Subject<void>;\n    constructor(_element: ElementRef<HTMLElement>, _changeDetectorRef: ChangeDetectorRef, _parent: MatOptionParentComponent, group: MatOptgroup);\n    /**\n     * Whether or not the option is currently active and ready to be selected.\n     * An active option displays styles as if it is focused, but the\n     * focus is actually retained somewhere else. This comes in handy\n     * for components like autocomplete where focus must remain on the input.\n     */\n    readonly active: boolean;\n    /**\n     * The displayed value of the option. It is necessary to show the selected option in the\n     * select's trigger.\n     */\n    readonly viewValue: string;\n    /** Selects the option. */\n    select(): void;\n    /** Deselects the option. */\n    deselect(): void;\n    /** Sets focus onto this option. */\n    focus(_origin?: FocusOrigin, options?: FocusOptions): void;\n    /**\n     * This method sets display styles on the option to make it appear\n     * active. This is used by the ActiveDescendantKeyManager so key\n     * events will display the proper options as active on arrow key events.\n     */\n    setActiveStyles(): void;\n    /**\n     * This method removes display styles on the option that made it appear\n     * active. This is used by the ActiveDescendantKeyManager so key\n     * events will display the proper options as active on arrow key events.\n     */\n    setInactiveStyles(): void;\n    /** Gets the label to be used when determining whether the option should be focused. */\n    getLabel(): string;\n    /** Ensures the option is selected when activated from the keyboard. */\n    _handleKeydown(event: KeyboardEvent): void;\n    /**\n     * `Selects the option while indicating the selection came from the user. Used to\n     * determine if the select's view -> model callback should be invoked.`\n     */\n    _selectViaInteraction(): void;\n    /**\n     * Gets the `aria-selected` value for the option. We explicitly omit the `aria-selected`\n     * attribute from single-selection, unselected options. Including the `aria-selected=\"false\"`\n     * attributes adds a significant amount of noise to screen-reader users without providing useful\n     * information.\n     */\n    _getAriaSelected(): boolean | null;\n    /** Returns the correct tabindex for the option depending on disabled state. */\n    _getTabIndex(): string;\n    /** Gets the host DOM element. */\n    _getHostElement(): HTMLElement;\n    ngAfterViewChecked(): void;\n    ngOnDestroy(): void;\n    /** Emits the selection change event. */\n    private _emitSelectionChangeEvent;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatOption>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatOption, \"mat-option\", [\"matOption\"], { 'id': \"id\", 'disabled': \"disabled\", 'value': \"value\" }, { 'onSelectionChange': \"onSelectionChange\" }, never>;\n}\n/**\n * Counts the amount of option group labels that precede the specified option.\n * @param optionIndex Index of the option at which to start counting.\n * @param options Flat list of all of the options.\n * @param optionGroups Flat list of all of the option groups.\n * @docs-private\n */\nexport declare function _countGroupLabelsBeforeOption(optionIndex: number, options: QueryList<MatOption>, optionGroups: QueryList<MatOptgroup>): number;\n/**\n * Determines the position to which to scroll a panel in order for an option to be into view.\n * @param optionIndex Index of the option to be scrolled into the view.\n * @param optionHeight Height of the options.\n * @param currentScrollPosition Current scroll position of the panel.\n * @param panelHeight Height of the panel.\n * @docs-private\n */\nexport declare function _getOptionScrollPosition(optionIndex: number, optionHeight: number, currentScrollPosition: number, panelHeight: number): number;\n\n//# sourceMappingURL=option.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './version';\nexport * from './animation/animation';\nexport * from './common-behaviors/index';\nexport * from './datetime/index';\nexport * from './error/error-options';\nexport * from './gestures/gesture-annotations';\nexport * from './gestures/gesture-config';\nexport * from './line/line';\nexport * from './option/index';\nexport * from './label/label-options';\nexport * from './ripple/index';\nexport * from './selection/index';\nexport * from './month-constants';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/ripple/index.d.ts",
      "node_modules/@angular/material/core/ripple/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './ripple';\nimport * as ɵngcc2 from '../common-behaviors/common-module';\nimport * as ɵngcc3 from '@angular/cdk/platform';\nexport * from './ripple';\nexport * from './ripple-ref';\nexport * from './ripple-renderer';\nexport declare class MatRippleModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatRippleModule, [typeof ɵngcc1.MatRipple], [typeof ɵngcc2.MatCommonModule, typeof ɵngcc3.PlatformModule], [typeof ɵngcc1.MatRipple, typeof ɵngcc2.MatCommonModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatRippleModule>;\n}\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/ripple/ripple-ref.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { RippleConfig, RippleRenderer } from './ripple-renderer';\n/** Possible states for a ripple element. */\nexport declare enum RippleState {\n    FADING_IN = 0,\n    VISIBLE = 1,\n    FADING_OUT = 2,\n    HIDDEN = 3\n}\n/**\n * Reference to a previously launched ripple element.\n */\nexport declare class RippleRef {\n    private _renderer;\n    /** Reference to the ripple HTML element. */\n    element: HTMLElement;\n    /** Ripple configuration used for the ripple. */\n    config: RippleConfig;\n    /** Current state of the ripple. */\n    state: RippleState;\n    constructor(_renderer: RippleRenderer, \n    /** Reference to the ripple HTML element. */\n    element: HTMLElement, \n    /** Ripple configuration used for the ripple. */\n    config: RippleConfig);\n    /** Fades out the ripple element. */\n    fadeOut(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/ripple/ripple-renderer.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, NgZone } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { RippleRef } from './ripple-ref';\nexport declare type RippleConfig = {\n    color?: string;\n    centered?: boolean;\n    radius?: number;\n    persistent?: boolean;\n    animation?: RippleAnimationConfig;\n    terminateOnPointerUp?: boolean;\n};\n/**\n * Interface that describes the configuration for the animation of a ripple.\n * There are two animation phases with different durations for the ripples.\n */\nexport interface RippleAnimationConfig {\n    /** Duration in milliseconds for the enter animation (expansion from point of contact). */\n    enterDuration?: number;\n    /** Duration in milliseconds for the exit animation (fade-out). */\n    exitDuration?: number;\n}\n/**\n * Interface that describes the target for launching ripples.\n * It defines the ripple configuration and disabled state for interaction ripples.\n * @docs-private\n */\nexport interface RippleTarget {\n    /** Configuration for ripples that are launched on pointer down. */\n    rippleConfig: RippleConfig;\n    /** Whether ripples on pointer down should be disabled. */\n    rippleDisabled: boolean;\n}\n/**\n * Default ripple animation configuration for ripples without an explicit\n * animation config specified.\n */\nexport declare const defaultRippleAnimationConfig: {\n    enterDuration: number;\n    exitDuration: number;\n};\n/**\n * Helper service that performs DOM manipulations. Not intended to be used outside this module.\n * The constructor takes a reference to the ripple directive's host element and a map of DOM\n * event handlers to be installed on the element that triggers ripple animations.\n * This will eventually become a custom renderer once Angular support exists.\n * @docs-private\n */\nexport declare class RippleRenderer {\n    private _target;\n    private _ngZone;\n    /** Element where the ripples are being added to. */\n    private _containerElement;\n    /** Element which triggers the ripple elements on mouse events. */\n    private _triggerElement;\n    /** Whether the pointer is currently down or not. */\n    private _isPointerDown;\n    /** Events to be registered on the trigger element. */\n    private _triggerEvents;\n    /** Set of currently active ripple references. */\n    private _activeRipples;\n    /** Latest non-persistent ripple that was triggered. */\n    private _mostRecentTransientRipple;\n    /** Time in milliseconds when the last touchstart event happened. */\n    private _lastTouchStartEvent;\n    /**\n     * Cached dimensions of the ripple container. Set when the first\n     * ripple is shown and cleared once no more ripples are visible.\n     */\n    private _containerRect;\n    constructor(_target: RippleTarget, _ngZone: NgZone, elementOrElementRef: HTMLElement | ElementRef<HTMLElement>, platform: Platform);\n    /**\n     * Fades in a ripple at the given coordinates.\n     * @param x Coordinate within the element, along the X axis at which to start the ripple.\n     * @param y Coordinate within the element, along the Y axis at which to start the ripple.\n     * @param config Extra ripple options.\n     */\n    fadeInRipple(x: number, y: number, config?: RippleConfig): RippleRef;\n    /** Fades out a ripple reference. */\n    fadeOutRipple(rippleRef: RippleRef): void;\n    /** Fades out all currently active ripples. */\n    fadeOutAll(): void;\n    /** Sets up the trigger event listeners */\n    setupTriggerEvents(elementOrElementRef: HTMLElement | ElementRef<HTMLElement>): void;\n    /** Function being called whenever the trigger is being pressed using mouse. */\n    private _onMousedown;\n    /** Function being called whenever the trigger is being pressed using touch. */\n    private _onTouchStart;\n    /** Function being called whenever the trigger is being released. */\n    private _onPointerUp;\n    /** Runs a timeout outside of the Angular zone to avoid triggering the change detection. */\n    private _runTimeoutOutsideZone;\n    /** Removes previously registered event listeners from the trigger element. */\n    _removeTriggerEvents(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/ripple/ripple.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Platform } from '@angular/cdk/platform';\nimport { ElementRef, InjectionToken, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { RippleRef } from './ripple-ref';\nimport { RippleAnimationConfig, RippleConfig, RippleTarget } from './ripple-renderer';\n/** Configurable options for `matRipple`. */\nimport * as ɵngcc0 from '@angular/core';\nexport interface RippleGlobalOptions {\n    /**\n     * Whether ripples should be disabled. Ripples can be still launched manually by using\n     * the `launch()` method. Therefore focus indicators will still show up.\n     */\n    disabled?: boolean;\n    /**\n     * Configuration for the animation duration of the ripples. There are two phases with different\n     * durations for the ripples. The animation durations will be overwritten if the\n     * `NoopAnimationsModule` is being used.\n     */\n    animation?: RippleAnimationConfig;\n    /**\n     * Whether ripples should start fading out immediately after the mouse or touch is released. By\n     * default, ripples will wait for the enter animation to complete and for mouse or touch release.\n     */\n    terminateOnPointerUp?: boolean;\n}\n/** Injection token that can be used to specify the global ripple options. */\nexport declare const MAT_RIPPLE_GLOBAL_OPTIONS: InjectionToken<RippleGlobalOptions>;\nexport declare class MatRipple implements OnInit, OnDestroy, RippleTarget {\n    private _elementRef;\n    /** Custom color for all ripples. */\n    color: string;\n    /** Whether the ripples should be visible outside the component's bounds. */\n    unbounded: boolean;\n    /**\n     * Whether the ripple always originates from the center of the host element's bounds, rather\n     * than originating from the location of the click event.\n     */\n    centered: boolean;\n    /**\n     * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius\n     * will be the distance from the center of the ripple to the furthest corner of the host element's\n     * bounding rectangle.\n     */\n    radius: number;\n    /**\n     * Configuration for the ripple animation. Allows modifying the enter and exit animation\n     * duration of the ripples. The animation durations will be overwritten if the\n     * `NoopAnimationsModule` is being used.\n     */\n    animation: RippleAnimationConfig;\n    /**\n     * Whether click events will not trigger the ripple. Ripples can be still launched manually\n     * by using the `launch()` method.\n     */\n    disabled: boolean;\n    private _disabled;\n    /**\n     * The element that triggers the ripple when click events are received.\n     * Defaults to the directive's host element.\n     */\n    trigger: HTMLElement;\n    private _trigger;\n    /** Renderer for the ripple DOM manipulations. */\n    private _rippleRenderer;\n    /** Options that are set globally for all ripples. */\n    private _globalOptions;\n    /** Whether ripple directive is initialized and the input bindings are set. */\n    private _isInitialized;\n    constructor(_elementRef: ElementRef<HTMLElement>, ngZone: NgZone, platform: Platform, globalOptions?: RippleGlobalOptions, animationMode?: string);\n    ngOnInit(): void;\n    ngOnDestroy(): void;\n    /** Fades out all currently showing ripple elements. */\n    fadeOutAll(): void;\n    /**\n     * Ripple configuration from the directive's input values.\n     * @docs-private Implemented as part of RippleTarget\n     */\n    readonly rippleConfig: RippleConfig;\n    /**\n     * Whether ripples on pointer-down are disabled or not.\n     * @docs-private Implemented as part of RippleTarget\n     */\n    readonly rippleDisabled: boolean;\n    /** Sets up the trigger event listeners if ripples are enabled. */\n    private _setupTriggerEventsIfEnabled;\n    /**\n     * Launches a manual ripple using the specified ripple configuration.\n     * @param config Configuration for the manual ripple.\n     */\n    launch(config: RippleConfig): RippleRef;\n    /**\n     * Launches a manual ripple at the specified coordinates within the element.\n     * @param x Coordinate within the element, along the X axis at which to fade-in the ripple.\n     * @param y Coordinate within the element, along the Y axis at which to fade-in the ripple.\n     * @param config Optional ripple configuration for the manual ripple.\n     */\n    launch(x: number, y: number, config?: RippleConfig): RippleRef;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatRipple>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatRipple, \"[mat-ripple], [matRipple]\", [\"matRipple\"], { 'radius': \"matRippleRadius\", 'disabled': \"matRippleDisabled\", 'trigger': \"matRippleTrigger\", 'color': \"matRippleColor\", 'unbounded': \"matRippleUnbounded\", 'centered': \"matRippleCentered\", 'animation': \"matRippleAnimation\" }, {}, never>;\n}\n\n//# sourceMappingURL=ripple.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/selection/index.d.ts",
      "node_modules/@angular/material/core/selection/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './pseudo-checkbox/pseudo-checkbox';\nexport declare class MatPseudoCheckboxModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatPseudoCheckboxModule, [typeof ɵngcc1.MatPseudoCheckbox], never, [typeof ɵngcc1.MatPseudoCheckbox]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatPseudoCheckboxModule>;\n}\nexport * from './pseudo-checkbox/pseudo-checkbox';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Possible states for a pseudo checkbox.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare type MatPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate';\n/**\n * Component that shows a simplified checkbox without including any kind of \"real\" checkbox.\n * Meant to be used when the checkbox is purely decorative and a large number of them will be\n * included, such as for the options in a multi-select. Uses no SVGs or complex animations.\n * Note that theming is meant to be handled by the parent element, e.g.\n * `mat-primary .mat-pseudo-checkbox`.\n *\n * Note that this component will be completely invisible to screen-reader users. This is *not*\n * interchangeable with `<mat-checkbox>` and should *not* be used if the user would directly\n * interact with the checkbox. The pseudo-checkbox should only be used as an implementation detail\n * of more complex components that appropriately handle selected / checked state.\n * @docs-private\n */\nexport declare class MatPseudoCheckbox {\n    _animationMode?: string | undefined;\n    /** Display state of the checkbox. */\n    state: MatPseudoCheckboxState;\n    /** Whether the checkbox is disabled. */\n    disabled: boolean;\n    constructor(_animationMode?: string | undefined);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatPseudoCheckbox>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatPseudoCheckbox, \"mat-pseudo-checkbox\", never, { 'state': \"state\", 'disabled': \"disabled\" }, {}, never>;\n}\n\n//# sourceMappingURL=pseudo-checkbox.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/typings.d.ts"
    ],
    "content": "declare var module: {id: string};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/core/version.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Version } from '@angular/core';\n/** Current version of Angular Material. */\nexport declare const VERSION: Version;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/calendar-body.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, EventEmitter, NgZone, OnChanges, SimpleChanges } from '@angular/core';\n/**\n * Extra CSS classes that can be associated with a calendar cell.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare type MatCalendarCellCssClasses = string | string[] | Set<string> | {\n    [key: string]: any;\n};\n/**\n * An internal class that represents the data corresponding to a single calendar cell.\n * @docs-private\n */\nexport declare class MatCalendarCell {\n    value: number;\n    displayValue: string;\n    ariaLabel: string;\n    enabled: boolean;\n    cssClasses?: string | Set<string> | {\n        [key: string]: any;\n    } | string[] | undefined;\n    constructor(value: number, displayValue: string, ariaLabel: string, enabled: boolean, cssClasses?: string | Set<string> | {\n        [key: string]: any;\n    } | string[] | undefined);\n}\n/**\n * An internal component used to display calendar data in a table.\n * @docs-private\n */\nexport declare class MatCalendarBody implements OnChanges {\n    private _elementRef;\n    private _ngZone;\n    /** The label for the table. (e.g. \"Jan 2017\"). */\n    label: string;\n    /** The cells to display in the table. */\n    rows: MatCalendarCell[][];\n    /** The value in the table that corresponds to today. */\n    todayValue: number;\n    /** The value in the table that is currently selected. */\n    selectedValue: number;\n    /** The minimum number of free cells needed to fit the label in the first row. */\n    labelMinRequiredCells: number;\n    /** The number of columns in the table. */\n    numCols: number;\n    /** The cell number of the active cell in the table. */\n    activeCell: number;\n    /**\n     * The aspect ratio (width / height) to use for the cells in the table. This aspect ratio will be\n     * maintained even as the table resizes.\n     */\n    cellAspectRatio: number;\n    /** Emits when a new value is selected. */\n    readonly selectedValueChange: EventEmitter<number>;\n    /** The number of blank cells to put at the beginning for the first row. */\n    _firstRowOffset: number;\n    /** Padding for the individual date cells. */\n    _cellPadding: string;\n    /** Width of an individual cell. */\n    _cellWidth: string;\n    constructor(_elementRef: ElementRef<HTMLElement>, _ngZone: NgZone);\n    _cellClicked(cell: MatCalendarCell): void;\n    ngOnChanges(changes: SimpleChanges): void;\n    _isActiveCell(rowIndex: number, colIndex: number): boolean;\n    /** Focuses the active cell after the microtask queue is empty. */\n    _focusActiveCell(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCalendarBody>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatCalendarBody, \"[mat-calendar-body]\", [\"matCalendarBody\"], { 'numCols': \"numCols\", 'activeCell': \"activeCell\", 'cellAspectRatio': \"cellAspectRatio\", 'label': \"label\", 'rows': \"rows\", 'todayValue': \"todayValue\", 'selectedValue': \"selectedValue\", 'labelMinRequiredCells': \"labelMinRequiredCells\" }, { 'selectedValueChange': \"selectedValueChange\" }, never>;\n}\n\n//# sourceMappingURL=calendar-body.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/calendar.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentType, Portal } from '@angular/cdk/portal';\nimport { AfterContentInit, AfterViewChecked, ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { DateAdapter, MatDateFormats } from '@angular/material/core';\nimport { Subject } from 'rxjs';\nimport { MatCalendarCellCssClasses } from './calendar-body';\nimport { MatDatepickerIntl } from './datepicker-intl';\nimport { MatMonthView } from './month-view';\nimport { MatMultiYearView } from './multi-year-view';\nimport { MatYearView } from './year-view';\n/**\n * Possible views for the calendar.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare type MatCalendarView = 'month' | 'year' | 'multi-year';\n/** Default header for MatCalendar */\nexport declare class MatCalendarHeader<D> {\n    private _intl;\n    calendar: MatCalendar<D>;\n    private _dateAdapter;\n    private _dateFormats;\n    constructor(_intl: MatDatepickerIntl, calendar: MatCalendar<D>, _dateAdapter: DateAdapter<D>, _dateFormats: MatDateFormats, changeDetectorRef: ChangeDetectorRef);\n    /** The label for the current calendar view. */\n    readonly periodButtonText: string;\n    readonly periodButtonLabel: string;\n    /** The label for the previous button. */\n    readonly prevButtonLabel: string;\n    /** The label for the next button. */\n    readonly nextButtonLabel: string;\n    /** Handles user clicks on the period label. */\n    currentPeriodClicked(): void;\n    /** Handles user clicks on the previous button. */\n    previousClicked(): void;\n    /** Handles user clicks on the next button. */\n    nextClicked(): void;\n    /** Whether the previous period button is enabled. */\n    previousEnabled(): boolean;\n    /** Whether the next period button is enabled. */\n    nextEnabled(): boolean;\n    /** Whether the two dates represent the same view in the current view mode (month or year). */\n    private _isSameView;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCalendarHeader<any>>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatCalendarHeader<any>, \"mat-calendar-header\", [\"matCalendarHeader\"], {}, {}, never>;\n}\n/**\n * A calendar that is used as part of the datepicker.\n * @docs-private\n */\nexport declare class MatCalendar<D> implements AfterContentInit, AfterViewChecked, OnDestroy, OnChanges {\n    private _dateAdapter;\n    private _dateFormats;\n    private _changeDetectorRef;\n    /** An input indicating the type of the header component, if set. */\n    headerComponent: ComponentType<any>;\n    /** A portal containing the header component type for this calendar. */\n    _calendarHeaderPortal: Portal<any>;\n    private _intlChanges;\n    /**\n     * Used for scheduling that focus should be moved to the active cell on the next tick.\n     * We need to schedule it, rather than do it immediately, because we have to wait\n     * for Angular to re-evaluate the view children.\n     */\n    private _moveFocusOnNextTick;\n    /** A date representing the period (month or year) to start the calendar in. */\n    startAt: D | null;\n    private _startAt;\n    /** Whether the calendar should be started in month or year view. */\n    startView: MatCalendarView;\n    /** The currently selected date. */\n    selected: D | null;\n    private _selected;\n    /** The minimum selectable date. */\n    minDate: D | null;\n    private _minDate;\n    /** The maximum selectable date. */\n    maxDate: D | null;\n    private _maxDate;\n    /** Function used to filter which dates are selectable. */\n    dateFilter: (date: D) => boolean;\n    /** Function that can be used to add custom CSS classes to dates. */\n    dateClass: (date: D) => MatCalendarCellCssClasses;\n    /** Emits when the currently selected date changes. */\n    readonly selectedChange: EventEmitter<D>;\n    /**\n     * Emits the year chosen in multiyear view.\n     * This doesn't imply a change on the selected date.\n     */\n    readonly yearSelected: EventEmitter<D>;\n    /**\n     * Emits the month chosen in year view.\n     * This doesn't imply a change on the selected date.\n     */\n    readonly monthSelected: EventEmitter<D>;\n    /** Emits when any date is selected. */\n    readonly _userSelection: EventEmitter<void>;\n    /** Reference to the current month view component. */\n    monthView: MatMonthView<D>;\n    /** Reference to the current year view component. */\n    yearView: MatYearView<D>;\n    /** Reference to the current multi-year view component. */\n    multiYearView: MatMultiYearView<D>;\n    /**\n     * The current active date. This determines which time period is shown and which date is\n     * highlighted when using keyboard navigation.\n     */\n    activeDate: D;\n    private _clampedActiveDate;\n    /** Whether the calendar is in month view. */\n    currentView: MatCalendarView;\n    private _currentView;\n    /**\n     * Emits whenever there is a state change that the header may need to respond to.\n     */\n    stateChanges: Subject<void>;\n    constructor(_intl: MatDatepickerIntl, _dateAdapter: DateAdapter<D>, _dateFormats: MatDateFormats, _changeDetectorRef: ChangeDetectorRef);\n    ngAfterContentInit(): void;\n    ngAfterViewChecked(): void;\n    ngOnDestroy(): void;\n    ngOnChanges(changes: SimpleChanges): void;\n    focusActiveCell(): void;\n    /** Updates today's date after an update of the active date */\n    updateTodaysDate(): void;\n    /** Handles date selection in the month view. */\n    _dateSelected(date: D): void;\n    /** Handles year selection in the multiyear view. */\n    _yearSelectedInMultiYearView(normalizedYear: D): void;\n    /** Handles month selection in the year view. */\n    _monthSelectedInYearView(normalizedMonth: D): void;\n    _userSelected(): void;\n    /** Handles year/month selection in the multi-year/year views. */\n    _goToDateInView(date: D, view: 'month' | 'year' | 'multi-year'): void;\n    /**\n     * @param obj The object to check.\n     * @returns The given object if it is both a date instance and valid, otherwise null.\n     */\n    private _getValidDateOrNull;\n    /** Returns the component instance that corresponds to the current calendar view. */\n    private _getCurrentViewComponent;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCalendar<any>>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatCalendar<any>, \"mat-calendar\", [\"matCalendar\"], { 'startView': \"startView\", 'startAt': \"startAt\", 'selected': \"selected\", 'minDate': \"minDate\", 'maxDate': \"maxDate\", 'headerComponent': \"headerComponent\", 'dateFilter': \"dateFilter\", 'dateClass': \"dateClass\" }, { 'selectedChange': \"selectedChange\", 'yearSelected': \"yearSelected\", 'monthSelected': \"monthSelected\", '_userSelection': \"_userSelection\" }, never>;\n}\n\n//# sourceMappingURL=calendar.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/datepicker-animations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationTriggerMetadata } from '@angular/animations';\n/**\n * Animations used by the Material datepicker.\n * @docs-private\n */\nexport declare const matDatepickerAnimations: {\n    readonly transformPanel: AnimationTriggerMetadata;\n    readonly fadeInCalendar: AnimationTriggerMetadata;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/datepicker-errors.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @docs-private */\nexport declare function createMissingDateImplError(provider: string): Error;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/datepicker-input.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, EventEmitter, OnDestroy } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';\nimport { DateAdapter, MatDateFormats, ThemePalette } from '@angular/material/core';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatDatepicker } from './datepicker';\n/** @docs-private */\nimport * as ɵngcc0 from '@angular/core';\nexport declare const MAT_DATEPICKER_VALUE_ACCESSOR: any;\n/** @docs-private */\nexport declare const MAT_DATEPICKER_VALIDATORS: any;\n/**\n * An event used for datepicker input and change events. We don't always have access to a native\n * input or change event because the event may have been triggered by the user clicking on the\n * calendar popup. For consistency, we always use MatDatepickerInputEvent instead.\n */\nexport declare class MatDatepickerInputEvent<D> {\n    /** Reference to the datepicker input component that emitted the event. */\n    target: MatDatepickerInput<D>;\n    /** Reference to the native input element associated with the datepicker input. */\n    targetElement: HTMLElement;\n    /** The new value for the target datepicker input. */\n    value: D | null;\n    constructor(\n    /** Reference to the datepicker input component that emitted the event. */\n    target: MatDatepickerInput<D>, \n    /** Reference to the native input element associated with the datepicker input. */\n    targetElement: HTMLElement);\n}\n/** Directive used to connect an input to a MatDatepicker. */\nexport declare class MatDatepickerInput<D> implements ControlValueAccessor, OnDestroy, Validator {\n    private _elementRef;\n    _dateAdapter: DateAdapter<D>;\n    private _dateFormats;\n    private _formField;\n    /** The datepicker that this input is associated with. */\n    matDatepicker: MatDatepicker<D>;\n    _datepicker: MatDatepicker<D>;\n    /** Function that can be used to filter out dates within the datepicker. */\n    matDatepickerFilter: (date: D | null) => boolean;\n    _dateFilter: (date: D | null) => boolean;\n    /** The value of the input. */\n    value: D | null;\n    private _value;\n    /** The minimum valid date. */\n    min: D | null;\n    private _min;\n    /** The maximum valid date. */\n    max: D | null;\n    private _max;\n    /** Whether the datepicker-input is disabled. */\n    disabled: boolean;\n    private _disabled;\n    /** Emits when a `change` event is fired on this `<input>`. */\n    readonly dateChange: EventEmitter<MatDatepickerInputEvent<D>>;\n    /** Emits when an `input` event is fired on this `<input>`. */\n    readonly dateInput: EventEmitter<MatDatepickerInputEvent<D>>;\n    /** Emits when the value changes (either due to user input or programmatic change). */\n    _valueChange: EventEmitter<D | null>;\n    /** Emits when the disabled state has changed */\n    _disabledChange: EventEmitter<boolean>;\n    _onTouched: () => void;\n    private _cvaOnChange;\n    private _validatorOnChange;\n    private _datepickerSubscription;\n    private _localeSubscription;\n    /** The form control validator for whether the input parses. */\n    private _parseValidator;\n    /** The form control validator for the min date. */\n    private _minValidator;\n    /** The form control validator for the max date. */\n    private _maxValidator;\n    /** The form control validator for the date filter. */\n    private _filterValidator;\n    /** The combined form control validator for this input. */\n    private _validator;\n    /** Whether the last value set on the input was valid. */\n    private _lastValueValid;\n    constructor(_elementRef: ElementRef<HTMLInputElement>, _dateAdapter: DateAdapter<D>, _dateFormats: MatDateFormats, _formField: MatFormField);\n    ngOnDestroy(): void;\n    /** @docs-private */\n    registerOnValidatorChange(fn: () => void): void;\n    /** @docs-private */\n    validate(c: AbstractControl): ValidationErrors | null;\n    /**\n     * @deprecated\n     * @breaking-change 8.0.0 Use `getConnectedOverlayOrigin` instead\n     */\n    getPopupConnectionElementRef(): ElementRef;\n    /**\n     * Gets the element that the datepicker popup should be connected to.\n     * @return The element to connect the popup to.\n     */\n    getConnectedOverlayOrigin(): ElementRef;\n    writeValue(value: D): void;\n    registerOnChange(fn: (value: any) => void): void;\n    registerOnTouched(fn: () => void): void;\n    setDisabledState(isDisabled: boolean): void;\n    _onKeydown(event: KeyboardEvent): void;\n    _onInput(value: string): void;\n    _onChange(): void;\n    /** Returns the palette used by the input's form field, if any. */\n    _getThemePalette(): ThemePalette;\n    /** Handles blur events on the input. */\n    _onBlur(): void;\n    /** Formats a value and sets it on the input element. */\n    private _formatValue;\n    /**\n     * @param obj The object to check.\n     * @returns The given object if it is both a date instance and valid, otherwise null.\n     */\n    private _getValidDateOrNull;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatDatepickerInput<any>>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatDatepickerInput<any>, \"input[matDatepicker]\", [\"matDatepickerInput\"], { 'value': \"value\", 'matDatepicker': \"matDatepicker\", 'matDatepickerFilter': \"matDatepickerFilter\", 'min': \"min\", 'max': \"max\", 'disabled': \"disabled\" }, { 'dateChange': \"dateChange\", 'dateInput': \"dateInput\" }, never>;\n}\n\n//# sourceMappingURL=datepicker-input.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/datepicker-intl.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Subject } from 'rxjs';\n/** Datepicker data that requires internationalization. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatDatepickerIntl {\n    /**\n     * Stream that emits whenever the labels here are changed. Use this to notify\n     * components if the labels have changed after initialization.\n     */\n    readonly changes: Subject<void>;\n    /** A label for the calendar popup (used by screen readers). */\n    calendarLabel: string;\n    /** A label for the button used to open the calendar popup (used by screen readers). */\n    openCalendarLabel: string;\n    /** A label for the previous month button (used by screen readers). */\n    prevMonthLabel: string;\n    /** A label for the next month button (used by screen readers). */\n    nextMonthLabel: string;\n    /** A label for the previous year button (used by screen readers). */\n    prevYearLabel: string;\n    /** A label for the next year button (used by screen readers). */\n    nextYearLabel: string;\n    /** A label for the previous multi-year button (used by screen readers). */\n    prevMultiYearLabel: string;\n    /** A label for the next multi-year button (used by screen readers). */\n    nextMultiYearLabel: string;\n    /** A label for the 'switch to month view' button (used by screen readers). */\n    switchToMonthViewLabel: string;\n    /** A label for the 'switch to year view' button (used by screen readers). */\n    switchToMultiYearViewLabel: string;\n    /** Formats a range of years. */\n    formatYearRange(start: string, end: string): string;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatDatepickerIntl>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<MatDatepickerIntl>;\n}\n\n//# sourceMappingURL=datepicker-intl.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/datepicker-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './calendar';\nimport * as ɵngcc2 from './calendar-body';\nimport * as ɵngcc3 from './datepicker';\nimport * as ɵngcc4 from './datepicker-input';\nimport * as ɵngcc5 from './datepicker-toggle';\nimport * as ɵngcc6 from './month-view';\nimport * as ɵngcc7 from './year-view';\nimport * as ɵngcc8 from './multi-year-view';\nimport * as ɵngcc9 from '@angular/common';\nimport * as ɵngcc10 from '@angular/material/button';\nimport * as ɵngcc11 from '@angular/material/dialog';\nimport * as ɵngcc12 from '@angular/cdk/overlay';\nimport * as ɵngcc13 from '@angular/cdk/a11y';\nimport * as ɵngcc14 from '@angular/cdk/portal';\nexport declare class MatDatepickerModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatDatepickerModule, [typeof ɵngcc1.MatCalendar, typeof ɵngcc2.MatCalendarBody, typeof ɵngcc3.MatDatepicker, typeof ɵngcc3.MatDatepickerContent, typeof ɵngcc4.MatDatepickerInput, typeof ɵngcc5.MatDatepickerToggle, typeof ɵngcc5.MatDatepickerToggleIcon, typeof ɵngcc6.MatMonthView, typeof ɵngcc7.MatYearView, typeof ɵngcc8.MatMultiYearView, typeof ɵngcc1.MatCalendarHeader], [typeof ɵngcc9.CommonModule, typeof ɵngcc10.MatButtonModule, typeof ɵngcc11.MatDialogModule, typeof ɵngcc12.OverlayModule, typeof ɵngcc13.A11yModule, typeof ɵngcc14.PortalModule], [typeof ɵngcc1.MatCalendar, typeof ɵngcc2.MatCalendarBody, typeof ɵngcc3.MatDatepicker, typeof ɵngcc3.MatDatepickerContent, typeof ɵngcc4.MatDatepickerInput, typeof ɵngcc5.MatDatepickerToggle, typeof ɵngcc5.MatDatepickerToggleIcon, typeof ɵngcc6.MatMonthView, typeof ɵngcc7.MatYearView, typeof ɵngcc8.MatMultiYearView, typeof ɵngcc1.MatCalendarHeader]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatDatepickerModule>;\n}\n\n//# sourceMappingURL=datepicker-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/datepicker-toggle.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AfterContentInit, ChangeDetectorRef, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport { MatDatepicker } from './datepicker';\nimport { MatDatepickerIntl } from './datepicker-intl';\n/** Can be used to override the icon of a `matDatepickerToggle`. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatDatepickerToggleIcon {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatDatepickerToggleIcon>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatDatepickerToggleIcon, \"[matDatepickerToggleIcon]\", never, {}, {}, never>;\n}\nexport declare class MatDatepickerToggle<D> implements AfterContentInit, OnChanges, OnDestroy {\n    _intl: MatDatepickerIntl;\n    private _changeDetectorRef;\n    private _stateChanges;\n    /** Datepicker instance that the button will toggle. */\n    datepicker: MatDatepicker<D>;\n    /** Tabindex for the toggle. */\n    tabIndex: number | null;\n    /** Whether the toggle button is disabled. */\n    disabled: boolean;\n    private _disabled;\n    /** Whether ripples on the toggle should be disabled. */\n    disableRipple: boolean;\n    /** Custom icon set by the consumer. */\n    _customIcon: MatDatepickerToggleIcon;\n    /** Underlying button element. */\n    _button: MatButton;\n    constructor(_intl: MatDatepickerIntl, _changeDetectorRef: ChangeDetectorRef, defaultTabIndex: string);\n    ngOnChanges(changes: SimpleChanges): void;\n    ngOnDestroy(): void;\n    ngAfterContentInit(): void;\n    _open(event: Event): void;\n    private _watchStateChanges;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatDatepickerToggle<any>>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatDatepickerToggle<any>, \"mat-datepicker-toggle\", [\"matDatepickerToggle\"], { 'tabIndex': \"tabIndex\", 'disabled': \"disabled\", 'datepicker': \"for\", 'disableRipple': \"disableRipple\" }, {}, [\"_customIcon\"]>;\n}\n\n//# sourceMappingURL=datepicker-toggle.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/datepicker.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, OverlayRef, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { AfterViewInit, ElementRef, EventEmitter, InjectionToken, NgZone, OnDestroy, ViewContainerRef } from '@angular/core';\nimport { CanColor, CanColorCtor, DateAdapter, ThemePalette } from '@angular/material/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Subject } from 'rxjs';\nimport { MatCalendar } from './calendar';\nimport { MatDatepickerInput } from './datepicker-input';\nimport { MatCalendarCellCssClasses } from './calendar-body';\n/** Injection token that determines the scroll handling while the calendar is open. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare const MAT_DATEPICKER_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;\n/** @docs-private */\nexport declare function MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY(overlay: Overlay): () => ScrollStrategy;\n/** @docs-private */\nexport declare const MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER: {\n    provide: InjectionToken<() => ScrollStrategy>;\n    deps: (typeof Overlay)[];\n    useFactory: typeof MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY;\n};\n/** @docs-private */\ndeclare class MatDatepickerContentBase {\n    _elementRef: ElementRef;\n    constructor(_elementRef: ElementRef);\n}\ndeclare const _MatDatepickerContentMixinBase: CanColorCtor & typeof MatDatepickerContentBase;\n/**\n * Component used as the content for the datepicker dialog and popup. We use this instead of using\n * MatCalendar directly as the content so we can control the initial focus. This also gives us a\n * place to put additional features of the popup that are not part of the calendar itself in the\n * future. (e.g. confirmation buttons).\n * @docs-private\n */\nexport declare class MatDatepickerContent<D> extends _MatDatepickerContentMixinBase implements AfterViewInit, CanColor {\n    /** Reference to the internal calendar component. */\n    _calendar: MatCalendar<D>;\n    /** Reference to the datepicker that created the overlay. */\n    datepicker: MatDatepicker<D>;\n    /** Whether the datepicker is above or below the input. */\n    _isAbove: boolean;\n    constructor(elementRef: ElementRef);\n    ngAfterViewInit(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatDatepickerContent<any>>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatDatepickerContent<any>, \"mat-datepicker-content\", [\"matDatepickerContent\"], { 'color': \"color\" }, {}, never>;\n}\n/** Component responsible for managing the datepicker popup/dialog. */\nexport declare class MatDatepicker<D> implements OnDestroy, CanColor {\n    private _dialog;\n    private _overlay;\n    private _ngZone;\n    private _viewContainerRef;\n    private _dateAdapter;\n    private _dir;\n    private _document;\n    private _scrollStrategy;\n    /** An input indicating the type of the custom header component for the calendar, if set. */\n    calendarHeaderComponent: ComponentType<any>;\n    /** The date to open the calendar to initially. */\n    startAt: D | null;\n    private _startAt;\n    /** The view that the calendar should start in. */\n    startView: 'month' | 'year' | 'multi-year';\n    /** Color palette to use on the datepicker's calendar. */\n    color: ThemePalette;\n    _color: ThemePalette;\n    /**\n     * Whether the calendar UI is in touch mode. In touch mode the calendar opens in a dialog rather\n     * than a popup and elements have more padding to allow for bigger touch targets.\n     */\n    touchUi: boolean;\n    private _touchUi;\n    /** Whether the datepicker pop-up should be disabled. */\n    disabled: boolean;\n    private _disabled;\n    /**\n     * Emits selected year in multiyear view.\n     * This doesn't imply a change on the selected date.\n     */\n    readonly yearSelected: EventEmitter<D>;\n    /**\n     * Emits selected month in year view.\n     * This doesn't imply a change on the selected date.\n     */\n    readonly monthSelected: EventEmitter<D>;\n    /** Classes to be passed to the date picker panel. Supports the same syntax as `ngClass`. */\n    panelClass: string | string[];\n    /** Function that can be used to add custom CSS classes to dates. */\n    dateClass: (date: D) => MatCalendarCellCssClasses;\n    /** Emits when the datepicker has been opened. */\n    openedStream: EventEmitter<void>;\n    /** Emits when the datepicker has been closed. */\n    closedStream: EventEmitter<void>;\n    /** Whether the calendar is open. */\n    opened: boolean;\n    private _opened;\n    /** The id for the datepicker calendar. */\n    id: string;\n    /** The currently selected date. */\n    _selected: D | null;\n    private _validSelected;\n    /** The minimum selectable date. */\n    readonly _minDate: D | null;\n    /** The maximum selectable date. */\n    readonly _maxDate: D | null;\n    readonly _dateFilter: (date: D | null) => boolean;\n    /** A reference to the overlay when the calendar is opened as a popup. */\n    _popupRef: OverlayRef;\n    /** A reference to the dialog when the calendar is opened as a dialog. */\n    private _dialogRef;\n    /** A portal containing the calendar for this datepicker. */\n    private _calendarPortal;\n    /** Reference to the component instantiated in popup mode. */\n    private _popupComponentRef;\n    /** The element that was focused before the datepicker was opened. */\n    private _focusedElementBeforeOpen;\n    /** Subscription to value changes in the associated input element. */\n    private _inputSubscription;\n    /** The input element this datepicker is associated with. */\n    _datepickerInput: MatDatepickerInput<D>;\n    /** Emits when the datepicker is disabled. */\n    readonly _disabledChange: Subject<boolean>;\n    /** Emits new selected date when selected date changes. */\n    readonly _selectedChanged: Subject<D>;\n    constructor(_dialog: MatDialog, _overlay: Overlay, _ngZone: NgZone, _viewContainerRef: ViewContainerRef, scrollStrategy: any, _dateAdapter: DateAdapter<D>, _dir: Directionality, _document: any);\n    ngOnDestroy(): void;\n    /** Selects the given date */\n    select(date: D): void;\n    /** Emits the selected year in multiyear view */\n    _selectYear(normalizedYear: D): void;\n    /** Emits selected month in year view */\n    _selectMonth(normalizedMonth: D): void;\n    /**\n     * Register an input with this datepicker.\n     * @param input The datepicker input to register with this datepicker.\n     */\n    _registerInput(input: MatDatepickerInput<D>): void;\n    /** Open the calendar. */\n    open(): void;\n    /** Close the calendar. */\n    close(): void;\n    /** Open the calendar as a dialog. */\n    private _openAsDialog;\n    /** Open the calendar as a popup. */\n    private _openAsPopup;\n    /** Create the popup. */\n    private _createPopup;\n    /** Create the popup PositionStrategy. */\n    private _createPopupPositionStrategy;\n    /**\n     * @param obj The object to check.\n     * @returns The given object if it is both a date instance and valid, otherwise null.\n     */\n    private _getValidDateOrNull;\n    /** Passes the current theme color along to the calendar overlay. */\n    private _setColor;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatDatepicker<any>>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatDatepicker<any>, \"mat-datepicker\", [\"matDatepicker\"], { 'startView': \"startView\", 'startAt': \"startAt\", 'color': \"color\", 'touchUi': \"touchUi\", 'disabled': \"disabled\", 'opened': \"opened\", 'calendarHeaderComponent': \"calendarHeaderComponent\", 'panelClass': \"panelClass\", 'dateClass': \"dateClass\" }, { 'yearSelected': \"yearSelected\", 'monthSelected': \"monthSelected\", 'openedStream': \"opened\", 'closedStream': \"closed\" }, never>;\n}\nexport {};\n\n//# sourceMappingURL=datepicker.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/index.d.ts",
      "node_modules/@angular/material/datepicker/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/month-view.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AfterContentInit, ChangeDetectorRef, EventEmitter } from '@angular/core';\nimport { DateAdapter, MatDateFormats } from '@angular/material/core';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { MatCalendarBody, MatCalendarCell, MatCalendarCellCssClasses } from './calendar-body';\n/**\n * An internal component used to display a single month in the datepicker.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatMonthView<D> implements AfterContentInit {\n    private _changeDetectorRef;\n    private _dateFormats;\n    _dateAdapter: DateAdapter<D>;\n    private _dir?;\n    /**\n     * The date to display in this month view (everything other than the month and year is ignored).\n     */\n    activeDate: D;\n    private _activeDate;\n    /** The currently selected date. */\n    selected: D | null;\n    private _selected;\n    /** The minimum selectable date. */\n    minDate: D | null;\n    private _minDate;\n    /** The maximum selectable date. */\n    maxDate: D | null;\n    private _maxDate;\n    /** Function used to filter which dates are selectable. */\n    dateFilter: (date: D) => boolean;\n    /** Function that can be used to add custom CSS classes to dates. */\n    dateClass: (date: D) => MatCalendarCellCssClasses;\n    /** Emits when a new date is selected. */\n    readonly selectedChange: EventEmitter<D | null>;\n    /** Emits when any date is selected. */\n    readonly _userSelection: EventEmitter<void>;\n    /** Emits when any date is activated. */\n    readonly activeDateChange: EventEmitter<D>;\n    /** The body of calendar table */\n    _matCalendarBody: MatCalendarBody;\n    /** The label for this month (e.g. \"January 2017\"). */\n    _monthLabel: string;\n    /** Grid of calendar cells representing the dates of the month. */\n    _weeks: MatCalendarCell[][];\n    /** The number of blank cells in the first row before the 1st of the month. */\n    _firstWeekOffset: number;\n    /**\n     * The date of the month that the currently selected Date falls on.\n     * Null if the currently selected Date is in another month.\n     */\n    _selectedDate: number | null;\n    /** The date of the month that today falls on. Null if today is in another month. */\n    _todayDate: number | null;\n    /** The names of the weekdays. */\n    _weekdays: {\n        long: string;\n        narrow: string;\n    }[];\n    constructor(_changeDetectorRef: ChangeDetectorRef, _dateFormats: MatDateFormats, _dateAdapter: DateAdapter<D>, _dir?: Directionality | undefined);\n    ngAfterContentInit(): void;\n    /** Handles when a new date is selected. */\n    _dateSelected(date: number): void;\n    /** Handles keydown events on the calendar body when calendar is in month view. */\n    _handleCalendarBodyKeydown(event: KeyboardEvent): void;\n    /** Initializes this month view. */\n    _init(): void;\n    /** Focuses the active cell after the microtask queue is empty. */\n    _focusActiveCell(): void;\n    /** Initializes the weekdays. */\n    private _initWeekdays;\n    /** Creates MatCalendarCells for the dates in this month. */\n    private _createWeekCells;\n    /** Date filter for the month */\n    private _shouldEnableDate;\n    /**\n     * Gets the date in this month that the given Date falls on.\n     * Returns null if the given Date is in another month.\n     */\n    private _getDateInCurrentMonth;\n    /** Checks whether the 2 dates are non-null and fall within the same month of the same year. */\n    private _hasSameMonthAndYear;\n    /**\n     * @param obj The object to check.\n     * @returns The given object if it is both a date instance and valid, otherwise null.\n     */\n    private _getValidDateOrNull;\n    /** Determines whether the user has the RTL layout direction. */\n    private _isRtl;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatMonthView<any>>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatMonthView<any>, \"mat-month-view\", [\"matMonthView\"], { 'activeDate': \"activeDate\", 'selected': \"selected\", 'minDate': \"minDate\", 'maxDate': \"maxDate\", 'dateFilter': \"dateFilter\", 'dateClass': \"dateClass\" }, { 'selectedChange': \"selectedChange\", '_userSelection': \"_userSelection\", 'activeDateChange': \"activeDateChange\" }, never>;\n}\n\n//# sourceMappingURL=month-view.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/multi-year-view.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AfterContentInit, ChangeDetectorRef, EventEmitter } from '@angular/core';\nimport { DateAdapter } from '@angular/material/core';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { MatCalendarBody, MatCalendarCell } from './calendar-body';\nimport * as ɵngcc0 from '@angular/core';\nexport declare const yearsPerPage = 24;\nexport declare const yearsPerRow = 4;\n/**\n * An internal component used to display a year selector in the datepicker.\n * @docs-private\n */\nexport declare class MatMultiYearView<D> implements AfterContentInit {\n    private _changeDetectorRef;\n    _dateAdapter: DateAdapter<D>;\n    private _dir?;\n    /** The date to display in this multi-year view (everything other than the year is ignored). */\n    activeDate: D;\n    private _activeDate;\n    /** The currently selected date. */\n    selected: D | null;\n    private _selected;\n    /** The minimum selectable date. */\n    minDate: D | null;\n    private _minDate;\n    /** The maximum selectable date. */\n    maxDate: D | null;\n    private _maxDate;\n    /** A function used to filter which dates are selectable. */\n    dateFilter: (date: D) => boolean;\n    /** Emits when a new year is selected. */\n    readonly selectedChange: EventEmitter<D>;\n    /** Emits the selected year. This doesn't imply a change on the selected date */\n    readonly yearSelected: EventEmitter<D>;\n    /** Emits when any date is activated. */\n    readonly activeDateChange: EventEmitter<D>;\n    /** The body of calendar table */\n    _matCalendarBody: MatCalendarBody;\n    /** Grid of calendar cells representing the currently displayed years. */\n    _years: MatCalendarCell[][];\n    /** The year that today falls on. */\n    _todayYear: number;\n    /** The year of the selected date. Null if the selected date is null. */\n    _selectedYear: number | null;\n    constructor(_changeDetectorRef: ChangeDetectorRef, _dateAdapter: DateAdapter<D>, _dir?: Directionality | undefined);\n    ngAfterContentInit(): void;\n    /** Initializes this multi-year view. */\n    _init(): void;\n    /** Handles when a new year is selected. */\n    _yearSelected(year: number): void;\n    /** Handles keydown events on the calendar body when calendar is in multi-year view. */\n    _handleCalendarBodyKeydown(event: KeyboardEvent): void;\n    _getActiveCell(): number;\n    /** Focuses the active cell after the microtask queue is empty. */\n    _focusActiveCell(): void;\n    /** Creates an MatCalendarCell for the given year. */\n    private _createCellForYear;\n    /** Whether the given year is enabled. */\n    private _shouldEnableYear;\n    /**\n     * @param obj The object to check.\n     * @returns The given object if it is both a date instance and valid, otherwise null.\n     */\n    private _getValidDateOrNull;\n    /** Determines whether the user has the RTL layout direction. */\n    private _isRtl;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatMultiYearView<any>>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatMultiYearView<any>, \"mat-multi-year-view\", [\"matMultiYearView\"], { 'activeDate': \"activeDate\", 'selected': \"selected\", 'minDate': \"minDate\", 'maxDate': \"maxDate\", 'dateFilter': \"dateFilter\" }, { 'selectedChange': \"selectedChange\", 'yearSelected': \"yearSelected\", 'activeDateChange': \"activeDateChange\" }, never>;\n}\nexport declare function isSameMultiYearView<D>(dateAdapter: DateAdapter<D>, date1: D, date2: D, minDate: D | null, maxDate: D | null): boolean;\n/**\n * When the multi-year view is first opened, the active year will be in view.\n * So we compute how many years are between the active year and the *slot* where our\n * \"startingYear\" will render when paged into view.\n */\nexport declare function getActiveOffset<D>(dateAdapter: DateAdapter<D>, activeDate: D, minDate: D | null, maxDate: D | null): number;\n\n//# sourceMappingURL=multi-year-view.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './datepicker-module';\nexport * from './calendar';\nexport * from './calendar-body';\nexport * from './datepicker';\nexport * from './datepicker-animations';\nexport * from './datepicker-input';\nexport * from './datepicker-intl';\nexport * from './datepicker-toggle';\nexport * from './month-view';\nexport * from './year-view';\nexport { MatMultiYearView, yearsPerPage, yearsPerRow } from './multi-year-view';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/datepicker/year-view.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AfterContentInit, ChangeDetectorRef, EventEmitter } from '@angular/core';\nimport { DateAdapter, MatDateFormats } from '@angular/material/core';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { MatCalendarBody, MatCalendarCell } from './calendar-body';\n/**\n * An internal component used to display a single year in the datepicker.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatYearView<D> implements AfterContentInit {\n    private _changeDetectorRef;\n    private _dateFormats;\n    _dateAdapter: DateAdapter<D>;\n    private _dir?;\n    /** The date to display in this year view (everything other than the year is ignored). */\n    activeDate: D;\n    private _activeDate;\n    /** The currently selected date. */\n    selected: D | null;\n    private _selected;\n    /** The minimum selectable date. */\n    minDate: D | null;\n    private _minDate;\n    /** The maximum selectable date. */\n    maxDate: D | null;\n    private _maxDate;\n    /** A function used to filter which dates are selectable. */\n    dateFilter: (date: D) => boolean;\n    /** Emits when a new month is selected. */\n    readonly selectedChange: EventEmitter<D>;\n    /** Emits the selected month. This doesn't imply a change on the selected date */\n    readonly monthSelected: EventEmitter<D>;\n    /** Emits when any date is activated. */\n    readonly activeDateChange: EventEmitter<D>;\n    /** The body of calendar table */\n    _matCalendarBody: MatCalendarBody;\n    /** Grid of calendar cells representing the months of the year. */\n    _months: MatCalendarCell[][];\n    /** The label for this year (e.g. \"2017\"). */\n    _yearLabel: string;\n    /** The month in this year that today falls on. Null if today is in a different year. */\n    _todayMonth: number | null;\n    /**\n     * The month in this year that the selected Date falls on.\n     * Null if the selected Date is in a different year.\n     */\n    _selectedMonth: number | null;\n    constructor(_changeDetectorRef: ChangeDetectorRef, _dateFormats: MatDateFormats, _dateAdapter: DateAdapter<D>, _dir?: Directionality | undefined);\n    ngAfterContentInit(): void;\n    /** Handles when a new month is selected. */\n    _monthSelected(month: number): void;\n    /** Handles keydown events on the calendar body when calendar is in year view. */\n    _handleCalendarBodyKeydown(event: KeyboardEvent): void;\n    /** Initializes this year view. */\n    _init(): void;\n    /** Focuses the active cell after the microtask queue is empty. */\n    _focusActiveCell(): void;\n    /**\n     * Gets the month in this year that the given Date falls on.\n     * Returns null if the given Date is in another year.\n     */\n    private _getMonthInCurrentYear;\n    /** Creates an MatCalendarCell for the given month. */\n    private _createCellForMonth;\n    /** Whether the given month is enabled. */\n    private _shouldEnableMonth;\n    /**\n     * Tests whether the combination month/year is after this.maxDate, considering\n     * just the month and year of this.maxDate\n     */\n    private _isYearAndMonthAfterMaxDate;\n    /**\n     * Tests whether the combination month/year is before this.minDate, considering\n     * just the month and year of this.minDate\n     */\n    private _isYearAndMonthBeforeMinDate;\n    /**\n     * @param obj The object to check.\n     * @returns The given object if it is both a date instance and valid, otherwise null.\n     */\n    private _getValidDateOrNull;\n    /** Determines whether the user has the RTL layout direction. */\n    private _isRtl;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatYearView<any>>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatYearView<any>, \"mat-year-view\", [\"matYearView\"], { 'activeDate': \"activeDate\", 'selected': \"selected\", 'minDate': \"minDate\", 'maxDate': \"maxDate\", 'dateFilter': \"dateFilter\" }, { 'selectedChange': \"selectedChange\", 'monthSelected': \"monthSelected\", 'activeDateChange': \"activeDateChange\" }, never>;\n}\n\n//# sourceMappingURL=year-view.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/dialog/dialog-animations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationTriggerMetadata } from '@angular/animations';\n/**\n * Animations used by MatDialog.\n * @docs-private\n */\nexport declare const matDialogAnimations: {\n    readonly dialogContainer: AnimationTriggerMetadata;\n    readonly slideDialog: AnimationTriggerMetadata;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/dialog/dialog-config.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ViewContainerRef, ComponentFactoryResolver } from '@angular/core';\nimport { Direction } from '@angular/cdk/bidi';\nimport { ScrollStrategy } from '@angular/cdk/overlay';\n/** Valid ARIA roles for a dialog element. */\nexport declare type DialogRole = 'dialog' | 'alertdialog';\n/** Possible overrides for a dialog's position. */\nexport interface DialogPosition {\n    /** Override for the dialog's top position. */\n    top?: string;\n    /** Override for the dialog's bottom position. */\n    bottom?: string;\n    /** Override for the dialog's left position. */\n    left?: string;\n    /** Override for the dialog's right position. */\n    right?: string;\n}\n/**\n * Configuration for opening a modal dialog with the MatDialog service.\n */\nexport declare class MatDialogConfig<D = any> {\n    /**\n     * Where the attached component should live in Angular's *logical* component tree.\n     * This affects what is available for injection and the change detection order for the\n     * component instantiated inside of the dialog. This does not affect where the dialog\n     * content will be rendered.\n     */\n    viewContainerRef?: ViewContainerRef;\n    /** ID for the dialog. If omitted, a unique one will be generated. */\n    id?: string;\n    /** The ARIA role of the dialog element. */\n    role?: DialogRole;\n    /** Custom class for the overlay pane. */\n    panelClass?: string | string[];\n    /** Whether the dialog has a backdrop. */\n    hasBackdrop?: boolean;\n    /** Custom class for the backdrop. */\n    backdropClass?: string;\n    /** Whether the user can use escape or clicking on the backdrop to close the modal. */\n    disableClose?: boolean;\n    /** Width of the dialog. */\n    width?: string;\n    /** Height of the dialog. */\n    height?: string;\n    /** Min-width of the dialog. If a number is provided, assumes pixel units. */\n    minWidth?: number | string;\n    /** Min-height of the dialog. If a number is provided, assumes pixel units. */\n    minHeight?: number | string;\n    /** Max-width of the dialog. If a number is provided, assumes pixel units. Defaults to 80vw. */\n    maxWidth?: number | string;\n    /** Max-height of the dialog. If a number is provided, assumes pixel units. */\n    maxHeight?: number | string;\n    /** Position overrides. */\n    position?: DialogPosition;\n    /** Data being injected into the child component. */\n    data?: D | null;\n    /** Layout direction for the dialog's content. */\n    direction?: Direction;\n    /** ID of the element that describes the dialog. */\n    ariaDescribedBy?: string | null;\n    /** ID of the element that labels the dialog. */\n    ariaLabelledBy?: string | null;\n    /** Aria label to assign to the dialog element. */\n    ariaLabel?: string | null;\n    /** Whether the dialog should focus the first focusable element on open. */\n    autoFocus?: boolean;\n    /**\n     * Whether the dialog should restore focus to the\n     * previously-focused element, after it's closed.\n     */\n    restoreFocus?: boolean;\n    /** Scroll strategy to be used for the dialog. */\n    scrollStrategy?: ScrollStrategy;\n    /**\n     * Whether the dialog should close when the user goes backwards/forwards in history.\n     * Note that this usually doesn't include clicking on links (unless the user is using\n     * the `HashLocationStrategy`).\n     */\n    closeOnNavigation?: boolean;\n    /** Alternate `ComponentFactoryResolver` to use when resolving the associated component. */\n    componentFactoryResolver?: ComponentFactoryResolver;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/dialog/dialog-container.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentRef, ElementRef, EmbeddedViewRef, EventEmitter, ChangeDetectorRef } from '@angular/core';\nimport { AnimationEvent } from '@angular/animations';\nimport { BasePortalOutlet, ComponentPortal, CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { FocusTrapFactory } from '@angular/cdk/a11y';\nimport { MatDialogConfig } from './dialog-config';\n/**\n * Throws an exception for the case when a ComponentPortal is\n * attached to a DomPortalOutlet without an origin.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare function throwMatDialogContentAlreadyAttachedError(): void;\n/**\n * Internal component that wraps user-provided dialog content.\n * Animation is based on https://material.io/guidelines/motion/choreography.html.\n * @docs-private\n */\nexport declare class MatDialogContainer extends BasePortalOutlet {\n    private _elementRef;\n    private _focusTrapFactory;\n    private _changeDetectorRef;\n    private _document;\n    /** The dialog configuration. */\n    _config: MatDialogConfig;\n    /** The portal outlet inside of this container into which the dialog content will be loaded. */\n    _portalOutlet: CdkPortalOutlet;\n    /** The class that traps and manages focus within the dialog. */\n    private _focusTrap;\n    /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n    private _elementFocusedBeforeDialogWasOpened;\n    /** State of the dialog animation. */\n    _state: 'void' | 'enter' | 'exit';\n    /** Emits when an animation state changes. */\n    _animationStateChanged: EventEmitter<AnimationEvent>;\n    /** ID of the element that should be considered as the dialog's label. */\n    _ariaLabelledBy: string | null;\n    /** ID for the container DOM element. */\n    _id: string;\n    constructor(_elementRef: ElementRef, _focusTrapFactory: FocusTrapFactory, _changeDetectorRef: ChangeDetectorRef, _document: any, \n    /** The dialog configuration. */\n    _config: MatDialogConfig);\n    /**\n     * Attach a ComponentPortal as content to this dialog container.\n     * @param portal Portal to be attached as the dialog content.\n     */\n    attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n    /**\n     * Attach a TemplatePortal as content to this dialog container.\n     * @param portal Portal to be attached as the dialog content.\n     */\n    attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n    /** Moves the focus inside the focus trap. */\n    private _trapFocus;\n    /** Restores focus to the element that was focused before the dialog opened. */\n    private _restoreFocus;\n    /** Saves a reference to the element that was focused before the dialog was opened. */\n    private _savePreviouslyFocusedElement;\n    /** Callback, invoked whenever an animation on the host completes. */\n    _onAnimationDone(event: AnimationEvent): void;\n    /** Callback, invoked when an animation on the host starts. */\n    _onAnimationStart(event: AnimationEvent): void;\n    /** Starts the dialog exit animation. */\n    _startExitAnimation(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatDialogContainer>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatDialogContainer, \"mat-dialog-container\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=dialog-container.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/dialog/dialog-content-directives.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { OnChanges, OnInit, SimpleChanges, ElementRef } from '@angular/core';\nimport { MatDialog } from './dialog';\nimport { MatDialogRef } from './dialog-ref';\n/**\n * Button that will close the current dialog.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatDialogClose implements OnInit, OnChanges {\n    dialogRef: MatDialogRef<any>;\n    private _elementRef;\n    private _dialog;\n    /** Screenreader label for the button. */\n    ariaLabel: string;\n    /** Default to \"button\" to prevents accidental form submits. */\n    type: 'submit' | 'button' | 'reset';\n    /** Dialog close input. */\n    dialogResult: any;\n    _matDialogClose: any;\n    constructor(dialogRef: MatDialogRef<any>, _elementRef: ElementRef<HTMLElement>, _dialog: MatDialog);\n    ngOnInit(): void;\n    ngOnChanges(changes: SimpleChanges): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatDialogClose>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatDialogClose, \"[mat-dialog-close], [matDialogClose]\", [\"matDialogClose\"], { 'type': \"type\", 'dialogResult': \"mat-dialog-close\", 'ariaLabel': \"aria-label\", '_matDialogClose': \"matDialogClose\" }, {}, never>;\n}\n/**\n * Title of a dialog element. Stays fixed to the top of the dialog when scrolling.\n */\nexport declare class MatDialogTitle implements OnInit {\n    private _dialogRef;\n    private _elementRef;\n    private _dialog;\n    id: string;\n    constructor(_dialogRef: MatDialogRef<any>, _elementRef: ElementRef<HTMLElement>, _dialog: MatDialog);\n    ngOnInit(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatDialogTitle>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatDialogTitle, \"[mat-dialog-title], [matDialogTitle]\", [\"matDialogTitle\"], { 'id': \"id\" }, {}, never>;\n}\n/**\n * Scrollable content container of a dialog.\n */\nexport declare class MatDialogContent {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatDialogContent>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatDialogContent, \"[mat-dialog-content], mat-dialog-content, [matDialogContent]\", never, {}, {}, never>;\n}\n/**\n * Container for the bottom action buttons in a dialog.\n * Stays fixed to the bottom when scrolling.\n */\nexport declare class MatDialogActions {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatDialogActions>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatDialogActions, \"[mat-dialog-actions], mat-dialog-actions, [matDialogActions]\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=dialog-content-directives.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/dialog/dialog-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './dialog-container';\nimport * as ɵngcc2 from './dialog-content-directives';\nimport * as ɵngcc3 from '@angular/common';\nimport * as ɵngcc4 from '@angular/cdk/overlay';\nimport * as ɵngcc5 from '@angular/cdk/portal';\nimport * as ɵngcc6 from '@angular/material/core';\nexport declare class MatDialogModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatDialogModule, [typeof ɵngcc1.MatDialogContainer, typeof ɵngcc2.MatDialogClose, typeof ɵngcc2.MatDialogTitle, typeof ɵngcc2.MatDialogActions, typeof ɵngcc2.MatDialogContent], [typeof ɵngcc3.CommonModule, typeof ɵngcc4.OverlayModule, typeof ɵngcc5.PortalModule, typeof ɵngcc6.MatCommonModule], [typeof ɵngcc1.MatDialogContainer, typeof ɵngcc2.MatDialogClose, typeof ɵngcc2.MatDialogTitle, typeof ɵngcc2.MatDialogContent, typeof ɵngcc2.MatDialogActions, typeof ɵngcc6.MatCommonModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatDialogModule>;\n}\n\n//# sourceMappingURL=dialog-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/dialog/dialog-ref.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { Location } from '@angular/common';\nimport { Observable } from 'rxjs';\nimport { DialogPosition } from './dialog-config';\nimport { MatDialogContainer } from './dialog-container';\n/** Possible states of the lifecycle of a dialog. */\nexport declare const enum MatDialogState {\n    OPEN = 0,\n    CLOSING = 1,\n    CLOSED = 2\n}\n/**\n * Reference to a dialog opened via the MatDialog service.\n */\nexport declare class MatDialogRef<T, R = any> {\n    private _overlayRef;\n    _containerInstance: MatDialogContainer;\n    readonly id: string;\n    /** The instance of component opened into the dialog. */\n    componentInstance: T;\n    /** Whether the user is allowed to close the dialog. */\n    disableClose: boolean | undefined;\n    /** Subject for notifying the user that the dialog has finished opening. */\n    private readonly _afterOpened;\n    /** Subject for notifying the user that the dialog has finished closing. */\n    private readonly _afterClosed;\n    /** Subject for notifying the user that the dialog has started closing. */\n    private readonly _beforeClosed;\n    /** Result to be passed to afterClosed. */\n    private _result;\n    /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */\n    private _closeFallbackTimeout;\n    /** Current state of the dialog. */\n    private _state;\n    constructor(_overlayRef: OverlayRef, _containerInstance: MatDialogContainer, _location?: Location, id?: string);\n    /**\n     * Close the dialog.\n     * @param dialogResult Optional result to return to the dialog opener.\n     */\n    close(dialogResult?: R): void;\n    /**\n     * Gets an observable that is notified when the dialog is finished opening.\n     */\n    afterOpened(): Observable<void>;\n    /**\n     * Gets an observable that is notified when the dialog is finished closing.\n     */\n    afterClosed(): Observable<R | undefined>;\n    /**\n     * Gets an observable that is notified when the dialog has started closing.\n     */\n    beforeClosed(): Observable<R | undefined>;\n    /**\n     * Gets an observable that emits when the overlay's backdrop has been clicked.\n     */\n    backdropClick(): Observable<MouseEvent>;\n    /**\n     * Gets an observable that emits when keydown events are targeted on the overlay.\n     */\n    keydownEvents(): Observable<KeyboardEvent>;\n    /**\n     * Updates the dialog's position.\n     * @param position New dialog position.\n     */\n    updatePosition(position?: DialogPosition): this;\n    /**\n     * Updates the dialog's width and height.\n     * @param width New width of the dialog.\n     * @param height New height of the dialog.\n     */\n    updateSize(width?: string, height?: string): this;\n    /** Add a CSS class or an array of classes to the overlay pane. */\n    addPanelClass(classes: string | string[]): this;\n    /** Remove a CSS class or an array of classes from the overlay pane. */\n    removePanelClass(classes: string | string[]): this;\n    /**\n     * Gets an observable that is notified when the dialog is finished opening.\n     * @deprecated Use `afterOpened` instead.\n     * @breaking-change 8.0.0\n     */\n    afterOpen(): Observable<void>;\n    /**\n     * Gets an observable that is notified when the dialog has started closing.\n     * @deprecated Use `beforeClosed` instead.\n     * @breaking-change 8.0.0\n     */\n    beforeClose(): Observable<R | undefined>;\n    /** Gets the current state of the dialog's lifecycle. */\n    getState(): MatDialogState;\n    /** Fetches the position strategy object from the overlay ref. */\n    private _getPositionStrategy;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/dialog/dialog.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Overlay, OverlayContainer, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { Location } from '@angular/common';\nimport { InjectionToken, Injector, OnDestroy, TemplateRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { MatDialogConfig } from './dialog-config';\nimport { MatDialogRef } from './dialog-ref';\n/** Injection token that can be used to access the data that was passed in to a dialog. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare const MAT_DIALOG_DATA: InjectionToken<any>;\n/** Injection token that can be used to specify default dialog options. */\nexport declare const MAT_DIALOG_DEFAULT_OPTIONS: InjectionToken<MatDialogConfig<any>>;\n/** Injection token that determines the scroll handling while the dialog is open. */\nexport declare const MAT_DIALOG_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;\n/** @docs-private */\nexport declare function MAT_DIALOG_SCROLL_STRATEGY_FACTORY(overlay: Overlay): () => ScrollStrategy;\n/** @docs-private */\nexport declare function MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay): () => ScrollStrategy;\n/** @docs-private */\nexport declare const MAT_DIALOG_SCROLL_STRATEGY_PROVIDER: {\n    provide: InjectionToken<() => ScrollStrategy>;\n    deps: (typeof Overlay)[];\n    useFactory: typeof MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY;\n};\n/**\n * Service to open Material Design modal dialogs.\n */\nexport declare class MatDialog implements OnDestroy {\n    private _overlay;\n    private _injector;\n    private _location;\n    private _defaultOptions;\n    private _parentDialog;\n    private _overlayContainer;\n    private _openDialogsAtThisLevel;\n    private readonly _afterAllClosedAtThisLevel;\n    private readonly _afterOpenedAtThisLevel;\n    private _ariaHiddenElements;\n    private _scrollStrategy;\n    /** Keeps track of the currently-open dialogs. */\n    readonly openDialogs: MatDialogRef<any>[];\n    /** Stream that emits when a dialog has been opened. */\n    readonly afterOpened: Subject<MatDialogRef<any>>;\n    /**\n     * Stream that emits when a dialog has been opened.\n     * @deprecated Use `afterOpened` instead.\n     * @breaking-change 8.0.0\n     */\n    readonly afterOpen: Subject<MatDialogRef<any>>;\n    readonly _afterAllClosed: Subject<void>;\n    /**\n     * Stream that emits when all open dialog have finished closing.\n     * Will emit on subscribe if there are no open dialogs to begin with.\n     */\n    readonly afterAllClosed: Observable<void>;\n    constructor(_overlay: Overlay, _injector: Injector, _location: Location, _defaultOptions: MatDialogConfig, scrollStrategy: any, _parentDialog: MatDialog, _overlayContainer: OverlayContainer);\n    /**\n     * Opens a modal dialog containing the given component.\n     * @param componentOrTemplateRef Type of the component to load into the dialog,\n     *     or a TemplateRef to instantiate as the dialog content.\n     * @param config Extra configuration options.\n     * @returns Reference to the newly-opened dialog.\n     */\n    open<T, D = any, R = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config?: MatDialogConfig<D>): MatDialogRef<T, R>;\n    /**\n     * Closes all of the currently-open dialogs.\n     */\n    closeAll(): void;\n    /**\n     * Finds an open dialog by its id.\n     * @param id ID to use when looking up the dialog.\n     */\n    getDialogById(id: string): MatDialogRef<any> | undefined;\n    ngOnDestroy(): void;\n    /**\n     * Creates the overlay into which the dialog will be loaded.\n     * @param config The dialog configuration.\n     * @returns A promise resolving to the OverlayRef for the created overlay.\n     */\n    private _createOverlay;\n    /**\n     * Creates an overlay config from a dialog config.\n     * @param dialogConfig The dialog configuration.\n     * @returns The overlay configuration.\n     */\n    private _getOverlayConfig;\n    /**\n     * Attaches an MatDialogContainer to a dialog's already-created overlay.\n     * @param overlay Reference to the dialog's underlying overlay.\n     * @param config The dialog configuration.\n     * @returns A promise resolving to a ComponentRef for the attached container.\n     */\n    private _attachDialogContainer;\n    /**\n     * Attaches the user-provided component to the already-created MatDialogContainer.\n     * @param componentOrTemplateRef The type of component being loaded into the dialog,\n     *     or a TemplateRef to instantiate as the content.\n     * @param dialogContainer Reference to the wrapping MatDialogContainer.\n     * @param overlayRef Reference to the overlay in which the dialog resides.\n     * @param config The dialog configuration.\n     * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n     */\n    private _attachDialogContent;\n    /**\n     * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n     * of a dialog to close itself and, optionally, to return a value.\n     * @param config Config object that is used to construct the dialog.\n     * @param dialogRef Reference to the dialog.\n     * @param container Dialog container element that wraps all of the contents.\n     * @returns The custom injector that can be used inside the dialog.\n     */\n    private _createInjector;\n    /**\n     * Removes a dialog from the array of open dialogs.\n     * @param dialogRef Dialog to be removed.\n     */\n    private _removeOpenDialog;\n    /**\n     * Hides all of the content that isn't an overlay from assistive technology.\n     */\n    private _hideNonDialogContentFromAssistiveTechnology;\n    /** Closes all of the dialogs in an array. */\n    private _closeDialogs;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatDialog>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<MatDialog>;\n}\n\n//# sourceMappingURL=dialog.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/dialog/index.d.ts",
      "node_modules/@angular/material/dialog/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/dialog/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './dialog-module';\nexport * from './dialog';\nexport * from './dialog-container';\nexport * from './dialog-content-directives';\nexport * from './dialog-config';\nexport * from './dialog-ref';\nexport * from './dialog-animations';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/dialog/testing/dialog-harness-filters.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface DialogHarnessFilters extends BaseHarnessFilters {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/dialog/testing/dialog-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { DialogRole } from '@angular/material/dialog';\nimport { DialogHarnessFilters } from './dialog-harness-filters';\n/**\n * Harness for interacting with a standard MatDialog in tests.\n * @dynamic\n */\nexport declare class MatDialogHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a dialog with\n     * specific attributes.\n     * @param options Options for narrowing the search:\n     *   - `id` finds a dialog with specific id.\n     * @return a `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: DialogHarnessFilters): HarnessPredicate<MatDialogHarness>;\n    /** Gets the id of the dialog. */\n    getId(): Promise<string | null>;\n    /** Gets the role of the dialog. */\n    getRole(): Promise<DialogRole | null>;\n    /** Gets the value of the dialog's \"aria-label\" attribute. */\n    getAriaLabel(): Promise<string | null>;\n    /** Gets the value of the dialog's \"aria-labelledby\" attribute. */\n    getAriaLabelledby(): Promise<string | null>;\n    /** Gets the value of the dialog's \"aria-describedby\" attribute. */\n    getAriaDescribedby(): Promise<string | null>;\n    /**\n     * Closes the dialog by pressing escape. Note that this method cannot\n     * be used if \"disableClose\" has been set to true for the dialog.\n     */\n    close(): Promise<void>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/dialog/testing/index.d.ts",
      "node_modules/@angular/material/dialog/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/dialog/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './dialog-harness';\nexport * from './dialog-harness-filters';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/divider/divider-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatDividerModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/divider/divider.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatDivider {\n    /** Whether the divider is vertically aligned. */\n    vertical: boolean;\n    private _vertical;\n    /** Whether the divider is an inset divider. */\n    inset: boolean;\n    private _inset;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/divider/index.d.ts",
      "node_modules/@angular/material/divider/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/divider/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './divider';\nexport * from './divider-module';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/expansion/accordion-base.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\nimport { CdkAccordion } from '@angular/cdk/accordion';\n/** MatAccordion's display modes. */\nexport declare type MatAccordionDisplayMode = 'default' | 'flat';\n/** MatAccordion's toggle positions. */\nexport declare type MatAccordionTogglePosition = 'before' | 'after';\n/**\n * Base interface for a `MatAccordion`.\n * @docs-private\n */\nexport interface MatAccordionBase extends CdkAccordion {\n    /** Whether the expansion indicator should be hidden. */\n    hideToggle: boolean;\n    /** Display mode used for all expansion panels in the accordion. */\n    displayMode: MatAccordionDisplayMode;\n    /** The position of the expansion indicator. */\n    togglePosition: MatAccordionTogglePosition;\n    /** Handles keyboard events coming in from the panel headers. */\n    _handleHeaderKeydown: (event: KeyboardEvent) => void;\n    /** Handles focus events on the panel headers. */\n    _handleHeaderFocus: (header: any) => void;\n}\n/**\n * Token used to provide a `MatAccordion` to `MatExpansionPanel`.\n * Used primarily to avoid circular imports between `MatAccordion` and `MatExpansionPanel`.\n */\nexport declare const MAT_ACCORDION: InjectionToken<MatAccordionBase>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/expansion/accordion.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { QueryList, AfterContentInit } from '@angular/core';\nimport { CdkAccordion } from '@angular/cdk/accordion';\nimport { MatAccordionBase, MatAccordionDisplayMode, MatAccordionTogglePosition } from './accordion-base';\nimport { MatExpansionPanelHeader } from './expansion-panel-header';\n/**\n * Directive for a Material Design Accordion.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatAccordion extends CdkAccordion implements MatAccordionBase, AfterContentInit {\n    private _keyManager;\n    _headers: QueryList<MatExpansionPanelHeader>;\n    /** Whether the expansion indicator should be hidden. */\n    hideToggle: boolean;\n    private _hideToggle;\n    /**\n     * Display mode used for all expansion panels in the accordion. Currently two display\n     * modes exist:\n     *  default - a gutter-like spacing is placed around any expanded panel, placing the expanded\n     *     panel at a different elevation from the rest of the accordion.\n     *  flat - no spacing is placed around expanded panels, showing all panels at the same\n     *     elevation.\n     */\n    displayMode: MatAccordionDisplayMode;\n    /** The position of the expansion indicator. */\n    togglePosition: MatAccordionTogglePosition;\n    ngAfterContentInit(): void;\n    /** Handles keyboard events coming in from the panel headers. */\n    _handleHeaderKeydown(event: KeyboardEvent): void;\n    _handleHeaderFocus(header: MatExpansionPanelHeader): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatAccordion>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatAccordion, \"mat-accordion\", [\"matAccordion\"], { 'multi': \"multi\", 'displayMode': \"displayMode\", 'togglePosition': \"togglePosition\", 'hideToggle': \"hideToggle\" }, {}, [\"_headers\"]>;\n}\n\n//# sourceMappingURL=accordion.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/expansion/expansion-animations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationTriggerMetadata } from '@angular/animations';\n/** Time and timing curve for expansion panel animations. */\nexport declare const EXPANSION_PANEL_ANIMATION_TIMING = \"225ms cubic-bezier(0.4,0.0,0.2,1)\";\n/**\n * Animations used by the Material expansion panel.\n *\n * A bug in angular animation's `state` when ViewContainers are moved using ViewContainerRef.move()\n * causes the animation state of moved components to become `void` upon exit, and not update again\n * upon reentry into the DOM.  This can lead a to situation for the expansion panel where the state\n * of the panel is `expanded` or `collapsed` but the animation state is `void`.\n *\n * To correctly handle animating to the next state, we animate between `void` and `collapsed` which\n * are defined to have the same styles. Since angular animates from the current styles to the\n * destination state's style definition, in situations where we are moving from `void`'s styles to\n * `collapsed` this acts a noop since no style values change.\n *\n * In the case where angular's animation state is out of sync with the expansion panel's state, the\n * expansion panel being `expanded` and angular animations being `void`, the animation from the\n * `expanded`'s effective styles (though in a `void` animation state) to the collapsed state will\n * occur as expected.\n *\n * Angular Bug: https://github.com/angular/angular/issues/18847\n *\n * @docs-private\n */\nexport declare const matExpansionAnimations: {\n    readonly indicatorRotate: AnimationTriggerMetadata;\n    readonly expansionHeaderHeight: AnimationTriggerMetadata;\n    readonly bodyExpansion: AnimationTriggerMetadata;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/expansion/expansion-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './accordion';\nimport * as ɵngcc2 from './expansion-panel';\nimport * as ɵngcc3 from './expansion-panel-header';\nimport * as ɵngcc4 from './expansion-panel-content';\nimport * as ɵngcc5 from '@angular/common';\nimport * as ɵngcc6 from '@angular/cdk/accordion';\nimport * as ɵngcc7 from '@angular/cdk/portal';\nexport declare class MatExpansionModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatExpansionModule, [typeof ɵngcc1.MatAccordion, typeof ɵngcc2.MatExpansionPanel, typeof ɵngcc2.MatExpansionPanelActionRow, typeof ɵngcc3.MatExpansionPanelHeader, typeof ɵngcc3.MatExpansionPanelTitle, typeof ɵngcc3.MatExpansionPanelDescription, typeof ɵngcc4.MatExpansionPanelContent], [typeof ɵngcc5.CommonModule, typeof ɵngcc6.CdkAccordionModule, typeof ɵngcc7.PortalModule], [typeof ɵngcc1.MatAccordion, typeof ɵngcc2.MatExpansionPanel, typeof ɵngcc2.MatExpansionPanelActionRow, typeof ɵngcc3.MatExpansionPanelHeader, typeof ɵngcc3.MatExpansionPanelTitle, typeof ɵngcc3.MatExpansionPanelDescription, typeof ɵngcc4.MatExpansionPanelContent]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatExpansionModule>;\n}\n\n//# sourceMappingURL=expansion-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/expansion/expansion-panel-content.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { TemplateRef } from '@angular/core';\n/**\n * Expansion panel content that will be rendered lazily\n * after the panel is opened for the first time.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatExpansionPanelContent {\n    _template: TemplateRef<any>;\n    constructor(_template: TemplateRef<any>);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatExpansionPanelContent>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatExpansionPanelContent, \"ng-template[matExpansionPanelContent]\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=expansion-panel-content.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/expansion/expansion-panel-header.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusMonitor, FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport { ChangeDetectorRef, ElementRef, OnDestroy } from '@angular/core';\nimport { MatExpansionPanel, MatExpansionPanelDefaultOptions } from './expansion-panel';\nimport { MatAccordionTogglePosition } from './accordion-base';\n/**\n * `<mat-expansion-panel-header>`\n *\n * This component corresponds to the header element of an `<mat-expansion-panel>`.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatExpansionPanelHeader implements OnDestroy, FocusableOption {\n    panel: MatExpansionPanel;\n    private _element;\n    private _focusMonitor;\n    private _changeDetectorRef;\n    private _parentChangeSubscription;\n    /** Whether Angular animations in the panel header should be disabled. */\n    _animationsDisabled: boolean;\n    constructor(panel: MatExpansionPanel, _element: ElementRef, _focusMonitor: FocusMonitor, _changeDetectorRef: ChangeDetectorRef, defaultOptions?: MatExpansionPanelDefaultOptions);\n    _animationStarted(): void;\n    /** Height of the header while the panel is expanded. */\n    expandedHeight: string;\n    /** Height of the header while the panel is collapsed. */\n    collapsedHeight: string;\n    /**\n     * Whether the associated panel is disabled. Implemented as a part of `FocusableOption`.\n     * @docs-private\n     */\n    readonly disabled: any;\n    /** Toggles the expanded state of the panel. */\n    _toggle(): void;\n    /** Gets whether the panel is expanded. */\n    _isExpanded(): boolean;\n    /** Gets the expanded state string of the panel. */\n    _getExpandedState(): string;\n    /** Gets the panel id. */\n    _getPanelId(): string;\n    /** Gets the toggle position for the header. */\n    _getTogglePosition(): MatAccordionTogglePosition;\n    /** Gets whether the expand indicator should be shown. */\n    _showToggle(): boolean;\n    /** Handle keydown event calling to toggle() if appropriate. */\n    _keydown(event: KeyboardEvent): void;\n    /**\n     * Focuses the panel header. Implemented as a part of `FocusableOption`.\n     * @param origin Origin of the action that triggered the focus.\n     * @docs-private\n     */\n    focus(origin?: FocusOrigin, options?: FocusOptions): void;\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatExpansionPanelHeader>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatExpansionPanelHeader, \"mat-expansion-panel-header\", never, { 'expandedHeight': \"expandedHeight\", 'collapsedHeight': \"collapsedHeight\" }, {}, never>;\n}\n/**\n * `<mat-panel-description>`\n *\n * This directive is to be used inside of the MatExpansionPanelHeader component.\n */\nexport declare class MatExpansionPanelDescription {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatExpansionPanelDescription>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatExpansionPanelDescription, \"mat-panel-description\", never, {}, {}, never>;\n}\n/**\n * `<mat-panel-title>`\n *\n * This directive is to be used inside of the MatExpansionPanelHeader component.\n */\nexport declare class MatExpansionPanelTitle {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatExpansionPanelTitle>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatExpansionPanelTitle, \"mat-panel-title\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=expansion-panel-header.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/expansion/expansion-panel.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationEvent } from '@angular/animations';\nimport { CdkAccordionItem } from '@angular/cdk/accordion';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { AfterContentInit, ChangeDetectorRef, EventEmitter, ElementRef, OnChanges, OnDestroy, SimpleChanges, ViewContainerRef, InjectionToken } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { MatExpansionPanelContent } from './expansion-panel-content';\nimport { MatAccordionBase, MatAccordionTogglePosition } from './accordion-base';\n/** MatExpansionPanel's states. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare type MatExpansionPanelState = 'expanded' | 'collapsed';\n/**\n * Object that can be used to override the default options\n * for all of the expansion panels in a module.\n */\nexport interface MatExpansionPanelDefaultOptions {\n    /** Height of the header while the panel is expanded. */\n    expandedHeight: string;\n    /** Height of the header while the panel is collapsed. */\n    collapsedHeight: string;\n    /** Whether the toggle indicator should be hidden. */\n    hideToggle: boolean;\n}\n/**\n * Injection token that can be used to configure the defalt\n * options for the expansion panel component.\n */\nexport declare const MAT_EXPANSION_PANEL_DEFAULT_OPTIONS: InjectionToken<MatExpansionPanelDefaultOptions>;\n/**\n * `<mat-expansion-panel>`\n *\n * This component can be used as a single element to show expandable content, or as one of\n * multiple children of an element with the MatAccordion directive attached.\n */\nexport declare class MatExpansionPanel extends CdkAccordionItem implements AfterContentInit, OnChanges, OnDestroy {\n    private _viewContainerRef;\n    _animationMode: string;\n    private _document;\n    private _hideToggle;\n    private _togglePosition;\n    /** Whether the toggle indicator should be hidden. */\n    hideToggle: boolean;\n    /** The position of the expansion indicator. */\n    togglePosition: MatAccordionTogglePosition;\n    /** An event emitted after the body's expansion animation happens. */\n    afterExpand: EventEmitter<void>;\n    /** An event emitted after the body's collapse animation happens. */\n    afterCollapse: EventEmitter<void>;\n    /** Stream that emits for changes in `@Input` properties. */\n    readonly _inputChanges: Subject<SimpleChanges>;\n    /** Optionally defined accordion the expansion panel belongs to. */\n    accordion: MatAccordionBase;\n    /** Content that will be rendered lazily. */\n    _lazyContent: MatExpansionPanelContent;\n    /** Element containing the panel's user-provided content. */\n    _body: ElementRef<HTMLElement>;\n    /** Portal holding the user's content. */\n    _portal: TemplatePortal;\n    /** ID for the associated header element. Used for a11y labelling. */\n    _headerId: string;\n    /** Stream of body animation done events. */\n    _bodyAnimationDone: Subject<AnimationEvent>;\n    constructor(accordion: MatAccordionBase, _changeDetectorRef: ChangeDetectorRef, _uniqueSelectionDispatcher: UniqueSelectionDispatcher, _viewContainerRef: ViewContainerRef, _document: any, _animationMode: string, defaultOptions?: MatExpansionPanelDefaultOptions);\n    /** Determines whether the expansion panel should have spacing between it and its siblings. */\n    _hasSpacing(): boolean;\n    /** Gets the expanded state string. */\n    _getExpandedState(): MatExpansionPanelState;\n    ngAfterContentInit(): void;\n    ngOnChanges(changes: SimpleChanges): void;\n    ngOnDestroy(): void;\n    /** Checks whether the expansion panel's content contains the currently-focused element. */\n    _containsFocus(): boolean;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatExpansionPanel>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatExpansionPanel, \"mat-expansion-panel\", [\"matExpansionPanel\"], { 'disabled': \"disabled\", 'expanded': \"expanded\", 'hideToggle': \"hideToggle\", 'togglePosition': \"togglePosition\" }, { 'opened': \"opened\", 'closed': \"closed\", 'expandedChange': \"expandedChange\", 'afterExpand': \"afterExpand\", 'afterCollapse': \"afterCollapse\" }, [\"_lazyContent\"]>;\n}\nexport declare class MatExpansionPanelActionRow {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatExpansionPanelActionRow>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatExpansionPanelActionRow, \"mat-action-row\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=expansion-panel.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/expansion/index.d.ts",
      "node_modules/@angular/material/expansion/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/expansion/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './expansion-module';\nexport * from './accordion';\nexport * from './accordion-base';\nexport * from './expansion-panel';\nexport * from './expansion-panel-header';\nexport * from './expansion-panel-content';\nexport * from './expansion-animations';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/form-field/error.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Single error message to be shown underneath the form field. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatError {\n    id: string;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatError>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatError, \"mat-error\", never, { 'id': \"id\" }, {}, never>;\n}\n\n//# sourceMappingURL=error.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/form-field/form-field-animations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationTriggerMetadata } from '@angular/animations';\n/**\n * Animations used by the MatFormField.\n * @docs-private\n */\nexport declare const matFormFieldAnimations: {\n    readonly transitionMessages: AnimationTriggerMetadata;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/form-field/form-field-control.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Observable } from 'rxjs';\nimport { NgControl } from '@angular/forms';\n/** An interface which allows a control to work inside of a `MatFormField`. */\nexport declare abstract class MatFormFieldControl<T> {\n    /** The value of the control. */\n    value: T | null;\n    /**\n     * Stream that emits whenever the state of the control changes such that the parent `MatFormField`\n     * needs to run change detection.\n     */\n    readonly stateChanges: Observable<void>;\n    /** The element ID for this control. */\n    readonly id: string;\n    /** The placeholder for this control. */\n    readonly placeholder: string;\n    /** Gets the NgControl for this control. */\n    readonly ngControl: NgControl | null;\n    /** Whether the control is focused. */\n    readonly focused: boolean;\n    /** Whether the control is empty. */\n    readonly empty: boolean;\n    /** Whether the `MatFormField` label should try to float. */\n    readonly shouldLabelFloat: boolean;\n    /** Whether the control is required. */\n    readonly required: boolean;\n    /** Whether the control is disabled. */\n    readonly disabled: boolean;\n    /** Whether the control is in an error state. */\n    readonly errorState: boolean;\n    /**\n     * An optional name for the control type that can be used to distinguish `mat-form-field` elements\n     * based on their control type. The form field will add a class,\n     * `mat-form-field-type-{{controlType}}` to its root element.\n     */\n    readonly controlType?: string;\n    /**\n     * Whether the input is currently in an autofilled state. If property is not present on the\n     * control it is assumed to be false.\n     */\n    readonly autofilled?: boolean;\n    /** Sets the list of element IDs that currently describe this control. */\n    abstract setDescribedByIds(ids: string[]): void;\n    /** Handles a click on the control's container. */\n    abstract onContainerClick(event: MouseEvent): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/form-field/form-field-errors.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @docs-private */\nexport declare function getMatFormFieldPlaceholderConflictError(): Error;\n/** @docs-private */\nexport declare function getMatFormFieldDuplicatedHintError(align: string): Error;\n/** @docs-private */\nexport declare function getMatFormFieldMissingControlError(): Error;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/form-field/form-field-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './error';\nimport * as ɵngcc2 from './form-field';\nimport * as ɵngcc3 from './hint';\nimport * as ɵngcc4 from './label';\nimport * as ɵngcc5 from './placeholder';\nimport * as ɵngcc6 from './prefix';\nimport * as ɵngcc7 from './suffix';\nimport * as ɵngcc8 from '@angular/common';\nimport * as ɵngcc9 from '@angular/cdk/observers';\nexport declare class MatFormFieldModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatFormFieldModule, [typeof ɵngcc1.MatError, typeof ɵngcc2.MatFormField, typeof ɵngcc3.MatHint, typeof ɵngcc4.MatLabel, typeof ɵngcc5.MatPlaceholder, typeof ɵngcc6.MatPrefix, typeof ɵngcc7.MatSuffix], [typeof ɵngcc8.CommonModule, typeof ɵngcc9.ObserversModule], [typeof ɵngcc1.MatError, typeof ɵngcc2.MatFormField, typeof ɵngcc3.MatHint, typeof ɵngcc4.MatLabel, typeof ɵngcc5.MatPlaceholder, typeof ɵngcc6.MatPrefix, typeof ɵngcc7.MatSuffix]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatFormFieldModule>;\n}\n\n//# sourceMappingURL=form-field-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/form-field/form-field.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { AfterContentChecked, AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, InjectionToken, NgZone, QueryList, OnDestroy } from '@angular/core';\nimport { CanColor, CanColorCtor, FloatLabelType, LabelOptions } from '@angular/material/core';\nimport { MatError } from './error';\nimport { MatFormFieldControl } from './form-field-control';\nimport { MatHint } from './hint';\nimport { MatLabel } from './label';\nimport { MatPlaceholder } from './placeholder';\nimport { MatPrefix } from './prefix';\nimport { MatSuffix } from './suffix';\nimport { Platform } from '@angular/cdk/platform';\nimport { NgControl } from '@angular/forms';\n/**\n * Boilerplate for applying mixins to MatFormField.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\ndeclare class MatFormFieldBase {\n    _elementRef: ElementRef;\n    constructor(_elementRef: ElementRef);\n}\n/**\n * Base class to which we're applying the form field mixins.\n * @docs-private\n */\ndeclare const _MatFormFieldMixinBase: CanColorCtor & typeof MatFormFieldBase;\n/** Possible appearance styles for the form field. */\nexport declare type MatFormFieldAppearance = 'legacy' | 'standard' | 'fill' | 'outline';\n/**\n * Represents the default options for the form field that can be configured\n * using the `MAT_FORM_FIELD_DEFAULT_OPTIONS` injection token.\n */\nexport interface MatFormFieldDefaultOptions {\n    appearance?: MatFormFieldAppearance;\n    hideRequiredMarker?: boolean;\n}\n/**\n * Injection token that can be used to configure the\n * default options for all form field within an app.\n */\nexport declare const MAT_FORM_FIELD_DEFAULT_OPTIONS: InjectionToken<MatFormFieldDefaultOptions>;\n/** Container for form controls that applies Material Design styling and behavior. */\nexport declare class MatFormField extends _MatFormFieldMixinBase implements AfterContentInit, AfterContentChecked, AfterViewInit, OnDestroy, CanColor {\n    _elementRef: ElementRef;\n    private _changeDetectorRef;\n    private _dir;\n    private _defaults;\n    private _platform;\n    private _ngZone;\n    private _labelOptions;\n    /**\n     * Whether the outline gap needs to be calculated\n     * immediately on the next change detection run.\n     */\n    private _outlineGapCalculationNeededImmediately;\n    /** Whether the outline gap needs to be calculated next time the zone has stabilized. */\n    private _outlineGapCalculationNeededOnStable;\n    private _destroyed;\n    /** The form-field appearance style. */\n    appearance: MatFormFieldAppearance;\n    _appearance: MatFormFieldAppearance;\n    /** Whether the required marker should be hidden. */\n    hideRequiredMarker: boolean;\n    private _hideRequiredMarker;\n    /** Override for the logic that disables the label animation in certain cases. */\n    private _showAlwaysAnimate;\n    /** Whether the floating label should always float or not. */\n    readonly _shouldAlwaysFloat: boolean;\n    /** Whether the label can float or not. */\n    readonly _canLabelFloat: boolean;\n    /** State of the mat-hint and mat-error animations. */\n    _subscriptAnimationState: string;\n    /** Text for the form field hint. */\n    hintLabel: string;\n    private _hintLabel;\n    _hintLabelId: string;\n    _labelId: string;\n    /**\n     * Whether the label should always float, never float or float as the user types.\n     *\n     * Note: only the legacy appearance supports the `never` option. `never` was originally added as a\n     * way to make the floating label emulate the behavior of a standard input placeholder. However\n     * the form field now supports both floating labels and placeholders. Therefore in the non-legacy\n     * appearances the `never` option has been disabled in favor of just using the placeholder.\n     */\n    floatLabel: FloatLabelType;\n    private _floatLabel;\n    /** Whether the Angular animations are enabled. */\n    _animationsEnabled: boolean;\n    private _previousDirection;\n    /**\n     * @deprecated\n     * @breaking-change 8.0.0\n     */\n    underlineRef: ElementRef;\n    _connectionContainerRef: ElementRef;\n    _inputContainerRef: ElementRef;\n    private _label;\n    _controlNonStatic: MatFormFieldControl<any>;\n    _controlStatic: MatFormFieldControl<any>;\n    _control: MatFormFieldControl<any>;\n    private _explicitFormFieldControl;\n    _labelChildNonStatic: MatLabel;\n    _labelChildStatic: MatLabel;\n    readonly _labelChild: MatLabel;\n    _placeholderChild: MatPlaceholder;\n    _errorChildren: QueryList<MatError>;\n    _hintChildren: QueryList<MatHint>;\n    _prefixChildren: QueryList<MatPrefix>;\n    _suffixChildren: QueryList<MatSuffix>;\n    constructor(_elementRef: ElementRef, _changeDetectorRef: ChangeDetectorRef, labelOptions: LabelOptions, _dir: Directionality, _defaults: MatFormFieldDefaultOptions, _platform: Platform, _ngZone: NgZone, _animationMode: string);\n    /**\n     * Gets an ElementRef for the element that a overlay attached to the form-field should be\n     * positioned relative to.\n     */\n    getConnectedOverlayOrigin(): ElementRef;\n    ngAfterContentInit(): void;\n    ngAfterContentChecked(): void;\n    ngAfterViewInit(): void;\n    ngOnDestroy(): void;\n    /** Determines whether a class from the NgControl should be forwarded to the host element. */\n    _shouldForward(prop: keyof NgControl): boolean;\n    _hasPlaceholder(): boolean;\n    _hasLabel(): boolean;\n    _shouldLabelFloat(): boolean;\n    _hideControlPlaceholder(): boolean;\n    _hasFloatingLabel(): boolean;\n    /** Determines whether to display hints or errors. */\n    _getDisplayedMessages(): 'error' | 'hint';\n    /** Animates the placeholder up and locks it in position. */\n    _animateAndLockLabel(): void;\n    /**\n     * Ensure that there is only one placeholder (either `placeholder` attribute on the child control\n     * or child element with the `mat-placeholder` directive).\n     */\n    private _validatePlaceholders;\n    /** Does any extra processing that is required when handling the hints. */\n    private _processHints;\n    /**\n     * Ensure that there is a maximum of one of each `<mat-hint>` alignment specified, with the\n     * attribute being considered as `align=\"start\"`.\n     */\n    private _validateHints;\n    /**\n     * Sets the list of element IDs that describe the child control. This allows the control to update\n     * its `aria-describedby` attribute accordingly.\n     */\n    private _syncDescribedByIds;\n    /** Throws an error if the form field's control is missing. */\n    protected _validateControlChild(): void;\n    /**\n     * Updates the width and position of the gap in the outline. Only relevant for the outline\n     * appearance.\n     */\n    updateOutlineGap(): void;\n    /** Gets the start end of the rect considering the current directionality. */\n    private _getStartEnd;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatFormField>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatFormField, \"mat-form-field\", [\"matFormField\"], { 'color': \"color\", 'floatLabel': \"floatLabel\", 'appearance': \"appearance\", 'hideRequiredMarker': \"hideRequiredMarker\", 'hintLabel': \"hintLabel\" }, {}, [\"_controlNonStatic\", \"_controlStatic\", \"_labelChildNonStatic\", \"_labelChildStatic\", \"_placeholderChild\", \"_errorChildren\", \"_hintChildren\", \"_prefixChildren\", \"_suffixChildren\"]>;\n}\nexport {};\n\n//# sourceMappingURL=form-field.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/form-field/hint.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Hint text to be shown underneath the form field control. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatHint {\n    /** Whether to align the hint label at the start or end of the line. */\n    align: 'start' | 'end';\n    /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n    id: string;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatHint>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatHint, \"mat-hint\", never, { 'align': \"align\", 'id': \"id\" }, {}, never>;\n}\n\n//# sourceMappingURL=hint.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/form-field/index.d.ts",
      "node_modules/@angular/material/form-field/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/form-field/label.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** The floating label for a `mat-form-field`. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatLabel {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatLabel>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatLabel, \"mat-label\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=label.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/form-field/placeholder.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The placeholder text for an `MatFormField`.\n * @deprecated Use `<mat-label>` to specify the label and the `placeholder` attribute to specify the\n *     placeholder.\n * @breaking-change 8.0.0\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatPlaceholder {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatPlaceholder>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatPlaceholder, \"mat-placeholder\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=placeholder.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/form-field/prefix.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Prefix to be placed in front of the form field. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatPrefix {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatPrefix>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatPrefix, \"[matPrefix]\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=prefix.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/form-field/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './form-field-module';\nexport * from './error';\nexport * from './form-field';\nexport * from './form-field-control';\nexport * from './form-field-errors';\nexport * from './hint';\nexport * from './placeholder';\nexport * from './prefix';\nexport * from './suffix';\nexport * from './label';\nexport * from './form-field-animations';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/form-field/suffix.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Suffix to be placed at the end of the form field. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatSuffix {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatSuffix>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatSuffix, \"[matSuffix]\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=suffix.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/grid-list/grid-list-base.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\n/**\n * Injection token used to provide a grid list to a tile and to avoid circular imports.\n * @docs-private\n */\nexport declare const MAT_GRID_LIST: InjectionToken<MatGridListBase>;\n/**\n * Base interface for a `MatGridList`.\n * @docs-private\n */\nexport interface MatGridListBase {\n    cols: number;\n    gutterSize: string;\n    rowHeight: number | string;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/grid-list/grid-list-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatGridListModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/grid-list/grid-list.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AfterContentChecked, OnInit, QueryList, ElementRef } from '@angular/core';\nimport { MatGridTile } from './grid-tile';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { MatGridListBase } from './grid-list-base';\nexport declare class MatGridList implements MatGridListBase, OnInit, AfterContentChecked {\n    private _element;\n    private _dir;\n    /** Number of columns being rendered. */\n    private _cols;\n    /** Used for determiningthe position of each tile in the grid. */\n    private _tileCoordinator;\n    /**\n     * Row height value passed in by user. This can be one of three types:\n     * - Number value (ex: \"100px\"):  sets a fixed row height to that value\n     * - Ratio value (ex: \"4:3\"): sets the row height based on width:height ratio\n     * - \"Fit\" mode (ex: \"fit\"): sets the row height to total height divided by number of rows\n     */\n    private _rowHeight;\n    /** The amount of space between tiles. This will be something like '5px' or '2em'. */\n    private _gutter;\n    /** Sets position and size styles for a tile */\n    private _tileStyler;\n    /** Query list of tiles that are being rendered. */\n    _tiles: QueryList<MatGridTile>;\n    constructor(_element: ElementRef<HTMLElement>, _dir: Directionality);\n    /** Amount of columns in the grid list. */\n    cols: number;\n    /** Size of the grid list's gutter in pixels. */\n    gutterSize: string;\n    /** Set internal representation of row height from the user-provided value. */\n    rowHeight: string | number;\n    ngOnInit(): void;\n    /**\n     * The layout calculation is fairly cheap if nothing changes, so there's little cost\n     * to run it frequently.\n     */\n    ngAfterContentChecked(): void;\n    /** Throw a friendly error if cols property is missing */\n    private _checkCols;\n    /** Default to equal width:height if rowHeight property is missing */\n    private _checkRowHeight;\n    /** Creates correct Tile Styler subtype based on rowHeight passed in by user */\n    private _setTileStyler;\n    /** Computes and applies the size and position for all children grid tiles. */\n    private _layoutTiles;\n    /** Sets style on the main grid-list element, given the style name and value. */\n    _setListStyle(style: [string, string | null] | null): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/grid-list/grid-tile.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, QueryList, AfterContentInit } from '@angular/core';\nimport { MatLine } from '@angular/material/core';\nimport { MatGridListBase } from './grid-list-base';\nexport declare class MatGridTile {\n    private _element;\n    _gridList?: MatGridListBase | undefined;\n    _rowspan: number;\n    _colspan: number;\n    constructor(_element: ElementRef<HTMLElement>, _gridList?: MatGridListBase | undefined);\n    /** Amount of rows that the grid tile takes up. */\n    rowspan: number;\n    /** Amount of columns that the grid tile takes up. */\n    colspan: number;\n    /**\n     * Sets the style of the grid-tile element.  Needs to be set manually to avoid\n     * \"Changed after checked\" errors that would occur with HostBinding.\n     */\n    _setStyle(property: string, value: any): void;\n}\nexport declare class MatGridTileText implements AfterContentInit {\n    private _element;\n    _lines: QueryList<MatLine>;\n    constructor(_element: ElementRef<HTMLElement>);\n    ngAfterContentInit(): void;\n}\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nexport declare class MatGridAvatarCssMatStyler {\n}\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nexport declare class MatGridTileHeaderCssMatStyler {\n}\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nexport declare class MatGridTileFooterCssMatStyler {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/grid-list/index.d.ts",
      "node_modules/@angular/material/grid-list/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\nexport { MAT_GRID_LIST as ɵangular_material_src_material_grid_list_grid_list_a, MatGridListBase as ɵangular_material_src_material_grid_list_grid_list_b } from './grid-list-base';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/grid-list/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './grid-list-module';\nexport * from './grid-list';\nexport * from './grid-tile';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/grid-list/tile-coordinator.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { MatGridTile } from './grid-tile';\n/**\n * Class for determining, from a list of tiles, the (row, col) position of each of those tiles\n * in the grid. This is necessary (rather than just rendering the tiles in normal document flow)\n * because the tiles can have a rowspan.\n *\n * The positioning algorithm greedily places each tile as soon as it encounters a gap in the grid\n * large enough to accommodate it so that the tiles still render in the same order in which they\n * are given.\n *\n * The basis of the algorithm is the use of an array to track the already placed tiles. Each\n * element of the array corresponds to a column, and the value indicates how many cells in that\n * column are already occupied; zero indicates an empty cell. Moving \"down\" to the next row\n * decrements each value in the tracking array (indicating that the column is one cell closer to\n * being free).\n *\n * @docs-private\n */\nexport declare class TileCoordinator {\n    /** Tracking array (see class description). */\n    tracker: number[];\n    /** Index at which the search for the next gap will start. */\n    columnIndex: number;\n    /** The current row index. */\n    rowIndex: number;\n    /** Gets the total number of rows occupied by tiles */\n    readonly rowCount: number;\n    /**\n     * Gets the total span of rows occupied by tiles.\n     * Ex: A list with 1 row that contains a tile with rowspan 2 will have a total rowspan of 2.\n     */\n    readonly rowspan: number;\n    /** The computed (row, col) position of each tile (the output). */\n    positions: TilePosition[];\n    /**\n     * Updates the tile positions.\n     * @param numColumns Amount of columns in the grid.\n     */\n    update(numColumns: number, tiles: MatGridTile[]): void;\n    /** Calculates the row and col position of a tile. */\n    private _trackTile;\n    /** Finds the next available space large enough to fit the tile. */\n    private _findMatchingGap;\n    /** Move \"down\" to the next row. */\n    private _nextRow;\n    /**\n     * Finds the end index (exclusive) of a gap given the index from which to start looking.\n     * The gap ends when a non-zero value is found.\n     */\n    private _findGapEndIndex;\n    /** Update the tile tracker to account for the given tile in the given space. */\n    private _markTilePosition;\n}\n/**\n * Simple data structure for tile position (row, col).\n * @docs-private\n */\nexport declare class TilePosition {\n    row: number;\n    col: number;\n    constructor(row: number, col: number);\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/grid-list/tile-styler.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { MatGridList } from './grid-list';\nimport { MatGridTile } from './grid-tile';\nimport { TileCoordinator } from './tile-coordinator';\n/**\n * Sets the style properties for an individual tile, given the position calculated by the\n * Tile Coordinator.\n * @docs-private\n */\nexport declare abstract class TileStyler {\n    _gutterSize: string;\n    _rows: number;\n    _rowspan: number;\n    _cols: number;\n    _direction: string;\n    /**\n     * Adds grid-list layout info once it is available. Cannot be processed in the constructor\n     * because these properties haven't been calculated by that point.\n     *\n     * @param gutterSize Size of the grid's gutter.\n     * @param tracker Instance of the TileCoordinator.\n     * @param cols Amount of columns in the grid.\n     * @param direction Layout direction of the grid.\n     */\n    init(gutterSize: string, tracker: TileCoordinator, cols: number, direction: string): void;\n    /**\n     * Computes the amount of space a single 1x1 tile would take up (width or height).\n     * Used as a basis for other calculations.\n     * @param sizePercent Percent of the total grid-list space that one 1x1 tile would take up.\n     * @param gutterFraction Fraction of the gutter size taken up by one 1x1 tile.\n     * @return The size of a 1x1 tile as an expression that can be evaluated via CSS calc().\n     */\n    getBaseTileSize(sizePercent: number, gutterFraction: number): string;\n    /**\n     * Gets The horizontal or vertical position of a tile, e.g., the 'top' or 'left' property value.\n     * @param offset Number of tiles that have already been rendered in the row/column.\n     * @param baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n     * @return Position of the tile as a CSS calc() expression.\n     */\n    getTilePosition(baseSize: string, offset: number): string;\n    /**\n     * Gets the actual size of a tile, e.g., width or height, taking rowspan or colspan into account.\n     * @param baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n     * @param span The tile's rowspan or colspan.\n     * @return Size of the tile as a CSS calc() expression.\n     */\n    getTileSize(baseSize: string, span: number): string;\n    /**\n     * Sets the style properties to be applied to a tile for the given row and column index.\n     * @param tile Tile to which to apply the styling.\n     * @param rowIndex Index of the tile's row.\n     * @param colIndex Index of the tile's column.\n     */\n    setStyle(tile: MatGridTile, rowIndex: number, colIndex: number): void;\n    /** Sets the horizontal placement of the tile in the list. */\n    setColStyles(tile: MatGridTile, colIndex: number, percentWidth: number, gutterWidth: number): void;\n    /**\n     * Calculates the total size taken up by gutters across one axis of a list.\n     */\n    getGutterSpan(): string;\n    /**\n     * Calculates the total size taken up by tiles across one axis of a list.\n     * @param tileHeight Height of the tile.\n     */\n    getTileSpan(tileHeight: string): string;\n    /**\n     * Sets the vertical placement of the tile in the list.\n     * This method will be implemented by each type of TileStyler.\n     * @docs-private\n     */\n    abstract setRowStyles(tile: MatGridTile, rowIndex: number, percentWidth: number, gutterWidth: number): void;\n    /**\n     * Calculates the computed height and returns the correct style property to set.\n     * This method can be implemented by each type of TileStyler.\n     * @docs-private\n     */\n    getComputedHeight(): [string, string] | null;\n    /**\n     * Called when the tile styler is swapped out with a different one. To be used for cleanup.\n     * @param list Grid list that the styler was attached to.\n     * @docs-private\n     */\n    abstract reset(list: MatGridList): void;\n}\n/**\n * This type of styler is instantiated when the user passes in a fixed row height.\n * Example `<mat-grid-list cols=\"3\" rowHeight=\"100px\">`\n * @docs-private\n */\nexport declare class FixedTileStyler extends TileStyler {\n    fixedRowHeight: string;\n    constructor(fixedRowHeight: string);\n    init(gutterSize: string, tracker: TileCoordinator, cols: number, direction: string): void;\n    setRowStyles(tile: MatGridTile, rowIndex: number): void;\n    getComputedHeight(): [string, string];\n    reset(list: MatGridList): void;\n}\n/**\n * This type of styler is instantiated when the user passes in a width:height ratio\n * for the row height.  Example `<mat-grid-list cols=\"3\" rowHeight=\"3:1\">`\n * @docs-private\n */\nexport declare class RatioTileStyler extends TileStyler {\n    /** Ratio width:height given by user to determine row height. */\n    rowHeightRatio: number;\n    baseTileHeight: string;\n    constructor(value: string);\n    setRowStyles(tile: MatGridTile, rowIndex: number, percentWidth: number, gutterWidth: number): void;\n    getComputedHeight(): [string, string];\n    reset(list: MatGridList): void;\n    private _parseRatio;\n}\n/**\n * This type of styler is instantiated when the user selects a \"fit\" row height mode.\n * In other words, the row height will reflect the total height of the container divided\n * by the number of rows.  Example `<mat-grid-list cols=\"3\" rowHeight=\"fit\">`\n *\n * @docs-private\n */\nexport declare class FitTileStyler extends TileStyler {\n    setRowStyles(tile: MatGridTile, rowIndex: number): void;\n    reset(list: MatGridList): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/icon/fake-svgs.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Fake URLs and associated SVG documents used by tests.\n * The ID attribute is used to load the icons, the name attribute is only used for testing.\n * @docs-private\n */\nexport declare const FAKE_SVGS: {\n    cat: string;\n    dog: string;\n    dogWithSpaces: string;\n    farmSet1: string;\n    farmSet2: string;\n    farmSet3: string;\n    farmSet4: string;\n    farmSet5: string;\n    arrows: string;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/icon/icon-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './icon';\nimport * as ɵngcc2 from '@angular/material/core';\nexport declare class MatIconModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatIconModule, [typeof ɵngcc1.MatIcon], [typeof ɵngcc2.MatCommonModule], [typeof ɵngcc1.MatIcon, typeof ɵngcc2.MatCommonModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatIconModule>;\n}\n\n//# sourceMappingURL=icon-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/icon/icon-registry.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { HttpClient } from '@angular/common/http';\nimport { ErrorHandler, Optional, OnDestroy } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl, SafeHtml } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\n/**\n * Returns an exception to be thrown in the case when attempting to\n * load an icon with a name that cannot be found.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare function getMatIconNameNotFoundError(iconName: string): Error;\n/**\n * Returns an exception to be thrown when the consumer attempts to use\n * `<mat-icon>` without including @angular/common/http.\n * @docs-private\n */\nexport declare function getMatIconNoHttpProviderError(): Error;\n/**\n * Returns an exception to be thrown when a URL couldn't be sanitized.\n * @param url URL that was attempted to be sanitized.\n * @docs-private\n */\nexport declare function getMatIconFailedToSanitizeUrlError(url: SafeResourceUrl): Error;\n/**\n * Returns an exception to be thrown when a HTML string couldn't be sanitized.\n * @param literal HTML that was attempted to be sanitized.\n * @docs-private\n */\nexport declare function getMatIconFailedToSanitizeLiteralError(literal: SafeHtml): Error;\n/** Options that can be used to configure how an icon or the icons in an icon set are presented. */\nexport interface IconOptions {\n    /** View box to set on the icon. */\n    viewBox?: string;\n}\n/**\n * Service to register and display icons used by the `<mat-icon>` component.\n * - Registers icon URLs by namespace and name.\n * - Registers icon set URLs by namespace.\n * - Registers aliases for CSS classes, for use with icon fonts.\n * - Loads icons from URLs and extracts individual icons from icon sets.\n */\nexport declare class MatIconRegistry implements OnDestroy {\n    private _httpClient;\n    private _sanitizer;\n    private readonly _errorHandler?;\n    private _document;\n    /**\n     * URLs and cached SVG elements for individual icons. Keys are of the format \"[namespace]:[icon]\".\n     */\n    private _svgIconConfigs;\n    /**\n     * SvgIconConfig objects and cached SVG elements for icon sets, keyed by namespace.\n     * Multiple icon sets can be registered under the same namespace.\n     */\n    private _iconSetConfigs;\n    /** Cache for icons loaded by direct URLs. */\n    private _cachedIconsByUrl;\n    /** In-progress icon fetches. Used to coalesce multiple requests to the same URL. */\n    private _inProgressUrlFetches;\n    /** Map from font identifiers to their CSS class names. Used for icon fonts. */\n    private _fontCssClassesByAlias;\n    /**\n     * The CSS class to apply when an `<mat-icon>` component has no icon name, url, or font specified.\n     * The default 'material-icons' value assumes that the material icon font has been loaded as\n     * described at http://google.github.io/material-design-icons/#icon-font-for-the-web\n     */\n    private _defaultFontSetClass;\n    constructor(_httpClient: HttpClient, _sanitizer: DomSanitizer, document: any, _errorHandler?: ErrorHandler | undefined);\n    /**\n     * Registers an icon by URL in the default namespace.\n     * @param iconName Name under which the icon should be registered.\n     * @param url\n     */\n    addSvgIcon(iconName: string, url: SafeResourceUrl, options?: IconOptions): this;\n    /**\n     * Registers an icon using an HTML string in the default namespace.\n     * @param iconName Name under which the icon should be registered.\n     * @param literal SVG source of the icon.\n     */\n    addSvgIconLiteral(iconName: string, literal: SafeHtml, options?: IconOptions): this;\n    /**\n     * Registers an icon by URL in the specified namespace.\n     * @param namespace Namespace in which the icon should be registered.\n     * @param iconName Name under which the icon should be registered.\n     * @param url\n     */\n    addSvgIconInNamespace(namespace: string, iconName: string, url: SafeResourceUrl, options?: IconOptions): this;\n    /**\n     * Registers an icon using an HTML string in the specified namespace.\n     * @param namespace Namespace in which the icon should be registered.\n     * @param iconName Name under which the icon should be registered.\n     * @param literal SVG source of the icon.\n     */\n    addSvgIconLiteralInNamespace(namespace: string, iconName: string, literal: SafeHtml, options?: IconOptions): this;\n    /**\n     * Registers an icon set by URL in the default namespace.\n     * @param url\n     */\n    addSvgIconSet(url: SafeResourceUrl, options?: IconOptions): this;\n    /**\n     * Registers an icon set using an HTML string in the default namespace.\n     * @param literal SVG source of the icon set.\n     */\n    addSvgIconSetLiteral(literal: SafeHtml, options?: IconOptions): this;\n    /**\n     * Registers an icon set by URL in the specified namespace.\n     * @param namespace Namespace in which to register the icon set.\n     * @param url\n     */\n    addSvgIconSetInNamespace(namespace: string, url: SafeResourceUrl, options?: IconOptions): this;\n    /**\n     * Registers an icon set using an HTML string in the specified namespace.\n     * @param namespace Namespace in which to register the icon set.\n     * @param literal SVG source of the icon set.\n     */\n    addSvgIconSetLiteralInNamespace(namespace: string, literal: SafeHtml, options?: IconOptions): this;\n    /**\n     * Defines an alias for a CSS class name to be used for icon fonts. Creating an matIcon\n     * component with the alias as the fontSet input will cause the class name to be applied\n     * to the `<mat-icon>` element.\n     *\n     * @param alias Alias for the font.\n     * @param className Class name override to be used instead of the alias.\n     */\n    registerFontClassAlias(alias: string, className?: string): this;\n    /**\n     * Returns the CSS class name associated with the alias by a previous call to\n     * registerFontClassAlias. If no CSS class has been associated, returns the alias unmodified.\n     */\n    classNameForFontAlias(alias: string): string;\n    /**\n     * Sets the CSS class name to be used for icon fonts when an `<mat-icon>` component does not\n     * have a fontSet input value, and is not loading an icon by name or URL.\n     *\n     * @param className\n     */\n    setDefaultFontSetClass(className: string): this;\n    /**\n     * Returns the CSS class name to be used for icon fonts when an `<mat-icon>` component does not\n     * have a fontSet input value, and is not loading an icon by name or URL.\n     */\n    getDefaultFontSetClass(): string;\n    /**\n     * Returns an Observable that produces the icon (as an `<svg>` DOM element) from the given URL.\n     * The response from the URL may be cached so this will not always cause an HTTP request, but\n     * the produced element will always be a new copy of the originally fetched icon. (That is,\n     * it will not contain any modifications made to elements previously returned).\n     *\n     * @param safeUrl URL from which to fetch the SVG icon.\n     */\n    getSvgIconFromUrl(safeUrl: SafeResourceUrl): Observable<SVGElement>;\n    /**\n     * Returns an Observable that produces the icon (as an `<svg>` DOM element) with the given name\n     * and namespace. The icon must have been previously registered with addIcon or addIconSet;\n     * if not, the Observable will throw an error.\n     *\n     * @param name Name of the icon to be retrieved.\n     * @param namespace Namespace in which to look for the icon.\n     */\n    getNamedSvgIcon(name: string, namespace?: string): Observable<SVGElement>;\n    ngOnDestroy(): void;\n    /**\n     * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.\n     */\n    private _getSvgFromConfig;\n    /**\n     * Attempts to find an icon with the specified name in any of the SVG icon sets.\n     * First searches the available cached icons for a nested element with a matching name, and\n     * if found copies the element to a new `<svg>` element. If not found, fetches all icon sets\n     * that have not been cached, and searches again after all fetches are completed.\n     * The returned Observable produces the SVG element if possible, and throws\n     * an error if no icon with the specified name can be found.\n     */\n    private _getSvgFromIconSetConfigs;\n    /**\n     * Searches the cached SVG elements for the given icon sets for a nested icon element whose \"id\"\n     * tag matches the specified name. If found, copies the nested element to a new SVG element and\n     * returns it. Returns null if no matching element is found.\n     */\n    private _extractIconWithNameFromAnySet;\n    /**\n     * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element\n     * from it.\n     */\n    private _loadSvgIconFromConfig;\n    /**\n     * Loads the content of the icon set URL specified in the SvgIconConfig and creates an SVG element\n     * from it.\n     */\n    private _loadSvgIconSetFromConfig;\n    /**\n     * Creates a DOM element from the given SVG string, and adds default attributes.\n     */\n    private _createSvgElementForSingleIcon;\n    /**\n     * Searches the cached element of the given SvgIconConfig for a nested icon element whose \"id\"\n     * tag matches the specified name. If found, copies the nested element to a new SVG element and\n     * returns it. Returns null if no matching element is found.\n     */\n    private _extractSvgIconFromSet;\n    /**\n     * Creates a DOM element from the given SVG string.\n     */\n    private _svgElementFromString;\n    /**\n     * Converts an element into an SVG node by cloning all of its children.\n     */\n    private _toSvgElement;\n    /**\n     * Sets the default attributes for an SVG element to be used as an icon.\n     */\n    private _setSvgAttributes;\n    /**\n     * Returns an Observable which produces the string contents of the given URL. Results may be\n     * cached, so future calls with the same URL may not cause another HTTP request.\n     */\n    private _fetchUrl;\n    /**\n     * Registers an icon config by name in the specified namespace.\n     * @param namespace Namespace in which to register the icon config.\n     * @param iconName Name under which to register the config.\n     * @param config Config to be registered.\n     */\n    private _addSvgIconConfig;\n    /**\n     * Registers an icon set config in the specified namespace.\n     * @param namespace Namespace in which to register the icon config.\n     * @param config Config to be registered.\n     */\n    private _addSvgIconSetConfig;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatIconRegistry>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<MatIconRegistry>;\n}\n/** @docs-private */\nexport declare function ICON_REGISTRY_PROVIDER_FACTORY(parentRegistry: MatIconRegistry, httpClient: HttpClient, sanitizer: DomSanitizer, document?: any, errorHandler?: ErrorHandler): MatIconRegistry;\n/** @docs-private */\nexport declare const ICON_REGISTRY_PROVIDER: {\n    provide: typeof MatIconRegistry;\n    deps: (Optional[] | typeof DomSanitizer)[];\n    useFactory: typeof ICON_REGISTRY_PROVIDER_FACTORY;\n};\n\n//# sourceMappingURL=icon-registry.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/icon/icon.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AfterViewChecked, ElementRef, ErrorHandler, InjectionToken, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { CanColor, CanColorCtor } from '@angular/material/core';\nimport { MatIconRegistry } from './icon-registry';\n/** @docs-private */\nimport * as ɵngcc0 from '@angular/core';\ndeclare class MatIconBase {\n    _elementRef: ElementRef;\n    constructor(_elementRef: ElementRef);\n}\ndeclare const _MatIconMixinBase: CanColorCtor & typeof MatIconBase;\n/**\n * Injection token used to provide the current location to `MatIcon`.\n * Used to handle server-side rendering and to stub out during unit tests.\n * @docs-private\n */\nexport declare const MAT_ICON_LOCATION: InjectionToken<MatIconLocation>;\n/**\n * Stubbed out location for `MatIcon`.\n * @docs-private\n */\nexport interface MatIconLocation {\n    getPathname: () => string;\n}\n/** @docs-private */\nexport declare function MAT_ICON_LOCATION_FACTORY(): MatIconLocation;\n/**\n * Component to display an icon. It can be used in the following ways:\n *\n * - Specify the svgIcon input to load an SVG icon from a URL previously registered with the\n *   addSvgIcon, addSvgIconInNamespace, addSvgIconSet, or addSvgIconSetInNamespace methods of\n *   MatIconRegistry. If the svgIcon value contains a colon it is assumed to be in the format\n *   \"[namespace]:[name]\", if not the value will be the name of an icon in the default namespace.\n *   Examples:\n *     `<mat-icon svgIcon=\"left-arrow\"></mat-icon>\n *     <mat-icon svgIcon=\"animals:cat\"></mat-icon>`\n *\n * - Use a font ligature as an icon by putting the ligature text in the content of the `<mat-icon>`\n *   component. By default the Material icons font is used as described at\n *   http://google.github.io/material-design-icons/#icon-font-for-the-web. You can specify an\n *   alternate font by setting the fontSet input to either the CSS class to apply to use the\n *   desired font, or to an alias previously registered with MatIconRegistry.registerFontClassAlias.\n *   Examples:\n *     `<mat-icon>home</mat-icon>\n *     <mat-icon fontSet=\"myfont\">sun</mat-icon>`\n *\n * - Specify a font glyph to be included via CSS rules by setting the fontSet input to specify the\n *   font, and the fontIcon input to specify the icon. Typically the fontIcon will specify a\n *   CSS class which causes the glyph to be displayed via a :before selector, as in\n *   https://fortawesome.github.io/Font-Awesome/examples/\n *   Example:\n *     `<mat-icon fontSet=\"fa\" fontIcon=\"alarm\"></mat-icon>`\n */\nexport declare class MatIcon extends _MatIconMixinBase implements OnChanges, OnInit, AfterViewChecked, CanColor, OnDestroy {\n    private _iconRegistry;\n    /**\n     * @deprecated `location` parameter to be made required.\n     * @breaking-change 8.0.0\n     */\n    private _location?;\n    private readonly _errorHandler?;\n    /**\n     * Whether the icon should be inlined, automatically sizing the icon to match the font size of\n     * the element the icon is contained in.\n     */\n    inline: boolean;\n    private _inline;\n    /** Name of the icon in the SVG icon set. */\n    svgIcon: string;\n    /** Font set that the icon is a part of. */\n    fontSet: string;\n    private _fontSet;\n    /** Name of an icon within a font set. */\n    fontIcon: string;\n    private _fontIcon;\n    private _previousFontSetClass;\n    private _previousFontIconClass;\n    /** Keeps track of the current page path. */\n    private _previousPath?;\n    /** Keeps track of the elements and attributes that we've prefixed with the current path. */\n    private _elementsWithExternalReferences?;\n    constructor(elementRef: ElementRef<HTMLElement>, _iconRegistry: MatIconRegistry, ariaHidden: string, \n    /**\n     * @deprecated `location` parameter to be made required.\n     * @breaking-change 8.0.0\n     */\n    _location?: MatIconLocation | undefined, _errorHandler?: ErrorHandler | undefined);\n    /**\n     * Splits an svgIcon binding value into its icon set and icon name components.\n     * Returns a 2-element array of [(icon set), (icon name)].\n     * The separator for the two fields is ':'. If there is no separator, an empty\n     * string is returned for the icon set and the entire value is returned for\n     * the icon name. If the argument is falsy, returns an array of two empty strings.\n     * Throws an error if the name contains two or more ':' separators.\n     * Examples:\n     *   `'social:cake' -> ['social', 'cake']\n     *   'penguin' -> ['', 'penguin']\n     *   null -> ['', '']\n     *   'a:b:c' -> (throws Error)`\n     */\n    private _splitIconName;\n    ngOnChanges(changes: SimpleChanges): void;\n    ngOnInit(): void;\n    ngAfterViewChecked(): void;\n    ngOnDestroy(): void;\n    private _usingFontIcon;\n    private _setSvgElement;\n    private _clearSvgElement;\n    private _updateFontIconClasses;\n    /**\n     * Cleans up a value to be used as a fontIcon or fontSet.\n     * Since the value ends up being assigned as a CSS class, we\n     * have to trim the value and omit space-separated values.\n     */\n    private _cleanupFontValue;\n    /**\n     * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`\n     * reference. This is required because WebKit browsers require references to be prefixed with\n     * the current path, if the page has a `base` tag.\n     */\n    private _prependPathToReferences;\n    /**\n     * Caches the children of an SVG element that have `url()`\n     * references that we need to prefix with the current path.\n     */\n    private _cacheChildrenWithExternalReferences;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatIcon>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatIcon, \"mat-icon\", [\"matIcon\"], { 'color': \"color\", 'inline': \"inline\", 'fontSet': \"fontSet\", 'fontIcon': \"fontIcon\", 'svgIcon': \"svgIcon\" }, {}, never>;\n}\nexport {};\n\n//# sourceMappingURL=icon.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/icon/index.d.ts",
      "node_modules/@angular/material/icon/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/icon/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './icon-module';\nexport * from './icon';\nexport * from './icon-registry';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/input/autosize.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkTextareaAutosize } from '@angular/cdk/text-field';\n/**\n * Directive to automatically resize a textarea to fit its content.\n * @deprecated Use `cdkTextareaAutosize` from `@angular/cdk/text-field` instead.\n * @breaking-change 8.0.0\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatTextareaAutosize extends CdkTextareaAutosize {\n    matAutosizeMinRows: number;\n    matAutosizeMaxRows: number;\n    matAutosize: boolean;\n    matTextareaAutosize: boolean;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTextareaAutosize>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatTextareaAutosize, \"textarea[mat-autosize], textarea[matTextareaAutosize]\", [\"matTextareaAutosize\"], { 'cdkAutosizeMinRows': \"cdkAutosizeMinRows\", 'cdkAutosizeMaxRows': \"cdkAutosizeMaxRows\", 'matAutosizeMinRows': \"matAutosizeMinRows\", 'matAutosizeMaxRows': \"matAutosizeMaxRows\", 'matAutosize': \"mat-autosize\", 'matTextareaAutosize': \"matTextareaAutosize\" }, {}, never>;\n}\n\n//# sourceMappingURL=autosize.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/input/index.d.ts",
      "node_modules/@angular/material/input/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/input/input-errors.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @docs-private */\nexport declare function getMatInputUnsupportedTypeError(type: string): Error;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/input/input-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './input';\nimport * as ɵngcc2 from './autosize';\nimport * as ɵngcc3 from '@angular/common';\nimport * as ɵngcc4 from '@angular/cdk/text-field';\nimport * as ɵngcc5 from '@angular/material/form-field';\nexport declare class MatInputModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatInputModule, [typeof ɵngcc1.MatInput, typeof ɵngcc2.MatTextareaAutosize], [typeof ɵngcc3.CommonModule, typeof ɵngcc4.TextFieldModule, typeof ɵngcc5.MatFormFieldModule], [typeof ɵngcc4.TextFieldModule, typeof ɵngcc5.MatFormFieldModule, typeof ɵngcc1.MatInput, typeof ɵngcc2.MatTextareaAutosize]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatInputModule>;\n}\n\n//# sourceMappingURL=input-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/input/input-value-accessor.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\n/**\n * This token is used to inject the object whose value should be set into `MatInput`. If none is\n * provided, the native `HTMLInputElement` is used. Directives like `MatDatepickerInput` can provide\n * themselves for this token, in order to make `MatInput` delegate the getting and setting of the\n * value to them.\n */\nexport declare const MAT_INPUT_VALUE_ACCESSOR: InjectionToken<{\n    value: any;\n}>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/input/input.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Platform } from '@angular/cdk/platform';\nimport { AutofillMonitor } from '@angular/cdk/text-field';\nimport { DoCheck, ElementRef, NgZone, OnChanges, OnDestroy, OnInit } from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { CanUpdateErrorState, CanUpdateErrorStateCtor, ErrorStateMatcher } from '@angular/material/core';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { Subject } from 'rxjs';\n/** @docs-private */\nimport * as ɵngcc0 from '@angular/core';\ndeclare class MatInputBase {\n    _defaultErrorStateMatcher: ErrorStateMatcher;\n    _parentForm: NgForm;\n    _parentFormGroup: FormGroupDirective;\n    /** @docs-private */\n    ngControl: NgControl;\n    constructor(_defaultErrorStateMatcher: ErrorStateMatcher, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, \n    /** @docs-private */\n    ngControl: NgControl);\n}\ndeclare const _MatInputMixinBase: CanUpdateErrorStateCtor & typeof MatInputBase;\n/** Directive that allows a native input to work inside a `MatFormField`. */\nexport declare class MatInput extends _MatInputMixinBase implements MatFormFieldControl<any>, OnChanges, OnDestroy, OnInit, DoCheck, CanUpdateErrorState {\n    protected _elementRef: ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>;\n    protected _platform: Platform;\n    /** @docs-private */\n    ngControl: NgControl;\n    private _autofillMonitor;\n    protected _uid: string;\n    protected _previousNativeValue: any;\n    private _inputValueAccessor;\n    /** The aria-describedby attribute on the input for improved a11y. */\n    _ariaDescribedby: string;\n    /** Whether the component is being rendered on the server. */\n    _isServer: boolean;\n    /** Whether the component is a native html select. */\n    _isNativeSelect: boolean;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    focused: boolean;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    readonly stateChanges: Subject<void>;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    controlType: string;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    autofilled: boolean;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    disabled: boolean;\n    protected _disabled: boolean;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    id: string;\n    protected _id: string;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    placeholder: string;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    required: boolean;\n    protected _required: boolean;\n    /** Input type of the element. */\n    type: string;\n    protected _type: string;\n    /** An object used to control when error messages are shown. */\n    errorStateMatcher: ErrorStateMatcher;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    value: string;\n    /** Whether the element is readonly. */\n    readonly: boolean;\n    private _readonly;\n    protected _neverEmptyInputTypes: string[];\n    constructor(_elementRef: ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>, _platform: Platform, \n    /** @docs-private */\n    ngControl: NgControl, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, _defaultErrorStateMatcher: ErrorStateMatcher, inputValueAccessor: any, _autofillMonitor: AutofillMonitor, ngZone: NgZone);\n    ngOnInit(): void;\n    ngOnChanges(): void;\n    ngOnDestroy(): void;\n    ngDoCheck(): void;\n    /** Focuses the input. */\n    focus(options?: FocusOptions): void;\n    /** Callback for the cases where the focused state of the input changes. */\n    _focusChanged(isFocused: boolean): void;\n    _onInput(): void;\n    /** Does some manual dirty checking on the native input `value` property. */\n    protected _dirtyCheckNativeValue(): void;\n    /** Make sure the input is a supported type. */\n    protected _validateType(): void;\n    /** Checks whether the input type is one of the types that are never empty. */\n    protected _isNeverEmpty(): boolean;\n    /** Checks whether the input is invalid based on the native validation. */\n    protected _isBadInput(): boolean;\n    /** Determines if the component host is a textarea. */\n    protected _isTextarea(): boolean;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    readonly empty: boolean;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    readonly shouldLabelFloat: boolean;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    setDescribedByIds(ids: string[]): void;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    onContainerClick(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatInput>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatInput, \"input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]\", [\"matInput\"], { 'id': \"id\", 'disabled': \"disabled\", 'required': \"required\", 'type': \"type\", 'value': \"value\", 'readonly': \"readonly\", 'placeholder': \"placeholder\", 'errorStateMatcher': \"errorStateMatcher\" }, {}, never>;\n}\nexport {};\n\n//# sourceMappingURL=input.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/input/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './autosize';\nexport * from './input';\nexport * from './input-errors';\nexport * from './input-module';\nexport * from './input-value-accessor';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/list/index.d.ts",
      "node_modules/@angular/material/list/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/list/list-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatListModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/list/list.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AfterContentInit, ElementRef, QueryList, OnChanges, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { CanDisableRipple, CanDisableRippleCtor, MatLine } from '@angular/material/core';\nimport { Subject } from 'rxjs';\n/** @docs-private */\ndeclare class MatListBase {\n}\ndeclare const _MatListMixinBase: CanDisableRippleCtor & typeof MatListBase;\n/** @docs-private */\ndeclare class MatListItemBase {\n}\ndeclare const _MatListItemMixinBase: CanDisableRippleCtor & typeof MatListItemBase;\nexport declare class MatNavList extends _MatListMixinBase implements CanDisableRipple, OnChanges, OnDestroy {\n    /** Emits when the state of the list changes. */\n    _stateChanges: Subject<void>;\n    ngOnChanges(): void;\n    ngOnDestroy(): void;\n}\nexport declare class MatList extends _MatListMixinBase implements CanDisableRipple, OnChanges, OnDestroy {\n    private _elementRef;\n    /** Emits when the state of the list changes. */\n    _stateChanges: Subject<void>;\n    constructor(_elementRef: ElementRef<HTMLElement>);\n    _getListType(): 'list' | 'action-list' | null;\n    ngOnChanges(): void;\n    ngOnDestroy(): void;\n}\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nexport declare class MatListAvatarCssMatStyler {\n}\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nexport declare class MatListIconCssMatStyler {\n}\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nexport declare class MatListSubheaderCssMatStyler {\n}\n/** An item within a Material Design list. */\nexport declare class MatListItem extends _MatListItemMixinBase implements AfterContentInit, CanDisableRipple, OnDestroy {\n    private _element;\n    private _isInteractiveList;\n    private _list?;\n    private _destroyed;\n    _lines: QueryList<MatLine>;\n    _avatar: MatListAvatarCssMatStyler;\n    _icon: MatListIconCssMatStyler;\n    constructor(_element: ElementRef<HTMLElement>, _changeDetectorRef: ChangeDetectorRef, navList?: MatNavList, list?: MatList);\n    ngAfterContentInit(): void;\n    ngOnDestroy(): void;\n    /** Whether this list item should show a ripple effect when clicked. */\n    _isRippleDisabled(): boolean;\n    /** Retrieves the DOM element of the component host. */\n    _getHostElement(): HTMLElement;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/list/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './list-module';\nexport * from './list';\nexport * from './selection-list';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/list/selection-list.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList, SimpleChanges, OnChanges } from '@angular/core';\nimport { CanDisableRipple, CanDisableRippleCtor, MatLine, ThemePalette } from '@angular/material/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { MatListAvatarCssMatStyler, MatListIconCssMatStyler } from './list';\n/** @docs-private */\ndeclare class MatSelectionListBase {\n}\ndeclare const _MatSelectionListMixinBase: CanDisableRippleCtor & typeof MatSelectionListBase;\n/** @docs-private */\ndeclare class MatListOptionBase {\n}\ndeclare const _MatListOptionMixinBase: CanDisableRippleCtor & typeof MatListOptionBase;\n/** @docs-private */\nexport declare const MAT_SELECTION_LIST_VALUE_ACCESSOR: any;\n/** Change event that is being fired whenever the selected state of an option changes. */\nexport declare class MatSelectionListChange {\n    /** Reference to the selection list that emitted the event. */\n    source: MatSelectionList;\n    /** Reference to the option that has been changed. */\n    option: MatListOption;\n    constructor(\n    /** Reference to the selection list that emitted the event. */\n    source: MatSelectionList, \n    /** Reference to the option that has been changed. */\n    option: MatListOption);\n}\n/**\n * Component for list-options of selection-list. Each list-option can automatically\n * generate a checkbox and can put current item into the selectionModel of selection-list\n * if the current item is selected.\n */\nexport declare class MatListOption extends _MatListOptionMixinBase implements AfterContentInit, OnDestroy, OnInit, FocusableOption, CanDisableRipple {\n    private _element;\n    private _changeDetector;\n    /** @docs-private */\n    selectionList: MatSelectionList;\n    private _selected;\n    private _disabled;\n    private _hasFocus;\n    _avatar: MatListAvatarCssMatStyler;\n    _icon: MatListIconCssMatStyler;\n    _lines: QueryList<MatLine>;\n    /** DOM element containing the item's text. */\n    _text: ElementRef;\n    /** Whether the label should appear before or after the checkbox. Defaults to 'after' */\n    checkboxPosition: 'before' | 'after';\n    /** Theme color of the list option. This sets the color of the checkbox. */\n    color: ThemePalette;\n    private _color;\n    /** Value of the option */\n    value: any;\n    private _value;\n    /** Whether the option is disabled. */\n    disabled: any;\n    /** Whether the option is selected. */\n    selected: boolean;\n    constructor(_element: ElementRef<HTMLElement>, _changeDetector: ChangeDetectorRef, \n    /** @docs-private */\n    selectionList: MatSelectionList);\n    ngOnInit(): void;\n    ngAfterContentInit(): void;\n    ngOnDestroy(): void;\n    /** Toggles the selection state of the option. */\n    toggle(): void;\n    /** Allows for programmatic focusing of the option. */\n    focus(): void;\n    /**\n     * Returns the list item's text label. Implemented as a part of the FocusKeyManager.\n     * @docs-private\n     */\n    getLabel(): any;\n    /** Whether this list item should show a ripple effect when clicked. */\n    _isRippleDisabled(): any;\n    _handleClick(): void;\n    _handleFocus(): void;\n    _handleBlur(): void;\n    /** Retrieves the DOM element of the component host. */\n    _getHostElement(): HTMLElement;\n    /** Sets the selected state of the option. Returns whether the value has changed. */\n    _setSelected(selected: boolean): boolean;\n    /**\n     * Notifies Angular that the option needs to be checked in the next change detection run. Mainly\n     * used to trigger an update of the list option if the disabled state of the selection list\n     * changed.\n     */\n    _markForCheck(): void;\n}\n/**\n * Material Design list component where each item is a selectable option. Behaves as a listbox.\n */\nexport declare class MatSelectionList extends _MatSelectionListMixinBase implements CanDisableRipple, AfterContentInit, ControlValueAccessor, OnDestroy, OnChanges {\n    private _element;\n    /** The FocusKeyManager which handles focus. */\n    _keyManager: FocusKeyManager<MatListOption>;\n    /** The option components contained within this selection-list. */\n    options: QueryList<MatListOption>;\n    /** Emits a change event whenever the selected state of an option changes. */\n    readonly selectionChange: EventEmitter<MatSelectionListChange>;\n    /** Tabindex of the selection list. */\n    tabIndex: number;\n    /** Theme color of the selection list. This sets the checkbox color for all list options. */\n    color: ThemePalette;\n    /**\n     * Function used for comparing an option against the selected value when determining which\n     * options should appear as selected. The first argument is the value of an options. The second\n     * one is a value from the selected value. A boolean must be returned.\n     */\n    compareWith: (o1: any, o2: any) => boolean;\n    /** Whether the selection list is disabled. */\n    disabled: boolean;\n    private _disabled;\n    /** The currently selected options. */\n    selectedOptions: SelectionModel<MatListOption>;\n    /** View to model callback that should be called whenever the selected options change. */\n    private _onChange;\n    /** Keeps track of the currently-selected value. */\n    _value: string[] | null;\n    /** Emits when the list has been destroyed. */\n    private _destroyed;\n    /** View to model callback that should be called if the list or its options lost focus. */\n    _onTouched: () => void;\n    /** Whether the list has been destroyed. */\n    private _isDestroyed;\n    constructor(_element: ElementRef<HTMLElement>, tabIndex: string);\n    ngAfterContentInit(): void;\n    ngOnChanges(changes: SimpleChanges): void;\n    ngOnDestroy(): void;\n    /** Focuses the selection list. */\n    focus(options?: FocusOptions): void;\n    /** Selects all of the options. */\n    selectAll(): void;\n    /** Deselects all of the options. */\n    deselectAll(): void;\n    /** Sets the focused option of the selection-list. */\n    _setFocusedOption(option: MatListOption): void;\n    /**\n     * Removes an option from the selection list and updates the active item.\n     * @returns Currently-active item.\n     */\n    _removeOptionFromList(option: MatListOption): MatListOption | null;\n    /** Passes relevant key presses to our key manager. */\n    _keydown(event: KeyboardEvent): void;\n    /** Reports a value change to the ControlValueAccessor */\n    _reportValueChange(): void;\n    /** Emits a change event if the selected state of an option changed. */\n    _emitChangeEvent(option: MatListOption): void;\n    /** Implemented as part of ControlValueAccessor. */\n    writeValue(values: string[]): void;\n    /** Implemented as a part of ControlValueAccessor. */\n    setDisabledState(isDisabled: boolean): void;\n    /** Implemented as part of ControlValueAccessor. */\n    registerOnChange(fn: (value: any) => void): void;\n    /** Implemented as part of ControlValueAccessor. */\n    registerOnTouched(fn: () => void): void;\n    /** Sets the selected options based on the specified values. */\n    private _setOptionsFromValues;\n    /** Returns the values of the selected options. */\n    private _getSelectedOptionValues;\n    /** Toggles the state of the currently focused option if enabled. */\n    private _toggleFocusedOption;\n    /**\n     * Sets the selected state on all of the options\n     * and emits an event if anything changed.\n     */\n    private _setAllOptionsSelected;\n    /**\n     * Utility to ensure all indexes are valid.\n     * @param index The index to be checked.\n     * @returns True if the index is valid for our list of options.\n     */\n    private _isValidIndex;\n    /** Returns the index of the specified list option. */\n    private _getOptionIndex;\n    /** Marks all the options to be checked in the next change detection run. */\n    private _markOptionsForCheck;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/index.d.ts",
      "node_modules/@angular/material/menu/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\nexport { MAT_MENU_DEFAULT_OPTIONS_FACTORY as ɵangular_material_src_material_menu_menu_a } from './menu';\nexport { MAT_MENU_SCROLL_STRATEGY_FACTORY as ɵangular_material_src_material_menu_menu_b, MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER as ɵangular_material_src_material_menu_menu_c } from './menu-trigger';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/menu-animations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationTriggerMetadata } from '@angular/animations';\n/**\n * Animations used by the mat-menu component.\n * Animation duration and timing values are based on:\n * https://material.io/guidelines/components/menus.html#menus-usage\n * @docs-private\n */\nexport declare const matMenuAnimations: {\n    readonly transformMenu: AnimationTriggerMetadata;\n    readonly fadeInItems: AnimationTriggerMetadata;\n};\n/**\n * @deprecated\n * @breaking-change 8.0.0\n * @docs-private\n */\nexport declare const fadeInItems: AnimationTriggerMetadata;\n/**\n * @deprecated\n * @breaking-change 8.0.0\n * @docs-private\n */\nexport declare const transformMenu: AnimationTriggerMetadata;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/menu-content.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ApplicationRef, ChangeDetectorRef, ComponentFactoryResolver, Injector, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n/**\n * Menu content that will be rendered lazily once the menu is opened.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatMenuContent implements OnDestroy {\n    private _template;\n    private _componentFactoryResolver;\n    private _appRef;\n    private _injector;\n    private _viewContainerRef;\n    private _document;\n    private _changeDetectorRef?;\n    private _portal;\n    private _outlet;\n    /** Emits when the menu content has been attached. */\n    _attached: Subject<void>;\n    constructor(_template: TemplateRef<any>, _componentFactoryResolver: ComponentFactoryResolver, _appRef: ApplicationRef, _injector: Injector, _viewContainerRef: ViewContainerRef, _document: any, _changeDetectorRef?: ChangeDetectorRef | undefined);\n    /**\n     * Attaches the content with a particular context.\n     * @docs-private\n     */\n    attach(context?: any): void;\n    /**\n     * Detaches the content.\n     * @docs-private\n     */\n    detach(): void;\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatMenuContent>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatMenuContent, \"ng-template[matMenuContent]\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=menu-content.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/menu-errors.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Throws an exception for the case when menu trigger doesn't have a valid mat-menu instance\n * @docs-private\n */\nexport declare function throwMatMenuMissingError(): void;\n/**\n * Throws an exception for the case when menu's x-position value isn't valid.\n * In other words, it doesn't match 'before' or 'after'.\n * @docs-private\n */\nexport declare function throwMatMenuInvalidPositionX(): void;\n/**\n * Throws an exception for the case when menu's y-position value isn't valid.\n * In other words, it doesn't match 'above' or 'below'.\n * @docs-private\n */\nexport declare function throwMatMenuInvalidPositionY(): void;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/menu-item.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusableOption, FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { ElementRef, OnDestroy } from '@angular/core';\nimport { CanDisable, CanDisableCtor, CanDisableRipple, CanDisableRippleCtor } from '@angular/material/core';\nimport { Subject } from 'rxjs';\nimport { MatMenuPanel } from './menu-panel';\n/** @docs-private */\nimport * as ɵngcc0 from '@angular/core';\ndeclare class MatMenuItemBase {\n}\ndeclare const _MatMenuItemMixinBase: CanDisableRippleCtor & CanDisableCtor & typeof MatMenuItemBase;\n/**\n * This directive is intended to be used inside an mat-menu tag.\n * It exists mostly to set the role attribute.\n */\nexport declare class MatMenuItem extends _MatMenuItemMixinBase implements FocusableOption, CanDisable, CanDisableRipple, OnDestroy {\n    private _elementRef;\n    private _focusMonitor?;\n    _parentMenu?: MatMenuPanel<MatMenuItem> | undefined;\n    /** ARIA role for the menu item. */\n    role: 'menuitem' | 'menuitemradio' | 'menuitemcheckbox';\n    private _document;\n    /** Stream that emits when the menu item is hovered. */\n    readonly _hovered: Subject<MatMenuItem>;\n    /** Whether the menu item is highlighted. */\n    _highlighted: boolean;\n    /** Whether the menu item acts as a trigger for a sub-menu. */\n    _triggersSubmenu: boolean;\n    constructor(_elementRef: ElementRef<HTMLElement>, document?: any, _focusMonitor?: FocusMonitor | undefined, _parentMenu?: MatMenuPanel<MatMenuItem> | undefined);\n    /** Focuses the menu item. */\n    focus(origin?: FocusOrigin, options?: FocusOptions): void;\n    ngOnDestroy(): void;\n    /** Used to set the `tabindex`. */\n    _getTabIndex(): string;\n    /** Returns the host DOM element. */\n    _getHostElement(): HTMLElement;\n    /** Prevents the default element actions if it is disabled. */\n    _checkDisabled(event: Event): void;\n    /** Emits to the hover stream. */\n    _handleMouseEnter(): void;\n    /** Gets the label to be used when determining whether the option should be focused. */\n    getLabel(): string;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatMenuItem>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatMenuItem, \"[mat-menu-item]\", [\"matMenuItem\"], { 'disabled': \"disabled\", 'disableRipple': \"disableRipple\", 'role': \"role\" }, {}, never>;\n}\nexport {};\n\n//# sourceMappingURL=menu-item.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/menu-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Used by both the current `MatMenuModule` and the MDC `MatMenuModule`\n * to declare the menu-related directives.\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './menu-trigger';\nimport * as ɵngcc2 from './menu-content';\nimport * as ɵngcc3 from '@angular/material/core';\nimport * as ɵngcc4 from './menu';\nimport * as ɵngcc5 from './menu-item';\nimport * as ɵngcc6 from '@angular/common';\nimport * as ɵngcc7 from '@angular/cdk/overlay';\nexport declare class _MatMenuDirectivesModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<_MatMenuDirectivesModule, [typeof ɵngcc1.MatMenuTrigger, typeof ɵngcc2.MatMenuContent], never, [typeof ɵngcc1.MatMenuTrigger, typeof ɵngcc2.MatMenuContent, typeof ɵngcc3.MatCommonModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<_MatMenuDirectivesModule>;\n}\nexport declare class MatMenuModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatMenuModule, [typeof ɵngcc4._MatMenu, typeof ɵngcc5.MatMenuItem], [typeof ɵngcc6.CommonModule, typeof ɵngcc3.MatCommonModule, typeof ɵngcc3.MatRippleModule, typeof ɵngcc7.OverlayModule, typeof _MatMenuDirectivesModule], [typeof ɵngcc4._MatMenu, typeof ɵngcc5.MatMenuItem, typeof _MatMenuDirectivesModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatMenuModule>;\n}\n\n//# sourceMappingURL=menu-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/menu-panel.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { EventEmitter, TemplateRef, InjectionToken } from '@angular/core';\nimport { MenuPositionX, MenuPositionY } from './menu-positions';\nimport { Direction } from '@angular/cdk/bidi';\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { MatMenuContent } from './menu-content';\n/**\n * Injection token used to provide the parent menu to menu-specific components.\n * @docs-private\n */\nexport declare const MAT_MENU_PANEL: InjectionToken<MatMenuPanel<any>>;\n/**\n * Interface for a custom menu panel that can be used with `matMenuTriggerFor`.\n * @docs-private\n */\nexport interface MatMenuPanel<T = any> {\n    xPosition: MenuPositionX;\n    yPosition: MenuPositionY;\n    overlapTrigger: boolean;\n    templateRef: TemplateRef<any>;\n    close: EventEmitter<void | 'click' | 'keydown' | 'tab'>;\n    parentMenu?: MatMenuPanel | undefined;\n    direction?: Direction;\n    focusFirstItem: (origin?: FocusOrigin) => void;\n    resetActiveItem: () => void;\n    setPositionClasses?: (x: MenuPositionX, y: MenuPositionY) => void;\n    setElevation?(depth: number): void;\n    lazyContent?: MatMenuContent;\n    backdropClass?: string;\n    hasBackdrop?: boolean;\n    /**\n     * @deprecated To be removed.\n     * @breaking-change 8.0.0\n     */\n    addItem?: (item: T) => void;\n    /**\n     * @deprecated To be removed.\n     * @breaking-change 8.0.0\n     */\n    removeItem?: (item: T) => void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/menu-positions.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare type MenuPositionX = 'before' | 'after';\nexport declare type MenuPositionY = 'above' | 'below';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/menu-trigger.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { AfterContentInit, ElementRef, EventEmitter, InjectionToken, OnDestroy, ViewContainerRef } from '@angular/core';\nimport { MatMenu } from './menu';\nimport { MatMenuItem } from './menu-item';\nimport { MatMenuPanel } from './menu-panel';\n/** Injection token that determines the scroll handling while the menu is open. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare const MAT_MENU_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;\n/** @docs-private */\nexport declare function MAT_MENU_SCROLL_STRATEGY_FACTORY(overlay: Overlay): () => ScrollStrategy;\n/** @docs-private */\nexport declare const MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER: {\n    provide: InjectionToken<() => ScrollStrategy>;\n    deps: (typeof Overlay)[];\n    useFactory: typeof MAT_MENU_SCROLL_STRATEGY_FACTORY;\n};\n/** Default top padding of the menu panel. */\nexport declare const MENU_PANEL_TOP_PADDING = 8;\n/**\n * This directive is intended to be used in conjunction with an mat-menu tag.  It is\n * responsible for toggling the display of the provided menu instance.\n */\nexport declare class MatMenuTrigger implements AfterContentInit, OnDestroy {\n    private _overlay;\n    private _element;\n    private _viewContainerRef;\n    private _parentMenu;\n    private _menuItemInstance;\n    private _dir;\n    private _focusMonitor?;\n    private _portal;\n    private _overlayRef;\n    private _menuOpen;\n    private _closingActionsSubscription;\n    private _hoverSubscription;\n    private _menuCloseSubscription;\n    private _scrollStrategy;\n    /**\n     * Handles touch start events on the trigger.\n     * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.\n     */\n    private _handleTouchStart;\n    _openedBy: 'mouse' | 'touch' | null;\n    /**\n     * @deprecated\n     * @breaking-change 8.0.0\n     */\n    _deprecatedMatMenuTriggerFor: MatMenuPanel;\n    /** References the menu instance that the trigger is associated with. */\n    menu: MatMenuPanel;\n    private _menu;\n    /** Data to be passed along to any lazily-rendered content. */\n    menuData: any;\n    /**\n     * Whether focus should be restored when the menu is closed.\n     * Note that disabling this option can have accessibility implications\n     * and it's up to you to manage focus, if you decide to turn it off.\n     */\n    restoreFocus: boolean;\n    /** Event emitted when the associated menu is opened. */\n    readonly menuOpened: EventEmitter<void>;\n    /**\n     * Event emitted when the associated menu is opened.\n     * @deprecated Switch to `menuOpened` instead\n     * @breaking-change 8.0.0\n     */\n    readonly onMenuOpen: EventEmitter<void>;\n    /** Event emitted when the associated menu is closed. */\n    readonly menuClosed: EventEmitter<void>;\n    /**\n     * Event emitted when the associated menu is closed.\n     * @deprecated Switch to `menuClosed` instead\n     * @breaking-change 8.0.0\n     */\n    readonly onMenuClose: EventEmitter<void>;\n    constructor(_overlay: Overlay, _element: ElementRef<HTMLElement>, _viewContainerRef: ViewContainerRef, scrollStrategy: any, _parentMenu: MatMenu, _menuItemInstance: MatMenuItem, _dir: Directionality, _focusMonitor?: FocusMonitor | undefined);\n    ngAfterContentInit(): void;\n    ngOnDestroy(): void;\n    /** Whether the menu is open. */\n    readonly menuOpen: boolean;\n    /** The text direction of the containing app. */\n    readonly dir: Direction;\n    /** Whether the menu triggers a sub-menu or a top-level one. */\n    triggersSubmenu(): boolean;\n    /** Toggles the menu between the open and closed states. */\n    toggleMenu(): void;\n    /** Opens the menu. */\n    openMenu(): void;\n    /** Closes the menu. */\n    closeMenu(): void;\n    /**\n     * Focuses the menu trigger.\n     * @param origin Source of the menu trigger's focus.\n     */\n    focus(origin?: FocusOrigin, options?: FocusOptions): void;\n    /** Closes the menu and does the necessary cleanup. */\n    private _destroyMenu;\n    /**\n     * This method sets the menu state to open and focuses the first item if\n     * the menu was opened via the keyboard.\n     */\n    private _initMenu;\n    /** Updates the menu elevation based on the amount of parent menus that it has. */\n    private _setMenuElevation;\n    /** Restores focus to the element that was focused before the menu was open. */\n    private _restoreFocus;\n    private _setIsMenuOpen;\n    /**\n     * This method checks that a valid instance of MatMenu has been passed into\n     * matMenuTriggerFor. If not, an exception is thrown.\n     */\n    private _checkMenu;\n    /**\n     * This method creates the overlay from the provided menu's template and saves its\n     * OverlayRef so that it can be attached to the DOM when openMenu is called.\n     */\n    private _createOverlay;\n    /**\n     * This method builds the configuration object needed to create the overlay, the OverlayState.\n     * @returns OverlayConfig\n     */\n    private _getOverlayConfig;\n    /**\n     * Listens to changes in the position of the overlay and sets the correct classes\n     * on the menu based on the new position. This ensures the animation origin is always\n     * correct, even if a fallback position is used for the overlay.\n     */\n    private _subscribeToPositions;\n    /**\n     * Sets the appropriate positions on a position strategy\n     * so the overlay connects with the trigger correctly.\n     * @param positionStrategy Strategy whose position to update.\n     */\n    private _setPosition;\n    /** Returns a stream that emits whenever an action that should close the menu occurs. */\n    private _menuClosingActions;\n    /** Handles mouse presses on the trigger. */\n    _handleMousedown(event: MouseEvent): void;\n    /** Handles key presses on the trigger. */\n    _handleKeydown(event: KeyboardEvent): void;\n    /** Handles click events on the trigger. */\n    _handleClick(event: MouseEvent): void;\n    /** Handles the cases where the user hovers over the trigger. */\n    private _handleHover;\n    /** Gets the portal that should be attached to the overlay. */\n    private _getPortal;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatMenuTrigger>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatMenuTrigger, \"[mat-menu-trigger-for], [matMenuTriggerFor]\", [\"matMenuTrigger\"], { 'restoreFocus': \"matMenuTriggerRestoreFocus\", '_deprecatedMatMenuTriggerFor': \"mat-menu-trigger-for\", 'menu': \"matMenuTriggerFor\", 'menuData': \"matMenuTriggerData\" }, { 'menuOpened': \"menuOpened\", 'onMenuOpen': \"onMenuOpen\", 'menuClosed': \"menuClosed\", 'onMenuClose': \"onMenuClose\" }, never>;\n}\n\n//# sourceMappingURL=menu-trigger.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/menu.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\nimport { AfterContentInit, ElementRef, EventEmitter, InjectionToken, NgZone, OnDestroy, TemplateRef, QueryList, OnInit } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { MatMenuContent } from './menu-content';\nimport { MenuPositionX, MenuPositionY } from './menu-positions';\nimport { MatMenuItem } from './menu-item';\nimport { MatMenuPanel } from './menu-panel';\nimport { AnimationEvent } from '@angular/animations';\n/** Default `mat-menu` options that can be overridden. */\nimport * as ɵngcc0 from '@angular/core';\nexport interface MatMenuDefaultOptions {\n    /** The x-axis position of the menu. */\n    xPosition: MenuPositionX;\n    /** The y-axis position of the menu. */\n    yPosition: MenuPositionY;\n    /** Whether the menu should overlap the menu trigger. */\n    overlapTrigger: boolean;\n    /** Class to be applied to the menu's backdrop. */\n    backdropClass: string;\n    /** Whether the menu has a backdrop. */\n    hasBackdrop?: boolean;\n}\n/** Injection token to be used to override the default options for `mat-menu`. */\nexport declare const MAT_MENU_DEFAULT_OPTIONS: InjectionToken<MatMenuDefaultOptions>;\n/** @docs-private */\nexport declare function MAT_MENU_DEFAULT_OPTIONS_FACTORY(): MatMenuDefaultOptions;\n/** Base class with all of the `MatMenu` functionality. */\nexport declare class _MatMenuBase implements AfterContentInit, MatMenuPanel<MatMenuItem>, OnInit, OnDestroy {\n    private _elementRef;\n    private _ngZone;\n    private _defaultOptions;\n    private _keyManager;\n    private _xPosition;\n    private _yPosition;\n    private _previousElevation;\n    /** All items inside the menu. Includes items nested inside another menu. */\n    _allItems: QueryList<MatMenuItem>;\n    /** Only the direct descendant menu items. */\n    private _directDescendantItems;\n    /** Subscription to tab events on the menu panel */\n    private _tabSubscription;\n    /** Config object to be passed into the menu's ngClass */\n    _classList: {\n        [key: string]: boolean;\n    };\n    /** Current state of the panel animation. */\n    _panelAnimationState: 'void' | 'enter';\n    /** Emits whenever an animation on the menu completes. */\n    _animationDone: Subject<AnimationEvent>;\n    /** Whether the menu is animating. */\n    _isAnimating: boolean;\n    /** Parent menu of the current menu panel. */\n    parentMenu: MatMenuPanel | undefined;\n    /** Layout direction of the menu. */\n    direction: Direction;\n    /** Class to be added to the backdrop element. */\n    backdropClass: string;\n    /** Position of the menu in the X axis. */\n    xPosition: MenuPositionX;\n    /** Position of the menu in the Y axis. */\n    yPosition: MenuPositionY;\n    /** @docs-private */\n    templateRef: TemplateRef<any>;\n    /**\n     * List of the items inside of a menu.\n     * @deprecated\n     * @breaking-change 8.0.0\n     */\n    items: QueryList<MatMenuItem>;\n    /**\n     * Menu content that will be rendered lazily.\n     * @docs-private\n     */\n    lazyContent: MatMenuContent;\n    /** Whether the menu should overlap its trigger. */\n    overlapTrigger: boolean;\n    private _overlapTrigger;\n    /** Whether the menu has a backdrop. */\n    hasBackdrop: boolean | undefined;\n    private _hasBackdrop;\n    /**\n     * This method takes classes set on the host mat-menu element and applies them on the\n     * menu template that displays in the overlay container.  Otherwise, it's difficult\n     * to style the containing menu from outside the component.\n     * @param classes list of class names\n     */\n    panelClass: string;\n    private _previousPanelClass;\n    /**\n     * This method takes classes set on the host mat-menu element and applies them on the\n     * menu template that displays in the overlay container.  Otherwise, it's difficult\n     * to style the containing menu from outside the component.\n     * @deprecated Use `panelClass` instead.\n     * @breaking-change 8.0.0\n     */\n    classList: string;\n    /** Event emitted when the menu is closed. */\n    readonly closed: EventEmitter<void | 'click' | 'keydown' | 'tab'>;\n    /**\n     * Event emitted when the menu is closed.\n     * @deprecated Switch to `closed` instead\n     * @breaking-change 8.0.0\n     */\n    close: EventEmitter<void | \"click\" | \"keydown\" | \"tab\">;\n    constructor(_elementRef: ElementRef<HTMLElement>, _ngZone: NgZone, _defaultOptions: MatMenuDefaultOptions);\n    ngOnInit(): void;\n    ngAfterContentInit(): void;\n    ngOnDestroy(): void;\n    /** Stream that emits whenever the hovered menu item changes. */\n    _hovered(): Observable<MatMenuItem>;\n    addItem(_item: MatMenuItem): void;\n    /**\n     * Removes an item from the menu.\n     * @docs-private\n     * @deprecated No longer being used. To be removed.\n     * @breaking-change 9.0.0\n     */\n    removeItem(_item: MatMenuItem): void;\n    /** Handle a keyboard event from the menu, delegating to the appropriate action. */\n    _handleKeydown(event: KeyboardEvent): void;\n    /**\n     * Focus the first item in the menu.\n     * @param origin Action from which the focus originated. Used to set the correct styling.\n     */\n    focusFirstItem(origin?: FocusOrigin): void;\n    /**\n     * Resets the active item in the menu. This is used when the menu is opened, allowing\n     * the user to start from the first option when pressing the down arrow.\n     */\n    resetActiveItem(): void;\n    /**\n     * Sets the menu panel elevation.\n     * @param depth Number of parent menus that come before the menu.\n     */\n    setElevation(depth: number): void;\n    /**\n     * Adds classes to the menu panel based on its position. Can be used by\n     * consumers to add specific styling based on the position.\n     * @param posX Position of the menu along the x axis.\n     * @param posY Position of the menu along the y axis.\n     * @docs-private\n     */\n    setPositionClasses(posX?: MenuPositionX, posY?: MenuPositionY): void;\n    /** Starts the enter animation. */\n    _startAnimation(): void;\n    /** Resets the panel animation to its initial state. */\n    _resetAnimation(): void;\n    /** Callback that is invoked when the panel animation completes. */\n    _onAnimationDone(event: AnimationEvent): void;\n    _onAnimationStart(event: AnimationEvent): void;\n    /**\n     * Sets up a stream that will keep track of any newly-added menu items and will update the list\n     * of direct descendants. We collect the descendants this way, because `_allItems` can include\n     * items that are part of child menus, and using a custom way of registering items is unreliable\n     * when it comes to maintaining the item order.\n     */\n    private _updateDirectDescendants;\n    static ngBaseDef: ɵngcc0.ɵɵBaseDef<_MatMenuBase>;\n}\n/** @docs-private We show the \"_MatMenu\" class as \"MatMenu\" in the docs. */\nexport declare class MatMenu extends _MatMenuBase {\n}\n/** @docs-public MatMenu */\nexport declare class _MatMenu extends MatMenu {\n    constructor(elementRef: ElementRef<HTMLElement>, ngZone: NgZone, defaultOptions: MatMenuDefaultOptions);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<_MatMenu>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<_MatMenu, \"mat-menu\", [\"matMenu\"], {}, {}, never>;\n}\n\n//# sourceMappingURL=menu.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport { MatMenu, MatMenuDefaultOptions, MAT_MENU_DEFAULT_OPTIONS, _MatMenu, _MatMenuBase, } from './menu';\nexport { MatMenuItem } from './menu-item';\nexport { MatMenuTrigger, MAT_MENU_SCROLL_STRATEGY } from './menu-trigger';\nexport { MatMenuPanel, MAT_MENU_PANEL } from './menu-panel';\nexport * from './menu-module';\nexport * from './menu-animations';\nexport * from './menu-content';\nexport * from './menu-positions';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/testing/index.d.ts",
      "node_modules/@angular/material/menu/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/testing/menu-harness-filters.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface MenuHarnessFilters extends BaseHarnessFilters {\n    triggerText?: string | RegExp;\n}\nexport interface MenuItemHarnessFilters extends BaseHarnessFilters {\n    text?: string | RegExp;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/testing/menu-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { MenuHarnessFilters } from './menu-harness-filters';\nimport { MatMenuItemHarness } from './menu-item-harness';\n/**\n * Harness for interacting with a standard mat-menu in tests.\n * @dynamic\n */\nexport declare class MatMenuHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a menu with specific attributes.\n     * @param options Options for narrowing the search:\n     *   - `selector` finds a menu whose host element matches the given selector.\n     *   - `label` finds a menu with specific label text.\n     * @return a `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: MenuHarnessFilters): HarnessPredicate<MatMenuHarness>;\n    /** Gets a boolean promise indicating if the menu is disabled. */\n    isDisabled(): Promise<boolean>;\n    isOpen(): Promise<boolean>;\n    getTriggerText(): Promise<string>;\n    /** Focuses the menu and returns a void promise that indicates when the action is complete. */\n    focus(): Promise<void>;\n    /** Blurs the menu and returns a void promise that indicates when the action is complete. */\n    blur(): Promise<void>;\n    open(): Promise<void>;\n    close(): Promise<void>;\n    getItems(): Promise<MatMenuItemHarness[]>;\n    getItemLabels(): Promise<string[]>;\n    getItemByLabel(): Promise<MatMenuItemHarness>;\n    getItemByIndex(): Promise<MatMenuItemHarness>;\n    getFocusedItem(): Promise<MatMenuItemHarness>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/testing/menu-item-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { MenuItemHarnessFilters } from './menu-harness-filters';\n/**\n * Harness for interacting with a standard mat-menu in tests.\n * @dynamic\n */\nexport declare class MatMenuItemHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a menu with specific attributes.\n     * @param options Options for narrowing the search:\n     *   - `selector` finds a menu item whose host element matches the given selector.\n     *   - `label` finds a menu item with specific label text.\n     * @return a `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: MenuItemHarnessFilters): HarnessPredicate<MatMenuItemHarness>;\n    /** Gets a boolean promise indicating if the menu is disabled. */\n    isDisabled(): Promise<boolean>;\n    getText(): Promise<string>;\n    /** Focuses the menu and returns a void promise that indicates when the action is complete. */\n    focus(): Promise<void>;\n    /** Blurs the menu and returns a void promise that indicates when the action is complete. */\n    blur(): Promise<void>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/menu/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './menu-harness';\nexport * from './menu-harness-filters';\nexport * from './menu-item-harness';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/paginator/index.d.ts",
      "node_modules/@angular/material/paginator/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/paginator/paginator-intl.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Optional } from '@angular/core';\nimport { Subject } from 'rxjs';\n/**\n * To modify the labels and text displayed, create a new instance of MatPaginatorIntl and\n * include it in a custom provider\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatPaginatorIntl {\n    /**\n     * Stream to emit from when labels are changed. Use this to notify components when the labels have\n     * changed after initialization.\n     */\n    readonly changes: Subject<void>;\n    /** A label for the page size selector. */\n    itemsPerPageLabel: string;\n    /** A label for the button that increments the current page. */\n    nextPageLabel: string;\n    /** A label for the button that decrements the current page. */\n    previousPageLabel: string;\n    /** A label for the button that moves to the first page. */\n    firstPageLabel: string;\n    /** A label for the button that moves to the last page. */\n    lastPageLabel: string;\n    /** A label for the range of items within the current page and the length of the whole list. */\n    getRangeLabel: (page: number, pageSize: number, length: number) => string;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatPaginatorIntl>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<MatPaginatorIntl>;\n}\n/** @docs-private */\nexport declare function MAT_PAGINATOR_INTL_PROVIDER_FACTORY(parentIntl: MatPaginatorIntl): MatPaginatorIntl;\n/** @docs-private */\nexport declare const MAT_PAGINATOR_INTL_PROVIDER: {\n    provide: typeof MatPaginatorIntl;\n    deps: Optional[][];\n    useFactory: typeof MAT_PAGINATOR_INTL_PROVIDER_FACTORY;\n};\n\n//# sourceMappingURL=paginator-intl.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/paginator/paginator-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './paginator';\nimport * as ɵngcc2 from '@angular/common';\nimport * as ɵngcc3 from '@angular/material/button';\nimport * as ɵngcc4 from '@angular/material/select';\nimport * as ɵngcc5 from '@angular/material/tooltip';\nexport declare class MatPaginatorModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatPaginatorModule, [typeof ɵngcc1.MatPaginator], [typeof ɵngcc2.CommonModule, typeof ɵngcc3.MatButtonModule, typeof ɵngcc4.MatSelectModule, typeof ɵngcc5.MatTooltipModule], [typeof ɵngcc1.MatPaginator]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatPaginatorModule>;\n}\n\n//# sourceMappingURL=paginator-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/paginator/paginator.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';\nimport { MatPaginatorIntl } from './paginator-intl';\nimport { HasInitialized, HasInitializedCtor, ThemePalette, CanDisableCtor, CanDisable } from '@angular/material/core';\n/**\n * Change event object that is emitted when the user selects a\n * different page size or navigates to another page.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class PageEvent {\n    /** The current page index. */\n    pageIndex: number;\n    /**\n     * Index of the page that was selected previously.\n     * @breaking-change 8.0.0 To be made into a required property.\n     */\n    previousPageIndex?: number;\n    /** The current page size */\n    pageSize: number;\n    /** The current total number of items being paged */\n    length: number;\n}\n/** @docs-private */\ndeclare class MatPaginatorBase {\n}\ndeclare const _MatPaginatorBase: CanDisableCtor & HasInitializedCtor & typeof MatPaginatorBase;\n/**\n * Component to provide navigation between paged information. Displays the size of the current\n * page, user-selectable options to change that size, what items are being shown, and\n * navigational button to go to the previous or next page.\n */\nexport declare class MatPaginator extends _MatPaginatorBase implements OnInit, OnDestroy, CanDisable, HasInitialized {\n    _intl: MatPaginatorIntl;\n    private _changeDetectorRef;\n    private _initialized;\n    private _intlChanges;\n    /** Theme color to be used for the underlying form controls. */\n    color: ThemePalette;\n    /** The zero-based page index of the displayed list of items. Defaulted to 0. */\n    pageIndex: number;\n    private _pageIndex;\n    /** The length of the total number of items that are being paginated. Defaulted to 0. */\n    length: number;\n    private _length;\n    /** Number of items to display on a page. By default set to 50. */\n    pageSize: number;\n    private _pageSize;\n    /** The set of provided page size options to display to the user. */\n    pageSizeOptions: number[];\n    private _pageSizeOptions;\n    /** Whether to hide the page size selection UI from the user. */\n    hidePageSize: boolean;\n    private _hidePageSize;\n    /** Whether to show the first/last buttons UI to the user. */\n    showFirstLastButtons: boolean;\n    private _showFirstLastButtons;\n    /** Event emitted when the paginator changes the page size or page index. */\n    readonly page: EventEmitter<PageEvent>;\n    /** Displayed set of page size options. Will be sorted and include current page size. */\n    _displayedPageSizeOptions: number[];\n    constructor(_intl: MatPaginatorIntl, _changeDetectorRef: ChangeDetectorRef);\n    ngOnInit(): void;\n    ngOnDestroy(): void;\n    /** Advances to the next page if it exists. */\n    nextPage(): void;\n    /** Move back to the previous page if it exists. */\n    previousPage(): void;\n    /** Move to the first page if not already there. */\n    firstPage(): void;\n    /** Move to the last page if not already there. */\n    lastPage(): void;\n    /** Whether there is a previous page. */\n    hasPreviousPage(): boolean;\n    /** Whether there is a next page. */\n    hasNextPage(): boolean;\n    /** Calculate the number of pages */\n    getNumberOfPages(): number;\n    /**\n     * Changes the page size so that the first item displayed on the page will still be\n     * displayed using the new page size.\n     *\n     * For example, if the page size is 10 and on the second page (items indexed 10-19) then\n     * switching so that the page size is 5 will set the third page as the current page so\n     * that the 10th item will still be displayed.\n     */\n    _changePageSize(pageSize: number): void;\n    /** Checks whether the buttons for going forwards should be disabled. */\n    _nextButtonsDisabled(): boolean;\n    /** Checks whether the buttons for going backwards should be disabled. */\n    _previousButtonsDisabled(): boolean;\n    /**\n     * Updates the list of page size options to display to the user. Includes making sure that\n     * the page size is an option and that the list is sorted.\n     */\n    private _updateDisplayedPageSizeOptions;\n    /** Emits an event notifying that a change of the paginator's properties has been triggered. */\n    private _emitPageEvent;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatPaginator>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatPaginator, \"mat-paginator\", [\"matPaginator\"], { 'disabled': \"disabled\", 'pageIndex': \"pageIndex\", 'length': \"length\", 'pageSize': \"pageSize\", 'pageSizeOptions': \"pageSizeOptions\", 'hidePageSize': \"hidePageSize\", 'showFirstLastButtons': \"showFirstLastButtons\", 'color': \"color\" }, { 'page': \"page\" }, never>;\n}\nexport {};\n\n//# sourceMappingURL=paginator.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/paginator/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './paginator-module';\nexport * from './paginator';\nexport * from './paginator-intl';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-bar/index.d.ts",
      "node_modules/@angular/material/progress-bar/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-bar/progress-bar-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatProgressBarModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-bar/progress-bar.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, EventEmitter, NgZone, AfterViewInit, OnDestroy, InjectionToken } from '@angular/core';\nimport { CanColor, CanColorCtor } from '@angular/material/core';\n/** Last animation end data. */\nexport interface ProgressAnimationEnd {\n    value: number;\n}\n/** @docs-private */\ndeclare class MatProgressBarBase {\n    _elementRef: ElementRef;\n    constructor(_elementRef: ElementRef);\n}\ndeclare const _MatProgressBarMixinBase: CanColorCtor & typeof MatProgressBarBase;\n/**\n * Injection token used to provide the current location to `MatProgressBar`.\n * Used to handle server-side rendering and to stub out during unit tests.\n * @docs-private\n */\nexport declare const MAT_PROGRESS_BAR_LOCATION: InjectionToken<MatProgressBarLocation>;\n/**\n * Stubbed out location for `MatProgressBar`.\n * @docs-private\n */\nexport interface MatProgressBarLocation {\n    getPathname: () => string;\n}\n/** @docs-private */\nexport declare function MAT_PROGRESS_BAR_LOCATION_FACTORY(): MatProgressBarLocation;\n/**\n * `<mat-progress-bar>` component.\n */\nexport declare class MatProgressBar extends _MatProgressBarMixinBase implements CanColor, AfterViewInit, OnDestroy {\n    _elementRef: ElementRef;\n    private _ngZone;\n    _animationMode?: string | undefined;\n    constructor(_elementRef: ElementRef, _ngZone: NgZone, _animationMode?: string | undefined, \n    /**\n     * @deprecated `location` parameter to be made required.\n     * @breaking-change 8.0.0\n     */\n    location?: MatProgressBarLocation);\n    /** Flag that indicates whether NoopAnimations mode is set to true. */\n    _isNoopAnimation: boolean;\n    /** Value of the progress bar. Defaults to zero. Mirrored to aria-valuenow. */\n    value: number;\n    private _value;\n    /** Buffer value of the progress bar. Defaults to zero. */\n    bufferValue: number;\n    private _bufferValue;\n    _primaryValueBar: ElementRef;\n    /**\n     * Event emitted when animation of the primary progress bar completes. This event will not\n     * be emitted when animations are disabled, nor will it be emitted for modes with continuous\n     * animations (indeterminate and query).\n     */\n    animationEnd: EventEmitter<ProgressAnimationEnd>;\n    /** Reference to animation end subscription to be unsubscribed on destroy. */\n    private _animationEndSubscription;\n    /**\n     * Mode of the progress bar.\n     *\n     * Input must be one of these values: determinate, indeterminate, buffer, query, defaults to\n     * 'determinate'.\n     * Mirrored to mode attribute.\n     */\n    mode: 'determinate' | 'indeterminate' | 'buffer' | 'query';\n    /** ID of the progress bar. */\n    progressbarId: string;\n    /** Attribute to be used for the `fill` attribute on the internal `rect` element. */\n    _rectangleFillValue: string;\n    /** Gets the current transform value for the progress bar's primary indicator. */\n    _primaryTransform(): {\n        transform: string;\n    };\n    /**\n     * Gets the current transform value for the progress bar's buffer indicator. Only used if the\n     * progress mode is set to buffer, otherwise returns an undefined, causing no transformation.\n     */\n    _bufferTransform(): {\n        transform: string;\n    } | undefined;\n    ngAfterViewInit(): void;\n    ngOnDestroy(): void;\n    /** Emit an animationEnd event if in determinate or buffer mode. */\n    private _emitAnimationEnd;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-bar/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './progress-bar-module';\nexport * from './progress-bar';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-bar/testing/index.d.ts",
      "node_modules/@angular/material/progress-bar/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-bar/testing/progress-bar-harness-filters.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface ProgressBarHarnessFilters extends BaseHarnessFilters {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-bar/testing/progress-bar-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { ProgressBarHarnessFilters } from './progress-bar-harness-filters';\n/**\n * Harness for interacting with a standard mat-progress-bar in tests.\n * @dynamic\n */\nexport declare class MatProgressBarHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a progress bar with specific\n     * attributes.\n     */\n    static with(options?: ProgressBarHarnessFilters): HarnessPredicate<MatProgressBarHarness>;\n    /** Gets a promise for the progress bar's value. */\n    getValue(): Promise<number | null>;\n    /** Gets a promise for the progress bar's mode. */\n    getMode(): Promise<string | null>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-bar/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './progress-bar-harness';\nexport * from './progress-bar-harness-filters';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-spinner/index.d.ts",
      "node_modules/@angular/material/progress-spinner/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-spinner/progress-spinner-module.d.ts"
    ],
    "content": "declare class MatProgressSpinnerModule {\n}\nexport { MatProgressSpinnerModule };\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-spinner/progress-spinner.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Platform } from '@angular/cdk/platform';\nimport { ElementRef, InjectionToken, OnInit } from '@angular/core';\nimport { CanColor, CanColorCtor } from '@angular/material/core';\n/** Possible mode for a progress spinner. */\nexport declare type ProgressSpinnerMode = 'determinate' | 'indeterminate';\n/** @docs-private */\ndeclare class MatProgressSpinnerBase {\n    _elementRef: ElementRef;\n    constructor(_elementRef: ElementRef);\n}\ndeclare const _MatProgressSpinnerMixinBase: CanColorCtor & typeof MatProgressSpinnerBase;\n/** Default `mat-progress-spinner` options that can be overridden. */\nexport interface MatProgressSpinnerDefaultOptions {\n    /** Diameter of the spinner. */\n    diameter?: number;\n    /** Width of the spinner's stroke. */\n    strokeWidth?: number;\n    /**\n     * Whether the animations should be force to be enabled, ignoring if the current environment is\n     * using NoopAnimationsModule.\n     */\n    _forceAnimations?: boolean;\n}\n/** Injection token to be used to override the default options for `mat-progress-spinner`. */\nexport declare const MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS: InjectionToken<MatProgressSpinnerDefaultOptions>;\n/** @docs-private */\nexport declare function MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY(): MatProgressSpinnerDefaultOptions;\n/**\n * `<mat-progress-spinner>` component.\n */\nexport declare class MatProgressSpinner extends _MatProgressSpinnerMixinBase implements OnInit, CanColor {\n    _elementRef: ElementRef<HTMLElement>;\n    private _document;\n    private _diameter;\n    private _value;\n    private _strokeWidth;\n    private _fallbackAnimation;\n    /**\n     * Element to which we should add the generated style tags for the indeterminate animation.\n     * For most elements this is the document, but for the ones in the Shadow DOM we need to\n     * use the shadow root.\n     */\n    private _styleRoot;\n    /**\n     * Tracks diameters of existing instances to de-dupe generated styles (default d = 100).\n     * We need to keep track of which elements the diameters were attached to, because for\n     * elements in the Shadow DOM the style tags are attached to the shadow root, rather\n     * than the document head.\n     */\n    private static _diameters;\n    /** Whether the _mat-animation-noopable class should be applied, disabling animations.  */\n    _noopAnimations: boolean;\n    /** The diameter of the progress spinner (will set width and height of svg). */\n    diameter: number;\n    /** Stroke width of the progress spinner. */\n    strokeWidth: number;\n    /** Mode of the progress circle */\n    mode: ProgressSpinnerMode;\n    /** Value of the progress circle. */\n    value: number;\n    constructor(_elementRef: ElementRef<HTMLElement>, platform: Platform, _document: any, animationMode: string, defaults?: MatProgressSpinnerDefaultOptions);\n    ngOnInit(): void;\n    /** The radius of the spinner, adjusted for stroke width. */\n    readonly _circleRadius: number;\n    /** The view box of the spinner's svg element. */\n    readonly _viewBox: string;\n    /** The stroke circumference of the svg circle. */\n    readonly _strokeCircumference: number;\n    /** The dash offset of the svg circle. */\n    readonly _strokeDashOffset: number | null;\n    /** Stroke width of the circle in percent. */\n    readonly _circleStrokeWidth: number;\n    /** Dynamically generates a style tag containing the correct animation for this diameter. */\n    private _attachStyleNode;\n    /** Generates animation styles adjusted for the spinner's diameter. */\n    private _getAnimationText;\n}\n/**\n * `<mat-spinner>` component.\n *\n * This is a component definition to be used as a convenience reference to create an\n * indeterminate `<mat-progress-spinner>` instance.\n */\nexport declare class MatSpinner extends MatProgressSpinner {\n    constructor(elementRef: ElementRef<HTMLElement>, platform: Platform, document: any, animationMode: string, defaults?: MatProgressSpinnerDefaultOptions);\n}\n/** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */\nexport declare function _getShadowRoot(element: HTMLElement, _document: Document): Node | null;\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-spinner/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './progress-spinner-module';\nexport { MatProgressSpinner, MatSpinner, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS, ProgressSpinnerMode, MatProgressSpinnerDefaultOptions, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, } from './progress-spinner';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-spinner/testing/index.d.ts",
      "node_modules/@angular/material/progress-spinner/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-spinner/testing/progress-spinner-harness-filters.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface ProgressSpinnerHarnessFilters extends BaseHarnessFilters {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-spinner/testing/progress-spinner-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { ProgressSpinnerHarnessFilters } from './progress-spinner-harness-filters';\n/**\n * Harness for interacting with a standard mat-progress-spinner in tests.\n * @dynamic\n */\nexport declare class MatProgressSpinnerHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a progress bar with specific\n     * attributes.\n     */\n    static with(options?: ProgressSpinnerHarnessFilters): HarnessPredicate<MatProgressSpinnerHarness>;\n    /** Gets a promise for the progress spinner's value. */\n    getValue(): Promise<number | null>;\n    /** Gets a promise for the progress spinner's mode. */\n    getMode(): Promise<ProgressSpinnerMode>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/progress-spinner/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './progress-spinner-harness';\nexport * from './progress-spinner-harness-filters';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/radio/index.d.ts",
      "node_modules/@angular/material/radio/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/radio/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './radio-module';\nexport * from './radio';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/radio/radio-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatRadioModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/radio/radio.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, OnDestroy, OnInit, QueryList } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { CanDisableRipple, CanDisableRippleCtor, HasTabIndex, HasTabIndexCtor, ThemePalette } from '@angular/material/core';\nexport interface MatRadioDefaultOptions {\n    color: ThemePalette;\n}\nexport declare const MAT_RADIO_DEFAULT_OPTIONS: InjectionToken<MatRadioDefaultOptions>;\nexport declare function MAT_RADIO_DEFAULT_OPTIONS_FACTORY(): MatRadioDefaultOptions;\n/**\n * Provider Expression that allows mat-radio-group to register as a ControlValueAccessor. This\n * allows it to support [(ngModel)] and ngControl.\n * @docs-private\n */\nexport declare const MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR: any;\n/** Change event object emitted by MatRadio and MatRadioGroup. */\nexport declare class MatRadioChange {\n    /** The MatRadioButton that emits the change event. */\n    source: MatRadioButton;\n    /** The value of the MatRadioButton. */\n    value: any;\n    constructor(\n    /** The MatRadioButton that emits the change event. */\n    source: MatRadioButton, \n    /** The value of the MatRadioButton. */\n    value: any);\n}\n/**\n * A group of radio buttons. May contain one or more `<mat-radio-button>` elements.\n */\nexport declare class MatRadioGroup implements AfterContentInit, ControlValueAccessor {\n    private _changeDetector;\n    /** Selected value for the radio group. */\n    private _value;\n    /** The HTML name attribute applied to radio buttons in this group. */\n    private _name;\n    /** The currently selected radio button. Should match value. */\n    private _selected;\n    /** Whether the `value` has been set to its initial value. */\n    private _isInitialized;\n    /** Whether the labels should appear after or before the radio-buttons. Defaults to 'after' */\n    private _labelPosition;\n    /** Whether the radio group is disabled. */\n    private _disabled;\n    /** Whether the radio group is required. */\n    private _required;\n    /** The method to be called in order to update ngModel */\n    _controlValueAccessorChangeFn: (value: any) => void;\n    /**\n     * onTouch function registered via registerOnTouch (ControlValueAccessor).\n     * @docs-private\n     */\n    onTouched: () => any;\n    /**\n     * Event emitted when the group value changes.\n     * Change events are only emitted when the value changes due to user interaction with\n     * a radio button (the same behavior as `<input type-\"radio\">`).\n     */\n    readonly change: EventEmitter<MatRadioChange>;\n    /** Child radio buttons. */\n    _radios: QueryList<MatRadioButton>;\n    /** Theme color for all of the radio buttons in the group. */\n    color: ThemePalette;\n    /** Name of the radio button group. All radio buttons inside this group will use this name. */\n    name: string;\n    /** Whether the labels should appear after or before the radio-buttons. Defaults to 'after' */\n    labelPosition: 'before' | 'after';\n    /**\n     * Value for the radio-group. Should equal the value of the selected radio button if there is\n     * a corresponding radio button with a matching value. If there is not such a corresponding\n     * radio button, this value persists to be applied in case a new radio button is added with a\n     * matching value.\n     */\n    value: any;\n    _checkSelectedRadioButton(): void;\n    /**\n     * The currently selected radio button. If set to a new radio button, the radio group value\n     * will be updated to match the new selected button.\n     */\n    selected: MatRadioButton | null;\n    /** Whether the radio group is disabled */\n    disabled: boolean;\n    /** Whether the radio group is required */\n    required: boolean;\n    constructor(_changeDetector: ChangeDetectorRef);\n    /**\n     * Initialize properties once content children are available.\n     * This allows us to propagate relevant attributes to associated buttons.\n     */\n    ngAfterContentInit(): void;\n    /**\n     * Mark this group as being \"touched\" (for ngModel). Meant to be called by the contained\n     * radio buttons upon their blur.\n     */\n    _touch(): void;\n    private _updateRadioButtonNames;\n    /** Updates the `selected` radio button from the internal _value state. */\n    private _updateSelectedRadioFromValue;\n    /** Dispatch change event with current selection and group value. */\n    _emitChangeEvent(): void;\n    _markRadiosForCheck(): void;\n    /**\n     * Sets the model value. Implemented as part of ControlValueAccessor.\n     * @param value\n     */\n    writeValue(value: any): void;\n    /**\n     * Registers a callback to be triggered when the model value changes.\n     * Implemented as part of ControlValueAccessor.\n     * @param fn Callback to be registered.\n     */\n    registerOnChange(fn: (value: any) => void): void;\n    /**\n     * Registers a callback to be triggered when the control is touched.\n     * Implemented as part of ControlValueAccessor.\n     * @param fn Callback to be registered.\n     */\n    registerOnTouched(fn: any): void;\n    /**\n     * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\n     * @param isDisabled Whether the control should be disabled.\n     */\n    setDisabledState(isDisabled: boolean): void;\n}\n/** @docs-private */\ndeclare class MatRadioButtonBase {\n    _elementRef: ElementRef;\n    disabled: boolean;\n    constructor(_elementRef: ElementRef);\n}\ndeclare const _MatRadioButtonMixinBase: CanDisableRippleCtor & HasTabIndexCtor & typeof MatRadioButtonBase;\n/**\n * A Material design radio-button. Typically placed inside of `<mat-radio-group>` elements.\n */\nexport declare class MatRadioButton extends _MatRadioButtonMixinBase implements OnInit, AfterViewInit, OnDestroy, CanDisableRipple, HasTabIndex {\n    private _changeDetector;\n    private _focusMonitor;\n    private _radioDispatcher;\n    _animationMode?: string | undefined;\n    private _providerOverride?;\n    private _uniqueId;\n    /** The unique ID for the radio button. */\n    id: string;\n    /** Analog to HTML 'name' attribute used to group radios for unique selection. */\n    name: string;\n    /** Used to set the 'aria-label' attribute on the underlying input element. */\n    ariaLabel: string;\n    /** The 'aria-labelledby' attribute takes precedence as the element's text alternative. */\n    ariaLabelledby: string;\n    /** The 'aria-describedby' attribute is read after the element's label and field type. */\n    ariaDescribedby: string;\n    /** Whether this radio button is checked. */\n    checked: boolean;\n    /** The value of this radio button. */\n    value: any;\n    /** Whether the label should appear after or before the radio button. Defaults to 'after' */\n    labelPosition: 'before' | 'after';\n    private _labelPosition;\n    /** Whether the radio button is disabled. */\n    disabled: boolean;\n    /** Whether the radio button is required. */\n    required: boolean;\n    /** Theme color of the radio button. */\n    color: ThemePalette;\n    private _color;\n    /**\n     * Event emitted when the checked state of this radio button changes.\n     * Change events are only emitted when the value changes due to user interaction with\n     * the radio button (the same behavior as `<input type-\"radio\">`).\n     */\n    readonly change: EventEmitter<MatRadioChange>;\n    /** The parent radio group. May or may not be present. */\n    radioGroup: MatRadioGroup;\n    /** ID of the native input element inside `<mat-radio-button>` */\n    readonly inputId: string;\n    /** Whether this radio is checked. */\n    private _checked;\n    /** Whether this radio is disabled. */\n    private _disabled;\n    /** Whether this radio is required. */\n    private _required;\n    /** Value assigned to this radio. */\n    private _value;\n    /** Unregister function for _radioDispatcher */\n    private _removeUniqueSelectionListener;\n    /** The native `<input type=radio>` element */\n    _inputElement: ElementRef<HTMLInputElement>;\n    constructor(radioGroup: MatRadioGroup, elementRef: ElementRef, _changeDetector: ChangeDetectorRef, _focusMonitor: FocusMonitor, _radioDispatcher: UniqueSelectionDispatcher, _animationMode?: string | undefined, _providerOverride?: MatRadioDefaultOptions | undefined);\n    /** Focuses the radio button. */\n    focus(options?: FocusOptions): void;\n    /**\n     * Marks the radio button as needing checking for change detection.\n     * This method is exposed because the parent radio group will directly\n     * update bound properties of the radio button.\n     */\n    _markForCheck(): void;\n    ngOnInit(): void;\n    ngAfterViewInit(): void;\n    ngOnDestroy(): void;\n    /** Dispatch change event with current value. */\n    private _emitChangeEvent;\n    _isRippleDisabled(): boolean;\n    _onInputClick(event: Event): void;\n    /**\n     * Triggered when the radio button received a click or the input recognized any change.\n     * Clicking on a label element, will trigger a change event on the associated input.\n     */\n    _onInputChange(event: Event): void;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/radio/testing/index.d.ts",
      "node_modules/@angular/material/radio/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/radio/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './radio-harness';\nexport * from './radio-harness-filters';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/radio/testing/radio-harness-filters.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface RadioGroupHarnessFilters extends BaseHarnessFilters {\n    name?: string;\n}\nexport interface RadioButtonHarnessFilters extends BaseHarnessFilters {\n    label?: string | RegExp;\n    name?: string;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/radio/testing/radio-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { RadioButtonHarnessFilters, RadioGroupHarnessFilters } from './radio-harness-filters';\n/**\n * Harness for interacting with a standard mat-radio-group in tests.\n * @dynamic\n */\nexport declare class MatRadioGroupHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a radio-group with\n     * specific attributes.\n     * @param options Options for narrowing the search:\n     *   - `selector` finds a radio-group whose host element matches the given selector.\n     *   - `name` finds a radio-group with specific name.\n     * @return a `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: RadioGroupHarnessFilters): HarnessPredicate<MatRadioGroupHarness>;\n    private _radioButtons;\n    /** Gets the name of the radio-group. */\n    getName(): Promise<string | null>;\n    /** Gets the id of the radio-group. */\n    getId(): Promise<string | null>;\n    /** Gets the selected radio-button in a radio-group. */\n    getSelectedRadioButton(): Promise<MatRadioButtonHarness | null>;\n    /** Gets the selected value of the radio-group. */\n    getSelectedValue(): Promise<string | null>;\n    /** Gets all radio buttons which are part of the radio-group. */\n    getRadioButtons(): Promise<MatRadioButtonHarness[]>;\n    private _getGroupNameFromHost;\n    private _getNamesFromRadioButtons;\n    /** Checks if the specified radio names are all equal. */\n    private _checkRadioNamesInGroupEqual;\n    /**\n     * Checks if a radio-group harness has the given name. Throws if a radio-group with\n     * matching name could be found but has mismatching radio-button names.\n     */\n    private static _checkRadioGroupName;\n}\n/**\n * Harness for interacting with a standard mat-radio-button in tests.\n * @dynamic\n */\nexport declare class MatRadioButtonHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a radio-button with\n     * specific attributes.\n     * @param options Options for narrowing the search:\n     *   - `selector` finds a radio-button whose host element matches the given selector.\n     *   - `label` finds a radio-button with specific label text.\n     *   - `name` finds a radio-button with specific name.\n     * @return a `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: RadioButtonHarnessFilters): HarnessPredicate<MatRadioButtonHarness>;\n    private _textLabel;\n    private _clickLabel;\n    private _input;\n    /** Whether the radio-button is checked. */\n    isChecked(): Promise<boolean>;\n    /** Whether the radio-button is disabled. */\n    isDisabled(): Promise<boolean>;\n    /** Whether the radio-button is required. */\n    isRequired(): Promise<boolean>;\n    /** Gets a promise for the radio-button's name. */\n    getName(): Promise<string | null>;\n    /** Gets a promise for the radio-button's id. */\n    getId(): Promise<string | null>;\n    /**\n     * Gets the value of the radio-button. The radio-button value will be\n     * converted to a string.\n     *\n     * Note that this means that radio-button's with objects as value will\n     * intentionally have the `[object Object]` as return value.\n     */\n    getValue(): Promise<string | null>;\n    /** Gets a promise for the radio-button's label text. */\n    getLabelText(): Promise<string>;\n    /**\n     * Focuses the radio-button and returns a void promise that indicates when the\n     * action is complete.\n     */\n    focus(): Promise<void>;\n    /**\n     * Blurs the radio-button and returns a void promise that indicates when the\n     * action is complete.\n     */\n    blur(): Promise<void>;\n    /**\n     * Puts the radio-button in a checked state by clicking it if it is currently unchecked,\n     * or doing nothing if it is already checked. Returns a void promise that indicates when\n     * the action is complete.\n     */\n    check(): Promise<void>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/select/index.d.ts",
      "node_modules/@angular/material/select/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/select/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './select-module';\nexport * from './select';\nexport * from './select-animations';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/select/select-animations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationTriggerMetadata } from '@angular/animations';\n/**\n * The following are all the animations for the mat-select component, with each\n * const containing the metadata for one animation.\n *\n * The values below match the implementation of the AngularJS Material mat-select animation.\n * @docs-private\n */\nexport declare const matSelectAnimations: {\n    readonly transformPanelWrap: AnimationTriggerMetadata;\n    readonly transformPanel: AnimationTriggerMetadata;\n    readonly fadeInContent: AnimationTriggerMetadata;\n};\n/**\n * @deprecated\n * @breaking-change 8.0.0\n * @docs-private\n */\nexport declare const transformPanel: AnimationTriggerMetadata;\n/**\n * @deprecated\n * @breaking-change 8.0.0\n * @docs-private\n */\nexport declare const fadeInContent: AnimationTriggerMetadata;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/select/select-errors.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Returns an exception to be thrown when attempting to change a select's `multiple` option\n * after initialization.\n * @docs-private\n */\nexport declare function getMatSelectDynamicMultipleError(): Error;\n/**\n * Returns an exception to be thrown when attempting to assign a non-array value to a select\n * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for\n * resetting the value.\n * @docs-private\n */\nexport declare function getMatSelectNonArrayValueError(): Error;\n/**\n * Returns an exception to be thrown when assigning a non-function value to the comparator\n * used to determine if a value corresponds to an option. Note that whether the function\n * actually takes two values and returns a boolean is not checked.\n */\nexport declare function getMatSelectNonFunctionValueError(): Error;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/select/select-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './select';\nimport * as ɵngcc2 from '@angular/common';\nimport * as ɵngcc3 from '@angular/cdk/overlay';\nimport * as ɵngcc4 from '@angular/material/core';\nimport * as ɵngcc5 from '@angular/material/form-field';\nexport declare class MatSelectModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatSelectModule, [typeof ɵngcc1.MatSelect, typeof ɵngcc1.MatSelectTrigger], [typeof ɵngcc2.CommonModule, typeof ɵngcc3.OverlayModule, typeof ɵngcc4.MatOptionModule, typeof ɵngcc4.MatCommonModule], [typeof ɵngcc5.MatFormFieldModule, typeof ɵngcc1.MatSelect, typeof ɵngcc1.MatSelectTrigger, typeof ɵngcc4.MatOptionModule, typeof ɵngcc4.MatCommonModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatSelectModule>;\n}\n\n//# sourceMappingURL=select-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/select/select.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ActiveDescendantKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CdkConnectedOverlay, Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { AfterContentInit, ChangeDetectorRef, DoCheck, ElementRef, EventEmitter, InjectionToken, NgZone, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges } from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { CanDisable, CanDisableCtor, CanDisableRipple, CanDisableRippleCtor, CanUpdateErrorState, CanUpdateErrorStateCtor, ErrorStateMatcher, HasTabIndex, HasTabIndexCtor, MatOptgroup, MatOption, MatOptionSelectionChange } from '@angular/material/core';\nimport { MatFormField, MatFormFieldControl } from '@angular/material/form-field';\nimport { Observable, Subject } from 'rxjs';\n/**\n * The following style constants are necessary to save here in order\n * to properly calculate the alignment of the selected option over\n * the trigger element.\n */\n/** The max height of the select's overlay panel */\nimport * as ɵngcc0 from '@angular/core';\nexport declare const SELECT_PANEL_MAX_HEIGHT = 256;\n/** The panel's padding on the x-axis */\nexport declare const SELECT_PANEL_PADDING_X = 16;\n/** The panel's x axis padding if it is indented (e.g. there is an option group). */\nexport declare const SELECT_PANEL_INDENT_PADDING_X: number;\n/** The height of the select items in `em` units. */\nexport declare const SELECT_ITEM_HEIGHT_EM = 3;\n/**\n * Distance between the panel edge and the option text in\n * multi-selection mode.\n *\n * Calculated as:\n * (SELECT_PANEL_PADDING_X * 1.5) + 16 = 40\n * The padding is multiplied by 1.5 because the checkbox's margin is half the padding.\n * The checkbox width is 16px.\n */\nexport declare const SELECT_MULTIPLE_PANEL_PADDING_X: number;\n/**\n * The select panel will only \"fit\" inside the viewport if it is positioned at\n * this value or more away from the viewport boundary.\n */\nexport declare const SELECT_PANEL_VIEWPORT_PADDING = 8;\n/** Injection token that determines the scroll handling while a select is open. */\nexport declare const MAT_SELECT_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;\n/** @docs-private */\nexport declare function MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay): () => ScrollStrategy;\n/** @docs-private */\nexport declare const MAT_SELECT_SCROLL_STRATEGY_PROVIDER: {\n    provide: InjectionToken<() => ScrollStrategy>;\n    deps: (typeof Overlay)[];\n    useFactory: typeof MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY;\n};\n/** Change event object that is emitted when the select value has changed. */\nexport declare class MatSelectChange {\n    /** Reference to the select that emitted the change event. */\n    source: MatSelect;\n    /** Current value of the select that emitted the event. */\n    value: any;\n    constructor(\n    /** Reference to the select that emitted the change event. */\n    source: MatSelect, \n    /** Current value of the select that emitted the event. */\n    value: any);\n}\n/** @docs-private */\ndeclare class MatSelectBase {\n    _elementRef: ElementRef;\n    _defaultErrorStateMatcher: ErrorStateMatcher;\n    _parentForm: NgForm;\n    _parentFormGroup: FormGroupDirective;\n    ngControl: NgControl;\n    constructor(_elementRef: ElementRef, _defaultErrorStateMatcher: ErrorStateMatcher, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, ngControl: NgControl);\n}\ndeclare const _MatSelectMixinBase: CanDisableCtor & HasTabIndexCtor & CanDisableRippleCtor & CanUpdateErrorStateCtor & typeof MatSelectBase;\n/**\n * Allows the user to customize the trigger that is displayed when the select has a value.\n */\nexport declare class MatSelectTrigger {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatSelectTrigger>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatSelectTrigger, \"mat-select-trigger\", never, {}, {}, never>;\n}\nexport declare class MatSelect extends _MatSelectMixinBase implements AfterContentInit, OnChanges, OnDestroy, OnInit, DoCheck, ControlValueAccessor, CanDisable, HasTabIndex, MatFormFieldControl<any>, CanUpdateErrorState, CanDisableRipple {\n    private _viewportRuler;\n    private _changeDetectorRef;\n    private _ngZone;\n    private _dir;\n    private _parentFormField;\n    ngControl: NgControl;\n    /**\n     * @deprecated _liveAnnouncer to be turned into a required parameter.\n     * @breaking-change 8.0.0\n     */\n    private _liveAnnouncer?;\n    private _scrollStrategyFactory;\n    /** Whether or not the overlay panel is open. */\n    private _panelOpen;\n    /** Whether filling out the select is required in the form. */\n    private _required;\n    /** The scroll position of the overlay panel, calculated to center the selected option. */\n    private _scrollTop;\n    /** The placeholder displayed in the trigger of the select. */\n    private _placeholder;\n    /** Whether the component is in multiple selection mode. */\n    private _multiple;\n    /** Comparison function to specify which option is displayed. Defaults to object equality. */\n    private _compareWith;\n    /** Unique id for this input. */\n    private _uid;\n    /** Emits whenever the component is destroyed. */\n    private readonly _destroy;\n    /** The last measured value for the trigger's client bounding rect. */\n    _triggerRect: ClientRect;\n    /** The aria-describedby attribute on the select for improved a11y. */\n    _ariaDescribedby: string;\n    /** The cached font-size of the trigger element. */\n    _triggerFontSize: number;\n    /** Deals with the selection logic. */\n    _selectionModel: SelectionModel<MatOption>;\n    /** Manages keyboard events for options in the panel. */\n    _keyManager: ActiveDescendantKeyManager<MatOption>;\n    /** `View -> model callback called when value changes` */\n    _onChange: (value: any) => void;\n    /** `View -> model callback called when select has been touched` */\n    _onTouched: () => void;\n    /** The IDs of child options to be passed to the aria-owns attribute. */\n    _optionIds: string;\n    /** The value of the select panel's transform-origin property. */\n    _transformOrigin: string;\n    /** Emits when the panel element is finished transforming in. */\n    _panelDoneAnimatingStream: Subject<string>;\n    /** Strategy that will be used to handle scrolling while the select panel is open. */\n    _scrollStrategy: ScrollStrategy;\n    /**\n     * The y-offset of the overlay panel in relation to the trigger's top start corner.\n     * This must be adjusted to align the selected option text over the trigger text.\n     * when the panel opens. Will change based on the y-position of the selected option.\n     */\n    _offsetY: number;\n    /**\n     * This position config ensures that the top \"start\" corner of the overlay\n     * is aligned with with the top \"start\" of the origin by default (overlapping\n     * the trigger completely). If the panel cannot fit below the trigger, it\n     * will fall back to a position above the trigger.\n     */\n    _positions: {\n        originX: string;\n        originY: string;\n        overlayX: string;\n        overlayY: string;\n    }[];\n    /** Whether the component is disabling centering of the active option over the trigger. */\n    private _disableOptionCentering;\n    /** Whether the select is focused. */\n    /**\n    * @deprecated Setter to be removed as this property is intended to be readonly.\n    * @breaking-change 8.0.0\n    */\n    focused: boolean;\n    private _focused;\n    /** A name for this control that can be used by `mat-form-field`. */\n    controlType: string;\n    /** Trigger that opens the select. */\n    trigger: ElementRef;\n    /** Panel containing the select options. */\n    panel: ElementRef;\n    /** Overlay pane containing the options. */\n    overlayDir: CdkConnectedOverlay;\n    /** All of the defined select options. */\n    options: QueryList<MatOption>;\n    /** All of the defined groups of options. */\n    optionGroups: QueryList<MatOptgroup>;\n    /** Classes to be passed to the select panel. Supports the same syntax as `ngClass`. */\n    panelClass: string | string[] | Set<string> | {\n        [key: string]: any;\n    };\n    /** User-supplied override of the trigger element. */\n    customTrigger: MatSelectTrigger;\n    /** Placeholder to be shown if no value has been selected. */\n    placeholder: string;\n    /** Whether the component is required. */\n    required: boolean;\n    /** Whether the user should be allowed to select multiple options. */\n    multiple: boolean;\n    /** Whether to center the active option over the trigger. */\n    disableOptionCentering: boolean;\n    /**\n     * Function to compare the option values with the selected values. The first argument\n     * is a value from an option. The second is a value from the selection. A boolean\n     * should be returned.\n     */\n    compareWith: (o1: any, o2: any) => boolean;\n    /** Value of the select control. */\n    value: any;\n    private _value;\n    /** Aria label of the select. If not specified, the placeholder will be used as label. */\n    ariaLabel: string;\n    /** Input that can be used to specify the `aria-labelledby` attribute. */\n    ariaLabelledby: string;\n    /** Object used to control when error messages are shown. */\n    errorStateMatcher: ErrorStateMatcher;\n    /** Time to wait in milliseconds after the last keystroke before moving focus to an item. */\n    typeaheadDebounceInterval: number;\n    /**\n     * Function used to sort the values in a select in multiple mode.\n     * Follows the same logic as `Array.prototype.sort`.\n     */\n    sortComparator: (a: MatOption, b: MatOption, options: MatOption[]) => number;\n    /** Unique id of the element. */\n    id: string;\n    private _id;\n    /** Combined stream of all of the child options' change events. */\n    readonly optionSelectionChanges: Observable<MatOptionSelectionChange>;\n    /** Event emitted when the select panel has been toggled. */\n    readonly openedChange: EventEmitter<boolean>;\n    /** Event emitted when the select has been opened. */\n    readonly _openedStream: Observable<void>;\n    /** Event emitted when the select has been closed. */\n    readonly _closedStream: Observable<void>;\n    /** Event emitted when the selected value has been changed by the user. */\n    readonly selectionChange: EventEmitter<MatSelectChange>;\n    /**\n     * Event that emits whenever the raw value of the select changes. This is here primarily\n     * to facilitate the two-way binding for the `value` input.\n     * @docs-private\n     */\n    readonly valueChange: EventEmitter<any>;\n    constructor(_viewportRuler: ViewportRuler, _changeDetectorRef: ChangeDetectorRef, _ngZone: NgZone, _defaultErrorStateMatcher: ErrorStateMatcher, elementRef: ElementRef, _dir: Directionality, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, _parentFormField: MatFormField, ngControl: NgControl, tabIndex: string, scrollStrategyFactory: any, \n    /**\n     * @deprecated _liveAnnouncer to be turned into a required parameter.\n     * @breaking-change 8.0.0\n     */\n    _liveAnnouncer?: LiveAnnouncer | undefined);\n    ngOnInit(): void;\n    ngAfterContentInit(): void;\n    ngDoCheck(): void;\n    ngOnChanges(changes: SimpleChanges): void;\n    ngOnDestroy(): void;\n    /** Toggles the overlay panel open or closed. */\n    toggle(): void;\n    /** Opens the overlay panel. */\n    open(): void;\n    /** Closes the overlay panel and focuses the host element. */\n    close(): void;\n    /**\n     * Sets the select's value. Part of the ControlValueAccessor interface\n     * required to integrate with Angular's core forms API.\n     *\n     * @param value New value to be written to the model.\n     */\n    writeValue(value: any): void;\n    /**\n     * Saves a callback function to be invoked when the select's value\n     * changes from user input. Part of the ControlValueAccessor interface\n     * required to integrate with Angular's core forms API.\n     *\n     * @param fn Callback to be triggered when the value changes.\n     */\n    registerOnChange(fn: (value: any) => void): void;\n    /**\n     * Saves a callback function to be invoked when the select is blurred\n     * by the user. Part of the ControlValueAccessor interface required\n     * to integrate with Angular's core forms API.\n     *\n     * @param fn Callback to be triggered when the component has been touched.\n     */\n    registerOnTouched(fn: () => {}): void;\n    /**\n     * Disables the select. Part of the ControlValueAccessor interface required\n     * to integrate with Angular's core forms API.\n     *\n     * @param isDisabled Sets whether the component is disabled.\n     */\n    setDisabledState(isDisabled: boolean): void;\n    /** Whether or not the overlay panel is open. */\n    readonly panelOpen: boolean;\n    /** The currently selected option. */\n    readonly selected: MatOption | MatOption[];\n    /** The value displayed in the trigger. */\n    readonly triggerValue: string;\n    /** Whether the element is in RTL mode. */\n    _isRtl(): boolean;\n    /** Handles all keydown events on the select. */\n    _handleKeydown(event: KeyboardEvent): void;\n    /** Handles keyboard events while the select is closed. */\n    private _handleClosedKeydown;\n    /** Handles keyboard events when the selected is open. */\n    private _handleOpenKeydown;\n    _onFocus(): void;\n    /**\n     * Calls the touched callback only if the panel is closed. Otherwise, the trigger will\n     * \"blur\" to the panel when it opens, causing a false positive.\n     */\n    _onBlur(): void;\n    /**\n     * Callback that is invoked when the overlay panel has been attached.\n     */\n    _onAttached(): void;\n    /** Returns the theme to be used on the panel. */\n    _getPanelTheme(): string;\n    /** Whether the select has a value. */\n    readonly empty: boolean;\n    private _initializeSelection;\n    /**\n     * Sets the selected option based on a value. If no option can be\n     * found with the designated value, the select trigger is cleared.\n     */\n    private _setSelectionByValue;\n    /**\n     * Finds and selects and option based on its value.\n     * @returns Option that has the corresponding value.\n     */\n    private _selectValue;\n    /** Sets up a key manager to listen to keyboard events on the overlay panel. */\n    private _initKeyManager;\n    /** Drops current option subscriptions and IDs and resets from scratch. */\n    private _resetOptions;\n    /** Invoked when an option is clicked. */\n    private _onSelect;\n    /** Sorts the selected values in the selected based on their order in the panel. */\n    private _sortValues;\n    /** Emits change event to set the model value. */\n    private _propagateChanges;\n    /** Records option IDs to pass to the aria-owns property. */\n    private _setOptionIds;\n    /**\n     * Highlights the selected item. If no option is selected, it will highlight\n     * the first item instead.\n     */\n    private _highlightCorrectOption;\n    /** Scrolls the active option into view. */\n    private _scrollActiveOptionIntoView;\n    /** Focuses the select element. */\n    focus(options?: FocusOptions): void;\n    /** Gets the index of the provided option in the option list. */\n    private _getOptionIndex;\n    /** Calculates the scroll position and x- and y-offsets of the overlay panel. */\n    private _calculateOverlayPosition;\n    /**\n     * Calculates the scroll position of the select's overlay panel.\n     *\n     * Attempts to center the selected option in the panel. If the option is\n     * too high or too low in the panel to be scrolled to the center, it clamps the\n     * scroll position to the min or max scroll positions respectively.\n     */\n    _calculateOverlayScroll(selectedIndex: number, scrollBuffer: number, maxScroll: number): number;\n    /** Returns the aria-label of the select component. */\n    _getAriaLabel(): string | null;\n    /** Returns the aria-labelledby of the select component. */\n    _getAriaLabelledby(): string | null;\n    /** Determines the `aria-activedescendant` to be set on the host. */\n    _getAriaActiveDescendant(): string | null;\n    /**\n     * Sets the x-offset of the overlay panel in relation to the trigger's top start corner.\n     * This must be adjusted to align the selected option text over the trigger text when\n     * the panel opens. Will change based on LTR or RTL text direction. Note that the offset\n     * can't be calculated until the panel has been attached, because we need to know the\n     * content width in order to constrain the panel within the viewport.\n     */\n    private _calculateOverlayOffsetX;\n    /**\n     * Calculates the y-offset of the select's overlay panel in relation to the\n     * top start corner of the trigger. It has to be adjusted in order for the\n     * selected option to be aligned over the trigger when the panel opens.\n     */\n    private _calculateOverlayOffsetY;\n    /**\n     * Checks that the attempted overlay position will fit within the viewport.\n     * If it will not fit, tries to adjust the scroll position and the associated\n     * y-offset so the panel can open fully on-screen. If it still won't fit,\n     * sets the offset back to 0 to allow the fallback position to take over.\n     */\n    private _checkOverlayWithinViewport;\n    /** Adjusts the overlay panel up to fit in the viewport. */\n    private _adjustPanelUp;\n    /** Adjusts the overlay panel down to fit in the viewport. */\n    private _adjustPanelDown;\n    /** Sets the transform origin point based on the selected option. */\n    private _getOriginBasedOnOption;\n    /** Calculates the amount of items in the select. This includes options and group labels. */\n    private _getItemCount;\n    /** Calculates the height of the select's options. */\n    private _getItemHeight;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    setDescribedByIds(ids: string[]): void;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    onContainerClick(): void;\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    readonly shouldLabelFloat: boolean;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatSelect>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatSelect, \"mat-select\", [\"matSelect\"], { 'disabled': \"disabled\", 'disableRipple': \"disableRipple\", 'tabIndex': \"tabIndex\", 'ariaLabel': \"aria-label\", 'id': \"id\", 'placeholder': \"placeholder\", 'required': \"required\", 'multiple': \"multiple\", 'disableOptionCentering': \"disableOptionCentering\", 'compareWith': \"compareWith\", 'value': \"value\", 'panelClass': \"panelClass\", 'ariaLabelledby': \"aria-labelledby\", 'errorStateMatcher': \"errorStateMatcher\", 'typeaheadDebounceInterval': \"typeaheadDebounceInterval\", 'sortComparator': \"sortComparator\" }, { 'openedChange': \"openedChange\", '_openedStream': \"opened\", '_closedStream': \"closed\", 'selectionChange': \"selectionChange\", 'valueChange': \"valueChange\" }, [\"customTrigger\", \"options\", \"optionGroups\"]>;\n}\nexport {};\n\n//# sourceMappingURL=select.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/sidenav/drawer-animations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationTriggerMetadata } from '@angular/animations';\n/**\n * Animations used by the Material drawers.\n * @docs-private\n */\nexport declare const matDrawerAnimations: {\n    readonly transformDrawer: AnimationTriggerMetadata;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sidenav/drawer.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationEvent } from '@angular/animations';\nimport { FocusMonitor, FocusOrigin, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Platform } from '@angular/cdk/platform';\nimport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport { AfterContentChecked, AfterContentInit, ChangeDetectorRef, DoCheck, ElementRef, EventEmitter, InjectionToken, NgZone, OnDestroy, QueryList } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n/**\n * Throws an exception when two MatDrawer are matching the same position.\n * @docs-private\n */\nexport declare function throwMatDuplicatedDrawerError(position: string): void;\n/** Result of the toggle promise that indicates the state of the drawer. */\nexport declare type MatDrawerToggleResult = 'open' | 'close';\n/** Configures whether drawers should use auto sizing by default. */\nexport declare const MAT_DRAWER_DEFAULT_AUTOSIZE: InjectionToken<boolean>;\n/** @docs-private */\nexport declare function MAT_DRAWER_DEFAULT_AUTOSIZE_FACTORY(): boolean;\nexport declare class MatDrawerContent extends CdkScrollable implements AfterContentInit {\n    private _changeDetectorRef;\n    _container: MatDrawerContainer;\n    constructor(_changeDetectorRef: ChangeDetectorRef, _container: MatDrawerContainer, elementRef: ElementRef<HTMLElement>, scrollDispatcher: ScrollDispatcher, ngZone: NgZone);\n    ngAfterContentInit(): void;\n}\n/**\n * This component corresponds to a drawer that can be opened on the drawer container.\n */\nexport declare class MatDrawer implements AfterContentInit, AfterContentChecked, OnDestroy {\n    private _elementRef;\n    private _focusTrapFactory;\n    private _focusMonitor;\n    private _platform;\n    private _ngZone;\n    private _doc;\n    private _focusTrap;\n    private _elementFocusedBeforeDrawerWasOpened;\n    /** Whether the drawer is initialized. Used for disabling the initial animation. */\n    private _enableAnimations;\n    /** The side that the drawer is attached to. */\n    position: 'start' | 'end';\n    private _position;\n    /** Mode of the drawer; one of 'over', 'push' or 'side'. */\n    mode: 'over' | 'push' | 'side';\n    private _mode;\n    /** Whether the drawer can be closed with the escape key or by clicking on the backdrop. */\n    disableClose: boolean;\n    private _disableClose;\n    /** Whether the drawer should focus the first focusable element automatically when opened. */\n    autoFocus: boolean;\n    private _autoFocus;\n    /** How the sidenav was opened (keypress, mouse click etc.) */\n    private _openedVia;\n    /** Emits whenever the drawer has started animating. */\n    _animationStarted: Subject<AnimationEvent>;\n    /** Emits whenever the drawer is done animating. */\n    _animationEnd: Subject<AnimationEvent>;\n    /** Current state of the sidenav animation. */\n    _animationState: 'open-instant' | 'open' | 'void';\n    /** Event emitted when the drawer open state is changed. */\n    readonly openedChange: EventEmitter<boolean>;\n    /** Event emitted when the drawer has been opened. */\n    readonly _openedStream: Observable<void>;\n    /** Event emitted when the drawer has started opening. */\n    readonly openedStart: Observable<void>;\n    /** Event emitted when the drawer has been closed. */\n    readonly _closedStream: Observable<void>;\n    /** Event emitted when the drawer has started closing. */\n    readonly closedStart: Observable<void>;\n    /** Emits when the component is destroyed. */\n    private readonly _destroyed;\n    /** Event emitted when the drawer's position changes. */\n    onPositionChanged: EventEmitter<void>;\n    /**\n     * An observable that emits when the drawer mode changes. This is used by the drawer container to\n     * to know when to when the mode changes so it can adapt the margins on the content.\n     */\n    readonly _modeChanged: Subject<void>;\n    readonly _isFocusTrapEnabled: boolean;\n    constructor(_elementRef: ElementRef<HTMLElement>, _focusTrapFactory: FocusTrapFactory, _focusMonitor: FocusMonitor, _platform: Platform, _ngZone: NgZone, _doc: any);\n    /** Traps focus inside the drawer. */\n    private _trapFocus;\n    /**\n     * If focus is currently inside the drawer, restores it to where it was before the drawer\n     * opened.\n     */\n    private _restoreFocus;\n    ngAfterContentInit(): void;\n    ngAfterContentChecked(): void;\n    ngOnDestroy(): void;\n    /**\n     * Whether the drawer is opened. We overload this because we trigger an event when it\n     * starts or end.\n     */\n    opened: boolean;\n    private _opened;\n    /**\n     * Open the drawer.\n     * @param openedVia Whether the drawer was opened by a key press, mouse click or programmatically.\n     * Used for focus management after the sidenav is closed.\n     */\n    open(openedVia?: FocusOrigin): Promise<MatDrawerToggleResult>;\n    /** Close the drawer. */\n    close(): Promise<MatDrawerToggleResult>;\n    /**\n     * Toggle this drawer.\n     * @param isOpen Whether the drawer should be open.\n     * @param openedVia Whether the drawer was opened by a key press, mouse click or programmatically.\n     * Used for focus management after the sidenav is closed.\n     */\n    toggle(isOpen?: boolean, openedVia?: FocusOrigin): Promise<MatDrawerToggleResult>;\n    readonly _width: number;\n    /** Updates the enabled state of the focus trap. */\n    private _updateFocusTrapState;\n    _animationStartListener(event: AnimationEvent): void;\n    _animationDoneListener(event: AnimationEvent): void;\n}\n/**\n * `<mat-drawer-container>` component.\n *\n * This is the parent component to one or two `<mat-drawer>`s that validates the state internally\n * and coordinates the backdrop and content styling.\n */\nexport declare class MatDrawerContainer implements AfterContentInit, DoCheck, OnDestroy {\n    private _dir;\n    private _element;\n    private _ngZone;\n    private _changeDetectorRef;\n    private _animationMode?;\n    _drawers: QueryList<MatDrawer>;\n    _content: MatDrawerContent;\n    _userContent: MatDrawerContent;\n    /** The drawer child with the `start` position. */\n    readonly start: MatDrawer | null;\n    /** The drawer child with the `end` position. */\n    readonly end: MatDrawer | null;\n    /**\n     * Whether to automatically resize the container whenever\n     * the size of any of its drawers changes.\n     *\n     * **Use at your own risk!** Enabling this option can cause layout thrashing by measuring\n     * the drawers on every change detection cycle. Can be configured globally via the\n     * `MAT_DRAWER_DEFAULT_AUTOSIZE` token.\n     */\n    autosize: boolean;\n    private _autosize;\n    /**\n     * Whether the drawer container should have a backdrop while one of the sidenavs is open.\n     * If explicitly set to `true`, the backdrop will be enabled for drawers in the `side`\n     * mode as well.\n     */\n    hasBackdrop: any;\n    _backdropOverride: boolean | null;\n    /** Event emitted when the drawer backdrop is clicked. */\n    readonly backdropClick: EventEmitter<void>;\n    /** The drawer at the start/end position, independent of direction. */\n    private _start;\n    private _end;\n    /**\n     * The drawer at the left/right. When direction changes, these will change as well.\n     * They're used as aliases for the above to set the left/right style properly.\n     * In LTR, _left == _start and _right == _end.\n     * In RTL, _left == _end and _right == _start.\n     */\n    private _left;\n    private _right;\n    /** Emits when the component is destroyed. */\n    private readonly _destroyed;\n    /** Emits on every ngDoCheck. Used for debouncing reflows. */\n    private readonly _doCheckSubject;\n    /**\n     * Margins to be applied to the content. These are used to push / shrink the drawer content when a\n     * drawer is open. We use margin rather than transform even for push mode because transform breaks\n     * fixed position elements inside of the transformed element.\n     */\n    _contentMargins: {\n        left: number | null;\n        right: number | null;\n    };\n    readonly _contentMarginChanges: Subject<{\n        left: number | null;\n        right: number | null;\n    }>;\n    /** Reference to the CdkScrollable instance that wraps the scrollable content. */\n    readonly scrollable: CdkScrollable;\n    constructor(_dir: Directionality, _element: ElementRef<HTMLElement>, _ngZone: NgZone, _changeDetectorRef: ChangeDetectorRef, viewportRuler: ViewportRuler, defaultAutosize?: boolean, _animationMode?: string | undefined);\n    ngAfterContentInit(): void;\n    ngOnDestroy(): void;\n    /** Calls `open` of both start and end drawers */\n    open(): void;\n    /** Calls `close` of both start and end drawers */\n    close(): void;\n    /**\n     * Recalculates and updates the inline styles for the content. Note that this should be used\n     * sparingly, because it causes a reflow.\n     */\n    updateContentMargins(): void;\n    ngDoCheck(): void;\n    /**\n     * Subscribes to drawer events in order to set a class on the main container element when the\n     * drawer is open and the backdrop is visible. This ensures any overflow on the container element\n     * is properly hidden.\n     */\n    private _watchDrawerToggle;\n    /**\n     * Subscribes to drawer onPositionChanged event in order to\n     * re-validate drawers when the position changes.\n     */\n    private _watchDrawerPosition;\n    /** Subscribes to changes in drawer mode so we can run change detection. */\n    private _watchDrawerMode;\n    /** Toggles the 'mat-drawer-opened' class on the main 'mat-drawer-container' element. */\n    private _setContainerClass;\n    /** Validate the state of the drawer children components. */\n    private _validateDrawers;\n    /** Whether the container is being pushed to the side by one of the drawers. */\n    private _isPushed;\n    _onBackdropClicked(): void;\n    _closeModalDrawer(): void;\n    _isShowingBackdrop(): boolean;\n    private _canHaveBackdrop;\n    private _isDrawerOpen;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sidenav/index.d.ts",
      "node_modules/@angular/material/sidenav/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sidenav/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './sidenav-module';\nexport * from './drawer';\nexport * from './sidenav';\nexport * from './drawer-animations';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sidenav/sidenav-module.d.ts"
    ],
    "content": "export declare class MatSidenavModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sidenav/sidenav.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ChangeDetectorRef, QueryList, ElementRef, NgZone } from '@angular/core';\nimport { MatDrawer, MatDrawerContainer, MatDrawerContent } from './drawer';\nimport { ScrollDispatcher } from '@angular/cdk/scrolling';\nexport declare class MatSidenavContent extends MatDrawerContent {\n    constructor(changeDetectorRef: ChangeDetectorRef, container: MatSidenavContainer, elementRef: ElementRef<HTMLElement>, scrollDispatcher: ScrollDispatcher, ngZone: NgZone);\n}\nexport declare class MatSidenav extends MatDrawer {\n    /** Whether the sidenav is fixed in the viewport. */\n    fixedInViewport: boolean;\n    private _fixedInViewport;\n    /**\n     * The gap between the top of the sidenav and the top of the viewport when the sidenav is in fixed\n     * mode.\n     */\n    fixedTopGap: number;\n    private _fixedTopGap;\n    /**\n     * The gap between the bottom of the sidenav and the bottom of the viewport when the sidenav is in\n     * fixed mode.\n     */\n    fixedBottomGap: number;\n    private _fixedBottomGap;\n}\nexport declare class MatSidenavContainer extends MatDrawerContainer {\n    _drawers: QueryList<MatSidenav>;\n    _content: MatSidenavContent;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sidenav/testing/drawer-harness-filters.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface DrawerHarnessFilters extends BaseHarnessFilters {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sidenav/testing/drawer-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { DrawerHarnessFilters } from './drawer-harness-filters';\n/**\n * Harness for interacting with a standard mat-drawer in tests.\n * @dynamic\n */\nexport declare class MatDrawerHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a drawer with\n     * specific attributes.\n     * @param options Options for narrowing the search.\n     * @return `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: DrawerHarnessFilters): HarnessPredicate<MatDrawerHarness>;\n    /** Gets whether the drawer is open. */\n    isOpen(): Promise<boolean>;\n    /** Gets the position of the drawer inside its container. */\n    getPosition(): Promise<'start' | 'end'>;\n    /** Gets the mode that the drawer is in. */\n    getMode(): Promise<'over' | 'push' | 'side'>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sidenav/testing/index.d.ts",
      "node_modules/@angular/material/sidenav/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sidenav/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './drawer-harness';\nexport * from './drawer-harness-filters';\nexport * from './sidenav-harness';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sidenav/testing/sidenav-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { HarnessPredicate } from '@angular/cdk/testing';\nimport { MatDrawerHarness } from './drawer-harness';\nimport { DrawerHarnessFilters } from './drawer-harness-filters';\n/**\n * Harness for interacting with a standard mat-sidenav in tests.\n * @dynamic\n */\nexport declare class MatSidenavHarness extends MatDrawerHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a sidenav with\n     * specific attributes.\n     * @param options Options for narrowing the search.\n     * @return `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: DrawerHarnessFilters): HarnessPredicate<MatDrawerHarness>;\n    /** Gets whether the sidenav is fixed in the viewport. */\n    isFixedInViewport(): Promise<boolean>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slide-toggle/index.d.ts",
      "node_modules/@angular/material/slide-toggle/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slide-toggle/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './slide-toggle-module';\nexport * from './slide-toggle';\nexport * from './slide-toggle-config';\nexport * from './slide-toggle-required-validator';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slide-toggle/slide-toggle-config.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { InjectionToken } from '@angular/core';\n/** Default `mat-slide-toggle` options that can be overridden. */\nexport interface MatSlideToggleDefaultOptions {\n    /** Whether toggle action triggers value changes in slide toggle. */\n    disableToggleValue?: boolean;\n    /**\n     * Whether drag action triggers value changes in slide toggle.\n     * @deprecated No longer being used.\n     * @breaking-change 10.0.0\n     */\n    disableDragValue?: boolean;\n}\n/** Injection token to be used to override the default options for `mat-slide-toggle`. */\nexport declare const MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS: InjectionToken<MatSlideToggleDefaultOptions>;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slide-toggle/slide-toggle-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** This module is used by both original and MDC-based slide-toggle implementations. */\nexport declare class _MatSlideToggleRequiredValidatorModule {\n}\nexport declare class MatSlideToggleModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slide-toggle/slide-toggle-required-validator.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Provider } from '@angular/core';\nimport { CheckboxRequiredValidator } from '@angular/forms';\nexport declare const MAT_SLIDE_TOGGLE_REQUIRED_VALIDATOR: Provider;\n/**\n * Validator for Material slide-toggle components with the required attribute in a\n * template-driven form. The default validator for required form controls asserts\n * that the control value is not undefined but that is not appropriate for a slide-toggle\n * where the value is always defined.\n *\n * Required slide-toggle form controls are valid when checked.\n */\nexport declare class MatSlideToggleRequiredValidator extends CheckboxRequiredValidator {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slide-toggle/slide-toggle.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, NgZone } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { CanColor, CanColorCtor, CanDisable, CanDisableCtor, CanDisableRipple, CanDisableRippleCtor, HasTabIndex, HasTabIndexCtor } from '@angular/material/core';\nimport { MatSlideToggleDefaultOptions } from './slide-toggle-config';\n/** @docs-private */\nexport declare const MAT_SLIDE_TOGGLE_VALUE_ACCESSOR: any;\n/** Change event object emitted by a MatSlideToggle. */\nexport declare class MatSlideToggleChange {\n    /** The source MatSlideToggle of the event. */\n    source: MatSlideToggle;\n    /** The new `checked` value of the MatSlideToggle. */\n    checked: boolean;\n    constructor(\n    /** The source MatSlideToggle of the event. */\n    source: MatSlideToggle, \n    /** The new `checked` value of the MatSlideToggle. */\n    checked: boolean);\n}\n/** @docs-private */\ndeclare class MatSlideToggleBase {\n    _elementRef: ElementRef;\n    constructor(_elementRef: ElementRef);\n}\ndeclare const _MatSlideToggleMixinBase: HasTabIndexCtor & CanColorCtor & CanDisableRippleCtor & CanDisableCtor & typeof MatSlideToggleBase;\n/** Represents a slidable \"switch\" toggle that can be moved between on and off. */\nexport declare class MatSlideToggle extends _MatSlideToggleMixinBase implements OnDestroy, AfterContentInit, ControlValueAccessor, CanDisable, CanColor, HasTabIndex, CanDisableRipple {\n    private _focusMonitor;\n    private _changeDetectorRef;\n    defaults: MatSlideToggleDefaultOptions;\n    _animationMode?: string | undefined;\n    private _onChange;\n    private _onTouched;\n    private _uniqueId;\n    private _required;\n    private _checked;\n    /** Reference to the thumb HTMLElement. */\n    _thumbEl: ElementRef;\n    /** Reference to the thumb bar HTMLElement. */\n    _thumbBarEl: ElementRef;\n    /** Name value will be applied to the input element if present. */\n    name: string | null;\n    /** A unique id for the slide-toggle input. If none is supplied, it will be auto-generated. */\n    id: string;\n    /** Whether the label should appear after or before the slide-toggle. Defaults to 'after'. */\n    labelPosition: 'before' | 'after';\n    /** Used to set the aria-label attribute on the underlying input element. */\n    ariaLabel: string | null;\n    /** Used to set the aria-labelledby attribute on the underlying input element. */\n    ariaLabelledby: string | null;\n    /** Whether the slide-toggle is required. */\n    required: boolean;\n    /** Whether the slide-toggle element is checked or not. */\n    checked: boolean;\n    /** An event will be dispatched each time the slide-toggle changes its value. */\n    readonly change: EventEmitter<MatSlideToggleChange>;\n    /**\n     * An event will be dispatched each time the slide-toggle input is toggled.\n     * This event is always emitted when the user toggles the slide toggle, but this does not mean\n     * the slide toggle's value has changed.\n     */\n    readonly toggleChange: EventEmitter<void>;\n    /**\n     * An event will be dispatched each time the slide-toggle is dragged.\n     * This event is always emitted when the user drags the slide toggle to make a change greater\n     * than 50%. It does not mean the slide toggle's value is changed. The event is not emitted when\n     * the user toggles the slide toggle to change its value.\n     * @deprecated No longer being used. To be removed.\n     * @breaking-change 10.0.0\n     */\n    readonly dragChange: EventEmitter<void>;\n    /** Returns the unique id for the visual hidden input. */\n    readonly inputId: string;\n    /** Reference to the underlying input element. */\n    _inputElement: ElementRef<HTMLInputElement>;\n    constructor(elementRef: ElementRef, _focusMonitor: FocusMonitor, _changeDetectorRef: ChangeDetectorRef, tabIndex: string, \n    /**\n     * @deprecated `_ngZone` and `_dir` parameters to be removed.\n     * @breaking-change 10.0.0\n     */\n    _ngZone: NgZone, defaults: MatSlideToggleDefaultOptions, _animationMode?: string | undefined, _dir?: Directionality);\n    ngAfterContentInit(): void;\n    ngOnDestroy(): void;\n    /** Method being called whenever the underlying input emits a change event. */\n    _onChangeEvent(event: Event): void;\n    /** Method being called whenever the slide-toggle has been clicked. */\n    _onInputClick(event: Event): void;\n    /** Implemented as part of ControlValueAccessor. */\n    writeValue(value: any): void;\n    /** Implemented as part of ControlValueAccessor. */\n    registerOnChange(fn: any): void;\n    /** Implemented as part of ControlValueAccessor. */\n    registerOnTouched(fn: any): void;\n    /** Implemented as a part of ControlValueAccessor. */\n    setDisabledState(isDisabled: boolean): void;\n    /** Focuses the slide-toggle. */\n    focus(options?: FocusOptions): void;\n    /** Toggles the checked state of the slide-toggle. */\n    toggle(): void;\n    /**\n     * Emits a change event on the `change` output. Also notifies the FormControl about the change.\n     */\n    private _emitChangeEvent;\n    /** Method being called whenever the label text changes. */\n    _onLabelTextChange(): void;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slide-toggle/testing/index.d.ts",
      "node_modules/@angular/material/slide-toggle/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slide-toggle/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './slide-toggle-harness';\nexport * from './slide-toggle-harness-filters';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slide-toggle/testing/slide-toggle-harness-filters.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface SlideToggleHarnessFilters extends BaseHarnessFilters {\n    label?: string | RegExp;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slide-toggle/testing/slide-toggle-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { SlideToggleHarnessFilters } from './slide-toggle-harness-filters';\n/**\n * Harness for interacting with a standard mat-slide-toggle in tests.\n * @dynamic\n */\nexport declare class MatSlideToggleHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a slide-toggle w/ specific attributes.\n     * @param options Options for narrowing the search:\n     *   - `selector` finds a slide-toggle whose host element matches the given selector.\n     *   - `label` finds a slide-toggle with specific label text.\n     * @return a `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: SlideToggleHarnessFilters): HarnessPredicate<MatSlideToggleHarness>;\n    private _label;\n    private _input;\n    private _inputContainer;\n    /** Gets a boolean promise indicating if the slide-toggle is checked. */\n    isChecked(): Promise<boolean>;\n    /** Gets a boolean promise indicating if the slide-toggle is disabled. */\n    isDisabled(): Promise<boolean>;\n    /** Gets a boolean promise indicating if the slide-toggle is required. */\n    isRequired(): Promise<boolean>;\n    /** Gets a boolean promise indicating if the slide-toggle is valid. */\n    isValid(): Promise<boolean>;\n    /** Gets a promise for the slide-toggle's name. */\n    getName(): Promise<string | null>;\n    /** Gets a promise for the slide-toggle's aria-label. */\n    getAriaLabel(): Promise<string | null>;\n    /** Gets a promise for the slide-toggle's aria-labelledby. */\n    getAriaLabelledby(): Promise<string | null>;\n    /** Gets a promise for the slide-toggle's label text. */\n    getLabelText(): Promise<string>;\n    /** Focuses the slide-toggle and returns a void promise that indicates action completion. */\n    focus(): Promise<void>;\n    /** Blurs the slide-toggle and returns a void promise that indicates action completion. */\n    blur(): Promise<void>;\n    /**\n     * Toggle the checked state of the slide-toggle and returns a void promise that indicates when the\n     * action is complete.\n     *\n     * Note: This toggles the slide-toggle as a user would, by clicking it.\n     */\n    toggle(): Promise<void>;\n    /**\n     * Puts the slide-toggle in a checked state by toggling it if it is currently unchecked, or doing\n     * nothing if it is already checked. Returns a void promise that indicates when the action is\n     * complete.\n     *\n     * Note: This attempts to check the slide-toggle as a user would, by clicking it.\n     */\n    check(): Promise<void>;\n    /**\n     * Puts the slide-toggle in an unchecked state by toggling it if it is currently checked, or doing\n     * nothing if it is already unchecked. Returns a void promise that indicates when the action is\n     * complete.\n     *\n     * Note: This toggles the slide-toggle as a user would, by clicking it.\n     */\n    uncheck(): Promise<void>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slider/index.d.ts",
      "node_modules/@angular/material/slider/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slider/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './slider-module';\nexport * from './slider';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slider/slider-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatSliderModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slider/slider.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, NgZone } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { CanColor, CanColorCtor, CanDisable, CanDisableCtor, HasTabIndex, HasTabIndexCtor } from '@angular/material/core';\n/**\n * Provider Expression that allows mat-slider to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)] and [formControl].\n * @docs-private\n */\nexport declare const MAT_SLIDER_VALUE_ACCESSOR: any;\n/** A simple change event emitted by the MatSlider component. */\nexport declare class MatSliderChange {\n    /** The MatSlider that changed. */\n    source: MatSlider;\n    /** The new value of the source slider. */\n    value: number | null;\n}\n/** @docs-private */\ndeclare class MatSliderBase {\n    _elementRef: ElementRef;\n    constructor(_elementRef: ElementRef);\n}\ndeclare const _MatSliderMixinBase: HasTabIndexCtor & CanColorCtor & CanDisableCtor & typeof MatSliderBase;\n/**\n * Allows users to select from a range of values by moving the slider thumb. It is similar in\n * behavior to the native `<input type=\"range\">` element.\n */\nexport declare class MatSlider extends _MatSliderMixinBase implements ControlValueAccessor, OnDestroy, CanDisable, CanColor, OnInit, HasTabIndex {\n    private _focusMonitor;\n    private _changeDetectorRef;\n    private _dir;\n    _animationMode?: string | undefined;\n    private _ngZone?;\n    /** Whether the slider is inverted. */\n    invert: boolean;\n    private _invert;\n    /** The maximum value that the slider can have. */\n    max: number;\n    private _max;\n    /** The minimum value that the slider can have. */\n    min: number;\n    private _min;\n    /** The values at which the thumb will snap. */\n    step: number;\n    private _step;\n    /** Whether or not to show the thumb label. */\n    thumbLabel: boolean;\n    private _thumbLabel;\n    /**\n     * How often to show ticks. Relative to the step so that a tick always appears on a step.\n     * Ex: Tick interval of 4 with a step of 3 will draw a tick every 4 steps (every 12 values).\n     */\n    tickInterval: 'auto' | number;\n    private _tickInterval;\n    /** Value of the slider. */\n    value: number | null;\n    private _value;\n    /**\n     * Function that will be used to format the value before it is displayed\n     * in the thumb label. Can be used to format very large number in order\n     * for them to fit into the slider thumb.\n     */\n    displayWith: (value: number) => string | number;\n    /** Whether the slider is vertical. */\n    vertical: boolean;\n    private _vertical;\n    /** Event emitted when the slider value has changed. */\n    readonly change: EventEmitter<MatSliderChange>;\n    /** Event emitted when the slider thumb moves. */\n    readonly input: EventEmitter<MatSliderChange>;\n    /**\n     * Emits when the raw value of the slider changes. This is here primarily\n     * to facilitate the two-way binding for the `value` input.\n     * @docs-private\n     */\n    readonly valueChange: EventEmitter<number | null>;\n    /** The value to be used for display purposes. */\n    readonly displayValue: string | number;\n    /** set focus to the host element */\n    focus(options?: FocusOptions): void;\n    /** blur the host element */\n    blur(): void;\n    /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n    onTouched: () => any;\n    /** The percentage of the slider that coincides with the value. */\n    readonly percent: number;\n    private _percent;\n    /**\n     * Whether or not the thumb is sliding.\n     * Used to determine if there should be a transition for the thumb and fill track.\n     */\n    _isSliding: boolean;\n    /**\n     * Whether or not the slider is active (clicked or sliding).\n     * Used to shrink and grow the thumb as according to the Material Design spec.\n     */\n    _isActive: boolean;\n    /**\n     * Whether the axis of the slider is inverted.\n     * (i.e. whether moving the thumb in the positive x or y direction decreases the slider's value).\n     */\n    readonly _invertAxis: boolean;\n    /** Whether the slider is at its minimum value. */\n    readonly _isMinValue: boolean;\n    /**\n     * The amount of space to leave between the slider thumb and the track fill & track background\n     * elements.\n     */\n    readonly _thumbGap: 7 | 10 | 0;\n    /** CSS styles for the track background element. */\n    readonly _trackBackgroundStyles: {\n        [key: string]: string;\n    };\n    /** CSS styles for the track fill element. */\n    readonly _trackFillStyles: {\n        [key: string]: string;\n    };\n    /** CSS styles for the ticks container element. */\n    readonly _ticksContainerStyles: {\n        [key: string]: string;\n    };\n    /** CSS styles for the ticks element. */\n    readonly _ticksStyles: {\n        [key: string]: string;\n    };\n    readonly _thumbContainerStyles: {\n        [key: string]: string;\n    };\n    /** The size of a tick interval as a percentage of the size of the track. */\n    private _tickIntervalPercent;\n    /** The dimensions of the slider. */\n    private _sliderDimensions;\n    private _controlValueAccessorChangeFn;\n    /** Decimal places to round to, based on the step amount. */\n    private _roundToDecimal;\n    /** Subscription to the Directionality change EventEmitter. */\n    private _dirChangeSubscription;\n    /** The value of the slider when the slide start event fires. */\n    private _valueOnSlideStart;\n    /** Position of the pointer when the dragging started. */\n    private _pointerPositionOnStart;\n    /** Reference to the inner slider wrapper element. */\n    private _sliderWrapper;\n    /**\n     * Whether mouse events should be converted to a slider position by calculating their distance\n     * from the right or bottom edge of the slider as opposed to the top or left.\n     */\n    _shouldInvertMouseCoords(): boolean;\n    /** The language direction for this slider element. */\n    private _getDirection;\n    constructor(elementRef: ElementRef, _focusMonitor: FocusMonitor, _changeDetectorRef: ChangeDetectorRef, _dir: Directionality, tabIndex: string, _animationMode?: string | undefined, _ngZone?: NgZone | undefined);\n    ngOnInit(): void;\n    ngOnDestroy(): void;\n    _onMouseenter(): void;\n    _onFocus(): void;\n    _onBlur(): void;\n    _onKeydown(event: KeyboardEvent): void;\n    _onKeyup(): void;\n    /** Called when the user has put their pointer down on the slider. */\n    private _pointerDown;\n    /**\n     * Called when the user has moved their pointer after\n     * starting to drag. Bound on the document level.\n     */\n    private _pointerMove;\n    /** Called when the user has lifted their pointer. Bound on the document level. */\n    private _pointerUp;\n    /**\n     * Binds our global move and end events. They're bound at the document level and only while\n     * dragging so that the user doesn't have to keep their pointer exactly over the slider\n     * as they're swiping across the screen.\n     */\n    private _bindGlobalEvents;\n    /** Removes any global event listeners that we may have added. */\n    private _removeGlobalEvents;\n    /** Increments the slider by the given number of steps (negative number decrements). */\n    private _increment;\n    /** Calculate the new value from the new physical location. The value will always be snapped. */\n    private _updateValueFromPosition;\n    /** Emits a change event if the current value is different from the last emitted value. */\n    private _emitChangeEvent;\n    /** Emits an input event when the current value is different from the last emitted value. */\n    private _emitInputEvent;\n    /** Updates the amount of space between ticks as a percentage of the width of the slider. */\n    private _updateTickIntervalPercent;\n    /** Creates a slider change object from the specified value. */\n    private _createChangeEvent;\n    /** Calculates the percentage of the slider that a value is. */\n    private _calculatePercentage;\n    /** Calculates the value a percentage of the slider corresponds to. */\n    private _calculateValue;\n    /** Return a number between two numbers. */\n    private _clamp;\n    /**\n     * Get the bounding client rect of the slider track element.\n     * The track is used rather than the native element to ignore the extra space that the thumb can\n     * take up.\n     */\n    private _getSliderDimensions;\n    /**\n     * Focuses the native element.\n     * Currently only used to allow a blur event to fire but will be used with keyboard input later.\n     */\n    private _focusHostElement;\n    /** Blurs the native element. */\n    private _blurHostElement;\n    /** Runs a callback inside of the NgZone, if possible. */\n    private _runInsideZone;\n    /** Runs a callback outside of the NgZone, if possible. */\n    private _runOutsizeZone;\n    /**\n     * Sets the model value. Implemented as part of ControlValueAccessor.\n     * @param value\n     */\n    writeValue(value: any): void;\n    /**\n     * Registers a callback to be triggered when the value has changed.\n     * Implemented as part of ControlValueAccessor.\n     * @param fn Callback to be registered.\n     */\n    registerOnChange(fn: (value: any) => void): void;\n    /**\n     * Registers a callback to be triggered when the component is touched.\n     * Implemented as part of ControlValueAccessor.\n     * @param fn Callback to be registered.\n     */\n    registerOnTouched(fn: any): void;\n    /**\n     * Sets whether the component should be disabled.\n     * Implemented as part of ControlValueAccessor.\n     * @param isDisabled\n     */\n    setDisabledState(isDisabled: boolean): void;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slider/testing/index.d.ts",
      "node_modules/@angular/material/slider/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slider/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './slider-harness';\nexport * from './slider-harness-filters';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slider/testing/slider-harness-filters.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface SliderHarnessFilters extends BaseHarnessFilters {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/slider/testing/slider-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { SliderHarnessFilters } from './slider-harness-filters';\n/**\n * Harness for interacting with a standard mat-slider in tests.\n * @dynamic\n */\nexport declare class MatSliderHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a mat-slider with\n     * specific attributes.\n     * @param options Options for narrowing the search:\n     *   - `selector` finds a slider whose host element matches the given selector.\n     *   - `id` finds a slider with specific id.\n     * @return a `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: SliderHarnessFilters): HarnessPredicate<MatSliderHarness>;\n    private _textLabel;\n    private _wrapper;\n    /** Gets the slider's id. */\n    getId(): Promise<string | null>;\n    /** Gets the current display value of the slider. */\n    getDisplayValue(): Promise<string>;\n    /** Gets the current percentage value of the slider. */\n    getPercentage(): Promise<number>;\n    /** Gets the current value of the slider. */\n    getValue(): Promise<number>;\n    /** Gets the maximum value of the slider. */\n    getMaxValue(): Promise<number>;\n    /** Gets the minimum value of the slider. */\n    getMinValue(): Promise<number>;\n    /** Whether the slider is disabled. */\n    isDisabled(): Promise<boolean>;\n    /** Gets the orientation of the slider. */\n    getOrientation(): Promise<'horizontal' | 'vertical'>;\n    /**\n     * Sets the value of the slider by clicking on the slider track.\n     *\n     * Note that in rare cases the value cannot be set to the exact specified value. This\n     * can happen if not every value of the slider maps to a single pixel that could be\n     * clicked using mouse interaction. In such cases consider using the keyboard to\n     * select the given value or expand the slider's size for a better user experience.\n     */\n    setValue(value: number): Promise<void>;\n    /**\n     * Focuses the slider and returns a void promise that indicates when the\n     * action is complete.\n     */\n    focus(): Promise<void>;\n    /**\n     * Blurs the slider and returns a void promise that indicates when the\n     * action is complete.\n     */\n    blur(): Promise<void>;\n    /** Calculates the percentage of the given value. */\n    private _calculatePercentage;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/snack-bar/index.d.ts",
      "node_modules/@angular/material/snack-bar/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/snack-bar/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './snack-bar-module';\nexport * from './snack-bar';\nexport * from './snack-bar-container';\nexport * from './snack-bar-config';\nexport * from './snack-bar-ref';\nexport * from './simple-snack-bar';\nexport * from './snack-bar-animations';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/snack-bar/simple-snack-bar.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { MatSnackBarRef } from './snack-bar-ref';\n/**\n * A component used to open as the default snack bar, matching material spec.\n * This should only be used internally by the snack bar service.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class SimpleSnackBar {\n    snackBarRef: MatSnackBarRef<SimpleSnackBar>;\n    /** Data that was injected into the snack bar. */\n    data: {\n        message: string;\n        action: string;\n    };\n    constructor(snackBarRef: MatSnackBarRef<SimpleSnackBar>, data: any);\n    /** Performs the action on the snack bar. */\n    action(): void;\n    /** If the action button should be shown. */\n    readonly hasAction: boolean;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<SimpleSnackBar>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<SimpleSnackBar, \"simple-snack-bar\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=simple-snack-bar.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/snack-bar/snack-bar-animations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationTriggerMetadata } from '@angular/animations';\n/**\n * Animations used by the Material snack bar.\n * @docs-private\n */\nexport declare const matSnackBarAnimations: {\n    readonly snackBarState: AnimationTriggerMetadata;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/snack-bar/snack-bar-config.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ViewContainerRef, InjectionToken } from '@angular/core';\nimport { AriaLivePoliteness } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\n/** Injection token that can be used to access the data that was passed in to a snack bar. */\nexport declare const MAT_SNACK_BAR_DATA: InjectionToken<any>;\n/** Possible values for horizontalPosition on MatSnackBarConfig. */\nexport declare type MatSnackBarHorizontalPosition = 'start' | 'center' | 'end' | 'left' | 'right';\n/** Possible values for verticalPosition on MatSnackBarConfig. */\nexport declare type MatSnackBarVerticalPosition = 'top' | 'bottom';\n/**\n * Configuration used when opening a snack-bar.\n */\nexport declare class MatSnackBarConfig<D = any> {\n    /** The politeness level for the MatAriaLiveAnnouncer announcement. */\n    politeness?: AriaLivePoliteness;\n    /**\n     * Message to be announced by the LiveAnnouncer. When opening a snackbar without a custom\n     * component or template, the announcement message will default to the specified message.\n     */\n    announcementMessage?: string;\n    /** The view container to place the overlay for the snack bar into. */\n    viewContainerRef?: ViewContainerRef;\n    /** The length of time in milliseconds to wait before automatically dismissing the snack bar. */\n    duration?: number;\n    /** Extra CSS classes to be added to the snack bar container. */\n    panelClass?: string | string[];\n    /** Text layout direction for the snack bar. */\n    direction?: Direction;\n    /** Data being injected into the child component. */\n    data?: D | null;\n    /** The horizontal position to place the snack bar. */\n    horizontalPosition?: MatSnackBarHorizontalPosition;\n    /** The vertical position to place the snack bar. */\n    verticalPosition?: MatSnackBarVerticalPosition;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/snack-bar/snack-bar-container.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationEvent } from '@angular/animations';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { ChangeDetectorRef, ComponentRef, ElementRef, EmbeddedViewRef, NgZone, OnDestroy } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { MatSnackBarConfig } from './snack-bar-config';\n/**\n * Internal component that wraps user-provided snack bar content.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatSnackBarContainer extends BasePortalOutlet implements OnDestroy {\n    private _ngZone;\n    private _elementRef;\n    private _changeDetectorRef;\n    /** The snack bar configuration. */\n    snackBarConfig: MatSnackBarConfig;\n    /** Whether the component has been destroyed. */\n    private _destroyed;\n    /** The portal outlet inside of this container into which the snack bar content will be loaded. */\n    _portalOutlet: CdkPortalOutlet;\n    /** Subject for notifying that the snack bar has exited from view. */\n    readonly _onExit: Subject<any>;\n    /** Subject for notifying that the snack bar has finished entering the view. */\n    readonly _onEnter: Subject<any>;\n    /** The state of the snack bar animations. */\n    _animationState: string;\n    /** ARIA role for the snack bar container. */\n    _role: 'alert' | 'status' | null;\n    constructor(_ngZone: NgZone, _elementRef: ElementRef<HTMLElement>, _changeDetectorRef: ChangeDetectorRef, \n    /** The snack bar configuration. */\n    snackBarConfig: MatSnackBarConfig);\n    /** Attach a component portal as content to this snack bar container. */\n    attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n    /** Attach a template portal as content to this snack bar container. */\n    attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n    /** Handle end of animations, updating the state of the snackbar. */\n    onAnimationEnd(event: AnimationEvent): void;\n    /** Begin animation of snack bar entrance into view. */\n    enter(): void;\n    /** Begin animation of the snack bar exiting from view. */\n    exit(): Observable<void>;\n    /** Makes sure the exit callbacks have been invoked when the element is destroyed. */\n    ngOnDestroy(): void;\n    /**\n     * Waits for the zone to settle before removing the element. Helps prevent\n     * errors where we end up removing an element which is in the middle of an animation.\n     */\n    private _completeExit;\n    /** Applies the various positioning and user-configured CSS classes to the snack bar. */\n    private _applySnackBarClasses;\n    /** Asserts that no content is already attached to the container. */\n    private _assertNotAttached;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatSnackBarContainer>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatSnackBarContainer, \"snack-bar-container\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=snack-bar-container.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/snack-bar/snack-bar-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './snack-bar-container';\nimport * as ɵngcc2 from './simple-snack-bar';\nimport * as ɵngcc3 from '@angular/cdk/overlay';\nimport * as ɵngcc4 from '@angular/cdk/portal';\nimport * as ɵngcc5 from '@angular/common';\nimport * as ɵngcc6 from '@angular/material/button';\nimport * as ɵngcc7 from '@angular/material/core';\nexport declare class MatSnackBarModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatSnackBarModule, [typeof ɵngcc1.MatSnackBarContainer, typeof ɵngcc2.SimpleSnackBar], [typeof ɵngcc3.OverlayModule, typeof ɵngcc4.PortalModule, typeof ɵngcc5.CommonModule, typeof ɵngcc6.MatButtonModule, typeof ɵngcc7.MatCommonModule], [typeof ɵngcc1.MatSnackBarContainer, typeof ɵngcc7.MatCommonModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatSnackBarModule>;\n}\n\n//# sourceMappingURL=snack-bar-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/snack-bar/snack-bar-ref.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { Observable } from 'rxjs';\nimport { MatSnackBarContainer } from './snack-bar-container';\n/** Event that is emitted when a snack bar is dismissed. */\nexport interface MatSnackBarDismiss {\n    /** Whether the snack bar was dismissed using the action button. */\n    dismissedByAction: boolean;\n}\n/**\n * Reference to a snack bar dispatched from the snack bar service.\n */\nexport declare class MatSnackBarRef<T> {\n    private _overlayRef;\n    /** The instance of the component making up the content of the snack bar. */\n    instance: T;\n    /**\n     * The instance of the component making up the content of the snack bar.\n     * @docs-private\n     */\n    containerInstance: MatSnackBarContainer;\n    /** Subject for notifying the user that the snack bar has been dismissed. */\n    private readonly _afterDismissed;\n    /** Subject for notifying the user that the snack bar has opened and appeared. */\n    private readonly _afterOpened;\n    /** Subject for notifying the user that the snack bar action was called. */\n    private readonly _onAction;\n    /**\n     * Timeout ID for the duration setTimeout call. Used to clear the timeout if the snackbar is\n     * dismissed before the duration passes.\n     */\n    private _durationTimeoutId;\n    /** Whether the snack bar was dismissed using the action button. */\n    private _dismissedByAction;\n    constructor(containerInstance: MatSnackBarContainer, _overlayRef: OverlayRef);\n    /** Dismisses the snack bar. */\n    dismiss(): void;\n    /** Marks the snackbar action clicked. */\n    dismissWithAction(): void;\n    /**\n     * Marks the snackbar action clicked.\n     * @deprecated Use `dismissWithAction` instead.\n     * @breaking-change 8.0.0\n     */\n    closeWithAction(): void;\n    /** Dismisses the snack bar after some duration */\n    _dismissAfter(duration: number): void;\n    /** Marks the snackbar as opened */\n    _open(): void;\n    /** Cleans up the DOM after closing. */\n    private _finishDismiss;\n    /** Gets an observable that is notified when the snack bar is finished closing. */\n    afterDismissed(): Observable<MatSnackBarDismiss>;\n    /** Gets an observable that is notified when the snack bar has opened and appeared. */\n    afterOpened(): Observable<void>;\n    /** Gets an observable that is notified when the snack bar action is called. */\n    onAction(): Observable<void>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/snack-bar/snack-bar.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { EmbeddedViewRef, InjectionToken, Injector, TemplateRef, OnDestroy } from '@angular/core';\nimport { SimpleSnackBar } from './simple-snack-bar';\nimport { MatSnackBarConfig } from './snack-bar-config';\nimport { MatSnackBarRef } from './snack-bar-ref';\n/** Injection token that can be used to specify default snack bar. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare const MAT_SNACK_BAR_DEFAULT_OPTIONS: InjectionToken<MatSnackBarConfig<any>>;\n/** @docs-private */\nexport declare function MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY(): MatSnackBarConfig;\n/**\n * Service to dispatch Material Design snack bar messages.\n */\nexport declare class MatSnackBar implements OnDestroy {\n    private _overlay;\n    private _live;\n    private _injector;\n    private _breakpointObserver;\n    private _parentSnackBar;\n    private _defaultConfig;\n    /**\n     * Reference to the current snack bar in the view *at this level* (in the Angular injector tree).\n     * If there is a parent snack-bar service, all operations should delegate to that parent\n     * via `_openedSnackBarRef`.\n     */\n    private _snackBarRefAtThisLevel;\n    /** Reference to the currently opened snackbar at *any* level. */\n    _openedSnackBarRef: MatSnackBarRef<any> | null;\n    constructor(_overlay: Overlay, _live: LiveAnnouncer, _injector: Injector, _breakpointObserver: BreakpointObserver, _parentSnackBar: MatSnackBar, _defaultConfig: MatSnackBarConfig);\n    /**\n     * Creates and dispatches a snack bar with a custom component for the content, removing any\n     * currently opened snack bars.\n     *\n     * @param component Component to be instantiated.\n     * @param config Extra configuration for the snack bar.\n     */\n    openFromComponent<T>(component: ComponentType<T>, config?: MatSnackBarConfig): MatSnackBarRef<T>;\n    /**\n     * Creates and dispatches a snack bar with a custom template for the content, removing any\n     * currently opened snack bars.\n     *\n     * @param template Template to be instantiated.\n     * @param config Extra configuration for the snack bar.\n     */\n    openFromTemplate(template: TemplateRef<any>, config?: MatSnackBarConfig): MatSnackBarRef<EmbeddedViewRef<any>>;\n    /**\n     * Opens a snackbar with a message and an optional action.\n     * @param message The message to show in the snackbar.\n     * @param action The label for the snackbar action.\n     * @param config Additional configuration options for the snackbar.\n     */\n    open(message: string, action?: string, config?: MatSnackBarConfig): MatSnackBarRef<SimpleSnackBar>;\n    /**\n     * Dismisses the currently-visible snack bar.\n     */\n    dismiss(): void;\n    ngOnDestroy(): void;\n    /**\n     * Attaches the snack bar container component to the overlay.\n     */\n    private _attachSnackBarContainer;\n    /**\n     * Places a new component or a template as the content of the snack bar container.\n     */\n    private _attach;\n    /** Animates the old snack bar out and the new one in. */\n    private _animateSnackBar;\n    /**\n     * Creates a new overlay and places it in the correct location.\n     * @param config The user-specified snack bar config.\n     */\n    private _createOverlay;\n    /**\n     * Creates an injector to be used inside of a snack bar component.\n     * @param config Config that was used to create the snack bar.\n     * @param snackBarRef Reference to the snack bar.\n     */\n    private _createInjector;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatSnackBar>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<MatSnackBar>;\n}\n\n//# sourceMappingURL=snack-bar.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/snack-bar/testing/index.d.ts",
      "node_modules/@angular/material/snack-bar/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/snack-bar/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './snack-bar-harness';\nexport * from './snack-bar-harness-filters';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/snack-bar/testing/snack-bar-harness-filters.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface SnackBarHarnessFilters extends BaseHarnessFilters {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/snack-bar/testing/snack-bar-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { SnackBarHarnessFilters } from './snack-bar-harness-filters';\n/**\n * Harness for interacting with a standard mat-snack-bar in tests.\n * @dynamic\n */\nexport declare class MatSnackBarHarness extends ComponentHarness {\n    static hostSelector: string;\n    private _simpleSnackBar;\n    private _simpleSnackBarMessage;\n    private _simpleSnackBarActionButton;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a snack-bar with\n     * specific attributes.\n     * @param options Options for narrowing the search.\n     *   - `selector` finds a snack-bar that matches the given selector. Note that the\n     *                selector must match the snack-bar container element.\n     * @return `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: SnackBarHarnessFilters): HarnessPredicate<MatSnackBarHarness>;\n    /**\n     * Gets the role of the snack-bar. The role of a snack-bar is determined based\n     * on the ARIA politeness specified in the snack-bar config.\n     */\n    getRole(): Promise<'alert' | 'status' | null>;\n    /**\n     * Gets whether the snack-bar has an action. Method cannot be\n     * used for snack-bar's with custom content.\n     */\n    hasAction(): Promise<boolean>;\n    /**\n     * Gets the description of the snack-bar. Method cannot be\n     * used for snack-bar's without action or with custom content.\n     */\n    getActionDescription(): Promise<string>;\n    /**\n     * Dismisses the snack-bar by clicking the action button. Method cannot\n     * be used for snack-bar's without action or with custom content.\n     */\n    dismissWithAction(): Promise<void>;\n    /**\n     * Gets the message of the snack-bar. Method cannot be used for\n     * snack-bar's with custom content.\n     */\n    getMessage(): Promise<string>;\n    /**\n     * Asserts that the current snack-bar does not use custom content. Throws if\n     * custom content is used.\n     */\n    private _assertSimpleSnackBar;\n    /**\n     * Asserts that the current snack-bar does not use custom content and has\n     * an action defined. Otherwise an error will be thrown.\n     */\n    private _assertSimpleSnackBarWithAction;\n    /** Gets whether the snack-bar is using the default content template. */\n    private _isSimpleSnackBar;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sort/index.d.ts",
      "node_modules/@angular/material/sort/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/sort/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './sort-module';\nexport * from './sort-direction';\nexport * from './sort-header';\nexport * from './sort-header-intl';\nexport * from './sort';\nexport * from './sort-animations';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sort/sort-animations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationTriggerMetadata } from '@angular/animations';\n/**\n * Animations used by MatSort.\n * @docs-private\n */\nexport declare const matSortAnimations: {\n    readonly indicator: AnimationTriggerMetadata;\n    readonly leftPointer: AnimationTriggerMetadata;\n    readonly rightPointer: AnimationTriggerMetadata;\n    readonly arrowOpacity: AnimationTriggerMetadata;\n    readonly arrowPosition: AnimationTriggerMetadata;\n    readonly allowChildren: AnimationTriggerMetadata;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sort/sort-direction.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare type SortDirection = 'asc' | 'desc' | '';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sort/sort-errors.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @docs-private */\nexport declare function getSortDuplicateSortableIdError(id: string): Error;\n/** @docs-private */\nexport declare function getSortHeaderNotContainedWithinSortError(): Error;\n/** @docs-private */\nexport declare function getSortHeaderMissingIdError(): Error;\n/** @docs-private */\nexport declare function getSortInvalidDirectionError(direction: string): Error;\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/sort/sort-header-intl.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Optional } from '@angular/core';\nimport { Subject } from 'rxjs';\n/**\n * To modify the labels and text displayed, create a new instance of MatSortHeaderIntl and\n * include it in a custom provider.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatSortHeaderIntl {\n    /**\n     * Stream that emits whenever the labels here are changed. Use this to notify\n     * components if the labels have changed after initialization.\n     */\n    readonly changes: Subject<void>;\n    /** ARIA label for the sorting button. */\n    sortButtonLabel: (id: string) => string;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatSortHeaderIntl>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<MatSortHeaderIntl>;\n}\n/** @docs-private */\nexport declare function MAT_SORT_HEADER_INTL_PROVIDER_FACTORY(parentIntl: MatSortHeaderIntl): MatSortHeaderIntl;\n/** @docs-private */\nexport declare const MAT_SORT_HEADER_INTL_PROVIDER: {\n    provide: typeof MatSortHeaderIntl;\n    deps: Optional[][];\n    useFactory: typeof MAT_SORT_HEADER_INTL_PROVIDER_FACTORY;\n};\n\n//# sourceMappingURL=sort-header-intl.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/sort/sort-header.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';\nimport { CanDisable, CanDisableCtor } from '@angular/material/core';\nimport { MatSort, MatSortable } from './sort';\nimport { SortDirection } from './sort-direction';\nimport { MatSortHeaderIntl } from './sort-header-intl';\n/** @docs-private */\nimport * as ɵngcc0 from '@angular/core';\ndeclare class MatSortHeaderBase {\n}\ndeclare const _MatSortHeaderMixinBase: CanDisableCtor & typeof MatSortHeaderBase;\n/**\n * Valid positions for the arrow to be in for its opacity and translation. If the state is a\n * sort direction, the position of the arrow will be above/below and opacity 0. If the state is\n * hint, the arrow will be in the center with a slight opacity. Active state means the arrow will\n * be fully opaque in the center.\n *\n * @docs-private\n */\nexport declare type ArrowViewState = SortDirection | 'hint' | 'active';\n/**\n * States describing the arrow's animated position (animating fromState to toState).\n * If the fromState is not defined, there will be no animated transition to the toState.\n * @docs-private\n */\nexport interface ArrowViewStateTransition {\n    fromState?: ArrowViewState;\n    toState: ArrowViewState;\n}\n/** Column definition associated with a `MatSortHeader`. */\ninterface MatSortHeaderColumnDef {\n    name: string;\n}\n/**\n * Applies sorting behavior (click to change sort) and styles to an element, including an\n * arrow to display the current sort direction.\n *\n * Must be provided with an id and contained within a parent MatSort directive.\n *\n * If used on header cells in a CdkTable, it will automatically default its id from its containing\n * column definition.\n */\nexport declare class MatSortHeader extends _MatSortHeaderMixinBase implements CanDisable, MatSortable, OnDestroy, OnInit {\n    _intl: MatSortHeaderIntl;\n    _sort: MatSort;\n    _columnDef: MatSortHeaderColumnDef;\n    private _rerenderSubscription;\n    /**\n     * Flag set to true when the indicator should be displayed while the sort is not active. Used to\n     * provide an affordance that the header is sortable by showing on focus and hover.\n     */\n    _showIndicatorHint: boolean;\n    /**\n     * The view transition state of the arrow (translation/ opacity) - indicates its `from` and `to`\n     * position through the animation. If animations are currently disabled, the fromState is removed\n     * so that there is no animation displayed.\n     */\n    _viewState: ArrowViewStateTransition;\n    /** The direction the arrow should be facing according to the current state. */\n    _arrowDirection: SortDirection;\n    /**\n     * Whether the view state animation should show the transition between the `from` and `to` states.\n     */\n    _disableViewStateAnimation: boolean;\n    /**\n     * ID of this sort header. If used within the context of a CdkColumnDef, this will default to\n     * the column's name.\n     */\n    id: string;\n    /** Sets the position of the arrow that displays when sorted. */\n    arrowPosition: 'before' | 'after';\n    /** Overrides the sort start value of the containing MatSort for this MatSortable. */\n    start: 'asc' | 'desc';\n    /** Overrides the disable clear value of the containing MatSort for this MatSortable. */\n    disableClear: boolean;\n    private _disableClear;\n    constructor(_intl: MatSortHeaderIntl, changeDetectorRef: ChangeDetectorRef, _sort: MatSort, _columnDef: MatSortHeaderColumnDef);\n    ngOnInit(): void;\n    ngOnDestroy(): void;\n    /**\n     * Sets the \"hint\" state such that the arrow will be semi-transparently displayed as a hint to the\n     * user showing what the active sort will become. If set to false, the arrow will fade away.\n     */\n    _setIndicatorHintVisible(visible: boolean): void;\n    /**\n     * Sets the animation transition view state for the arrow's position and opacity. If the\n     * `disableViewStateAnimation` flag is set to true, the `fromState` will be ignored so that\n     * no animation appears.\n     */\n    _setAnimationTransitionState(viewState: ArrowViewStateTransition): void;\n    /** Triggers the sort on this sort header and removes the indicator hint. */\n    _handleClick(): void;\n    /** Whether this MatSortHeader is currently sorted in either ascending or descending order. */\n    _isSorted(): boolean;\n    /** Returns the animation state for the arrow direction (indicator and pointers). */\n    _getArrowDirectionState(): string;\n    /** Returns the arrow position state (opacity, translation). */\n    _getArrowViewState(): string;\n    /**\n     * Updates the direction the arrow should be pointing. If it is not sorted, the arrow should be\n     * facing the start direction. Otherwise if it is sorted, the arrow should point in the currently\n     * active sorted direction. The reason this is updated through a function is because the direction\n     * should only be changed at specific times - when deactivated but the hint is displayed and when\n     * the sort is active and the direction changes. Otherwise the arrow's direction should linger\n     * in cases such as the sort becoming deactivated but we want to animate the arrow away while\n     * preserving its direction, even though the next sort direction is actually different and should\n     * only be changed once the arrow displays again (hint or activation).\n     */\n    _updateArrowDirection(): void;\n    _isDisabled(): boolean;\n    /**\n     * Gets the aria-sort attribute that should be applied to this sort header. If this header\n     * is not sorted, returns null so that the attribute is removed from the host element. Aria spec\n     * says that the aria-sort property should only be present on one header at a time, so removing\n     * ensures this is true.\n     */\n    _getAriaSortAttribute(): \"ascending\" | \"descending\" | null;\n    /** Whether the arrow inside the sort header should be rendered. */\n    _renderArrow(): boolean;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatSortHeader>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatSortHeader, \"[mat-sort-header]\", [\"matSortHeader\"], { 'disabled': \"disabled\", 'arrowPosition': \"arrowPosition\", 'disableClear': \"disableClear\", 'id': \"mat-sort-header\", 'start': \"start\" }, {}, never>;\n}\nexport {};\n\n//# sourceMappingURL=sort-header.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/sort/sort-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './sort';\nimport * as ɵngcc2 from './sort-header';\nimport * as ɵngcc3 from '@angular/common';\nexport declare class MatSortModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatSortModule, [typeof ɵngcc1.MatSort, typeof ɵngcc2.MatSortHeader], [typeof ɵngcc3.CommonModule], [typeof ɵngcc1.MatSort, typeof ɵngcc2.MatSortHeader]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatSortModule>;\n}\n\n//# sourceMappingURL=sort-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/sort/sort.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { EventEmitter, OnChanges, OnDestroy, OnInit } from '@angular/core';\nimport { CanDisable, CanDisableCtor, HasInitialized, HasInitializedCtor } from '@angular/material/core';\nimport { Subject } from 'rxjs';\nimport { SortDirection } from './sort-direction';\n/** Interface for a directive that holds sorting state consumed by `MatSortHeader`. */\nimport * as ɵngcc0 from '@angular/core';\nexport interface MatSortable {\n    /** The id of the column being sorted. */\n    id: string;\n    /** Starting sort direction. */\n    start: 'asc' | 'desc';\n    /** Whether to disable clearing the sorting state. */\n    disableClear: boolean;\n}\n/** The current sort state. */\nexport interface Sort {\n    /** The id of the column being sorted. */\n    active: string;\n    /** The sort direction. */\n    direction: SortDirection;\n}\n/** @docs-private */\ndeclare class MatSortBase {\n}\ndeclare const _MatSortMixinBase: HasInitializedCtor & CanDisableCtor & typeof MatSortBase;\n/** Container for MatSortables to manage the sort state and provide default sort parameters. */\nexport declare class MatSort extends _MatSortMixinBase implements CanDisable, HasInitialized, OnChanges, OnDestroy, OnInit {\n    /** Collection of all registered sortables that this directive manages. */\n    sortables: Map<string, MatSortable>;\n    /** Used to notify any child components listening to state changes. */\n    readonly _stateChanges: Subject<void>;\n    /** The id of the most recently sorted MatSortable. */\n    active: string;\n    /**\n     * The direction to set when an MatSortable is initially sorted.\n     * May be overriden by the MatSortable's sort start.\n     */\n    start: 'asc' | 'desc';\n    /** The sort direction of the currently active MatSortable. */\n    direction: SortDirection;\n    private _direction;\n    /**\n     * Whether to disable the user from clearing the sort by finishing the sort direction cycle.\n     * May be overriden by the MatSortable's disable clear input.\n     */\n    disableClear: boolean;\n    private _disableClear;\n    /** Event emitted when the user changes either the active sort or sort direction. */\n    readonly sortChange: EventEmitter<Sort>;\n    /**\n     * Register function to be used by the contained MatSortables. Adds the MatSortable to the\n     * collection of MatSortables.\n     */\n    register(sortable: MatSortable): void;\n    /**\n     * Unregister function to be used by the contained MatSortables. Removes the MatSortable from the\n     * collection of contained MatSortables.\n     */\n    deregister(sortable: MatSortable): void;\n    /** Sets the active sort id and determines the new sort direction. */\n    sort(sortable: MatSortable): void;\n    /** Returns the next sort direction of the active sortable, checking for potential overrides. */\n    getNextSortDirection(sortable: MatSortable): SortDirection;\n    ngOnInit(): void;\n    ngOnChanges(): void;\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatSort>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatSort, \"[matSort]\", [\"matSort\"], { 'disabled': \"matSortDisabled\", 'start': \"matSortStart\", 'direction': \"matSortDirection\", 'disableClear': \"matSortDisableClear\", 'active': \"matSortActive\" }, { 'sortChange': \"matSortChange\" }, never>;\n}\nexport {};\n\n//# sourceMappingURL=sort.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/stepper/index.d.ts",
      "node_modules/@angular/material/stepper/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/stepper/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './stepper-module';\nexport * from './step-label';\nexport * from './stepper';\nexport * from './stepper-button';\nexport * from './step-header';\nexport * from './stepper-intl';\nexport * from './stepper-animations';\nexport * from './stepper-icon';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/stepper/step-header.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { ChangeDetectorRef, ElementRef, OnDestroy, TemplateRef } from '@angular/core';\nimport { MatStepLabel } from './step-label';\nimport { MatStepperIntl } from './stepper-intl';\nimport { MatStepperIconContext } from './stepper-icon';\nimport { CdkStepHeader, StepState } from '@angular/cdk/stepper';\nexport declare class MatStepHeader extends CdkStepHeader implements OnDestroy {\n    _intl: MatStepperIntl;\n    private _focusMonitor;\n    private _intlSubscription;\n    /** State of the given step. */\n    state: StepState;\n    /** Label of the given step. */\n    label: MatStepLabel | string;\n    /** Error message to display when there's an error. */\n    errorMessage: string;\n    /** Overrides for the header icons, passed in via the stepper. */\n    iconOverrides: {\n        [key: string]: TemplateRef<MatStepperIconContext>;\n    };\n    /** Index of the given step. */\n    index: number;\n    /** Whether the given step is selected. */\n    selected: boolean;\n    /** Whether the given step label is active. */\n    active: boolean;\n    /** Whether the given step is optional. */\n    optional: boolean;\n    /** Whether the ripple should be disabled. */\n    disableRipple: boolean;\n    constructor(_intl: MatStepperIntl, _focusMonitor: FocusMonitor, _elementRef: ElementRef<HTMLElement>, changeDetectorRef: ChangeDetectorRef);\n    ngOnDestroy(): void;\n    /** Focuses the step header. */\n    focus(): void;\n    /** Returns string label of given step if it is a text label. */\n    _stringLabel(): string | null;\n    /** Returns MatStepLabel if the label of given step is a template label. */\n    _templateLabel(): MatStepLabel | null;\n    /** Returns the host HTML element. */\n    _getHostElement(): HTMLElement;\n    /** Template context variables that are exposed to the `matStepperIcon` instances. */\n    _getIconContext(): MatStepperIconContext;\n    _getDefaultTextForState(state: StepState): string;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/stepper/step-label.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkStepLabel } from '@angular/cdk/stepper';\nexport declare class MatStepLabel extends CdkStepLabel {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/stepper/stepper-animations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationTriggerMetadata } from '@angular/animations';\n/**\n * Animations used by the Material steppers.\n * @docs-private\n */\nexport declare const matStepperAnimations: {\n    readonly horizontalStepTransition: AnimationTriggerMetadata;\n    readonly verticalStepTransition: AnimationTriggerMetadata;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/stepper/stepper-button.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkStepperNext, CdkStepperPrevious } from '@angular/cdk/stepper';\n/** Button that moves to the next step in a stepper workflow. */\nexport declare class MatStepperNext extends CdkStepperNext {\n}\n/** Button that moves to the previous step in a stepper workflow. */\nexport declare class MatStepperPrevious extends CdkStepperPrevious {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/stepper/stepper-icon.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { TemplateRef } from '@angular/core';\nimport { StepState } from '@angular/cdk/stepper';\n/** Template context available to an attached `matStepperIcon`. */\nexport interface MatStepperIconContext {\n    /** Index of the step. */\n    index: number;\n    /** Whether the step is currently active. */\n    active: boolean;\n    /** Whether the step is optional. */\n    optional: boolean;\n}\n/**\n * Template to be used to override the icons inside the step header.\n */\nexport declare class MatStepperIcon {\n    templateRef: TemplateRef<MatStepperIconContext>;\n    /** Name of the icon to be overridden. */\n    name: StepState;\n    constructor(templateRef: TemplateRef<MatStepperIconContext>);\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/stepper/stepper-intl.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Optional } from '@angular/core';\nimport { Subject } from 'rxjs';\n/** Stepper data that is required for internationalization. */\nexport declare class MatStepperIntl {\n    /**\n     * Stream that emits whenever the labels here are changed. Use this to notify\n     * components if the labels have changed after initialization.\n     */\n    readonly changes: Subject<void>;\n    /** Label that is rendered below optional steps. */\n    optionalLabel: string;\n}\n/** @docs-private */\nexport declare function MAT_STEPPER_INTL_PROVIDER_FACTORY(parentIntl: MatStepperIntl): MatStepperIntl;\n/** @docs-private */\nexport declare const MAT_STEPPER_INTL_PROVIDER: {\n    provide: typeof MatStepperIntl;\n    deps: Optional[][];\n    useFactory: typeof MAT_STEPPER_INTL_PROVIDER_FACTORY;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/stepper/stepper-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatStepperModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/stepper/stepper.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { CdkStep, CdkStepper, StepperOptions } from '@angular/cdk/stepper';\nimport { AnimationEvent } from '@angular/animations';\nimport { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, QueryList, TemplateRef } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { Subject } from 'rxjs';\nimport { MatStepHeader } from './step-header';\nimport { MatStepLabel } from './step-label';\nimport { MatStepperIcon, MatStepperIconContext } from './stepper-icon';\nexport declare class MatStep extends CdkStep implements ErrorStateMatcher {\n    private _errorStateMatcher;\n    /** Content for step label given by `<ng-template matStepLabel>`. */\n    stepLabel: MatStepLabel;\n    /** @breaking-change 8.0.0 remove the `?` after `stepperOptions` */\n    constructor(stepper: MatStepper, _errorStateMatcher: ErrorStateMatcher, stepperOptions?: StepperOptions);\n    /** Custom error state matcher that additionally checks for validity of interacted form. */\n    isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean;\n}\nexport declare class MatStepper extends CdkStepper implements AfterContentInit {\n    /** The list of step headers of the steps in the stepper. */\n    _stepHeader: QueryList<MatStepHeader>;\n    /** Steps that the stepper holds. */\n    _steps: QueryList<MatStep>;\n    /** Custom icon overrides passed in by the consumer. */\n    _icons: QueryList<MatStepperIcon>;\n    /** Event emitted when the current step is done transitioning in. */\n    readonly animationDone: EventEmitter<void>;\n    /** Whether ripples should be disabled for the step headers. */\n    disableRipple: boolean;\n    /** Consumer-specified template-refs to be used to override the header icons. */\n    _iconOverrides: {\n        [key: string]: TemplateRef<MatStepperIconContext>;\n    };\n    /** Stream of animation `done` events when the body expands/collapses. */\n    _animationDone: Subject<AnimationEvent>;\n    ngAfterContentInit(): void;\n}\nexport declare class MatHorizontalStepper extends MatStepper {\n    /** Whether the label should display in bottom or end position. */\n    labelPosition: 'bottom' | 'end';\n}\nexport declare class MatVerticalStepper extends MatStepper {\n    constructor(dir: Directionality, changeDetectorRef: ChangeDetectorRef, elementRef?: ElementRef<HTMLElement>, _document?: any);\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/table/cell.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef } from '@angular/core';\nimport { CdkCell, CdkCellDef, CdkColumnDef, CdkFooterCell, CdkFooterCellDef, CdkHeaderCell, CdkHeaderCellDef } from '@angular/cdk/table';\n/**\n * Cell definition for the mat-table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatCellDef extends CdkCellDef {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCellDef>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCellDef, \"[matCellDef]\", never, {}, {}, never>;\n}\n/**\n * Header cell definition for the mat-table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\nexport declare class MatHeaderCellDef extends CdkHeaderCellDef {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatHeaderCellDef>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatHeaderCellDef, \"[matHeaderCellDef]\", never, {}, {}, never>;\n}\n/**\n * Footer cell definition for the mat-table.\n * Captures the template of a column's footer cell and as well as cell-specific properties.\n */\nexport declare class MatFooterCellDef extends CdkFooterCellDef {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatFooterCellDef>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatFooterCellDef, \"[matFooterCellDef]\", never, {}, {}, never>;\n}\n/**\n * Column definition for the mat-table.\n * Defines a set of cells available for a table column.\n */\nexport declare class MatColumnDef extends CdkColumnDef {\n    /** Unique name for this column. */\n    name: string;\n    /** Whether this column should be sticky positioned at the start of the row */\n    sticky: boolean;\n    /** Whether this column should be sticky positioned on the end of the row */\n    stickyEnd: boolean;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatColumnDef>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatColumnDef, \"[matColumnDef]\", never, { 'name': \"matColumnDef\", 'sticky': \"sticky\", 'stickyEnd': \"stickyEnd\" }, {}, never>;\n}\n/** Header cell template container that adds the right classes and role. */\nexport declare class MatHeaderCell extends CdkHeaderCell {\n    constructor(columnDef: CdkColumnDef, elementRef: ElementRef<HTMLElement>);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatHeaderCell>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatHeaderCell, \"mat-header-cell, th[mat-header-cell]\", never, {}, {}, never>;\n}\n/** Footer cell template container that adds the right classes and role. */\nexport declare class MatFooterCell extends CdkFooterCell {\n    constructor(columnDef: CdkColumnDef, elementRef: ElementRef);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatFooterCell>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatFooterCell, \"mat-footer-cell, td[mat-footer-cell]\", never, {}, {}, never>;\n}\n/** Cell template container that adds the right classes and role. */\nexport declare class MatCell extends CdkCell {\n    constructor(columnDef: CdkColumnDef, elementRef: ElementRef<HTMLElement>);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatCell>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatCell, \"mat-cell, td[mat-cell]\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=cell.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/table/index.d.ts",
      "node_modules/@angular/material/table/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/table/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './table-module';\nexport * from './cell';\nexport * from './table';\nexport * from './row';\nexport * from './table-data-source';\nexport * from './text-column';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/table/row.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkFooterRow, CdkFooterRowDef, CdkHeaderRow, CdkHeaderRowDef, CdkRow, CdkRowDef } from '@angular/cdk/table';\n/**\n * Header row definition for the mat-table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatHeaderRowDef extends CdkHeaderRowDef {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatHeaderRowDef>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatHeaderRowDef, \"[matHeaderRowDef]\", never, { 'columns': \"matHeaderRowDef\", 'sticky': \"matHeaderRowDefSticky\" }, {}, never>;\n}\n/**\n * Footer row definition for the mat-table.\n * Captures the footer row's template and other footer properties such as the columns to display.\n */\nexport declare class MatFooterRowDef extends CdkFooterRowDef {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatFooterRowDef>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatFooterRowDef, \"[matFooterRowDef]\", never, { 'columns': \"matFooterRowDef\", 'sticky': \"matFooterRowDefSticky\" }, {}, never>;\n}\n/**\n * Data row definition for the mat-table.\n * Captures the data row's template and other properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\nexport declare class MatRowDef<T> extends CdkRowDef<T> {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatRowDef<any>>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatRowDef<any>, \"[matRowDef]\", never, { 'columns': \"matRowDefColumns\", 'when': \"matRowDefWhen\" }, {}, never>;\n}\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\nexport declare class MatHeaderRow extends CdkHeaderRow {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatHeaderRow>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatHeaderRow, \"mat-header-row, tr[mat-header-row]\", [\"matHeaderRow\"], {}, {}, never>;\n}\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\nexport declare class MatFooterRow extends CdkFooterRow {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatFooterRow>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatFooterRow, \"mat-footer-row, tr[mat-footer-row]\", [\"matFooterRow\"], {}, {}, never>;\n}\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\nexport declare class MatRow extends CdkRow {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatRow>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatRow, \"mat-row, tr[mat-row]\", [\"matRow\"], {}, {}, never>;\n}\n\n//# sourceMappingURL=row.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/table/table-data-source.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { DataSource } from '@angular/cdk/table';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\n/**\n * Data source that accepts a client-side data array and includes native support of filtering,\n * sorting (using MatSort), and pagination (using MatPaginator).\n *\n * Allows for sort customization by overriding sortingDataAccessor, which defines how data\n * properties are accessed. Also allows for filter customization by overriding filterTermAccessor,\n * which defines how row data is converted to a string for filter matching.\n *\n * **Note:** This class is meant to be a simple data source to help you get started. As such\n * it isn't equipped to handle some more advanced cases like robust i18n support or server-side\n * interactions. If your app needs to support more advanced use cases, consider implementing your\n * own `DataSource`.\n */\nexport declare class MatTableDataSource<T> extends DataSource<T> {\n    /** Stream that emits when a new data array is set on the data source. */\n    private readonly _data;\n    /** Stream emitting render data to the table (depends on ordered data changes). */\n    private readonly _renderData;\n    /** Stream that emits when a new filter string is set on the data source. */\n    private readonly _filter;\n    /** Used to react to internal changes of the paginator that are made by the data source itself. */\n    private readonly _internalPageChanges;\n    /**\n     * Subscription to the changes that should trigger an update to the table's rendered rows, such\n     * as filtering, sorting, pagination, or base data changes.\n     */\n    _renderChangesSubscription: Subscription;\n    /**\n     * The filtered set of data that has been matched by the filter string, or all the data if there\n     * is no filter. Useful for knowing the set of data the table represents.\n     * For example, a 'selectAll()' function would likely want to select the set of filtered data\n     * shown to the user rather than all the data.\n     */\n    filteredData: T[];\n    /** Array of data that should be rendered by the table, where each object represents one row. */\n    data: T[];\n    /**\n     * Filter term that should be used to filter out objects from the data array. To override how\n     * data objects match to this filter string, provide a custom function for filterPredicate.\n     */\n    filter: string;\n    /**\n     * Instance of the MatSort directive used by the table to control its sorting. Sort changes\n     * emitted by the MatSort will trigger an update to the table's rendered data.\n     */\n    sort: MatSort | null;\n    private _sort;\n    /**\n     * Instance of the MatPaginator component used by the table to control what page of the data is\n     * displayed. Page changes emitted by the MatPaginator will trigger an update to the\n     * table's rendered data.\n     *\n     * Note that the data source uses the paginator's properties to calculate which page of data\n     * should be displayed. If the paginator receives its properties as template inputs,\n     * e.g. `[pageLength]=100` or `[pageIndex]=1`, then be sure that the paginator's view has been\n     * initialized before assigning it to this data source.\n     */\n    paginator: MatPaginator | null;\n    private _paginator;\n    /**\n     * Data accessor function that is used for accessing data properties for sorting through\n     * the default sortData function.\n     * This default function assumes that the sort header IDs (which defaults to the column name)\n     * matches the data's properties (e.g. column Xyz represents data['Xyz']).\n     * May be set to a custom function for different behavior.\n     * @param data Data object that is being accessed.\n     * @param sortHeaderId The name of the column that represents the data.\n     */\n    sortingDataAccessor: ((data: T, sortHeaderId: string) => string | number);\n    /**\n     * Gets a sorted copy of the data array based on the state of the MatSort. Called\n     * after changes are made to the filtered data or when sort changes are emitted from MatSort.\n     * By default, the function retrieves the active sort and its direction and compares data\n     * by retrieving data using the sortingDataAccessor. May be overridden for a custom implementation\n     * of data ordering.\n     * @param data The array of data that should be sorted.\n     * @param sort The connected MatSort that holds the current sort state.\n     */\n    sortData: ((data: T[], sort: MatSort) => T[]);\n    /**\n     * Checks if a data object matches the data source's filter string. By default, each data object\n     * is converted to a string of its properties and returns true if the filter has\n     * at least one occurrence in that string. By default, the filter string has its whitespace\n     * trimmed and the match is case-insensitive. May be overridden for a custom implementation of\n     * filter matching.\n     * @param data Data object used to check against the filter.\n     * @param filter Filter string that has been set on the data source.\n     * @returns Whether the filter matches against the data\n     */\n    filterPredicate: ((data: T, filter: string) => boolean);\n    constructor(initialData?: T[]);\n    /**\n     * Subscribe to changes that should trigger an update to the table's rendered rows. When the\n     * changes occur, process the current state of the filter, sort, and pagination along with\n     * the provided base data and send it to the table for rendering.\n     */\n    _updateChangeSubscription(): void;\n    /**\n     * Returns a filtered data array where each filter object contains the filter string within\n     * the result of the filterTermAccessor function. If no filter is set, returns the data array\n     * as provided.\n     */\n    _filterData(data: T[]): T[];\n    /**\n     * Returns a sorted copy of the data if MatSort has a sort applied, otherwise just returns the\n     * data array as provided. Uses the default data accessor for data lookup, unless a\n     * sortDataAccessor function is defined.\n     */\n    _orderData(data: T[]): T[];\n    /**\n     * Returns a paged slice of the provided data array according to the provided MatPaginator's page\n     * index and length. If there is no paginator provided, returns the data array as provided.\n     */\n    _pageData(data: T[]): T[];\n    /**\n     * Updates the paginator to reflect the length of the filtered data, and makes sure that the page\n     * index does not exceed the paginator's last page. Values are changed in a resolved promise to\n     * guard against making property changes within a round of change detection.\n     */\n    _updatePaginator(filteredDataLength: number): void;\n    /**\n     * Used by the MatTable. Called when it connects to the data source.\n     * @docs-private\n     */\n    connect(): BehaviorSubject<T[]>;\n    /**\n     * Used by the MatTable. Called when it is destroyed. No-op.\n     * @docs-private\n     */\n    disconnect(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/table/table-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './table';\nimport * as ɵngcc2 from './cell';\nimport * as ɵngcc3 from './row';\nimport * as ɵngcc4 from './text-column';\nimport * as ɵngcc5 from '@angular/cdk/table';\nimport * as ɵngcc6 from '@angular/common';\nimport * as ɵngcc7 from '@angular/material/core';\nexport declare class MatTableModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatTableModule, [typeof ɵngcc1.MatTable, typeof ɵngcc2.MatHeaderCellDef, typeof ɵngcc3.MatHeaderRowDef, typeof ɵngcc2.MatColumnDef, typeof ɵngcc2.MatCellDef, typeof ɵngcc3.MatRowDef, typeof ɵngcc2.MatFooterCellDef, typeof ɵngcc3.MatFooterRowDef, typeof ɵngcc2.MatHeaderCell, typeof ɵngcc2.MatCell, typeof ɵngcc2.MatFooterCell, typeof ɵngcc3.MatHeaderRow, typeof ɵngcc3.MatRow, typeof ɵngcc3.MatFooterRow, typeof ɵngcc4.MatTextColumn], [typeof ɵngcc5.CdkTableModule, typeof ɵngcc6.CommonModule, typeof ɵngcc7.MatCommonModule], [typeof ɵngcc1.MatTable, typeof ɵngcc2.MatHeaderCellDef, typeof ɵngcc3.MatHeaderRowDef, typeof ɵngcc2.MatColumnDef, typeof ɵngcc2.MatCellDef, typeof ɵngcc3.MatRowDef, typeof ɵngcc2.MatFooterCellDef, typeof ɵngcc3.MatFooterRowDef, typeof ɵngcc2.MatHeaderCell, typeof ɵngcc2.MatCell, typeof ɵngcc2.MatFooterCell, typeof ɵngcc3.MatHeaderRow, typeof ɵngcc3.MatRow, typeof ɵngcc3.MatFooterRow, typeof ɵngcc4.MatTextColumn]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatTableModule>;\n}\n\n//# sourceMappingURL=table-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/table/table.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkTable } from '@angular/cdk/table';\n/**\n * Wrapper for the CdkTable with Material design styles.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatTable<T> extends CdkTable<T> {\n    /** Overrides the sticky CSS class set by the `CdkTable`. */\n    protected stickyCssClass: string;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTable<any>>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatTable<any>, \"mat-table, table[mat-table]\", [\"matTable\"], {}, {}, never>;\n}\n\n//# sourceMappingURL=table.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/table/text-column.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkTextColumn } from '@angular/cdk/table';\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (`<table>`).\n *\n * By default, the name of this column will be the header text and data property accessor.\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\n * input.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatTextColumn<T> extends CdkTextColumn<T> {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTextColumn<any>>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatTextColumn<any>, \"mat-text-column\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=text-column.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/index.d.ts",
      "node_modules/@angular/material/tabs/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\nexport { _MAT_INK_BAR_POSITIONER_FACTORY as ɵangular_material_src_material_tabs_tabs_a } from './ink-bar';\nexport { MatPaginatedTabHeader as ɵangular_material_src_material_tabs_tabs_b } from './paginated-tab-header';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/ink-bar.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef, InjectionToken, NgZone } from '@angular/core';\n/**\n * Interface for a a MatInkBar positioner method, defining the positioning and width of the ink\n * bar in a set of tabs.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport interface _MatInkBarPositioner {\n    (element: HTMLElement): {\n        left: string;\n        width: string;\n    };\n}\n/** Injection token for the MatInkBar's Positioner. */\nexport declare const _MAT_INK_BAR_POSITIONER: InjectionToken<_MatInkBarPositioner>;\n/**\n * The default positioner function for the MatInkBar.\n * @docs-private\n */\nexport declare function _MAT_INK_BAR_POSITIONER_FACTORY(): _MatInkBarPositioner;\n/**\n * The ink-bar is used to display and animate the line underneath the current active tab label.\n * @docs-private\n */\nexport declare class MatInkBar {\n    private _elementRef;\n    private _ngZone;\n    private _inkBarPositioner;\n    _animationMode?: string | undefined;\n    constructor(_elementRef: ElementRef<HTMLElement>, _ngZone: NgZone, _inkBarPositioner: _MatInkBarPositioner, _animationMode?: string | undefined);\n    /**\n     * Calculates the styles from the provided element in order to align the ink-bar to that element.\n     * Shows the ink bar if previously set as hidden.\n     * @param element\n     */\n    alignToElement(element: HTMLElement): void;\n    /** Shows the ink bar. */\n    show(): void;\n    /** Hides the ink bar. */\n    hide(): void;\n    /**\n     * Sets the proper styles to the ink bar element.\n     * @param element\n     */\n    private _setStyles;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatInkBar>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatInkBar, \"mat-ink-bar\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=ink-bar.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/paginated-tab-header.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ChangeDetectorRef, ElementRef, NgZone, QueryList, EventEmitter, AfterContentChecked, AfterContentInit, AfterViewInit, OnDestroy } from '@angular/core';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport { Subject } from 'rxjs';\nimport { Platform } from '@angular/cdk/platform';\n/**\n * The directions that scrolling can go in when the header's tabs exceed the header width. 'After'\n * will scroll the header towards the end of the tabs list and 'before' will scroll towards the\n * beginning of the list.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare type ScrollDirection = 'after' | 'before';\n/** Item inside a paginated tab header. */\nexport declare type MatPaginatedTabHeaderItem = FocusableOption & {\n    elementRef: ElementRef;\n};\n/**\n * Base class for a tab header that supported pagination.\n * @docs-private\n */\nexport declare abstract class MatPaginatedTabHeader implements AfterContentChecked, AfterContentInit, AfterViewInit, OnDestroy {\n    protected _elementRef: ElementRef<HTMLElement>;\n    protected _changeDetectorRef: ChangeDetectorRef;\n    private _viewportRuler;\n    private _dir;\n    private _ngZone;\n    /**\n     * @deprecated @breaking-change 9.0.0 `_platform` and `_animationMode`\n     * parameters to become required.\n     */\n    private _platform?;\n    _animationMode?: string | undefined;\n    abstract _items: QueryList<MatPaginatedTabHeaderItem>;\n    abstract _inkBar: {\n        hide: () => void;\n        alignToElement: (element: HTMLElement) => void;\n    };\n    abstract _tabListContainer: ElementRef<HTMLElement>;\n    abstract _tabList: ElementRef<HTMLElement>;\n    abstract _nextPaginator: ElementRef<HTMLElement>;\n    abstract _previousPaginator: ElementRef<HTMLElement>;\n    /** The distance in pixels that the tab labels should be translated to the left. */\n    private _scrollDistance;\n    /** Whether the header should scroll to the selected index after the view has been checked. */\n    private _selectedIndexChanged;\n    /** Emits when the component is destroyed. */\n    protected readonly _destroyed: Subject<void>;\n    /** Whether the controls for pagination should be displayed */\n    _showPaginationControls: boolean;\n    /** Whether the tab list can be scrolled more towards the end of the tab label list. */\n    _disableScrollAfter: boolean;\n    /** Whether the tab list can be scrolled more towards the beginning of the tab label list. */\n    _disableScrollBefore: boolean;\n    /**\n     * The number of tab labels that are displayed on the header. When this changes, the header\n     * should re-evaluate the scroll position.\n     */\n    private _tabLabelCount;\n    /** Whether the scroll distance has changed and should be applied after the view is checked. */\n    private _scrollDistanceChanged;\n    /** Used to manage focus between the tabs. */\n    private _keyManager;\n    /** Cached text content of the header. */\n    private _currentTextContent;\n    /** Stream that will stop the automated scrolling. */\n    private _stopScrolling;\n    /** The index of the active tab. */\n    selectedIndex: number;\n    private _selectedIndex;\n    /** Event emitted when the option is selected. */\n    readonly selectFocusedIndex: EventEmitter<number>;\n    /** Event emitted when a label is focused. */\n    readonly indexFocused: EventEmitter<number>;\n    constructor(_elementRef: ElementRef<HTMLElement>, _changeDetectorRef: ChangeDetectorRef, _viewportRuler: ViewportRuler, _dir: Directionality, _ngZone: NgZone, \n    /**\n     * @deprecated @breaking-change 9.0.0 `_platform` and `_animationMode`\n     * parameters to become required.\n     */\n    _platform?: Platform | undefined, _animationMode?: string | undefined);\n    /** Called when the user has selected an item via the keyboard. */\n    protected abstract _itemSelected(event: KeyboardEvent): void;\n    ngAfterViewInit(): void;\n    ngAfterContentInit(): void;\n    ngAfterContentChecked(): void;\n    ngOnDestroy(): void;\n    /** Handles keyboard events on the header. */\n    _handleKeydown(event: KeyboardEvent): void;\n    /**\n     * Callback for when the MutationObserver detects that the content has changed.\n     */\n    _onContentChanges(): void;\n    /**\n     * Updates the view whether pagination should be enabled or not.\n     *\n     * WARNING: Calling this method can be very costly in terms of performance. It should be called\n     * as infrequently as possible from outside of the Tabs component as it causes a reflow of the\n     * page.\n     */\n    updatePagination(): void;\n    /** Tracks which element has focus; used for keyboard navigation */\n    /** When the focus index is set, we must manually send focus to the correct label */\n    focusIndex: number;\n    /**\n     * Determines if an index is valid.  If the tabs are not ready yet, we assume that the user is\n     * providing a valid index and return true.\n     */\n    _isValidIndex(index: number): boolean;\n    /**\n     * Sets focus on the HTML element for the label wrapper and scrolls it into the view if\n     * scrolling is enabled.\n     */\n    _setTabFocus(tabIndex: number): void;\n    /** The layout direction of the containing app. */\n    _getLayoutDirection(): Direction;\n    /** Performs the CSS transformation on the tab list that will cause the list to scroll. */\n    _updateTabScrollPosition(): void;\n    /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */\n    scrollDistance: number;\n    /**\n     * Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or\n     * the end of the list, respectively). The distance to scroll is computed to be a third of the\n     * length of the tab list view window.\n     *\n     * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n     * should be called sparingly.\n     */\n    _scrollHeader(direction: ScrollDirection): {\n        maxScrollDistance: number;\n        distance: number;\n    };\n    /** Handles click events on the pagination arrows. */\n    _handlePaginatorClick(direction: ScrollDirection): void;\n    /**\n     * Moves the tab list such that the desired tab label (marked by index) is moved into view.\n     *\n     * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n     * should be called sparingly.\n     */\n    _scrollToLabel(labelIndex: number): void;\n    /**\n     * Evaluate whether the pagination controls should be displayed. If the scroll width of the\n     * tab list is wider than the size of the header container, then the pagination controls should\n     * be shown.\n     *\n     * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n     * should be called sparingly.\n     */\n    _checkPaginationEnabled(): void;\n    /**\n     * Evaluate whether the before and after controls should be enabled or disabled.\n     * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the\n     * before button. If the header is at the end of the list (scroll distance is equal to the\n     * maximum distance we can scroll), then disable the after button.\n     *\n     * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n     * should be called sparingly.\n     */\n    _checkScrollingControls(): void;\n    /**\n     * Determines what is the maximum length in pixels that can be set for the scroll distance. This\n     * is equal to the difference in width between the tab list container and tab header container.\n     *\n     * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n     * should be called sparingly.\n     */\n    _getMaxScrollDistance(): number;\n    /** Tells the ink-bar to align itself to the current label wrapper */\n    _alignInkBarToSelectedTab(): void;\n    /** Stops the currently-running paginator interval.  */\n    _stopInterval(): void;\n    /**\n     * Handles the user pressing down on one of the paginators.\n     * Starts scrolling the header after a certain amount of time.\n     * @param direction In which direction the paginator should be scrolled.\n     */\n    _handlePaginatorPress(direction: ScrollDirection): void;\n    /**\n     * Scrolls the header to a given position.\n     * @param position Position to which to scroll.\n     * @returns Information on the current scroll distance and the maximum.\n     */\n    private _scrollTo;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatPaginatedTabHeader>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatPaginatedTabHeader, \"do-not-use-abstract-mat-paginated-tab-header\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=paginated-tab-header.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport { MatTabsModule } from './tabs-module';\nexport * from './tab-group';\nexport { MatInkBar, _MatInkBarPositioner, _MAT_INK_BAR_POSITIONER } from './ink-bar';\nexport { MatTabBody, _MatTabBodyBase, MatTabBodyOriginState, MatTabBodyPositionState, MatTabBodyPortal } from './tab-body';\nexport { MatTabHeader, _MatTabHeaderBase } from './tab-header';\nexport { MatTabLabelWrapper } from './tab-label-wrapper';\nexport { MatTab } from './tab';\nexport { MatTabLabel } from './tab-label';\nexport { MatTabNav, MatTabLink, _MatTabNavBase, _MatTabLinkBase } from './tab-nav-bar/index';\nexport { MatTabContent } from './tab-content';\nexport { ScrollDirection } from './paginated-tab-header';\nexport * from './tabs-animations';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/tab-body.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit, ElementRef, ComponentFactoryResolver, ViewContainerRef } from '@angular/core';\nimport { AnimationEvent } from '@angular/animations';\nimport { TemplatePortal, CdkPortalOutlet, PortalHostDirective } from '@angular/cdk/portal';\nimport { Directionality, Direction } from '@angular/cdk/bidi';\nimport { Subject } from 'rxjs';\n/**\n * These position states are used internally as animation states for the tab body. Setting the\n * position state to left, right, or center will transition the tab body from its current\n * position to its respective state. If there is not current position (void, in the case of a new\n * tab body), then there will be no transition animation to its state.\n *\n * In the case of a new tab body that should immediately be centered with an animating transition,\n * then left-origin-center or right-origin-center can be used, which will use left or right as its\n * psuedo-prior state.\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare type MatTabBodyPositionState = 'left' | 'center' | 'right' | 'left-origin-center' | 'right-origin-center';\n/**\n * The origin state is an internally used state that is set on a new tab body indicating if it\n * began to the left or right of the prior selected index. For example, if the selected index was\n * set to 1, and a new tab is created and selected at index 2, then the tab body would have an\n * origin of right because its index was greater than the prior selected index.\n */\nexport declare type MatTabBodyOriginState = 'left' | 'right';\n/**\n * The portal host directive for the contents of the tab.\n * @docs-private\n */\nexport declare class MatTabBodyPortal extends CdkPortalOutlet implements OnInit, OnDestroy {\n    private _host;\n    /** Subscription to events for when the tab body begins centering. */\n    private _centeringSub;\n    /** Subscription to events for when the tab body finishes leaving from center position. */\n    private _leavingSub;\n    constructor(componentFactoryResolver: ComponentFactoryResolver, viewContainerRef: ViewContainerRef, _host: MatTabBody);\n    /** Set initial visibility or set up subscription for changing visibility. */\n    ngOnInit(): void;\n    /** Clean up centering subscription. */\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTabBodyPortal>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatTabBodyPortal, \"[matTabBodyHost]\", never, {}, {}, never>;\n}\n/**\n * Base class with all of the `MatTabBody` functionality.\n * @docs-private\n */\nexport declare abstract class _MatTabBodyBase implements OnInit, OnDestroy {\n    private _elementRef;\n    private _dir;\n    /** Current position of the tab-body in the tab-group. Zero means that the tab is visible. */\n    private _positionIndex;\n    /** Subscription to the directionality change observable. */\n    private _dirChangeSubscription;\n    /** Tab body position state. Used by the animation trigger for the current state. */\n    _position: MatTabBodyPositionState;\n    /** Emits when an animation on the tab is complete. */\n    _translateTabComplete: Subject<AnimationEvent>;\n    /** Event emitted when the tab begins to animate towards the center as the active tab. */\n    readonly _onCentering: EventEmitter<number>;\n    /** Event emitted before the centering of the tab begins. */\n    readonly _beforeCentering: EventEmitter<boolean>;\n    /** Event emitted before the centering of the tab begins. */\n    readonly _afterLeavingCenter: EventEmitter<boolean>;\n    /** Event emitted when the tab completes its animation towards the center. */\n    readonly _onCentered: EventEmitter<void>;\n    /** The portal host inside of this container into which the tab body content will be loaded. */\n    abstract _portalHost: PortalHostDirective;\n    /** The tab body content to display. */\n    _content: TemplatePortal;\n    /** Position that will be used when the tab is immediately becoming visible after creation. */\n    origin: number;\n    /** Duration for the tab's animation. */\n    animationDuration: string;\n    /** The shifted index position of the tab body, where zero represents the active center tab. */\n    position: number;\n    constructor(_elementRef: ElementRef<HTMLElement>, _dir: Directionality, changeDetectorRef: ChangeDetectorRef);\n    /**\n     * After initialized, check if the content is centered and has an origin. If so, set the\n     * special position states that transition the tab from the left or right before centering.\n     */\n    ngOnInit(): void;\n    ngOnDestroy(): void;\n    _onTranslateTabStarted(event: AnimationEvent): void;\n    /** The text direction of the containing app. */\n    _getLayoutDirection(): Direction;\n    /** Whether the provided position state is considered center, regardless of origin. */\n    _isCenterPosition(position: MatTabBodyPositionState | string): boolean;\n    /** Computes the position state that will be used for the tab-body animation trigger. */\n    private _computePositionAnimationState;\n    /**\n     * Computes the position state based on the specified origin position. This is used if the\n     * tab is becoming visible immediately after creation.\n     */\n    private _computePositionFromOrigin;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<_MatTabBodyBase>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<_MatTabBodyBase, \"do-not-use-abstract-mat-tab-body-base\", never, { 'animationDuration': \"animationDuration\", 'position': \"position\", '_content': \"content\", 'origin': \"origin\" }, { '_onCentering': \"_onCentering\", '_beforeCentering': \"_beforeCentering\", '_afterLeavingCenter': \"_afterLeavingCenter\", '_onCentered': \"_onCentered\" }, never>;\n}\n/**\n * Wrapper for the contents of a tab.\n * @docs-private\n */\nexport declare class MatTabBody extends _MatTabBodyBase {\n    _portalHost: PortalHostDirective;\n    constructor(elementRef: ElementRef<HTMLElement>, dir: Directionality, changeDetectorRef: ChangeDetectorRef);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTabBody>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatTabBody, \"mat-tab-body\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=tab-body.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/tab-content.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { TemplateRef } from '@angular/core';\n/** Decorates the `ng-template` tags and reads out the template from it. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatTabContent {\n    template: TemplateRef<any>;\n    constructor(template: TemplateRef<any>);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTabContent>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatTabContent, \"[matTabContent]\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=tab-content.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/tab-group.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AfterContentChecked, AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, QueryList, InjectionToken } from '@angular/core';\nimport { CanColor, CanColorCtor, CanDisableRipple, CanDisableRippleCtor, ThemePalette } from '@angular/material/core';\nimport { MatTab } from './tab';\n/** A simple change event emitted on focus or selection changes. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatTabChangeEvent {\n    /** Index of the currently-selected tab. */\n    index: number;\n    /** Reference to the currently-selected tab. */\n    tab: MatTab;\n}\n/** Possible positions for the tab header. */\nexport declare type MatTabHeaderPosition = 'above' | 'below';\n/** Object that can be used to configure the default options for the tabs module. */\nexport interface MatTabsConfig {\n    /** Duration for the tab animation. Must be a valid CSS value (e.g. 600ms). */\n    animationDuration?: string;\n}\n/** Injection token that can be used to provide the default options the tabs module. */\nexport declare const MAT_TABS_CONFIG: InjectionToken<MatTabsConfig>;\n/** @docs-private */\ndeclare class MatTabGroupMixinBase {\n    _elementRef: ElementRef;\n    constructor(_elementRef: ElementRef);\n}\ndeclare const _MatTabGroupMixinBase: CanColorCtor & CanDisableRippleCtor & typeof MatTabGroupMixinBase;\ninterface MatTabGroupBaseHeader {\n    _alignInkBarToSelectedTab: () => void;\n    focusIndex: number;\n}\n/**\n * Base class with all of the `MatTabGroupBase` functionality.\n * @docs-private\n */\nexport declare abstract class _MatTabGroupBase extends _MatTabGroupMixinBase implements AfterContentInit, AfterContentChecked, OnDestroy, CanColor, CanDisableRipple {\n    private _changeDetectorRef;\n    _animationMode?: string | undefined;\n    abstract _tabs: QueryList<MatTab>;\n    abstract _tabBodyWrapper: ElementRef;\n    abstract _tabHeader: MatTabGroupBaseHeader;\n    /** The tab index that should be selected after the content has been checked. */\n    private _indexToSelect;\n    /** Snapshot of the height of the tab body wrapper before another tab is activated. */\n    private _tabBodyWrapperHeight;\n    /** Subscription to tabs being added/removed. */\n    private _tabsSubscription;\n    /** Subscription to changes in the tab labels. */\n    private _tabLabelSubscription;\n    /** Whether the tab group should grow to the size of the active tab. */\n    dynamicHeight: boolean;\n    private _dynamicHeight;\n    /** The index of the active tab. */\n    selectedIndex: number | null;\n    private _selectedIndex;\n    /** Position of the tab header. */\n    headerPosition: MatTabHeaderPosition;\n    /** Duration for the tab animation. Will be normalized to milliseconds if no units are set. */\n    animationDuration: string;\n    private _animationDuration;\n    /** Background color of the tab group. */\n    backgroundColor: ThemePalette;\n    private _backgroundColor;\n    /** Output to enable support for two-way binding on `[(selectedIndex)]` */\n    readonly selectedIndexChange: EventEmitter<number>;\n    /** Event emitted when focus has changed within a tab group. */\n    readonly focusChange: EventEmitter<MatTabChangeEvent>;\n    /** Event emitted when the body animation has completed */\n    readonly animationDone: EventEmitter<void>;\n    /** Event emitted when the tab selection has changed. */\n    readonly selectedTabChange: EventEmitter<MatTabChangeEvent>;\n    private _groupId;\n    constructor(elementRef: ElementRef, _changeDetectorRef: ChangeDetectorRef, defaultConfig?: MatTabsConfig, _animationMode?: string | undefined);\n    /**\n     * After the content is checked, this component knows what tabs have been defined\n     * and what the selected index should be. This is where we can know exactly what position\n     * each tab should be in according to the new selected index, and additionally we know how\n     * a new selected tab should transition in (from the left or right).\n     */\n    ngAfterContentChecked(): void;\n    ngAfterContentInit(): void;\n    ngOnDestroy(): void;\n    /** Re-aligns the ink bar to the selected tab element. */\n    realignInkBar(): void;\n    _focusChanged(index: number): void;\n    private _createChangeEvent;\n    /**\n     * Subscribes to changes in the tab labels. This is needed, because the @Input for the label is\n     * on the MatTab component, whereas the data binding is inside the MatTabGroup. In order for the\n     * binding to be updated, we need to subscribe to changes in it and trigger change detection\n     * manually.\n     */\n    private _subscribeToTabLabels;\n    /** Clamps the given index to the bounds of 0 and the tabs length. */\n    private _clampTabIndex;\n    /** Returns a unique id for each tab label element */\n    _getTabLabelId(i: number): string;\n    /** Returns a unique id for each tab content element */\n    _getTabContentId(i: number): string;\n    /**\n     * Sets the height of the body wrapper to the height of the activating tab if dynamic\n     * height property is true.\n     */\n    _setTabBodyWrapperHeight(tabHeight: number): void;\n    /** Removes the height of the tab body wrapper. */\n    _removeTabBodyWrapperHeight(): void;\n    /** Handle click events, setting new selected index if appropriate. */\n    _handleClick(tab: MatTab, tabHeader: MatTabGroupBaseHeader, index: number): void;\n    /** Retrieves the tabindex for the tab. */\n    _getTabIndex(tab: MatTab, idx: number): number | null;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<_MatTabGroupBase>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<_MatTabGroupBase, \"do-not-use-abstract-mat-tab-group-base\", never, { 'headerPosition': \"headerPosition\", 'animationDuration': \"animationDuration\", 'dynamicHeight': \"dynamicHeight\", 'selectedIndex': \"selectedIndex\", 'backgroundColor': \"backgroundColor\" }, { 'selectedIndexChange': \"selectedIndexChange\", 'focusChange': \"focusChange\", 'animationDone': \"animationDone\", 'selectedTabChange': \"selectedTabChange\" }, never>;\n}\n/**\n * Material design tab-group component. Supports basic tab pairs (label + content) and includes\n * animated ink-bar, keyboard navigation, and screen reader.\n * See: https://material.io/design/components/tabs.html\n */\nexport declare class MatTabGroup extends _MatTabGroupBase {\n    _tabs: QueryList<MatTab>;\n    _tabBodyWrapper: ElementRef;\n    _tabHeader: MatTabGroupBaseHeader;\n    constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, defaultConfig?: MatTabsConfig, animationMode?: string);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTabGroup>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatTabGroup, \"mat-tab-group\", [\"matTabGroup\"], { 'color': \"color\", 'disableRipple': \"disableRipple\" }, {}, [\"_tabs\"]>;\n}\nexport {};\n\n//# sourceMappingURL=tab-group.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/tab-header.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { AfterContentChecked, AfterContentInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, QueryList, AfterViewInit } from '@angular/core';\nimport { MatInkBar } from './ink-bar';\nimport { MatTabLabelWrapper } from './tab-label-wrapper';\nimport { Platform } from '@angular/cdk/platform';\nimport { MatPaginatedTabHeader } from './paginated-tab-header';\n/**\n * Base class with all of the `MatTabHeader` functionality.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare abstract class _MatTabHeaderBase extends MatPaginatedTabHeader implements AfterContentChecked, AfterContentInit, AfterViewInit, OnDestroy {\n    /** Whether the ripple effect is disabled or not. */\n    disableRipple: any;\n    private _disableRipple;\n    constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, viewportRuler: ViewportRuler, dir: Directionality, ngZone: NgZone, platform: Platform, animationMode?: string);\n    protected _itemSelected(event: KeyboardEvent): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<_MatTabHeaderBase>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<_MatTabHeaderBase, \"do-not-use-abstract-mat-tab-header-base\", never, { 'disableRipple': \"disableRipple\" }, {}, never>;\n}\n/**\n * The header of the tab group which displays a list of all the tabs in the tab group. Includes\n * an ink bar that follows the currently selected tab. When the tabs list's width exceeds the\n * width of the header container, then arrows will be displayed to allow the user to scroll\n * left and right across the header.\n * @docs-private\n */\nexport declare class MatTabHeader extends _MatTabHeaderBase {\n    _items: QueryList<MatTabLabelWrapper>;\n    _inkBar: MatInkBar;\n    _tabListContainer: ElementRef;\n    _tabList: ElementRef;\n    _nextPaginator: ElementRef<HTMLElement>;\n    _previousPaginator: ElementRef<HTMLElement>;\n    constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, viewportRuler: ViewportRuler, dir: Directionality, ngZone: NgZone, platform: Platform, animationMode?: string);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTabHeader>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatTabHeader, \"mat-tab-header\", never, { 'selectedIndex': \"selectedIndex\" }, { 'selectFocusedIndex': \"selectFocusedIndex\", 'indexFocused': \"indexFocused\" }, [\"_items\"]>;\n}\n\n//# sourceMappingURL=tab-header.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/tab-label-wrapper.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ElementRef } from '@angular/core';\nimport { CanDisable, CanDisableCtor } from '@angular/material/core';\n/** @docs-private */\nimport * as ɵngcc0 from '@angular/core';\ndeclare class MatTabLabelWrapperBase {\n}\ndeclare const _MatTabLabelWrapperMixinBase: CanDisableCtor & typeof MatTabLabelWrapperBase;\n/**\n * Used in the `mat-tab-group` view to display tab labels.\n * @docs-private\n */\nexport declare class MatTabLabelWrapper extends _MatTabLabelWrapperMixinBase implements CanDisable {\n    elementRef: ElementRef;\n    constructor(elementRef: ElementRef);\n    /** Sets focus on the wrapper element */\n    focus(): void;\n    getOffsetLeft(): number;\n    getOffsetWidth(): number;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTabLabelWrapper>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatTabLabelWrapper, \"[matTabLabelWrapper]\", never, { 'disabled': \"disabled\" }, {}, never>;\n}\nexport {};\n\n//# sourceMappingURL=tab-label-wrapper.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/tab-label.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkPortal } from '@angular/cdk/portal';\n/** Used to flag tab labels for use with the portal directive */\nimport * as ɵngcc0 from '@angular/core';\nexport declare class MatTabLabel extends CdkPortal {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTabLabel>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatTabLabel, \"[mat-tab-label], [matTabLabel]\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=tab-label.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/tab-nav-bar/index.d.ts",
      "node_modules/@angular/material/tabs/tab-nav-bar/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './tab-nav-bar';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/tab-nav-bar/tab-nav-bar.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Platform } from '@angular/cdk/platform';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { AfterContentChecked, AfterContentInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, QueryList } from '@angular/core';\nimport { CanDisable, CanDisableCtor, CanDisableRipple, CanDisableRippleCtor, HasTabIndex, HasTabIndexCtor, RippleConfig, RippleGlobalOptions, RippleTarget, ThemePalette } from '@angular/material/core';\nimport { FocusMonitor, FocusableOption } from '@angular/cdk/a11y';\nimport { MatInkBar } from '../ink-bar';\nimport { MatPaginatedTabHeader, MatPaginatedTabHeaderItem } from '../paginated-tab-header';\n/**\n * Base class with all of the `MatTabNav` functionality.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nexport declare abstract class _MatTabNavBase extends MatPaginatedTabHeader implements AfterContentChecked, AfterContentInit, OnDestroy {\n    /** Query list of all tab links of the tab navigation. */\n    abstract _items: QueryList<MatPaginatedTabHeaderItem & {\n        active: boolean;\n    }>;\n    /** Background color of the tab nav. */\n    backgroundColor: ThemePalette;\n    private _backgroundColor;\n    /** Whether the ripple effect is disabled or not. */\n    disableRipple: any;\n    private _disableRipple;\n    /** Theme color of the nav bar. */\n    color: ThemePalette;\n    constructor(elementRef: ElementRef, dir: Directionality, ngZone: NgZone, changeDetectorRef: ChangeDetectorRef, viewportRuler: ViewportRuler, \n    /**\n     * @deprecated @breaking-change 9.0.0 `platform` parameter to become required.\n     */\n    platform?: Platform, animationMode?: string);\n    protected _itemSelected(): void;\n    ngAfterContentInit(): void;\n    /**\n     * Notifies the component that the active link has been changed.\n     * @breaking-change 8.0.0 `element` parameter to be removed.\n     */\n    updateActiveLink(_element?: ElementRef): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<_MatTabNavBase>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<_MatTabNavBase, \"do-not-use-abstract-mat-tab-nav-base\", never, { 'color': \"color\", 'backgroundColor': \"backgroundColor\", 'disableRipple': \"disableRipple\" }, {}, never>;\n}\n/**\n * Navigation component matching the styles of the tab group header.\n * Provides anchored navigation with animated ink bar.\n */\nexport declare class MatTabNav extends _MatTabNavBase {\n    _items: QueryList<MatTabLink>;\n    _inkBar: MatInkBar;\n    _tabListContainer: ElementRef;\n    _tabList: ElementRef;\n    _nextPaginator: ElementRef<HTMLElement>;\n    _previousPaginator: ElementRef<HTMLElement>;\n    constructor(elementRef: ElementRef, dir: Directionality, ngZone: NgZone, changeDetectorRef: ChangeDetectorRef, viewportRuler: ViewportRuler, \n    /**\n     * @deprecated @breaking-change 9.0.0 `platform` parameter to become required.\n     */\n    platform?: Platform, animationMode?: string);\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTabNav>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatTabNav, \"[mat-tab-nav-bar]\", [\"matTabNavBar\", \"matTabNav\"], { 'color': \"color\" }, {}, [\"_items\"]>;\n}\ndeclare class MatTabLinkMixinBase {\n}\ndeclare const _MatTabLinkMixinBase: HasTabIndexCtor & CanDisableRippleCtor & CanDisableCtor & typeof MatTabLinkMixinBase;\n/** Base class with all of the `MatTabLink` functionality. */\nexport declare class _MatTabLinkBase extends _MatTabLinkMixinBase implements OnDestroy, CanDisable, CanDisableRipple, HasTabIndex, RippleTarget, FocusableOption {\n    private _tabNavBar;\n    elementRef: ElementRef;\n    private _focusMonitor;\n    /** Whether the tab link is active or not. */\n    protected _isActive: boolean;\n    /** Whether the link is active. */\n    active: boolean;\n    /**\n     * Ripple configuration for ripples that are launched on pointer down. The ripple config\n     * is set to the global ripple options since we don't have any configurable options for\n     * the tab link ripples.\n     * @docs-private\n     */\n    rippleConfig: RippleConfig & RippleGlobalOptions;\n    /**\n     * Whether ripples are disabled on interaction.\n     * @docs-private\n     */\n    readonly rippleDisabled: boolean;\n    constructor(_tabNavBar: _MatTabNavBase, elementRef: ElementRef, globalRippleOptions: RippleGlobalOptions | null, tabIndex: string, _focusMonitor: FocusMonitor, animationMode?: string);\n    focus(): void;\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<_MatTabLinkBase>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<_MatTabLinkBase, \"do-not-use-abstract-mat-tab-link-base\", never, { 'active': \"active\" }, {}, never>;\n}\n/**\n * Link inside of a `mat-tab-nav-bar`.\n */\nexport declare class MatTabLink extends _MatTabLinkBase implements OnDestroy {\n    /** Reference to the RippleRenderer for the tab-link. */\n    private _tabLinkRipple;\n    constructor(tabNavBar: MatTabNav, elementRef: ElementRef, ngZone: NgZone, platform: Platform, globalRippleOptions: RippleGlobalOptions | null, tabIndex: string, focusMonitor: FocusMonitor, animationMode?: string);\n    ngOnDestroy(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTabLink>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatTabLink, \"[mat-tab-link], [matTabLink]\", [\"matTabLink\"], { 'disabled': \"disabled\", 'disableRipple': \"disableRipple\", 'tabIndex': \"tabIndex\" }, {}, never>;\n}\nexport {};\n\n//# sourceMappingURL=tab-nav-bar.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/tab.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { CanDisable, CanDisableCtor } from '@angular/material/core';\nimport { Subject } from 'rxjs';\nimport { MatTabLabel } from './tab-label';\n/** @docs-private */\nimport * as ɵngcc0 from '@angular/core';\ndeclare class MatTabBase {\n}\ndeclare const _MatTabMixinBase: CanDisableCtor & typeof MatTabBase;\nexport declare class MatTab extends _MatTabMixinBase implements OnInit, CanDisable, OnChanges, OnDestroy {\n    private _viewContainerRef;\n    /** Content for the tab label given by `<ng-template mat-tab-label>`. */\n    templateLabel: MatTabLabel;\n    /**\n     * Template provided in the tab content that will be used if present, used to enable lazy-loading\n     */\n    _explicitContent: TemplateRef<any>;\n    /** Template inside the MatTab view that contains an `<ng-content>`. */\n    _implicitContent: TemplateRef<any>;\n    /** Plain text label for the tab, used when there is no template label. */\n    textLabel: string;\n    /** Aria label for the tab. */\n    ariaLabel: string;\n    /**\n     * Reference to the element that the tab is labelled by.\n     * Will be cleared if `aria-label` is set at the same time.\n     */\n    ariaLabelledby: string;\n    /** Portal that will be the hosted content of the tab */\n    private _contentPortal;\n    /** @docs-private */\n    readonly content: TemplatePortal | null;\n    /** Emits whenever the internal state of the tab changes. */\n    readonly _stateChanges: Subject<void>;\n    /**\n     * The relatively indexed position where 0 represents the center, negative is left, and positive\n     * represents the right.\n     */\n    position: number | null;\n    /**\n     * The initial relatively index origin of the tab if it was created and selected after there\n     * was already a selected tab. Provides context of what position the tab should originate from.\n     */\n    origin: number | null;\n    /**\n     * Whether the tab is currently active.\n     */\n    isActive: boolean;\n    constructor(_viewContainerRef: ViewContainerRef);\n    ngOnChanges(changes: SimpleChanges): void;\n    ngOnDestroy(): void;\n    ngOnInit(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTab>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatTab, \"mat-tab\", [\"matTab\"], { 'disabled': \"disabled\", 'textLabel': \"label\", 'ariaLabel': \"aria-label\", 'ariaLabelledby': \"aria-labelledby\" }, {}, [\"templateLabel\", \"_explicitContent\"]>;\n}\nexport {};\n\n//# sourceMappingURL=tab.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/tabs-animations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationTriggerMetadata } from '@angular/animations';\n/**\n * Animations used by the Material tabs.\n * @docs-private\n */\nexport declare const matTabsAnimations: {\n    readonly translateTab: AnimationTriggerMetadata;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/tabs-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './tab-group';\nimport * as ɵngcc2 from './tab-label';\nimport * as ɵngcc3 from './tab';\nimport * as ɵngcc4 from './ink-bar';\nimport * as ɵngcc5 from './tab-label-wrapper';\nimport * as ɵngcc6 from './tab-nav-bar/tab-nav-bar';\nimport * as ɵngcc7 from './tab-body';\nimport * as ɵngcc8 from './tab-header';\nimport * as ɵngcc9 from './tab-content';\nimport * as ɵngcc10 from './paginated-tab-header';\nimport * as ɵngcc11 from '@angular/common';\nimport * as ɵngcc12 from '@angular/material/core';\nimport * as ɵngcc13 from '@angular/cdk/portal';\nimport * as ɵngcc14 from '@angular/cdk/observers';\nimport * as ɵngcc15 from '@angular/cdk/a11y';\nexport declare class MatTabsModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatTabsModule, [typeof ɵngcc1.MatTabGroup, typeof ɵngcc2.MatTabLabel, typeof ɵngcc3.MatTab, typeof ɵngcc4.MatInkBar, typeof ɵngcc5.MatTabLabelWrapper, typeof ɵngcc6.MatTabNav, typeof ɵngcc6.MatTabLink, typeof ɵngcc7.MatTabBody, typeof ɵngcc7.MatTabBodyPortal, typeof ɵngcc8.MatTabHeader, typeof ɵngcc9.MatTabContent, typeof ɵngcc10.MatPaginatedTabHeader, typeof ɵngcc1._MatTabGroupBase, typeof ɵngcc6._MatTabNavBase, typeof ɵngcc7._MatTabBodyBase, typeof ɵngcc8._MatTabHeaderBase, typeof ɵngcc6._MatTabLinkBase], [typeof ɵngcc11.CommonModule, typeof ɵngcc12.MatCommonModule, typeof ɵngcc13.PortalModule, typeof ɵngcc12.MatRippleModule, typeof ɵngcc14.ObserversModule, typeof ɵngcc15.A11yModule], [typeof ɵngcc12.MatCommonModule, typeof ɵngcc1.MatTabGroup, typeof ɵngcc2.MatTabLabel, typeof ɵngcc3.MatTab, typeof ɵngcc6.MatTabNav, typeof ɵngcc6.MatTabLink, typeof ɵngcc9.MatTabContent]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatTabsModule>;\n}\n\n//# sourceMappingURL=tabs-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/testing/index.d.ts",
      "node_modules/@angular/material/tabs/testing/index.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/testing/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './tab-group-harness';\nexport * from './tab-harness';\nexport * from './tab-harness-filters';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/testing/tab-group-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { TabGroupHarnessFilters } from './tab-harness-filters';\nimport { MatTabHarness } from './tab-harness';\n/**\n * Harness for interacting with a standard mat-tab-group in tests.\n * @dynamic\n */\nexport declare class MatTabGroupHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a radio-button with\n     * specific attributes.\n     * @param options Options for narrowing the search\n     *   - `selector` finds a tab-group whose host element matches the given selector.\n     *   - `selectedTabLabel` finds a tab-group with a selected tab that matches the\n     *      specified tab label.\n     * @return a `HarnessPredicate` configured with the given options.\n     */\n    static with(options?: TabGroupHarnessFilters): HarnessPredicate<MatTabGroupHarness>;\n    private _tabs;\n    /** Gets all tabs of the tab group. */\n    getTabs(): Promise<MatTabHarness[]>;\n    /** Gets the selected tab of the tab group. */\n    getSelectedTab(): Promise<MatTabHarness>;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/testing/tab-harness-filters.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { BaseHarnessFilters } from '@angular/cdk/testing';\nexport interface TabHarnessFilters extends BaseHarnessFilters {\n}\nexport interface TabGroupHarnessFilters extends BaseHarnessFilters {\n    selectedTabLabel?: string | RegExp;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tabs/testing/tab-harness.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ComponentHarness, HarnessPredicate, TestElement } from '@angular/cdk/testing';\nimport { TabHarnessFilters } from './tab-harness-filters';\n/**\n * Harness for interacting with a standard Angular Material tab-label in tests.\n * @dynamic\n */\nexport declare class MatTabHarness extends ComponentHarness {\n    static hostSelector: string;\n    /**\n     * Gets a `HarnessPredicate` that can be used to search for a tab with specific attributes.\n     */\n    static with(options?: TabHarnessFilters): HarnessPredicate<MatTabHarness>;\n    private _rootLocatorFactory;\n    /** Gets the label of the tab. */\n    getLabel(): Promise<string>;\n    /** Gets the aria label of the tab. */\n    getAriaLabel(): Promise<string | null>;\n    /** Gets the value of the \"aria-labelledby\" attribute. */\n    getAriaLabelledby(): Promise<string | null>;\n    /**\n     * Gets the content element of the given tab. Note that the element will be empty\n     * until the tab is selected. This is an implementation detail of the tab-group\n     * in order to avoid rendering of non-active tabs.\n     */\n    getContentElement(): Promise<TestElement>;\n    /** Whether the tab is selected. */\n    isSelected(): Promise<boolean>;\n    /** Whether the tab is disabled. */\n    isDisabled(): Promise<boolean>;\n    /**\n     * Selects the given tab by clicking on the label. Tab cannot be\n     * selected if disabled.\n     */\n    select(): Promise<void>;\n    /** Gets the element id for the content of the current tab. */\n    private _getContentId;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/toolbar/index.d.ts",
      "node_modules/@angular/material/toolbar/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/toolbar/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './toolbar-module';\nexport * from './toolbar';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/toolbar/toolbar-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './toolbar';\nimport * as ɵngcc2 from '@angular/material/core';\nexport declare class MatToolbarModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatToolbarModule, [typeof ɵngcc1.MatToolbar, typeof ɵngcc1.MatToolbarRow], [typeof ɵngcc2.MatCommonModule], [typeof ɵngcc1.MatToolbar, typeof ɵngcc1.MatToolbarRow, typeof ɵngcc2.MatCommonModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatToolbarModule>;\n}\n\n//# sourceMappingURL=toolbar-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/toolbar/toolbar.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Platform } from '@angular/cdk/platform';\nimport { AfterViewInit, ElementRef, QueryList } from '@angular/core';\nimport { CanColor, CanColorCtor } from '@angular/material/core';\n/** @docs-private */\nimport * as ɵngcc0 from '@angular/core';\ndeclare class MatToolbarBase {\n    _elementRef: ElementRef;\n    constructor(_elementRef: ElementRef);\n}\ndeclare const _MatToolbarMixinBase: CanColorCtor & typeof MatToolbarBase;\nexport declare class MatToolbarRow {\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatToolbarRow>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatToolbarRow, \"mat-toolbar-row\", [\"matToolbarRow\"], {}, {}, never>;\n}\nexport declare class MatToolbar extends _MatToolbarMixinBase implements CanColor, AfterViewInit {\n    private _platform;\n    private _document;\n    /** Reference to all toolbar row elements that have been projected. */\n    _toolbarRows: QueryList<MatToolbarRow>;\n    constructor(elementRef: ElementRef, _platform: Platform, document?: any);\n    ngAfterViewInit(): void;\n    /**\n     * Throws an exception when developers are attempting to combine the different toolbar row modes.\n     */\n    private _checkToolbarMixedModes;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatToolbar>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<MatToolbar, \"mat-toolbar\", [\"matToolbar\"], { 'color': \"color\" }, {}, [\"_toolbarRows\"]>;\n}\n/**\n * Throws an exception when attempting to combine the different toolbar row modes.\n * @docs-private\n */\nexport declare function throwToolbarMixedModesError(): void;\nexport {};\n\n//# sourceMappingURL=toolbar.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tooltip/index.d.ts",
      "node_modules/@angular/material/tooltip/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n\n//# sourceMappingURL=index.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tooltip/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './tooltip-module';\nexport * from './tooltip';\nexport * from './tooltip-animations';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tooltip/tooltip-animations.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationTriggerMetadata } from '@angular/animations';\n/**\n * Animations used by MatTooltip.\n * @docs-private\n */\nexport declare const matTooltipAnimations: {\n    readonly tooltipState: AnimationTriggerMetadata;\n};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tooltip/tooltip-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './tooltip';\nimport * as ɵngcc2 from '@angular/cdk/a11y';\nimport * as ɵngcc3 from '@angular/common';\nimport * as ɵngcc4 from '@angular/cdk/overlay';\nimport * as ɵngcc5 from '@angular/material/core';\nexport declare class MatTooltipModule {\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<MatTooltipModule, [typeof ɵngcc1.MatTooltip, typeof ɵngcc1.TooltipComponent], [typeof ɵngcc2.A11yModule, typeof ɵngcc3.CommonModule, typeof ɵngcc4.OverlayModule, typeof ɵngcc5.MatCommonModule], [typeof ɵngcc1.MatTooltip, typeof ɵngcc1.TooltipComponent, typeof ɵngcc5.MatCommonModule]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<MatTooltipModule>;\n}\n\n//# sourceMappingURL=tooltip-module.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tooltip/tooltip.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { AnimationEvent } from '@angular/animations';\nimport { AriaDescriber, FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { OriginConnectionPosition, Overlay, OverlayConnectionPosition, OverlayRef, ScrollStrategy } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { ChangeDetectorRef, ElementRef, InjectionToken, NgZone, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n/** Possible positions for a tooltip. */\nimport * as ɵngcc0 from '@angular/core';\nexport declare type TooltipPosition = 'left' | 'right' | 'above' | 'below' | 'before' | 'after';\n/**\n * Options for how the tooltip trigger should handle touch gestures.\n * See `MatTooltip.touchGestures` for more information.\n */\nexport declare type TooltipTouchGestures = 'auto' | 'on' | 'off';\n/** Possible visibility states of a tooltip. */\nexport declare type TooltipVisibility = 'initial' | 'visible' | 'hidden';\n/** Time in ms to throttle repositioning after scroll events. */\nexport declare const SCROLL_THROTTLE_MS = 20;\n/** CSS class that will be attached to the overlay panel. */\nexport declare const TOOLTIP_PANEL_CLASS = \"mat-tooltip-panel\";\n/**\n * Creates an error to be thrown if the user supplied an invalid tooltip position.\n * @docs-private\n */\nexport declare function getMatTooltipInvalidPositionError(position: string): Error;\n/** Injection token that determines the scroll handling while a tooltip is visible. */\nexport declare const MAT_TOOLTIP_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;\n/** @docs-private */\nexport declare function MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY(overlay: Overlay): () => ScrollStrategy;\n/** @docs-private */\nexport declare const MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER: {\n    provide: InjectionToken<() => ScrollStrategy>;\n    deps: (typeof Overlay)[];\n    useFactory: typeof MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY;\n};\n/** Default `matTooltip` options that can be overridden. */\nexport interface MatTooltipDefaultOptions {\n    showDelay: number;\n    hideDelay: number;\n    touchendHideDelay: number;\n    touchGestures?: TooltipTouchGestures;\n    position?: TooltipPosition;\n}\n/** Injection token to be used to override the default options for `matTooltip`. */\nexport declare const MAT_TOOLTIP_DEFAULT_OPTIONS: InjectionToken<MatTooltipDefaultOptions>;\n/** @docs-private */\nexport declare function MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY(): MatTooltipDefaultOptions;\n/**\n * Directive that attaches a material design tooltip to the host element. Animates the showing and\n * hiding of a tooltip provided position (defaults to below the element).\n *\n * https://material.io/design/components/tooltips.html\n */\nexport declare class MatTooltip implements OnDestroy, OnInit {\n    private _overlay;\n    private _elementRef;\n    private _scrollDispatcher;\n    private _viewContainerRef;\n    private _ngZone;\n    private _platform;\n    private _ariaDescriber;\n    private _focusMonitor;\n    private _dir;\n    private _defaultOptions;\n    _overlayRef: OverlayRef | null;\n    _tooltipInstance: TooltipComponent | null;\n    private _portal;\n    private _position;\n    private _disabled;\n    private _tooltipClass;\n    private _scrollStrategy;\n    /** Allows the user to define the position of the tooltip relative to the parent element */\n    position: TooltipPosition;\n    /** Disables the display of the tooltip. */\n    disabled: boolean;\n    /** The default delay in ms before showing the tooltip after show is called */\n    showDelay: number;\n    /** The default delay in ms before hiding the tooltip after hide is called */\n    hideDelay: number;\n    /**\n     * How touch gestures should be handled by the tooltip. On touch devices the tooltip directive\n     * uses a long press gesture to show and hide, however it can conflict with the native browser\n     * gestures. To work around the conflict, Angular Material disables native gestures on the\n     * trigger, but that might not be desirable on particular elements (e.g. inputs and draggable\n     * elements). The different values for this option configure the touch event handling as follows:\n     * - `auto` - Enables touch gestures for all elements, but tries to avoid conflicts with native\n     *   browser gestures on particular elements. In particular, it allows text selection on inputs\n     *   and textareas, and preserves the native browser dragging on elements marked as `draggable`.\n     * - `on` - Enables touch gestures for all elements and disables native\n     *   browser gestures with no exceptions.\n     * - `off` - Disables touch gestures. Note that this will prevent the tooltip from\n     *   showing on touch devices.\n     */\n    touchGestures: TooltipTouchGestures;\n    /** The message to be displayed in the tooltip */\n    message: string;\n    private _message;\n    /** Classes to be passed to the tooltip. Supports the same syntax as `ngClass`. */\n    tooltipClass: string | string[] | Set<string> | {\n        [key: string]: any;\n    };\n    /** Manually-bound passive event listeners. */\n    private _passiveListeners;\n    /** Timer started at the last `touchstart` event. */\n    private _touchstartTimeout;\n    /** Emits when the component is destroyed. */\n    private readonly _destroyed;\n    constructor(_overlay: Overlay, _elementRef: ElementRef<HTMLElement>, _scrollDispatcher: ScrollDispatcher, _viewContainerRef: ViewContainerRef, _ngZone: NgZone, _platform: Platform, _ariaDescriber: AriaDescriber, _focusMonitor: FocusMonitor, scrollStrategy: any, _dir: Directionality, _defaultOptions: MatTooltipDefaultOptions, \n    /**\n     * @deprecated _hammerLoader parameter to be removed.\n     * @breaking-change 9.0.0\n     */\n    _hammerLoader?: any);\n    /**\n     * Setup styling-specific things\n     */\n    ngOnInit(): void;\n    /**\n     * Dispose the tooltip when destroyed.\n     */\n    ngOnDestroy(): void;\n    /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show or 0ms if no input */\n    show(delay?: number): void;\n    /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide or 0ms if no input */\n    hide(delay?: number): void;\n    /** Shows/hides the tooltip */\n    toggle(): void;\n    /** Returns true if the tooltip is currently visible to the user */\n    _isTooltipVisible(): boolean;\n    /** Handles the keydown events on the host element. */\n    _handleKeydown(e: KeyboardEvent): void;\n    /** Create the overlay config and position strategy */\n    private _createOverlay;\n    /** Detaches the currently-attached tooltip. */\n    private _detach;\n    /** Updates the position of the current tooltip. */\n    private _updatePosition;\n    /**\n     * Returns the origin position and a fallback position based on the user's position preference.\n     * The fallback position is the inverse of the origin (e.g. `'below' -> 'above'`).\n     */\n    _getOrigin(): {\n        main: OriginConnectionPosition;\n        fallback: OriginConnectionPosition;\n    };\n    /** Returns the overlay position and a fallback position based on the user's preference */\n    _getOverlayPosition(): {\n        main: OverlayConnectionPosition;\n        fallback: OverlayConnectionPosition;\n    };\n    /** Updates the tooltip message and repositions the overlay according to the new message length */\n    private _updateTooltipMessage;\n    /** Updates the tooltip class */\n    private _setTooltipClass;\n    /** Inverts an overlay position. */\n    private _invertPosition;\n    /** Binds the pointer events to the tooltip trigger. */\n    private _setupPointerEvents;\n    /** Disables the native browser gestures, based on how the tooltip has been configured. */\n    private _disableNativeGesturesIfNecessary;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MatTooltip>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MatTooltip, \"[matTooltip]\", [\"matTooltip\"], { 'showDelay': \"matTooltipShowDelay\", 'hideDelay': \"matTooltipHideDelay\", 'touchGestures': \"matTooltipTouchGestures\", 'position': \"matTooltipPosition\", 'disabled': \"matTooltipDisabled\", 'message': \"matTooltip\", 'tooltipClass': \"matTooltipClass\" }, {}, never>;\n}\n/**\n * Internal component that wraps the tooltip's content.\n * @docs-private\n */\nexport declare class TooltipComponent implements OnDestroy {\n    private _changeDetectorRef;\n    private _breakpointObserver;\n    /** Message to display in the tooltip */\n    message: string;\n    /** Classes to be added to the tooltip. Supports the same syntax as `ngClass`. */\n    tooltipClass: string | string[] | Set<string> | {\n        [key: string]: any;\n    };\n    /** The timeout ID of any current timer set to show the tooltip */\n    _showTimeoutId: number | null;\n    /** The timeout ID of any current timer set to hide the tooltip */\n    _hideTimeoutId: number | null;\n    /** Property watched by the animation framework to show or hide the tooltip */\n    _visibility: TooltipVisibility;\n    /** Whether interactions on the page should close the tooltip */\n    private _closeOnInteraction;\n    /** Subject for notifying that the tooltip has been hidden from the view */\n    private readonly _onHide;\n    /** Stream that emits whether the user has a handset-sized display.  */\n    _isHandset: Observable<BreakpointState>;\n    constructor(_changeDetectorRef: ChangeDetectorRef, _breakpointObserver: BreakpointObserver);\n    /**\n     * Shows the tooltip with an animation originating from the provided origin\n     * @param delay Amount of milliseconds to the delay showing the tooltip.\n     */\n    show(delay: number): void;\n    /**\n     * Begins the animation to hide the tooltip after the provided delay in ms.\n     * @param delay Amount of milliseconds to delay showing the tooltip.\n     */\n    hide(delay: number): void;\n    /** Returns an observable that notifies when the tooltip has been hidden from view. */\n    afterHidden(): Observable<void>;\n    /** Whether the tooltip is being displayed. */\n    isVisible(): boolean;\n    ngOnDestroy(): void;\n    _animationStart(): void;\n    _animationDone(event: AnimationEvent): void;\n    /**\n     * Interactions on the HTML body should close the tooltip immediately as defined in the\n     * material design spec.\n     * https://material.io/design/components/tooltips.html#behavior\n     */\n    _handleBodyInteraction(): void;\n    /**\n     * Marks that the tooltip needs to be checked in the next change detection run.\n     * Mainly used for rendering the initial text before positioning a tooltip, which\n     * can be problematic in components with OnPush change detection.\n     */\n    _markForCheck(): void;\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<TooltipComponent>;\n    static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<TooltipComponent, \"mat-tooltip-component\", never, {}, {}, never>;\n}\n\n//# sourceMappingURL=tooltip.d.ts.map"
  },
  {
    "paths": [
      "node_modules/@angular/material/tree/data-source/flat-data-source.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { FlatTreeControl, TreeControl } from '@angular/cdk/tree';\nimport { BehaviorSubject, Observable } from 'rxjs';\n/**\n * Tree flattener to convert a normal type of node to node with children & level information.\n * Transform nested nodes of type `T` to flattened nodes of type `F`.\n *\n * For example, the input data of type `T` is nested, and contains its children data:\n *   SomeNode: {\n *     key: 'Fruits',\n *     children: [\n *       NodeOne: {\n *         key: 'Apple',\n *       },\n *       NodeTwo: {\n *        key: 'Pear',\n *      }\n *    ]\n *  }\n *  After flattener flatten the tree, the structure will become\n *  SomeNode: {\n *    key: 'Fruits',\n *    expandable: true,\n *    level: 1\n *  },\n *  NodeOne: {\n *    key: 'Apple',\n *    expandable: false,\n *    level: 2\n *  },\n *  NodeTwo: {\n *   key: 'Pear',\n *   expandable: false,\n *   level: 2\n * }\n * and the output flattened type is `F` with additional information.\n */\nexport declare class MatTreeFlattener<T, F> {\n    transformFunction: (node: T, level: number) => F;\n    getLevel: (node: F) => number;\n    isExpandable: (node: F) => boolean;\n    getChildren: (node: T) => Observable<T[]> | T[] | undefined | null;\n    constructor(transformFunction: (node: T, level: number) => F, getLevel: (node: F) => number, isExpandable: (node: F) => boolean, getChildren: (node: T) => Observable<T[]> | T[] | undefined | null);\n    _flattenNode(node: T, level: number, resultNodes: F[], parentMap: boolean[]): F[];\n    _flattenChildren(children: T[], level: number, resultNodes: F[], parentMap: boolean[]): void;\n    /**\n     * Flatten a list of node type T to flattened version of node F.\n     * Please note that type T may be nested, and the length of `structuredData` may be different\n     * from that of returned list `F[]`.\n     */\n    flattenNodes(structuredData: T[]): F[];\n    /**\n     * Expand flattened node with current expansion status.\n     * The returned list may have different length.\n     */\n    expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F>): F[];\n}\n/**\n * Data source for flat tree.\n * The data source need to handle expansion/collapsion of the tree node and change the data feed\n * to `MatTree`.\n * The nested tree nodes of type `T` are flattened through `MatTreeFlattener`, and converted\n * to type `F` for `MatTree` to consume.\n */\nexport declare class MatTreeFlatDataSource<T, F> extends DataSource<F> {\n    private _treeControl;\n    private _treeFlattener;\n    _flattenedData: BehaviorSubject<F[]>;\n    _expandedData: BehaviorSubject<F[]>;\n    _data: BehaviorSubject<T[]>;\n    data: T[];\n    constructor(_treeControl: FlatTreeControl<F>, _treeFlattener: MatTreeFlattener<T, F>, initialData?: T[]);\n    connect(collectionViewer: CollectionViewer): Observable<F[]>;\n    disconnect(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tree/data-source/nested-data-source.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, Observable } from 'rxjs';\n/**\n * Data source for nested tree.\n *\n * The data source for nested tree doesn't have to consider node flattener, or the way to expand\n * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.\n */\nexport declare class MatTreeNestedDataSource<T> extends DataSource<T> {\n    _data: BehaviorSubject<T[]>;\n    /**\n     * Data for the nested tree\n     */\n    data: T[];\n    connect(collectionViewer: CollectionViewer): Observable<T[]>;\n    disconnect(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tree/index.d.ts",
      "node_modules/@angular/material/tree/index.d.ts"
    ],
    "content": "/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tree/node.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkNestedTreeNode, CdkTree, CdkTreeNode, CdkTreeNodeDef } from '@angular/cdk/tree';\nimport { AfterContentInit, ElementRef, IterableDiffers, OnDestroy } from '@angular/core';\nimport { CanDisable, CanDisableCtor, HasTabIndex, HasTabIndexCtor } from '@angular/material/core';\ndeclare const _MatTreeNodeMixinBase: HasTabIndexCtor & CanDisableCtor & typeof CdkTreeNode;\n/**\n * Wrapper for the CdkTree node with Material design styles.\n */\nexport declare class MatTreeNode<T> extends _MatTreeNodeMixinBase<T> implements CanDisable, HasTabIndex {\n    protected _elementRef: ElementRef<HTMLElement>;\n    protected _tree: CdkTree<T>;\n    role: 'treeitem' | 'group';\n    constructor(_elementRef: ElementRef<HTMLElement>, _tree: CdkTree<T>, tabIndex: string);\n}\n/**\n * Wrapper for the CdkTree node definition with Material design styles.\n */\nexport declare class MatTreeNodeDef<T> extends CdkTreeNodeDef<T> {\n    data: T;\n}\n/**\n * Wrapper for the CdkTree nested node with Material design styles.\n */\nexport declare class MatNestedTreeNode<T> extends CdkNestedTreeNode<T> implements AfterContentInit, OnDestroy {\n    protected _elementRef: ElementRef<HTMLElement>;\n    protected _tree: CdkTree<T>;\n    protected _differs: IterableDiffers;\n    node: T;\n    /** Whether the node is disabled. */\n    disabled: any;\n    private _disabled;\n    /** Tabindex for the node. */\n    tabIndex: number;\n    private _tabIndex;\n    constructor(_elementRef: ElementRef<HTMLElement>, _tree: CdkTree<T>, _differs: IterableDiffers, tabIndex: string);\n    ngAfterContentInit(): void;\n    ngOnDestroy(): void;\n}\nexport {};\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tree/outlet.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkTreeNodeOutlet } from '@angular/cdk/tree';\nimport { ViewContainerRef } from '@angular/core';\n/**\n * Outlet for nested CdkNode. Put `[matTreeNodeOutlet]` on a tag to place children dataNodes\n * inside the outlet.\n */\nexport declare class MatTreeNodeOutlet implements CdkTreeNodeOutlet {\n    viewContainer: ViewContainerRef;\n    _node?: any;\n    constructor(viewContainer: ViewContainerRef, _node?: any);\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tree/padding.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkTreeNodePadding } from '@angular/cdk/tree';\n/**\n * Wrapper for the CdkTree padding with Material design styles.\n */\nexport declare class MatTreeNodePadding<T> extends CdkTreeNodePadding<T> {\n    /** The level of depth of the tree node. The padding will be `level * indent` pixels. */\n    level: number;\n    /** The indent for each level. Default number 40px from material design menu sub-menu spec. */\n    indent: number;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tree/public-api.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './node';\nexport * from './padding';\nexport * from './tree';\nexport * from './tree-module';\nexport * from './toggle';\nexport * from './outlet';\nexport * from './data-source/flat-data-source';\nexport * from './data-source/nested-data-source';\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tree/toggle.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkTreeNodeToggle } from '@angular/cdk/tree';\n/**\n * Wrapper for the CdkTree's toggle with Material design styles.\n */\nexport declare class MatTreeNodeToggle<T> extends CdkTreeNodeToggle<T> {\n    recursive: boolean;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tree/tree-module.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport declare class MatTreeModule {\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/material/tree/tree.d.ts"
    ],
    "content": "/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CdkTree } from '@angular/cdk/tree';\nimport { MatTreeNodeOutlet } from './outlet';\n/**\n * Wrapper for the CdkTable with Material design styles.\n */\nexport declare class MatTree<T> extends CdkTree<T> {\n    _nodeOutlet: MatTreeNodeOutlet;\n}\n"
  },
  {
    "paths": [
      "node_modules/@angular/forms/forms.d.ts",
      "node_modules/@angular/forms/index.d.ts"
    ],
    "content": "/**\n * @license Angular v9.0.0-next.12\n * (c) 2010-2019 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\nimport * as ɵngcc0 from '@angular/core';\nexport declare abstract class AbstractControl {\r\n    validator: ValidatorFn | null;\r\n    asyncValidator: AsyncValidatorFn | null;\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 validator The function that determines the synchronous validity of this control.\r\n     * @param asyncValidator The function that determines the asynchronous validity of this\r\n     * control.\r\n     */\r\n    constructor(validator: ValidatorFn | null, asyncValidator: AsyncValidatorFn | null);\r\n    /**\r\n     * The parent control.\r\n     */\r\n    readonly parent: FormGroup | FormArray;\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    readonly 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    readonly 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    readonly 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    readonly 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    readonly 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    readonly 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    readonly 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.\r\n     */\r\n    readonly valueChanges: Observable<any>;\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<any>;\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    readonly updateOn: FormHooks;\r\n    /**\r\n     * Sets the synchronous validators that are active on this control.  Calling\r\n     * this overwrites any existing sync 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     */\r\n    setValidators(newValidator: ValidatorFn | ValidatorFn[] | null): void;\r\n    /**\r\n     * Sets the async validators that are active on this control. Calling this\r\n     * overwrites any existing async 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     */\r\n    setAsyncValidators(newValidator: AsyncValidatorFn | AsyncValidatorFn[] | null): void;\r\n    /**\r\n     * Empties out the sync 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 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     * ### 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    get(path: Array<string | number> | 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 | number> | 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 | number> | string): boolean;\r\n    /**\r\n     * Retrieves the top-level ancestor of this control.\r\n     */\r\n    readonly 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 readonly 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    readonly 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    readonly 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    readonly 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    readonly 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    readonly 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    readonly 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    readonly 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    readonly 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    readonly 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    readonly 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    readonly 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    readonly 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    readonly statusChanges: Observable<any> | 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    readonly valueChanges: Observable<any> | 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    readonly path: string[] | null;\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 | number> | 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 | number> | 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    /**\r\n     * @description\r\n     * An internal callback method triggered on the instance after the inputs are set.\r\n     * Registers the group with its parent group.\r\n     */\r\n    ngOnInit(): void;\r\n    /**\r\n     * @description\r\n     * An internal callback method triggered before the instance is destroyed.\r\n     * Removes the group from its parent group.\r\n     */\r\n    ngOnDestroy(): void;\r\n    /**\r\n     * @description\r\n     * The `FormGroup` bound to this directive.\r\n     */\r\n    readonly control: FormGroup;\r\n    /**\r\n     * @description\r\n     * The path to this group from the top-level directive.\r\n     */\r\n    readonly path: string[];\r\n    /**\r\n     * @description\r\n     * The top-level directive for this group if present, otherwise null.\r\n     */\r\n    readonly formDirective: Form | null;\r\n    /**\r\n     * @description\r\n     * The synchronous validators registered with this group.\r\n     */\r\n    readonly validator: ValidatorFn | null;\r\n    /**\r\n     * @description\r\n     * The async validators registered with this group.\r\n     */\r\n    readonly asyncValidator: AsyncValidatorFn | null;\r\n}\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 as observableOf } 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<ValidationErrors|null> {\r\n *     return observableOf({'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<ValidationErrors | null> | Observable<ValidationErrors | null>;\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<ValidationErrors | null> | Observable<ValidationErrors | null>;\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 * <input type=\"checkbox\" [formControl]=\"rememberLoginControl\">\r\n * ```\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class CheckboxControlValueAccessor implements ControlValueAccessor {\r\n    private _renderer;\r\n    private _elementRef;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when a change event occurs on the input element.\r\n     */\r\n    onChange: (_: any) => void;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when a blur event occurs on the input element.\r\n     */\r\n    onTouched: () => void;\r\n    constructor(_renderer: Renderer2, _elementRef: ElementRef);\r\n    /**\r\n     * Sets the \"checked\" property on the input element.\r\n     *\r\n     * @param value The checked value\r\n     */\r\n    writeValue(value: any): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control value changes.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnChange(fn: (_: any) => {}): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control is touched.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnTouched(fn: () => {}): void;\r\n    /**\r\n     * Sets the \"disabled\" property on the input element.\r\n     *\r\n     * @param isDisabled The disabled value\r\n     */\r\n    setDisabledState(isDisabled: boolean): void;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CheckboxControlValueAccessor>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CheckboxControlValueAccessor, \"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]\", never, {}, {}, never>;\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 ngModel binding.\r\n *\r\n * ```\r\n * <input type=\"checkbox\" name=\"active\" ngModel required>\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     * @description\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     */\r\n    validate(control: AbstractControl): ValidationErrors | null;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<CheckboxRequiredValidator>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<CheckboxRequiredValidator, \"input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]\", never, {}, {}, never>;\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<boolean>;\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    readonly formDirective: Form | null;\r\n    /**\r\n     * @description\r\n     * The path to this group.\r\n     */\r\n    readonly 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 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 * @description\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 * @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 * <input type=\"text\" [formControl]=\"firstNameControl\">\r\n * ```\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class DefaultValueAccessor implements ControlValueAccessor {\r\n    private _renderer;\r\n    private _elementRef;\r\n    private _compositionMode;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when an input event occurs on the input element.\r\n     */\r\n    onChange: (_: any) => void;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when a blur event occurs on the input element.\r\n     */\r\n    onTouched: () => void;\r\n    /** Whether the user is creating a composition string (IME events). */\r\n    private _composing;\r\n    constructor(_renderer: Renderer2, _elementRef: ElementRef, _compositionMode: boolean);\r\n    /**\r\n     * Sets the \"value\" property on the input element.\r\n     *\r\n     * @param value The checked value\r\n     */\r\n    writeValue(value: any): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control value changes.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnChange(fn: (_: any) => void): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control is touched.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnTouched(fn: () => void): void;\r\n    /**\r\n     * Sets the \"disabled\" property on the input element.\r\n     *\r\n     * @param isDisabled The disabled value\r\n     */\r\n    setDisabledState(isDisabled: boolean): void;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<DefaultValueAccessor>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<DefaultValueAccessor, \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\", never, {}, {}, never>;\n}\r\n\r\n/**\r\n * A directive that adds the `email` validator to controls marked with the\r\n * `email` 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 an email validator\r\n *\r\n * The following example shows how to add an email validator to an input attached to an ngModel binding.\r\n *\r\n * ```\r\n * <input type=\"email\" name=\"email\" ngModel email>\r\n * <input type=\"email\" name=\"email\" ngModel email=\"true\">\r\n * <input type=\"email\" name=\"email\" ngModel [email]=\"true\">\r\n * ```\r\n *\r\n * @publicApi\r\n * @ngModule FormsModule\r\n * @ngModule ReactiveFormsModule\r\n */\r\nexport declare class EmailValidator implements Validator {\r\n    private _enabled;\r\n    private _onChange;\r\n    /**\r\n     * @description\r\n     * Tracks changes to the email attribute bound to this directive.\r\n     */\r\n    email: boolean | string;\r\n    /**\r\n     * @description\r\n     * Method that validates whether an email address is valid.\r\n     * Returns the validation result if enabled, otherwise null.\r\n     */\r\n    validate(control: AbstractControl): ValidationErrors | null;\r\n    /**\r\n     * @description\r\n     * Registers a callback function to call when the validator inputs change.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnValidatorChange(fn: () => void): void;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<EmailValidator>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<EmailValidator, \"[email][formControlName],[email][formControl],[email][ngModel]\", never, { 'email': \"email\" }, {}, never>;\n}\r\n\r\n/**\r\n * @description\r\n * An interface implemented by `FormGroupDirective` and `NgForm` directives.\r\n *\r\n * Only used by the `ReactiveFormsModule` and `FormsModule`.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Form {\r\n    /**\r\n     * @description\r\n     * Add a control to this form.\r\n     *\r\n     * @param dir The control directive to add to the form.\r\n     */\r\n    addControl(dir: NgControl): void;\r\n    /**\r\n     * @description\r\n     * Remove a control from this form.\r\n     *\r\n     * @param dir: The control directive to remove from the form.\r\n     */\r\n    removeControl(dir: NgControl): void;\r\n    /**\r\n     * @description\r\n     * The control directive from which to get the `FormControl`.\r\n     *\r\n     * @param dir: The control directive.\r\n     */\r\n    getControl(dir: NgControl): FormControl;\r\n    /**\r\n     * @description\r\n     * Add a group of controls to this form.\r\n     *\r\n     * @param dir: The control group directive to add.\r\n     */\r\n    addFormGroup(dir: AbstractFormGroupDirective): void;\r\n    /**\r\n     * @description\r\n     * Remove a group of controls to this form.\r\n     *\r\n     * @param dir: The control group directive to remove.\r\n     */\r\n    removeFormGroup(dir: AbstractFormGroupDirective): void;\r\n    /**\r\n     * @description\r\n     * The `FormGroup` associated with a particular `AbstractFormGroupDirective`.\r\n     *\r\n     * @param dir: The form group directive from which to get the `FormGroup`.\r\n     */\r\n    getFormGroup(dir: AbstractFormGroupDirective): FormGroup;\r\n    /**\r\n     * @description\r\n     * Update the model for a particular control with a new value.\r\n     *\r\n     * @param dir: The control directive to update.\r\n     * @param value: The new value for the control.\r\n     */\r\n    updateModel(dir: NgControl, value: any): void;\r\n}\r\n\r\n/**\r\n * Tracks the value and validity state of an array of `FormControl`,\r\n * `FormGroup` or `FormArray` instances.\r\n *\r\n * A `FormArray` aggregates the values of each child `FormControl` into an array.\r\n * It calculates its status by reducing the status values of its children. For example, if one of\r\n * the controls in a `FormArray` is invalid, the entire array becomes invalid.\r\n *\r\n * `FormArray` is one of the three fundamental building blocks used to define forms in Angular,\r\n * along with `FormControl` and `FormGroup`.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Create an array of form controls\r\n *\r\n * ```\r\n * const arr = new FormArray([\r\n *   new FormControl('Nancy', Validators.minLength(2)),\r\n *   new FormControl('Drew'),\r\n * ]);\r\n *\r\n * console.log(arr.value);   // ['Nancy', 'Drew']\r\n * console.log(arr.status);  // 'VALID'\r\n * ```\r\n *\r\n * ### Create a form array with array-level validators\r\n *\r\n * You include array-level validators and async validators. These come in handy\r\n * when you want to perform validation that considers the value of more than one child\r\n * control.\r\n *\r\n * The two types of validators are passed in separately as the second and third arg\r\n * respectively, or together as part of an options object.\r\n *\r\n * ```\r\n * const arr = new FormArray([\r\n *   new FormControl('Nancy'),\r\n *   new FormControl('Drew')\r\n * ], {validators: myValidator, asyncValidators: myAsyncValidator});\r\n * ```\r\n *\r\n  * ### Set the updateOn property for all controls in a form array\r\n *\r\n * The options object is used to set a default value for each child\r\n * control's `updateOn` property. If you set `updateOn` to `'blur'` at the\r\n * array level, all child controls default to 'blur', unless the child\r\n * has explicitly specified a different `updateOn` value.\r\n *\r\n * ```ts\r\n * const arr = new FormArray([\r\n *    new FormControl()\r\n * ], {updateOn: 'blur'});\r\n * ```\r\n *\r\n * ### Adding or removing controls from a form array\r\n *\r\n * To change the controls in the array, use the `push`, `insert`, `removeAt` or `clear` methods\r\n * in `FormArray` itself. These methods ensure the controls are properly tracked in the\r\n * form's hierarchy. Do not modify the array of `AbstractControl`s used to instantiate\r\n * the `FormArray` directly, as that result in strange and unexpected behavior such\r\n * as broken change detection.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class FormArray extends AbstractControl {\r\n    controls: AbstractControl[];\r\n    /**\r\n    * Creates a new `FormArray` instance.\r\n    *\r\n    * @param controls An array of child controls. Each child control is given an index\r\n    * where it is registered.\r\n    *\r\n    * @param validatorOrOpts A synchronous validator function, or an array of\r\n    * such functions, or an `AbstractControlOptions` object that contains validation functions\r\n    * and a validation trigger.\r\n    *\r\n    * @param asyncValidator A single async validator or array of async validator functions\r\n    *\r\n    */\r\n    constructor(controls: AbstractControl[], validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null);\r\n    /**\r\n     * Get the `AbstractControl` at the given `index` in the array.\r\n     *\r\n     * @param index Index in the array to retrieve the control\r\n     */\r\n    at(index: number): AbstractControl;\r\n    /**\r\n     * Insert a new `AbstractControl` at the end of the array.\r\n     *\r\n     * @param control Form control to be inserted\r\n     */\r\n    push(control: AbstractControl): void;\r\n    /**\r\n     * Insert a new `AbstractControl` at the given `index` in the array.\r\n     *\r\n     * @param index Index in the array to insert the control\r\n     * @param control Form control to be inserted\r\n     */\r\n    insert(index: number, control: AbstractControl): void;\r\n    /**\r\n     * Remove the control at the given `index` in the array.\r\n     *\r\n     * @param index Index in the array to remove the control\r\n     */\r\n    removeAt(index: number): void;\r\n    /**\r\n     * Replace an existing control.\r\n     *\r\n     * @param index Index in the array to replace the control\r\n     * @param control The `AbstractControl` control to replace the existing control\r\n     */\r\n    setControl(index: number, control: AbstractControl): void;\r\n    /**\r\n     * Length of the control array.\r\n     */\r\n    readonly length: number;\r\n    /**\r\n     * Sets the value of the `FormArray`. It accepts an array that matches\r\n     * the structure of the control.\r\n     *\r\n     * This method performs strict checks, and throws an error if you try\r\n     * to set the value of a control that doesn't exist or if you exclude the\r\n     * value of a control.\r\n     *\r\n     * @usageNotes\r\n     * ### Set the values for the controls in the form array\r\n     *\r\n     * ```\r\n     * const arr = new FormArray([\r\n     *   new FormControl(),\r\n     *   new FormControl()\r\n     * ]);\r\n     * console.log(arr.value);   // [null, null]\r\n     *\r\n     * arr.setValue(['Nancy', 'Drew']);\r\n     * console.log(arr.value);   // ['Nancy', 'Drew']\r\n     * ```\r\n     *\r\n     * @param value Array of values for the controls\r\n     * @param options Configure options that determine how the control propagates changes and\r\n     * emits events after the value changes\r\n     *\r\n     * * `onlySelf`: When true, each change only affects this control, and not its parent. Default\r\n     * 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 value is updated.\r\n     * When false, no events are emitted.\r\n     * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\r\n     * updateValueAndValidity} method.\r\n     */\r\n    setValue(value: any[], options?: {\r\n        onlySelf?: boolean;\r\n        emitEvent?: boolean;\r\n    }): void;\r\n    /**\r\n     * Patches the value of the `FormArray`. It accepts an array that matches the\r\n     * structure of the control, and does its best to match the values to the correct\r\n     * controls in the group.\r\n     *\r\n     * It accepts both super-sets and sub-sets of the array without throwing an error.\r\n     *\r\n     * @usageNotes\r\n     * ### Patch the values for controls in a form array\r\n     *\r\n     * ```\r\n     * const arr = new FormArray([\r\n     *    new FormControl(),\r\n     *    new FormControl()\r\n     * ]);\r\n     * console.log(arr.value);   // [null, null]\r\n     *\r\n     * arr.patchValue(['Nancy']);\r\n     * console.log(arr.value);   // ['Nancy', null]\r\n     * ```\r\n     *\r\n     * @param value Array of latest values for the controls\r\n     * @param options Configure options that determine how the control propagates changes and\r\n     * emits events after the value changes\r\n     *\r\n     * * `onlySelf`: When true, each change only affects this control, and not its parent. Default\r\n     * 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 value is updated.\r\n     * When false, no events are emitted.\r\n     * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\r\n     * updateValueAndValidity} method.\r\n     */\r\n    patchValue(value: any[], options?: {\r\n        onlySelf?: boolean;\r\n        emitEvent?: boolean;\r\n    }): void;\r\n    /**\r\n     * Resets the `FormArray` and all descendants are marked `pristine` and `untouched`, and the\r\n     * value of all descendants to null or null maps.\r\n     *\r\n     * You reset to a specific form state by passing in an array of states\r\n     * that matches the structure of the control. The state is a standalone value\r\n     * or a form state object with both a value and a disabled status.\r\n     *\r\n     * @usageNotes\r\n     * ### Reset the values in a form array\r\n     *\r\n     * ```ts\r\n     * const arr = new FormArray([\r\n     *    new FormControl(),\r\n     *    new FormControl()\r\n     * ]);\r\n     * arr.reset(['name', 'last name']);\r\n     *\r\n     * console.log(this.arr.value);  // ['name', 'last name']\r\n     * ```\r\n     *\r\n     * ### Reset the values in a form array and the disabled status for the first control\r\n     *\r\n     * ```\r\n     * this.arr.reset([\r\n     *   {value: 'name', disabled: true},\r\n     *   'last'\r\n     * ]);\r\n     *\r\n     * console.log(this.arr.value);  // ['name', 'last name']\r\n     * console.log(this.arr.get(0).status);  // 'DISABLED'\r\n     * ```\r\n     *\r\n     * @param value Array of values for the controls\r\n     * @param options Configure options that determine how the control propagates changes and\r\n     * emits events after the value changes\r\n     *\r\n     * * `onlySelf`: When true, each change only affects this control, and not its parent. Default\r\n     * 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 reset.\r\n     * When false, no events are emitted.\r\n     * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\r\n     * updateValueAndValidity} method.\r\n     */\r\n    reset(value?: any, options?: {\r\n        onlySelf?: boolean;\r\n        emitEvent?: boolean;\r\n    }): void;\r\n    /**\r\n     * The aggregate value of the array, including any disabled controls.\r\n     *\r\n     * Reports all values regardless of disabled status.\r\n     * For enabled controls only, the `value` property is the best way to get the value of the array.\r\n     */\r\n    getRawValue(): any[];\r\n    /**\r\n     * Remove all controls in the `FormArray`.\r\n     *\r\n     * @usageNotes\r\n     * ### Remove all elements from a FormArray\r\n     *\r\n     * ```ts\r\n     * const arr = new FormArray([\r\n     *    new FormControl(),\r\n     *    new FormControl()\r\n     * ]);\r\n     * console.log(arr.length);  // 2\r\n     *\r\n     * arr.clear();\r\n     * console.log(arr.length);  // 0\r\n     * ```\r\n     *\r\n     * It's a simpler and more efficient alternative to removing all elements one by one:\r\n     *\r\n     * ```ts\r\n     * const arr = new FormArray([\r\n     *    new FormControl(),\r\n     *    new FormControl()\r\n     * ]);\r\n     *\r\n     * while (arr.length) {\r\n     *    arr.removeAt(0);\r\n     * }\r\n     * ```\r\n     */\r\n    clear(): void;\r\n    private _registerControl;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Syncs a nested `FormArray` to a DOM element.\r\n *\r\n * This directive is designed to be used with a parent `FormGroupDirective` (selector:\r\n * `[formGroup]`).\r\n *\r\n * It accepts the string name of the nested `FormArray` you want to link, and\r\n * will look for a `FormArray` registered with that name in the parent\r\n * `FormGroup` instance you passed into `FormGroupDirective`.\r\n *\r\n * @see [Reactive Forms Guide](guide/reactive-forms)\r\n * @see `AbstractControl`\r\n *\r\n * @usageNotes\r\n *\r\n * ### Example\r\n *\r\n * {@example forms/ts/nestedFormArray/nested_form_array_example.ts region='Component'}\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @publicApi\r\n */\r\nexport declare class FormArrayName extends ControlContainer implements OnInit, OnDestroy {\r\n    /**\r\n     * @description\r\n     * Tracks the name of the `FormArray` bound to the directive. The name corresponds\r\n     * to a key in the parent `FormGroup` or `FormArray`.\r\n     * Accepts a name as a string or a number.\r\n     * The name in the form of a string is useful for individual forms,\r\n     * while the numerical form allows for form arrays to be bound\r\n     * to indices when iterating over arrays in a `FormArray`.\r\n     */\r\n    name: string | number | null;\r\n    constructor(parent: ControlContainer, validators: any[], asyncValidators: any[]);\r\n    /**\r\n     * @description\r\n     * A lifecycle method called when the directive's inputs are initialized. For internal use only.\r\n     *\r\n     * @throws If the directive does not have a valid parent.\r\n     */\r\n    ngOnInit(): void;\r\n    /**\r\n     * @description\r\n     * A lifecycle method called before the directive's instance is destroyed. For internal use only.\r\n     */\r\n    ngOnDestroy(): void;\r\n    /**\r\n     * @description\r\n     * The `FormArray` bound to this directive.\r\n     */\r\n    readonly control: FormArray;\r\n    /**\r\n     * @description\r\n     * The top-level directive for this group if present, otherwise null.\r\n     */\r\n    readonly formDirective: FormGroupDirective | 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    readonly path: string[];\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    readonly validator: ValidatorFn | null;\r\n    /**\r\n     * @description\r\n     * Async validator function composed of all the async validators registered with this directive.\r\n     */\r\n    readonly asyncValidator: AsyncValidatorFn | null;\r\n    private _checkParentType;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<FormArrayName>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<FormArrayName, \"[formArrayName]\", never, { 'name': \"formArrayName\" }, {}, never>;\n}\r\n\r\n/**\r\n * @description\r\n * Creates an `AbstractControl` from a user-specified configuration.\r\n *\r\n * The `FormBuilder` provides syntactic sugar that shortens creating instances of a `FormControl`,\r\n * `FormGroup`, or `FormArray`. It reduces the amount of boilerplate needed to build complex\r\n * forms.\r\n *\r\n * @see [Reactive Forms Guide](/guide/reactive-forms)\r\n *\r\n * @publicApi\r\n */\r\nexport declare class FormBuilder {\r\n    /**\r\n     * @description\r\n     * Construct a new `FormGroup` instance.\r\n     *\r\n     * @param controlsConfig A collection of child controls. The key for each child is the name\r\n     * under which it is registered.\r\n     *\r\n     * @param options Configuration options object for the `FormGroup`. The object can\r\n     * have two shapes:\r\n     *\r\n     * 1) `AbstractControlOptions` object (preferred), which consists of:\r\n     * * `validators`: A synchronous validator function, or an array of validator functions\r\n     * * `asyncValidators`: A single async validator or array of async validator functions\r\n     * * `updateOn`: The event upon which the control should be updated (options: 'change' | 'blur' |\r\n     * submit')\r\n     *\r\n     * 2) Legacy configuration object, which consists of:\r\n     * * `validator`: A synchronous validator function, or an array of validator functions\r\n     * * `asyncValidator`: A single async validator or array of async validator functions\r\n     *\r\n     */\r\n    group(controlsConfig: {\r\n        [key: string]: any;\r\n    }, options?: AbstractControlOptions | {\r\n        [key: string]: any;\r\n    } | null): FormGroup;\r\n    /**\r\n     * @description\r\n     * Construct a new `FormControl` with the given state, validators and options.\r\n     *\r\n     * @param formState Initializes the control with an initial state value, or\r\n     * with an object that contains both a value and a disabled status.\r\n     *\r\n     * @param validatorOrOpts A synchronous validator function, or an array of\r\n     * such functions, or an `AbstractControlOptions` object that contains\r\n     * validation functions and a validation trigger.\r\n     *\r\n     * @param asyncValidator A single async validator or array of async validator\r\n     * functions.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ### Initialize a control as disabled\r\n     *\r\n     * The following example returns a control with an initial value in a disabled state.\r\n     *\r\n     * <code-example path=\"forms/ts/formBuilder/form_builder_example.ts\" region=\"disabled-control\">\r\n     * </code-example>\r\n     */\r\n    control(formState: any, validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null): FormControl;\r\n    /**\r\n     * Constructs a new `FormArray` from the given array of configurations,\r\n     * validators and options.\r\n     *\r\n     * @param controlsConfig An array of child controls or control configs. Each\r\n     * child control is given an index when it is registered.\r\n     *\r\n     * @param validatorOrOpts A synchronous validator function, or an array of\r\n     * such functions, or an `AbstractControlOptions` object that contains\r\n     * validation functions and a validation trigger.\r\n     *\r\n     * @param asyncValidator A single async validator or array of async validator\r\n     * functions.\r\n     */\r\n    array(controlsConfig: any[], validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null): FormArray;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<FormBuilder>;\n    static ɵprov: ɵngcc0.ɵɵInjectableDef<FormBuilder>;\n}\r\n\r\n/**\r\n * Tracks the value and validation status of an individual form control.\r\n *\r\n * This is one of the three fundamental building blocks of Angular forms, along with\r\n * `FormGroup` and `FormArray`. It extends the `AbstractControl` class that\r\n * implements most of the base functionality for accessing the value, validation status,\r\n * user interactions and events.\r\n *\r\n * @see `AbstractControl`\r\n * @see [Reactive Forms Guide](guide/reactive-forms)\r\n * @see [Usage Notes](#usage-notes)\r\n *\r\n * @usageNotes\r\n *\r\n * ### Initializing Form Controls\r\n *\r\n * Instantiate a `FormControl`, with an initial value.\r\n *\r\n * ```ts\r\n * const control = new FormControl('some value');\r\n * console.log(control.value);     // 'some value'\r\n *```\r\n *\r\n * The following example initializes the control with a form state object. The `value`\r\n * and `disabled` keys are required in this case.\r\n *\r\n * ```ts\r\n * const control = new FormControl({ value: 'n/a', disabled: true });\r\n * console.log(control.value);     // 'n/a'\r\n * console.log(control.status);    // 'DISABLED'\r\n * ```\r\n *\r\n * The following example initializes the control with a sync validator.\r\n *\r\n * ```ts\r\n * const control = new FormControl('', Validators.required);\r\n * console.log(control.value);      // ''\r\n * console.log(control.status);     // 'INVALID'\r\n * ```\r\n *\r\n * The following example initializes the control using an options object.\r\n *\r\n * ```ts\r\n * const control = new FormControl('', {\r\n *    validators: Validators.required,\r\n *    asyncValidators: myAsyncValidator\r\n * });\r\n * ```\r\n *\r\n * ### Configure the control to update on a blur event\r\n *\r\n * Set the `updateOn` option to `'blur'` to update on the blur `event`.\r\n *\r\n * ```ts\r\n * const control = new FormControl('', { updateOn: 'blur' });\r\n * ```\r\n *\r\n * ### Configure the control to update on a submit event\r\n *\r\n * Set the `updateOn` option to `'submit'` to update on a submit `event`.\r\n *\r\n * ```ts\r\n * const control = new FormControl('', { updateOn: 'submit' });\r\n * ```\r\n *\r\n * ### Reset the control back to an initial value\r\n *\r\n * You reset to a specific form state by passing through a standalone\r\n * value or a form state object that contains both a value and a disabled state\r\n * (these are the only two properties that cannot be calculated).\r\n *\r\n * ```ts\r\n * const control = new FormControl('Nancy');\r\n *\r\n * console.log(control.value); // 'Nancy'\r\n *\r\n * control.reset('Drew');\r\n *\r\n * console.log(control.value); // 'Drew'\r\n * ```\r\n *\r\n * ### Reset the control back to an initial value and disabled\r\n *\r\n * ```\r\n * const control = new FormControl('Nancy');\r\n *\r\n * console.log(control.value); // 'Nancy'\r\n * console.log(control.status); // 'VALID'\r\n *\r\n * control.reset({ value: 'Drew', disabled: true });\r\n *\r\n * console.log(control.value); // 'Drew'\r\n * console.log(control.status); // 'DISABLED'\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class FormControl extends AbstractControl {\r\n    /**\r\n    * Creates a new `FormControl` instance.\r\n    *\r\n    * @param formState Initializes the control with an initial value,\r\n    * or an object that defines the initial value and disabled state.\r\n    *\r\n    * @param validatorOrOpts A synchronous validator function, or an array of\r\n    * such functions, or an `AbstractControlOptions` object that contains validation functions\r\n    * and a validation trigger.\r\n    *\r\n    * @param asyncValidator A single async validator or array of async validator functions\r\n    *\r\n    */\r\n    constructor(formState?: any, validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null);\r\n    /**\r\n     * Sets a new value for the form control.\r\n     *\r\n     * @param value The new value for the control.\r\n     * @param options Configuration options that determine how the control propagates changes\r\n     * and emits events when the value changes.\r\n     * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\r\n     * updateValueAndValidity} method.\r\n     *\r\n     * * `onlySelf`: When true, each change only affects this control, and not its parent. Default is\r\n     * 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 value is updated.\r\n     * When false, no events are emitted.\r\n     * * `emitModelToViewChange`: When true or not supplied  (the default), each change triggers an\r\n     * `onChange` event to\r\n     * update the view.\r\n     * * `emitViewToModelChange`: When true or not supplied (the default), each change triggers an\r\n     * `ngModelChange`\r\n     * event to update the model.\r\n     *\r\n     */\r\n    setValue(value: any, options?: {\r\n        onlySelf?: boolean;\r\n        emitEvent?: boolean;\r\n        emitModelToViewChange?: boolean;\r\n        emitViewToModelChange?: boolean;\r\n    }): void;\r\n    /**\r\n     * Patches the value of a control.\r\n     *\r\n     * This function is functionally the same as {@link FormControl#setValue setValue} at this level.\r\n     * It exists for symmetry with {@link FormGroup#patchValue patchValue} on `FormGroups` and\r\n     * `FormArrays`, where it does behave differently.\r\n     *\r\n     * @see `setValue` for options\r\n     */\r\n    patchValue(value: any, options?: {\r\n        onlySelf?: boolean;\r\n        emitEvent?: boolean;\r\n        emitModelToViewChange?: boolean;\r\n        emitViewToModelChange?: boolean;\r\n    }): void;\r\n    /**\r\n     * Resets the form control, marking it `pristine` and `untouched`, and setting\r\n     * the value to null.\r\n     *\r\n     * @param formState Resets the control with an initial value,\r\n     * or an object that defines the initial value and disabled state.\r\n     *\r\n     * @param options Configuration options that determine how the control propagates changes\r\n     * and emits events after the value changes.\r\n     *\r\n     * * `onlySelf`: When true, each change only affects this control, and not its parent. Default is\r\n     * 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 reset.\r\n     * When false, no events are emitted.\r\n     *\r\n     */\r\n    reset(formState?: any, options?: {\r\n        onlySelf?: boolean;\r\n        emitEvent?: boolean;\r\n    }): void;\r\n    /**\r\n     * Register a listener for change events.\r\n     *\r\n     * @param fn The method that is called when the value changes\r\n     */\r\n    registerOnChange(fn: Function): void;\r\n    /**\r\n     * Register a listener for disabled events.\r\n     *\r\n     * @param fn The method that is called when the disabled status changes.\r\n     */\r\n    registerOnDisabledChange(fn: (isDisabled: boolean) => void): void;\r\n    private _applyFormState;\r\n}\r\n\r\n/**\r\n * @description\r\n * * Syncs a standalone `FormControl` instance to a form control element.\r\n *\r\n * @see [Reactive Forms Guide](guide/reactive-forms)\r\n * @see `FormControl`\r\n * @see `AbstractControl`\r\n *\r\n * @usageNotes\r\n *\r\n * ### Registering a single form control\r\n *\r\n * The following examples shows how to register a standalone control and set its value.\r\n *\r\n * {@example forms/ts/simpleFormControl/simple_form_control_example.ts region='Component'}\r\n *\r\n * ### Use with ngModel\r\n *\r\n * Support for using the `ngModel` input property and `ngModelChange` event with reactive\r\n * form directives has been deprecated in Angular v6 and will be removed in Angular v7.\r\n *\r\n * Now deprecated:\r\n *\r\n * ```html\r\n * <input [formControl]=\"control\" [(ngModel)]=\"value\">\r\n * ```\r\n *\r\n * ```ts\r\n * this.value = 'some value';\r\n * ```\r\n *\r\n * This has been deprecated for a few reasons. First, developers have found this pattern\r\n * confusing. It seems like the actual `ngModel` directive is being used, but in fact it's\r\n * an input/output property named `ngModel` on the reactive form directive that simply\r\n * approximates (some of) its behavior. Specifically, it allows getting/setting the value\r\n * and intercepting value events. However, some of `ngModel`'s other features - like\r\n * delaying updates with`ngModelOptions` or exporting the directive - simply don't work,\r\n * which has understandably caused some confusion.\r\n *\r\n * In addition, this pattern mixes template-driven and reactive forms strategies, which\r\n * we generally don't recommend because it doesn't take advantage of the full benefits of\r\n * either strategy. Setting the value in the template violates the template-agnostic\r\n * principles behind reactive forms, whereas adding a `FormControl`/`FormGroup` layer in\r\n * the class removes the convenience of defining forms in the template.\r\n *\r\n * To update your code before v7, you'll want to decide whether to stick with reactive form\r\n * directives (and get/set values using reactive forms patterns) or switch over to\r\n * template-driven directives.\r\n *\r\n * After (choice 1 - use reactive forms):\r\n *\r\n * ```html\r\n * <input [formControl]=\"control\">\r\n * ```\r\n *\r\n * ```ts\r\n * this.control.setValue('some value');\r\n * ```\r\n *\r\n * After (choice 2 - use template-driven forms):\r\n *\r\n * ```html\r\n * <input [(ngModel)]=\"value\">\r\n * ```\r\n *\r\n * ```ts\r\n * this.value = 'some value';\r\n * ```\r\n *\r\n * By default, when you use this pattern, you will see a deprecation warning once in dev\r\n * mode. You can choose to silence this warning by providing a config for\r\n * `ReactiveFormsModule` at import time:\r\n *\r\n * ```ts\r\n * imports: [\r\n *   ReactiveFormsModule.withConfig({warnOnNgModelWithFormControl: 'never'});\r\n * ]\r\n * ```\r\n *\r\n * Alternatively, you can choose to surface a separate warning for each instance of this\r\n * pattern with a config value of `\"always\"`. This may help to track down where in the code\r\n * the pattern is being used as the code is being updated.\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @publicApi\r\n */\r\nexport declare class FormControlDirective extends NgControl implements OnChanges {\r\n    private _ngModelWarningConfig;\r\n    /**\r\n     * @description\r\n     * Internal reference to the view model value.\r\n     */\r\n    viewModel: any;\r\n    /**\r\n     * @description\r\n     * Tracks the `FormControl` instance bound to the directive.\r\n     */\r\n    form: FormControl;\r\n    /**\r\n     * @description\r\n     * Triggers a warning that this input should not be used with reactive forms.\r\n     */\r\n    isDisabled: boolean;\r\n    /** @deprecated as of v6 */\r\n    model: any;\r\n    /** @deprecated as of v6 */\r\n    update: EventEmitter<any>;\r\n    constructor(validators: Array<Validator | ValidatorFn>, asyncValidators: Array<AsyncValidator | AsyncValidatorFn>, valueAccessors: ControlValueAccessor[], _ngModelWarningConfig: string | null);\r\n    /**\r\n     * @description\r\n     * A lifecycle method called when the directive's inputs change. For internal use\r\n     * only.\r\n     *\r\n     * @param changes A object of key/value pairs for the set of changed inputs.\r\n     */\r\n    ngOnChanges(changes: SimpleChanges): void;\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    readonly path: string[];\r\n    /**\r\n     * @description\r\n     * Synchronous validator function composed of all the synchronous validators\r\n     * registered with this directive.\r\n     */\r\n    readonly validator: ValidatorFn | null;\r\n    /**\r\n     * @description\r\n     * Async validator function composed of all the async validators registered with this\r\n     * directive.\r\n     */\r\n    readonly asyncValidator: AsyncValidatorFn | null;\r\n    /**\r\n     * @description\r\n     * The `FormControl` bound to this directive.\r\n     */\r\n    readonly control: FormControl;\r\n    /**\r\n     * @description\r\n     * Sets the new value for the view model and emits an `ngModelChange` event.\r\n     *\r\n     * @param newValue The new value for the view model.\r\n     */\r\n    viewToModelUpdate(newValue: any): void;\r\n    private _isControlChanged;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<FormControlDirective>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<FormControlDirective, \"[formControl]\", [\"ngForm\"], { 'isDisabled': \"disabled\", 'form': \"formControl\", 'model': \"ngModel\" }, { 'update': \"ngModelChange\" }, never>;\n}\r\n\r\n/**\r\n * @description\r\n * Syncs a `FormControl` in an existing `FormGroup` to a form control\r\n * element by name.\r\n *\r\n * @see [Reactive Forms Guide](guide/reactive-forms)\r\n * @see `FormControl`\r\n * @see `AbstractControl`\r\n *\r\n * @usageNotes\r\n *\r\n * ### Register `FormControl` within a group\r\n *\r\n * The following example shows how to register multiple form controls within a form group\r\n * and set their value.\r\n *\r\n * {@example forms/ts/simpleFormGroup/simple_form_group_example.ts region='Component'}\r\n *\r\n * To see `formControlName` examples with different form control types, see:\r\n *\r\n * * Radio buttons: `RadioControlValueAccessor`\r\n * * Selects: `SelectControlValueAccessor`\r\n *\r\n * ### Use with ngModel\r\n *\r\n * Support for using the `ngModel` input property and `ngModelChange` event with reactive\r\n * form directives has been deprecated in Angular v6 and will be removed in Angular v7.\r\n *\r\n * Now deprecated:\r\n *\r\n * ```html\r\n * <form [formGroup]=\"form\">\r\n *   <input formControlName=\"first\" [(ngModel)]=\"value\">\r\n * </form>\r\n * ```\r\n *\r\n * ```ts\r\n * this.value = 'some value';\r\n * ```\r\n *\r\n * This has been deprecated for a few reasons. First, developers have found this pattern\r\n * confusing. It seems like the actual `ngModel` directive is being used, but in fact it's\r\n * an input/output property named `ngModel` on the reactive form directive that simply\r\n * approximates (some of) its behavior. Specifically, it allows getting/setting the value\r\n * and intercepting value events. However, some of `ngModel`'s other features - like\r\n * delaying updates with`ngModelOptions` or exporting the directive - simply don't work,\r\n * which has understandably caused some confusion.\r\n *\r\n * In addition, this pattern mixes template-driven and reactive forms strategies, which\r\n * we generally don't recommend because it doesn't take advantage of the full benefits of\r\n * either strategy. Setting the value in the template violates the template-agnostic\r\n * principles behind reactive forms, whereas adding a `FormControl`/`FormGroup` layer in\r\n * the class removes the convenience of defining forms in the template.\r\n *\r\n * To update your code before v7, you'll want to decide whether to stick with reactive form\r\n * directives (and get/set values using reactive forms patterns) or switch over to\r\n * template-driven directives.\r\n *\r\n * After (choice 1 - use reactive forms):\r\n *\r\n * ```html\r\n * <form [formGroup]=\"form\">\r\n *   <input formControlName=\"first\">\r\n * </form>\r\n * ```\r\n *\r\n * ```ts\r\n * this.form.get('first').setValue('some value');\r\n * ```\r\n *\r\n * After (choice 2 - use template-driven forms):\r\n *\r\n * ```html\r\n * <input [(ngModel)]=\"value\">\r\n * ```\r\n *\r\n * ```ts\r\n * this.value = 'some value';\r\n * ```\r\n *\r\n * By default, when you use this pattern, you will see a deprecation warning once in dev\r\n * mode. You can choose to silence this warning by providing a config for\r\n * `ReactiveFormsModule` at import time:\r\n *\r\n * ```ts\r\n * imports: [\r\n *   ReactiveFormsModule.withConfig({warnOnNgModelWithFormControl: 'never'})\r\n * ]\r\n * ```\r\n *\r\n * Alternatively, you can choose to surface a separate warning for each instance of this\r\n * pattern with a config value of `\"always\"`. This may help to track down where in the code\r\n * the pattern is being used as the code is being updated.\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @publicApi\r\n */\r\nexport declare class FormControlName extends NgControl implements OnChanges, OnDestroy {\r\n    private _ngModelWarningConfig;\r\n    private _added;\r\n    /**\r\n     * @description\r\n     * Tracks the `FormControl` instance bound to the directive.\r\n     */\r\n    readonly control: FormControl;\r\n    /**\r\n     * @description\r\n     * Tracks the name of the `FormControl` bound to the directive. The name corresponds\r\n     * to a key in the parent `FormGroup` or `FormArray`.\r\n     * Accepts a name as a string or a number.\r\n     * The name in the form of a string is useful for individual forms,\r\n     * while the numerical form allows for form controls to be bound\r\n     * to indices when iterating over controls in a `FormArray`.\r\n     */\r\n    name: string | number | null;\r\n    /**\r\n     * @description\r\n     * Triggers a warning that this input should not be used with reactive forms.\r\n     */\r\n    isDisabled: boolean;\r\n    /** @deprecated as of v6 */\r\n    model: any;\r\n    /** @deprecated as of v6 */\r\n    update: EventEmitter<any>;\r\n    constructor(parent: ControlContainer, validators: Array<Validator | ValidatorFn>, asyncValidators: Array<AsyncValidator | AsyncValidatorFn>, valueAccessors: ControlValueAccessor[], _ngModelWarningConfig: string | null);\r\n    /**\r\n     * @description\r\n     * A lifecycle method called when the directive's inputs change. For internal use only.\r\n     *\r\n     * @param changes A object of key/value pairs for the set of changed inputs.\r\n     */\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n    /**\r\n     * @description\r\n     * Lifecycle method called before the directive's instance is destroyed. For internal use only.\r\n     */\r\n    ngOnDestroy(): void;\r\n    /**\r\n     * @description\r\n     * Sets the new value for the view model and emits an `ngModelChange` event.\r\n     *\r\n     * @param newValue The new value for the view model.\r\n     */\r\n    viewToModelUpdate(newValue: any): void;\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    readonly path: string[];\r\n    /**\r\n     * @description\r\n     * The top-level directive for this group if present, otherwise null.\r\n     */\r\n    readonly formDirective: any;\r\n    /**\r\n     * @description\r\n     * Synchronous validator function composed of all the synchronous validators\r\n     * registered with this directive.\r\n     */\r\n    readonly validator: ValidatorFn | null;\r\n    /**\r\n     * @description\r\n     * Async validator function composed of all the async validators registered with this\r\n     * directive.\r\n     */\r\n    readonly asyncValidator: AsyncValidatorFn;\r\n    private _checkParentType;\r\n    private _setUpControl;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<FormControlName>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<FormControlName, \"[formControlName]\", never, { 'isDisabled': \"disabled\", 'name': \"formControlName\", 'model': \"ngModel\" }, { 'update': \"ngModelChange\" }, never>;\n}\r\n\r\n/**\r\n * Tracks the value and validity state of a group of `FormControl` instances.\r\n *\r\n * A `FormGroup` aggregates the values of each child `FormControl` into one object,\r\n * with each control name as the key.  It calculates its status by reducing the status values\r\n * of its children. For example, if one of the controls in a group is invalid, the entire\r\n * group becomes invalid.\r\n *\r\n * `FormGroup` is one of the three fundamental building blocks used to define forms in Angular,\r\n * along with `FormControl` and `FormArray`.\r\n *\r\n * When instantiating a `FormGroup`, pass in a collection of child controls as the first\r\n * argument. The key for each child registers the name for the control.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Create a form group with 2 controls\r\n *\r\n * ```\r\n * const form = new FormGroup({\r\n *   first: new FormControl('Nancy', Validators.minLength(2)),\r\n *   last: new FormControl('Drew'),\r\n * });\r\n *\r\n * console.log(form.value);   // {first: 'Nancy', last; 'Drew'}\r\n * console.log(form.status);  // 'VALID'\r\n * ```\r\n *\r\n * ### Create a form group with a group-level validator\r\n *\r\n * You include group-level validators as the second arg, or group-level async\r\n * validators as the third arg. These come in handy when you want to perform validation\r\n * that considers the value of more than one child control.\r\n *\r\n * ```\r\n * const form = new FormGroup({\r\n *   password: new FormControl('', Validators.minLength(2)),\r\n *   passwordConfirm: new FormControl('', Validators.minLength(2)),\r\n * }, passwordMatchValidator);\r\n *\r\n *\r\n * function passwordMatchValidator(g: FormGroup) {\r\n *    return g.get('password').value === g.get('passwordConfirm').value\r\n *       ? null : {'mismatch': true};\r\n * }\r\n * ```\r\n *\r\n * Like `FormControl` instances, you choose to pass in\r\n * validators and async validators as part of an options object.\r\n *\r\n * ```\r\n * const form = new FormGroup({\r\n *   password: new FormControl('')\r\n *   passwordConfirm: new FormControl('')\r\n * }, { validators: passwordMatchValidator, asyncValidators: otherValidator });\r\n * ```\r\n *\r\n * ### Set the updateOn property for all controls in a form group\r\n *\r\n * The options object is used to set a default value for each child\r\n * control's `updateOn` property. If you set `updateOn` to `'blur'` at the\r\n * group level, all child controls default to 'blur', unless the child\r\n * has explicitly specified a different `updateOn` value.\r\n *\r\n * ```ts\r\n * const c = new FormGroup({\r\n *   one: new FormControl()\r\n * }, { updateOn: 'blur' });\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare class FormGroup extends AbstractControl {\r\n    controls: {\r\n        [key: string]: AbstractControl;\r\n    };\r\n    /**\r\n    * Creates a new `FormGroup` instance.\r\n    *\r\n    * @param controls A collection of child controls. The key for each child is the name\r\n    * under which it is registered.\r\n    *\r\n    * @param validatorOrOpts A synchronous validator function, or an array of\r\n    * such functions, or an `AbstractControlOptions` object that contains validation functions\r\n    * and a validation trigger.\r\n    *\r\n    * @param asyncValidator A single async validator or array of async validator functions\r\n    *\r\n    */\r\n    constructor(controls: {\r\n        [key: string]: AbstractControl;\r\n    }, validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null);\r\n    /**\r\n     * Registers a control with the group's list of controls.\r\n     *\r\n     * This method does not update the value or validity of the control.\r\n     * Use {@link FormGroup#addControl addControl} instead.\r\n     *\r\n     * @param name The control name to register in the collection\r\n     * @param control Provides the control for the given name\r\n     */\r\n    registerControl(name: string, control: AbstractControl): AbstractControl;\r\n    /**\r\n     * Add a control to this group.\r\n     *\r\n     * This method also updates the value and validity of the control.\r\n     *\r\n     * @param name The control name to add to the collection\r\n     * @param control Provides the control for the given name\r\n     */\r\n    addControl(name: string, control: AbstractControl): void;\r\n    /**\r\n     * Remove a control from this group.\r\n     *\r\n     * @param name The control name to remove from the collection\r\n     */\r\n    removeControl(name: string): void;\r\n    /**\r\n     * Replace an existing control.\r\n     *\r\n     * @param name The control name to replace in the collection\r\n     * @param control Provides the control for the given name\r\n     */\r\n    setControl(name: string, control: AbstractControl): void;\r\n    /**\r\n     * Check whether there is an enabled control with the given name in the group.\r\n     *\r\n     * Reports false for disabled controls. If you'd like to check for existence in the group\r\n     * only, use {@link AbstractControl#get get} instead.\r\n     *\r\n     * @param controlName The control name to check for existence in the collection\r\n     *\r\n     * @returns false for disabled controls, true otherwise.\r\n     */\r\n    contains(controlName: string): boolean;\r\n    /**\r\n     * Sets the value of the `FormGroup`. It accepts an object that matches\r\n     * the structure of the group, with control names as keys.\r\n     *\r\n     * @usageNotes\r\n     * ### Set the complete value for the form group\r\n     *\r\n     * ```\r\n     * const form = new FormGroup({\r\n     *   first: new FormControl(),\r\n     *   last: new FormControl()\r\n     * });\r\n     *\r\n     * console.log(form.value);   // {first: null, last: null}\r\n     *\r\n     * form.setValue({first: 'Nancy', last: 'Drew'});\r\n     * console.log(form.value);   // {first: 'Nancy', last: 'Drew'}\r\n     * ```\r\n     *\r\n     * @throws When strict checks fail, such as setting the value of a control\r\n     * that doesn't exist or if you excluding the value of a control.\r\n     *\r\n     * @param value The new value for the control that matches the structure of the group.\r\n     * @param options Configuration options that determine how the control propagates changes\r\n     * and emits events after the value changes.\r\n     * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\r\n     * updateValueAndValidity} method.\r\n     *\r\n     * * `onlySelf`: When true, each change only affects this control, and not its parent. Default is\r\n     * 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 value is updated.\r\n     * When false, no events are emitted.\r\n     */\r\n    setValue(value: {\r\n        [key: string]: any;\r\n    }, options?: {\r\n        onlySelf?: boolean;\r\n        emitEvent?: boolean;\r\n    }): void;\r\n    /**\r\n     * Patches the value of the `FormGroup`. It accepts an object with control\r\n     * names as keys, and does its best to match the values to the correct controls\r\n     * in the group.\r\n     *\r\n     * It accepts both super-sets and sub-sets of the group without throwing an error.\r\n     *\r\n     * @usageNotes\r\n     * ### Patch the value for a form group\r\n     *\r\n     * ```\r\n     * const form = new FormGroup({\r\n     *    first: new FormControl(),\r\n     *    last: new FormControl()\r\n     * });\r\n     * console.log(form.value);   // {first: null, last: null}\r\n     *\r\n     * form.patchValue({first: 'Nancy'});\r\n     * console.log(form.value);   // {first: 'Nancy', last: null}\r\n     * ```\r\n     *\r\n     * @param value The object that matches the structure of the group.\r\n     * @param options Configuration options that determine how the control propagates changes and\r\n     * emits events after the value is patched.\r\n     * * `onlySelf`: When true, each change only affects this control and not its parent. Default is\r\n     * true.\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 value is updated.\r\n     * When false, no events are emitted.\r\n     * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\r\n     * updateValueAndValidity} method.\r\n     */\r\n    patchValue(value: {\r\n        [key: string]: any;\r\n    }, options?: {\r\n        onlySelf?: boolean;\r\n        emitEvent?: boolean;\r\n    }): void;\r\n    /**\r\n     * Resets the `FormGroup`, marks all descendants are marked `pristine` and `untouched`, and\r\n     * the value of all descendants to null.\r\n     *\r\n     * You reset to a specific form state by passing in a map of states\r\n     * that matches the structure of your form, with control names as keys. The state\r\n     * is a standalone value or a form state object with both a value and a disabled\r\n     * status.\r\n     *\r\n     * @param value Resets the control with an initial value,\r\n     * or an object that defines the initial value and disabled state.\r\n     *\r\n     * @param options Configuration options that determine how the control propagates changes\r\n     * and emits events when the group is reset.\r\n     * * `onlySelf`: When true, each change only affects this control, and not its parent. Default is\r\n     * 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 reset.\r\n     * When false, no events are emitted.\r\n     * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\r\n     * updateValueAndValidity} method.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ### Reset the form group values\r\n     *\r\n     * ```ts\r\n     * const form = new FormGroup({\r\n     *   first: new FormControl('first name'),\r\n     *   last: new FormControl('last name')\r\n     * });\r\n     *\r\n     * console.log(form.value);  // {first: 'first name', last: 'last name'}\r\n     *\r\n     * form.reset({ first: 'name', last: 'last name' });\r\n     *\r\n     * console.log(form.value);  // {first: 'name', last: 'last name'}\r\n     * ```\r\n     *\r\n     * ### Reset the form group values and disabled status\r\n     *\r\n     * ```\r\n     * const form = new FormGroup({\r\n     *   first: new FormControl('first name'),\r\n     *   last: new FormControl('last name')\r\n     * });\r\n     *\r\n     * form.reset({\r\n     *   first: {value: 'name', disabled: true},\r\n     *   last: 'last'\r\n     * });\r\n     *\r\n     * console.log(this.form.value);  // {first: 'name', last: 'last name'}\r\n     * console.log(this.form.get('first').status);  // 'DISABLED'\r\n     * ```\r\n     */\r\n    reset(value?: any, options?: {\r\n        onlySelf?: boolean;\r\n        emitEvent?: boolean;\r\n    }): void;\r\n    /**\r\n     * The aggregate value of the `FormGroup`, including any disabled controls.\r\n     *\r\n     * Retrieves all values regardless of disabled status.\r\n     * The `value` property is the best way to get the value of the group, because\r\n     * it excludes disabled controls in the `FormGroup`.\r\n     */\r\n    getRawValue(): any;\r\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Binds an existing `FormGroup` to a DOM element.\r\n *\r\n * This directive accepts an existing `FormGroup` instance. It will then use this\r\n * `FormGroup` instance to match any child `FormControl`, `FormGroup`,\r\n * and `FormArray` instances to child `FormControlName`, `FormGroupName`,\r\n * and `FormArrayName` directives.\r\n *\r\n * @see [Reactive Forms Guide](guide/reactive-forms)\r\n * @see `AbstractControl`\r\n *\r\n * ### Register Form Group\r\n *\r\n * The following example registers a `FormGroup` with first name and last name controls,\r\n * and listens for the *ngSubmit* event when the button is clicked.\r\n *\r\n * {@example forms/ts/simpleFormGroup/simple_form_group_example.ts region='Component'}\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @publicApi\r\n */\r\nexport declare class FormGroupDirective extends ControlContainer implements Form, OnChanges {\r\n    private _validators;\r\n    private _asyncValidators;\r\n    /**\r\n     * @description\r\n     * Reports whether the form submission has been triggered.\r\n     */\r\n    readonly submitted: boolean;\r\n    private _oldForm;\r\n    /**\r\n     * @description\r\n     * Tracks the list of added `FormControlName` instances\r\n     */\r\n    directives: FormControlName[];\r\n    /**\r\n     * @description\r\n     * Tracks the `FormGroup` bound to this directive.\r\n     */\r\n    form: FormGroup;\r\n    /**\r\n     * @description\r\n     * Emits an event when the form submission has been triggered.\r\n     */\r\n    ngSubmit: EventEmitter<any>;\r\n    constructor(_validators: any[], _asyncValidators: any[]);\r\n    /**\r\n     * @description\r\n     * A lifecycle method called when the directive's inputs change. For internal use only.\r\n     *\r\n     * @param changes A object of key/value pairs for the set of changed inputs.\r\n     */\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n    /**\r\n     * @description\r\n     * Returns this directive's instance.\r\n     */\r\n    readonly formDirective: Form;\r\n    /**\r\n     * @description\r\n     * Returns the `FormGroup` bound to this directive.\r\n     */\r\n    readonly control: FormGroup;\r\n    /**\r\n     * @description\r\n     * Returns an array representing the path to this group. Because this directive\r\n     * always lives at the top level of a form, it always an empty array.\r\n     */\r\n    readonly path: string[];\r\n    /**\r\n     * @description\r\n     * Method that sets up the control directive in this group, re-calculates its value\r\n     * and validity, and adds the instance to the internal list of directives.\r\n     *\r\n     * @param dir The `FormControlName` directive instance.\r\n     */\r\n    addControl(dir: FormControlName): FormControl;\r\n    /**\r\n     * @description\r\n     * Retrieves the `FormControl` instance from the provided `FormControlName` directive\r\n     *\r\n     * @param dir The `FormControlName` directive instance.\r\n     */\r\n    getControl(dir: FormControlName): FormControl;\r\n    /**\r\n     * @description\r\n     * Removes the `FormControlName` instance from the internal list of directives\r\n     *\r\n     * @param dir The `FormControlName` directive instance.\r\n     */\r\n    removeControl(dir: FormControlName): void;\r\n    /**\r\n     * Adds a new `FormGroupName` directive instance to the form.\r\n     *\r\n     * @param dir The `FormGroupName` directive instance.\r\n     */\r\n    addFormGroup(dir: FormGroupName): void;\r\n    /**\r\n     * No-op method to remove the form group.\r\n     *\r\n     * @param dir The `FormGroupName` directive instance.\r\n     */\r\n    removeFormGroup(dir: FormGroupName): void;\r\n    /**\r\n     * @description\r\n     * Retrieves the `FormGroup` for a provided `FormGroupName` directive instance\r\n     *\r\n     * @param dir The `FormGroupName` directive instance.\r\n     */\r\n    getFormGroup(dir: FormGroupName): FormGroup;\r\n    /**\r\n     * Adds a new `FormArrayName` directive instance to the form.\r\n     *\r\n     * @param dir The `FormArrayName` directive instance.\r\n     */\r\n    addFormArray(dir: FormArrayName): void;\r\n    /**\r\n     * No-op method to remove the form array.\r\n     *\r\n     * @param dir The `FormArrayName` directive instance.\r\n     */\r\n    removeFormArray(dir: FormArrayName): void;\r\n    /**\r\n     * @description\r\n     * Retrieves the `FormArray` for a provided `FormArrayName` directive instance.\r\n     *\r\n     * @param dir The `FormArrayName` directive instance.\r\n     */\r\n    getFormArray(dir: FormArrayName): FormArray;\r\n    /**\r\n     * Sets the new value for the provided `FormControlName` directive.\r\n     *\r\n     * @param dir The `FormControlName` directive instance.\r\n     * @param value The new value for the directive's control.\r\n     */\r\n    updateModel(dir: FormControlName, value: any): void;\r\n    /**\r\n     * @description\r\n     * Method called with the \"submit\" event is triggered on the form.\r\n     * Triggers the `ngSubmit` emitter to emit the \"submit\" event as its payload.\r\n     *\r\n     * @param $event The \"submit\" event object\r\n     */\r\n    onSubmit($event: Event): boolean;\r\n    /**\r\n     * @description\r\n     * Method called when the \"reset\" event is triggered on the form.\r\n     */\r\n    onReset(): void;\r\n    /**\r\n     * @description\r\n     * Resets the form to an initial value and resets its submitted status.\r\n     *\r\n     * @param value The new value for the form.\r\n     */\r\n    resetForm(value?: any): void;\r\n    private _updateRegistrations;\r\n    private _updateValidators;\r\n    private _checkFormPresent;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<FormGroupDirective>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<FormGroupDirective, \"[formGroup]\", [\"ngForm\"], { 'form': \"formGroup\" }, { 'ngSubmit': \"ngSubmit\" }, never>;\n}\r\n\r\n/**\r\n * @description\r\n *\r\n * Syncs a nested `FormGroup` to a DOM element.\r\n *\r\n * This directive can only be used with a parent `FormGroupDirective`.\r\n *\r\n * It accepts the string name of the nested `FormGroup` to link, and\r\n * looks for a `FormGroup` registered with that name in the parent\r\n * `FormGroup` instance you passed into `FormGroupDirective`.\r\n *\r\n * Use nested form groups to validate a sub-group of a\r\n * form separately from the rest or to group the values of certain\r\n * controls into their own nested object.\r\n *\r\n * @see [Reactive Forms Guide](guide/reactive-forms)\r\n *\r\n * @usageNotes\r\n *\r\n * ### Access the group by name\r\n *\r\n * The following example uses the {@link AbstractControl#get get} method to access the\r\n * associated `FormGroup`\r\n *\r\n * ```ts\r\n *   this.form.get('name');\r\n * ```\r\n *\r\n * ### Access individual controls in the group\r\n *\r\n * The following example uses the {@link AbstractControl#get get} method to access\r\n * individual controls within the group using dot syntax.\r\n *\r\n * ```ts\r\n *   this.form.get('name.first');\r\n * ```\r\n *\r\n * ### Register a nested `FormGroup`.\r\n *\r\n * The following example registers a nested *name* `FormGroup` within an existing `FormGroup`,\r\n * and provides methods to retrieve the nested `FormGroup` and individual controls.\r\n *\r\n * {@example forms/ts/nestedFormGroup/nested_form_group_example.ts region='Component'}\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @publicApi\r\n */\r\nexport declare class FormGroupName extends AbstractFormGroupDirective implements OnInit, OnDestroy {\r\n    /**\r\n     * @description\r\n     * Tracks the name of the `FormGroup` bound to the directive. The name corresponds\r\n     * to a key in the parent `FormGroup` or `FormArray`.\r\n     * Accepts a name as a string or a number.\r\n     * The name in the form of a string is useful for individual forms,\r\n     * while the numerical form allows for form groups to be bound\r\n     * to indices when iterating over groups in a `FormArray`.\r\n     */\r\n    name: string | number | null;\r\n    constructor(parent: ControlContainer, validators: any[], asyncValidators: any[]);\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<FormGroupName>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<FormGroupName, \"[formGroupName]\", never, { 'name': \"formGroupName\" }, {}, never>;\n}\r\n\r\ndeclare type FormHooks = 'change' | 'blur' | 'submit';\r\n\r\n/**\r\n * Exports the required providers and directives for template-driven forms,\r\n * making them available for import by NgModules that import this module.\r\n *\r\n * @see [Forms Guide](/guide/forms)\r\n *\r\n * @publicApi\r\n */\r\nexport declare class FormsModule {\r\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<FormsModule, [typeof NgModel, typeof NgModelGroup, typeof NgForm], never, [typeof ɵInternalFormsSharedModule, typeof NgModel, typeof NgModelGroup, typeof NgForm]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<FormsModule>;\n}\r\n\r\n/**\r\n * A directive that adds max length validation to controls marked with the\r\n * `maxlength` 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 maximum length validator\r\n *\r\n * The following example shows how to add a maximum length validator to an input attached to an\r\n * ngModel binding.\r\n *\r\n * ```html\r\n * <input name=\"firstName\" ngModel maxlength=\"25\">\r\n * ```\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class MaxLengthValidator implements Validator, OnChanges {\r\n    private _validator;\r\n    private _onChange;\r\n    /**\r\n     * @description\r\n     * Tracks changes to the the maximum length bound to this directive.\r\n     */\r\n    maxlength: string;\r\n    /**\r\n     * @description\r\n     * A lifecycle method called when the directive's inputs change. For internal use\r\n     * only.\r\n     *\r\n     * @param changes A object of key/value pairs for the set of changed inputs.\r\n     */\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n    /**\r\n     * @description\r\n     * Method that validates whether the value exceeds\r\n     * the maximum length requirement.\r\n     */\r\n    validate(control: AbstractControl): ValidationErrors | null;\r\n    /**\r\n     * @description\r\n     * Registers a callback function to call when the validator inputs change.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnValidatorChange(fn: () => void): void;\r\n    private _createValidator;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MaxLengthValidator>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MaxLengthValidator, \"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]\", never, { 'maxlength': \"maxlength\" }, {}, never>;\n}\r\n\r\n/**\r\n * A directive that adds minimum length validation to controls marked with the\r\n * `minlength` attribute. The directive is provided with the `NG_VALIDATORS` mult-provider list.\r\n *\r\n * @see [Form Validation](guide/form-validation)\r\n *\r\n * @usageNotes\r\n *\r\n * ### Adding a minimum length validator\r\n *\r\n * The following example shows how to add a minimum length validator to an input attached to an\r\n * ngModel binding.\r\n *\r\n * ```html\r\n * <input name=\"firstName\" ngModel minlength=\"4\">\r\n * ```\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class MinLengthValidator implements Validator, OnChanges {\r\n    private _validator;\r\n    private _onChange;\r\n    /**\r\n     * @description\r\n     * Tracks changes to the the minimum length bound to this directive.\r\n     */\r\n    minlength: string;\r\n    /**\r\n     * @description\r\n     * A lifecycle method called when the directive's inputs change. For internal use\r\n     * only.\r\n     *\r\n     * @param changes A object of key/value pairs for the set of changed inputs.\r\n     */\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n    /**\r\n     * @description\r\n     * Method that validates whether the value meets a minimum length\r\n     * requirement. Returns the validation result if enabled, otherwise null.\r\n     */\r\n    validate(control: AbstractControl): ValidationErrors | null;\r\n    /**\r\n     * @description\r\n     * Registers a callback function to call when the validator inputs change.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnValidatorChange(fn: () => void): void;\r\n    private _createValidator;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<MinLengthValidator>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<MinLengthValidator, \"[minlength][formControlName],[minlength][formControl],[minlength][ngModel]\", never, { 'minlength': \"minlength\" }, {}, never>;\n}\r\n\r\n/**\r\n * @description\r\n * An `InjectionToken` for registering additional asynchronous validators used with `AbstractControl`s.\r\n *\r\n * @see `NG_VALIDATORS`\r\n *\r\n * @publicApi\r\n */\r\nexport declare const NG_ASYNC_VALIDATORS: InjectionToken<(Function | Validator)[]>;\r\n\r\n/**\r\n * @description\r\n * An `InjectionToken` for registering additional synchronous validators used with `AbstractControl`s.\r\n *\r\n * @see `NG_ASYNC_VALIDATORS`\r\n *\r\n * @usageNotes\r\n *\r\n * ### Providing a custom validator\r\n *\r\n * The following example registers a custom validator directive. Adding the validator to the\r\n * existing collection of validators requires the `multi: true` option.\r\n *\r\n * ```typescript\r\n * @Directive({\r\n *   selector: '[customValidator]',\r\n *   providers: [{provide: NG_VALIDATORS, useExisting: CustomValidatorDirective, multi: true}]\r\n * })\r\n * class CustomValidatorDirective implements Validator {\r\n *   validate(control: AbstractControl): ValidationErrors | null {\r\n *     return { 'custom': true };\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare const NG_VALIDATORS: InjectionToken<(Function | Validator)[]>;\r\n\r\n/**\r\n * Used to provide a `ControlValueAccessor` for form controls.\r\n *\r\n * See `DefaultValueAccessor` for how to implement one.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const NG_VALUE_ACCESSOR: InjectionToken<ControlValueAccessor>;\r\n\r\n/**\r\n * @description\r\n * A base class that all control `FormControl`-based directives extend. It binds a `FormControl`\r\n * object to a DOM element.\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class NgControl 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 value accessor for the control\r\n     */\r\n    valueAccessor: ControlValueAccessor | null;\r\n    /**\r\n     * @description\r\n     * The registered synchronous validator function for the control\r\n     *\r\n     * @throws An exception that this method is not implemented\r\n     */\r\n    readonly validator: ValidatorFn | null;\r\n    /**\r\n     * @description\r\n     * The registered async validator function for the control\r\n     *\r\n     * @throws An exception that this method is not implemented\r\n     */\r\n    readonly asyncValidator: AsyncValidatorFn | null;\r\n    /**\r\n     * @description\r\n     * The callback method to update the model from the view when requested\r\n     *\r\n     * @param newValue The new value for the view\r\n     */\r\n    abstract viewToModelUpdate(newValue: any): void;\r\n}\r\n\r\n/**\r\n * @description\r\n * Directive automatically applied to Angular form controls that sets CSS classes\r\n * based on control status.\r\n *\r\n * @usageNotes\r\n *\r\n * ### CSS classes applied\r\n *\r\n * The following classes are applied as the properties become true:\r\n *\r\n * * ng-valid\r\n * * ng-invalid\r\n * * ng-pending\r\n * * ng-pristine\r\n * * ng-dirty\r\n * * ng-untouched\r\n * * ng-touched\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class NgControlStatus extends ɵangular_packages_forms_forms_g {\r\n    constructor(cd: NgControl);\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<NgControlStatus>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<NgControlStatus, \"[formControlName],[ngModel],[formControl]\", never, {}, {}, never>;\n}\r\n\r\n/**\r\n * @description\r\n * Directive automatically applied to Angular form groups that sets CSS classes\r\n * based on control status (valid/invalid/dirty/etc).\r\n *\r\n * @see `NgControlStatus`\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class NgControlStatusGroup extends ɵangular_packages_forms_forms_g {\r\n    constructor(cd: ControlContainer);\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<NgControlStatusGroup>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<NgControlStatusGroup, \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\", never, {}, {}, never>;\n}\r\n\r\n/**\r\n * @description\r\n * Creates a top-level `FormGroup` instance and binds it to a form\r\n * to track aggregate form value and validation status.\r\n *\r\n * As soon as you import the `FormsModule`, this directive becomes active by default on\r\n * all `<form>` tags.  You don't need to add a special selector.\r\n *\r\n * You optionally export the directive into a local template variable using `ngForm` as the key\r\n * (ex: `#myForm=\"ngForm\"`). This is optional, but useful.  Many properties from the underlying\r\n * `FormGroup` instance are duplicated on the directive itself, so a reference to it\r\n * gives you access to the aggregate value and validity status of the form, as well as\r\n * user interaction properties like `dirty` and `touched`.\r\n *\r\n * To register child controls with the form, use `NgModel` with a `name`\r\n * attribute. You may use `NgModelGroup` to create sub-groups within the form.\r\n *\r\n * If necessary, listen to the directive's `ngSubmit` event to be notified when the user has\r\n * triggered a form submission. The `ngSubmit` event emits the original form\r\n * submission event.\r\n *\r\n * In template driven forms, all `<form>` tags are automatically tagged as `NgForm`.\r\n * To import the `FormsModule` but skip its usage in some forms,\r\n * for example, to use native HTML5 validation, add the `ngNoForm` and the `<form>`\r\n * tags won't create an `NgForm` directive. In reactive forms, using `ngNoForm` is\r\n * unnecessary because the `<form>` tags are inert. In that case, you would\r\n * refrain from using the `formGroup` directive.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Migrating from deprecated ngForm selector\r\n *\r\n * Support for using `ngForm` element selector has been deprecated in Angular v6 and will be removed\r\n * in Angular v9.\r\n *\r\n * This has been deprecated to keep selectors consistent with other core Angular selectors,\r\n * as element selectors are typically written in kebab-case.\r\n *\r\n * Now deprecated:\r\n * ```html\r\n * <ngForm #myForm=\"ngForm\">\r\n * ```\r\n *\r\n * After:\r\n * ```html\r\n * <ng-form #myForm=\"ngForm\">\r\n * ```\r\n *\r\n * ### Listening for form submission\r\n *\r\n * The following example shows how to capture the form values from the \"ngSubmit\" event.\r\n *\r\n * {@example forms/ts/simpleForm/simple_form_example.ts region='Component'}\r\n *\r\n * ### Setting the update options\r\n *\r\n * The following example shows you how to change the \"updateOn\" option from its default using\r\n * ngFormOptions.\r\n *\r\n * ```html\r\n * <form [ngFormOptions]=\"{updateOn: 'blur'}\">\r\n *    <input name=\"one\" ngModel>  <!-- this ngModel will update on blur -->\r\n * </form>\r\n * ```\r\n *\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class NgForm extends ControlContainer implements Form, AfterViewInit {\r\n    /**\r\n     * @description\r\n     * Returns whether the form submission has been triggered.\r\n     */\r\n    readonly submitted: boolean;\r\n    private _directives;\r\n    /**\r\n     * @description\r\n     * The `FormGroup` instance created for this form.\r\n     */\r\n    form: FormGroup;\r\n    /**\r\n     * @description\r\n     * Event emitter for the \"ngSubmit\" event\r\n     */\r\n    ngSubmit: EventEmitter<any>;\r\n    /**\r\n     * @description\r\n     * Tracks options for the `NgForm` instance.\r\n     *\r\n     * **updateOn**: Sets the default `updateOn` value for all child `NgModels` below it\r\n     * unless explicitly set by a child `NgModel` using `ngModelOptions`). Defaults to 'change'.\r\n     * Possible values: `'change'` | `'blur'` | `'submit'`.\r\n     *\r\n     */\r\n    options: {\r\n        updateOn?: FormHooks;\r\n    };\r\n    constructor(validators: any[], asyncValidators: any[]);\r\n    /**\r\n     * @description\r\n     * Lifecycle method called after the view is initialized. For internal use only.\r\n     */\r\n    ngAfterViewInit(): void;\r\n    /**\r\n     * @description\r\n     * The directive instance.\r\n     */\r\n    readonly formDirective: Form;\r\n    /**\r\n     * @description\r\n     * The internal `FormGroup` instance.\r\n     */\r\n    readonly control: FormGroup;\r\n    /**\r\n     * @description\r\n     * Returns an array representing the path to this group. Because this directive\r\n     * always lives at the top level of a form, it is always an empty array.\r\n     */\r\n    readonly path: string[];\r\n    /**\r\n     * @description\r\n     * Returns a map of the controls in this group.\r\n     */\r\n    readonly controls: {\r\n        [key: string]: AbstractControl;\r\n    };\r\n    /**\r\n     * @description\r\n     * Method that sets up the control directive in this group, re-calculates its value\r\n     * and validity, and adds the instance to the internal list of directives.\r\n     *\r\n     * @param dir The `NgModel` directive instance.\r\n     */\r\n    addControl(dir: NgModel): void;\r\n    /**\r\n     * @description\r\n     * Retrieves the `FormControl` instance from the provided `NgModel` directive.\r\n     *\r\n     * @param dir The `NgModel` directive instance.\r\n     */\r\n    getControl(dir: NgModel): FormControl;\r\n    /**\r\n     * @description\r\n     * Removes the `NgModel` instance from the internal list of directives\r\n     *\r\n     * @param dir The `NgModel` directive instance.\r\n     */\r\n    removeControl(dir: NgModel): void;\r\n    /**\r\n     * @description\r\n     * Adds a new `NgModelGroup` directive instance to the form.\r\n     *\r\n     * @param dir The `NgModelGroup` directive instance.\r\n     */\r\n    addFormGroup(dir: NgModelGroup): void;\r\n    /**\r\n     * @description\r\n     * Removes the `NgModelGroup` directive instance from the form.\r\n     *\r\n     * @param dir The `NgModelGroup` directive instance.\r\n     */\r\n    removeFormGroup(dir: NgModelGroup): void;\r\n    /**\r\n     * @description\r\n     * Retrieves the `FormGroup` for a provided `NgModelGroup` directive instance\r\n     *\r\n     * @param dir The `NgModelGroup` directive instance.\r\n     */\r\n    getFormGroup(dir: NgModelGroup): FormGroup;\r\n    /**\r\n     * Sets the new value for the provided `NgControl` directive.\r\n     *\r\n     * @param dir The `NgControl` directive instance.\r\n     * @param value The new value for the directive's control.\r\n     */\r\n    updateModel(dir: NgControl, value: any): void;\r\n    /**\r\n     * @description\r\n     * Sets the value for this `FormGroup`.\r\n     *\r\n     * @param value The new value\r\n     */\r\n    setValue(value: {\r\n        [key: string]: any;\r\n    }): void;\r\n    /**\r\n     * @description\r\n     * Method called when the \"submit\" event is triggered on the form.\r\n     * Triggers the `ngSubmit` emitter to emit the \"submit\" event as its payload.\r\n     *\r\n     * @param $event The \"submit\" event object\r\n     */\r\n    onSubmit($event: Event): boolean;\r\n    /**\r\n     * @description\r\n     * Method called when the \"reset\" event is triggered on the form.\r\n     */\r\n    onReset(): void;\r\n    /**\r\n     * @description\r\n     * Resets the form to an initial value and resets its submitted status.\r\n     *\r\n     * @param value The new value for the form.\r\n     */\r\n    resetForm(value?: any): void;\r\n    private _setUpdateStrategy;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<NgForm>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<NgForm, \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", [\"ngForm\"], { 'options': \"ngFormOptions\" }, { 'ngSubmit': \"ngSubmit\" }, never>;\n}\r\n\r\n/**\r\n * @description\r\n * Creates a `FormControl` instance from a domain model and binds it\r\n * to a form control element.\r\n *\r\n * The `FormControl` instance tracks the value, user interaction, and\r\n * validation status of the control and keeps the view synced with the model. If used\r\n * within a parent form, the directive also registers itself with the form as a child\r\n * control.\r\n *\r\n * This directive is used by itself or as part of a larger form. Use the\r\n * `ngModel` selector to activate it.\r\n *\r\n * It accepts a domain model as an optional `Input`. If you have a one-way binding\r\n * to `ngModel` with `[]` syntax, changing the value of the domain model in the component\r\n * class sets the value in the view. If you have a two-way binding with `[()]` syntax\r\n * (also known as 'banana-box syntax'), the value in the UI always syncs back to\r\n * the domain model in your class.\r\n *\r\n * To inspect the properties of the associated `FormControl` (like validity state),\r\n * export the directive into a local template variable using `ngModel` as the key (ex: `#myVar=\"ngModel\"`).\r\n * You then access the control using the directive's `control` property,\r\n * but most properties used (like `valid` and `dirty`) fall through to the control anyway for direct access.\r\n * See a full list of properties directly available in `AbstractControlDirective`.\r\n *\r\n * @see `RadioControlValueAccessor`\r\n * @see `SelectControlValueAccessor`\r\n *\r\n * @usageNotes\r\n *\r\n * ### Using ngModel on a standalone control\r\n *\r\n * The following examples show a simple standalone control using `ngModel`:\r\n *\r\n * {@example forms/ts/simpleNgModel/simple_ng_model_example.ts region='Component'}\r\n *\r\n * When using the `ngModel` within `<form>` tags, you'll also need to supply a `name` attribute\r\n * so that the control can be registered with the parent form under that name.\r\n *\r\n * In the context of a parent form, it's often unnecessary to include one-way or two-way binding,\r\n * as the parent form syncs the value for you. You access its properties by exporting it into a\r\n * local template variable using `ngForm` such as (`#f=\"ngForm\"`). Use the variable where\r\n * needed on form submission.\r\n *\r\n * If you do need to populate initial values into your form, using a one-way binding for\r\n * `ngModel` tends to be sufficient as long as you use the exported form's value rather\r\n * than the domain model's value on submit.\r\n *\r\n * ### Using ngModel within a form\r\n *\r\n * The following example shows controls using `ngModel` within a form:\r\n *\r\n * {@example forms/ts/simpleForm/simple_form_example.ts region='Component'}\r\n *\r\n * ### Using a standalone ngModel within a group\r\n *\r\n * The following example shows you how to use a standalone ngModel control\r\n * within a form. This controls the display of the form, but doesn't contain form data.\r\n *\r\n * ```html\r\n * <form>\r\n *   <input name=\"login\" ngModel placeholder=\"Login\">\r\n *   <input type=\"checkbox\" ngModel [ngModelOptions]=\"{standalone: true}\"> Show more options?\r\n * </form>\r\n * <!-- form value: {login: ''} -->\r\n * ```\r\n *\r\n * ### Setting the ngModel name attribute through options\r\n *\r\n * The following example shows you an alternate way to set the name attribute. The name attribute is used\r\n * within a custom form component, and the name `@Input` property serves a different purpose.\r\n *\r\n * ```html\r\n * <form>\r\n *   <my-person-control name=\"Nancy\" ngModel [ngModelOptions]=\"{name: 'user'}\">\r\n *   </my-person-control>\r\n * </form>\r\n * <!-- form value: {user: ''} -->\r\n * ```\r\n *\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class NgModel extends NgControl implements OnChanges, OnDestroy {\r\n    readonly control: FormControl;\r\n    /**\r\n     * @description\r\n     * Internal reference to the view model value.\r\n     */\r\n    viewModel: any;\r\n    /**\r\n     * @description\r\n     * Tracks the name bound to the directive. The parent form\r\n     * uses this name as a key to retrieve this control's value.\r\n     */\r\n    name: string;\r\n    /**\r\n     * @description\r\n     * Tracks whether the control is disabled.\r\n     */\r\n    isDisabled: boolean;\r\n    /**\r\n     * @description\r\n     * Tracks the value bound to this directive.\r\n     */\r\n    model: any;\r\n    /**\r\n     * @description\r\n     * Tracks the configuration options for this `ngModel` instance.\r\n     *\r\n     * **name**: An alternative to setting the name attribute on the form control element. See\r\n     * the [example](api/forms/NgModel#using-ngmodel-on-a-standalone-control) for using `NgModel`\r\n     * as a standalone control.\r\n     *\r\n     * **standalone**: When set to true, the `ngModel` will not register itself with its parent form,\r\n     * and acts as if it's not in the form. Defaults to false.\r\n     *\r\n     * **updateOn**: Defines the event upon which the form control value and validity update.\r\n     * Defaults to 'change'. Possible values: `'change'` | `'blur'` | `'submit'`.\r\n     *\r\n     */\r\n    options: {\r\n        name?: string;\r\n        standalone?: boolean;\r\n        updateOn?: FormHooks;\r\n    };\r\n    /**\r\n     * @description\r\n     * Event emitter for producing the `ngModelChange` event after\r\n     * the view model updates.\r\n     */\r\n    update: EventEmitter<any>;\r\n    constructor(parent: ControlContainer, validators: Array<Validator | ValidatorFn>, asyncValidators: Array<AsyncValidator | AsyncValidatorFn>, valueAccessors: ControlValueAccessor[]);\r\n    /**\r\n     * @description\r\n     * A lifecycle method called when the directive's inputs change. For internal use\r\n     * only.\r\n     *\r\n     * @param changes A object of key/value pairs for the set of changed inputs.\r\n     */\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n    /**\r\n     * @description\r\n     * Lifecycle method called before the directive's instance is destroyed. For internal\r\n     * use only.\r\n     */\r\n    ngOnDestroy(): void;\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    readonly path: string[];\r\n    /**\r\n     * @description\r\n     * The top-level directive for this control if present, otherwise null.\r\n     */\r\n    readonly formDirective: any;\r\n    /**\r\n     * @description\r\n     * Synchronous validator function composed of all the synchronous validators\r\n     * registered with this directive.\r\n     */\r\n    readonly validator: ValidatorFn | null;\r\n    /**\r\n     * @description\r\n     * Async validator function composed of all the async validators registered with this\r\n     * directive.\r\n     */\r\n    readonly asyncValidator: AsyncValidatorFn | null;\r\n    /**\r\n     * @description\r\n     * Sets the new value for the view model and emits an `ngModelChange` event.\r\n     *\r\n     * @param newValue The new value emitted by `ngModelChange`.\r\n     */\r\n    viewToModelUpdate(newValue: any): void;\r\n    private _setUpControl;\r\n    private _setUpdateStrategy;\r\n    private _isStandalone;\r\n    private _setUpStandalone;\r\n    private _checkForErrors;\r\n    private _checkParentType;\r\n    private _checkName;\r\n    private _updateValue;\r\n    private _updateDisabled;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<NgModel>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<NgModel, \"[ngModel]:not([formControlName]):not([formControl])\", [\"ngModel\"], { 'name': \"name\", 'isDisabled': \"disabled\", 'model': \"ngModel\", 'options': \"ngModelOptions\" }, { 'update': \"ngModelChange\" }, never>;\n}\r\n\r\n/**\r\n * @description\r\n * Creates and binds a `FormGroup` instance to a DOM element.\r\n *\r\n * This directive can only be used as a child of `NgForm` (within `<form>` tags).\r\n *\r\n * Use this directive to validate a sub-group of your form separately from the\r\n * rest of your form, or if some values in your domain model make more sense\r\n * to consume together in a nested object.\r\n *\r\n * Provide a name for the sub-group and it will become the key\r\n * for the sub-group in the form's full value. If you need direct access, export the directive into\r\n * a local template variable using `ngModelGroup` (ex: `#myGroup=\"ngModelGroup\"`).\r\n *\r\n * @usageNotes\r\n *\r\n * ### Consuming controls in a grouping\r\n *\r\n * The following example shows you how to combine controls together in a sub-group\r\n * of the form.\r\n *\r\n * {@example forms/ts/ngModelGroup/ng_model_group_example.ts region='Component'}\r\n *\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class NgModelGroup extends AbstractFormGroupDirective implements OnInit, OnDestroy {\r\n    /**\r\n     * @description\r\n     * Tracks the name of the `NgModelGroup` bound to the directive. The name corresponds\r\n     * to a key in the parent `NgForm`.\r\n     */\r\n    name: string;\r\n    constructor(parent: ControlContainer, validators: any[], asyncValidators: any[]);\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<NgModelGroup>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<NgModelGroup, \"[ngModelGroup]\", [\"ngModelGroup\"], { 'name': \"ngModelGroup\" }, {}, never>;\n}\r\n\r\n/**\r\n * @description\r\n * Marks `<option>` as dynamic, so Angular can be notified when options change.\r\n *\r\n * @see `SelectControlValueAccessor`\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class NgSelectOption implements OnDestroy {\r\n    private _element;\r\n    private _renderer;\r\n    private _select;\r\n    /**\r\n     * @description\r\n     * ID of the option element\r\n     */\r\n    id: string;\r\n    constructor(_element: ElementRef, _renderer: Renderer2, _select: SelectControlValueAccessor);\r\n    /**\r\n     * @description\r\n     * Tracks the value bound to the option element. Unlike the value binding,\r\n     * ngValue supports binding to objects.\r\n     */\r\n    ngValue: any;\r\n    /**\r\n     * @description\r\n     * Tracks simple string values bound to the option element.\r\n     * For objects, use the `ngValue` input binding.\r\n     */\r\n    value: any;\r\n    /**\r\n     * @description\r\n     * Lifecycle method called before the directive's instance is destroyed. For internal use only.\r\n     */\r\n    ngOnDestroy(): void;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<NgSelectOption>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<NgSelectOption, \"option\", never, { 'ngValue': \"ngValue\", 'value': \"value\" }, {}, never>;\n}\r\n\r\n/**\r\n * @description\r\n * The `ControlValueAccessor` for writing a number value and listening to number input changes.\r\n * The value accessor is used by the `FormControlDirective`, `FormControlName`, and  `NgModel`\r\n * directives.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Using a number input with a reactive form.\r\n *\r\n * The following example shows how to use a number input with a reactive form.\r\n *\r\n * ```ts\r\n * const totalCountControl = new FormControl();\r\n * ```\r\n *\r\n * ```\r\n * <input type=\"number\" [formControl]=\"totalCountControl\">\r\n * ```\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class NumberValueAccessor implements ControlValueAccessor {\r\n    private _renderer;\r\n    private _elementRef;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when a change or input event occurs on the input\r\n     * element.\r\n     */\r\n    onChange: (_: any) => void;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when a blur event occurs on the input element.\r\n     */\r\n    onTouched: () => void;\r\n    constructor(_renderer: Renderer2, _elementRef: ElementRef);\r\n    /**\r\n     * Sets the \"value\" property on the input element.\r\n     *\r\n     * @param value The checked value\r\n     */\r\n    writeValue(value: number): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control value changes.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnChange(fn: (_: number | null) => void): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control is touched.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnTouched(fn: () => void): void;\r\n    /**\r\n     * Sets the \"disabled\" property on the input element.\r\n     *\r\n     * @param isDisabled The disabled value\r\n     */\r\n    setDisabledState(isDisabled: boolean): void;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<NumberValueAccessor>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<NumberValueAccessor, \"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]\", never, {}, {}, never>;\n}\r\n\r\n/**\r\n * @description\r\n * A directive that adds regex pattern validation to controls marked with the\r\n * `pattern` attribute. The regex must match the entire control value.\r\n * 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 pattern validator\r\n *\r\n * The following example shows how to add a pattern validator to an input attached to an\r\n * ngModel binding.\r\n *\r\n * ```html\r\n * <input name=\"firstName\" ngModel pattern=\"[a-zA-Z ]*\">\r\n * ```\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class PatternValidator implements Validator, OnChanges {\r\n    private _validator;\r\n    private _onChange;\r\n    /**\r\n     * @description\r\n     * Tracks changes to the pattern bound to this directive.\r\n     */\r\n    pattern: string | RegExp;\r\n    /**\r\n     * @description\r\n     * A lifecycle method called when the directive's inputs change. For internal use\r\n     * only.\r\n     *\r\n     * @param changes A object of key/value pairs for the set of changed inputs.\r\n     */\r\n    ngOnChanges(changes: SimpleChanges): void;\r\n    /**\r\n     * @description\r\n     * Method that validates whether the value matches the\r\n     * the pattern requirement.\r\n     */\r\n    validate(control: AbstractControl): ValidationErrors | null;\r\n    /**\r\n     * @description\r\n     * Registers a callback function to call when the validator inputs change.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnValidatorChange(fn: () => void): void;\r\n    private _createValidator;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<PatternValidator>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<PatternValidator, \"[pattern][formControlName],[pattern][formControl],[pattern][ngModel]\", never, { 'pattern': \"pattern\" }, {}, never>;\n}\r\n\r\n/**\r\n * @description\r\n * The `ControlValueAccessor` for writing radio control values and listening to radio control\r\n * changes. The value accessor is used by the `FormControlDirective`, `FormControlName`, and\r\n * `NgModel` directives.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Using radio buttons with reactive form directives\r\n *\r\n * The follow example shows how to use radio buttons in a reactive form. When using radio buttons in\r\n * a reactive form, radio buttons in the same group should have the same `formControlName`.\r\n * Providing a `name` attribute is optional.\r\n *\r\n * {@example forms/ts/reactiveRadioButtons/reactive_radio_button_example.ts region='Reactive'}\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class RadioControlValueAccessor implements ControlValueAccessor, OnDestroy, OnInit {\r\n    private _renderer;\r\n    private _elementRef;\r\n    private _registry;\r\n    private _injector;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when a change event occurs on the input element.\r\n     */\r\n    onChange: () => void;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when a blur event occurs on the input element.\r\n     */\r\n    onTouched: () => void;\r\n    /**\r\n     * @description\r\n     * Tracks the name of the radio input element.\r\n     */\r\n    name: string;\r\n    /**\r\n     * @description\r\n     * Tracks the name of the `FormControl` bound to the directive. The name corresponds\r\n     * to a key in the parent `FormGroup` or `FormArray`.\r\n     */\r\n    formControlName: string;\r\n    /**\r\n     * @description\r\n     * Tracks the value of the radio input element\r\n     */\r\n    value: any;\r\n    constructor(_renderer: Renderer2, _elementRef: ElementRef, _registry: ɵangular_packages_forms_forms_n, _injector: Injector);\r\n    /**\r\n     * @description\r\n     * A lifecycle method called when the directive is initialized. For internal use only.\r\n     */\r\n    ngOnInit(): void;\r\n    /**\r\n     * @description\r\n     * Lifecycle method called before the directive's instance is destroyed. For internal use only.\r\n     */\r\n    ngOnDestroy(): void;\r\n    /**\r\n     * @description\r\n     * Sets the \"checked\" property value on the radio input element.\r\n     *\r\n     * @param value The checked value\r\n     */\r\n    writeValue(value: any): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control value changes.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnChange(fn: (_: any) => {}): void;\r\n    /**\r\n     * Sets the \"value\" on the radio input element and unchecks it.\r\n     *\r\n     * @param value\r\n     */\r\n    fireUncheck(value: any): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control is touched.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnTouched(fn: () => {}): void;\r\n    /**\r\n     * Sets the \"disabled\" property on the input element.\r\n     *\r\n     * @param isDisabled The disabled value\r\n     */\r\n    setDisabledState(isDisabled: boolean): void;\r\n    private _checkName;\r\n    private _throwNameError;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<RadioControlValueAccessor>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<RadioControlValueAccessor, \"input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]\", never, { 'name': \"name\", 'formControlName': \"formControlName\", 'value': \"value\" }, {}, never>;\n}\r\n\r\n/**\r\n * @description\r\n * The `ControlValueAccessor` for writing a range value and listening to range input changes.\r\n * The value accessor is used by the `FormControlDirective`, `FormControlName`, and  `NgModel`\r\n * directives.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Using a range input with a reactive form\r\n *\r\n * The following example shows how to use a range input with a reactive form.\r\n *\r\n * ```ts\r\n * const ageControl = new FormControl();\r\n * ```\r\n *\r\n * ```\r\n * <input type=\"range\" [formControl]=\"ageControl\">\r\n * ```\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class RangeValueAccessor implements ControlValueAccessor {\r\n    private _renderer;\r\n    private _elementRef;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when a change or input event occurs on the input\r\n     * element.\r\n     */\r\n    onChange: (_: any) => void;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when a blur event occurs on the input element.\r\n     */\r\n    onTouched: () => void;\r\n    constructor(_renderer: Renderer2, _elementRef: ElementRef);\r\n    /**\r\n     * Sets the \"value\" property on the input element.\r\n     *\r\n     * @param value The checked value\r\n     */\r\n    writeValue(value: any): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control value changes.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnChange(fn: (_: number | null) => void): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control is touched.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnTouched(fn: () => void): void;\r\n    /**\r\n     * Sets the \"disabled\" property on the range input element.\r\n     *\r\n     * @param isDisabled The disabled value\r\n     */\r\n    setDisabledState(isDisabled: boolean): void;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<RangeValueAccessor>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<RangeValueAccessor, \"input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]\", never, {}, {}, never>;\n}\r\n\r\n/**\r\n * Exports the required infrastructure and directives for reactive forms,\r\n * making them available for import by NgModules that import this module.\r\n * @see [Forms](guide/reactive-forms)\r\n *\r\n * @see [Reactive Forms Guide](/guide/reactive-forms)\r\n *\r\n * @publicApi\r\n */\r\nexport declare class ReactiveFormsModule {\r\n    /**\r\n     * @description\r\n     * Provides options for configuring the reactive forms module.\r\n     *\r\n     * @param opts An object of configuration options\r\n     * * `warnOnNgModelWithFormControl` Configures when to emit a warning when an `ngModel`\r\n     * binding is used with reactive form directives.\r\n     */\r\n    static withConfig(opts: {\r\n        /** @deprecated as of v6 */ warnOnNgModelWithFormControl: 'never' | 'once' | 'always';\r\n    }): ModuleWithProviders<ReactiveFormsModule>;\r\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<ReactiveFormsModule, [typeof FormControlDirective, typeof FormGroupDirective, typeof FormControlName, typeof FormGroupName, typeof FormArrayName], never, [typeof ɵInternalFormsSharedModule, typeof FormControlDirective, typeof FormGroupDirective, typeof FormControlName, typeof FormGroupName, typeof FormArrayName]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<ReactiveFormsModule>;\n}\r\n\r\n/**\r\n * @description\r\n * A directive that adds the `required` validator to any 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 validator using template-driven forms\r\n *\r\n * ```\r\n * <input name=\"fullName\" ngModel required>\r\n * ```\r\n *\r\n * @ngModule FormsModule\r\n * @ngModule ReactiveFormsModule\r\n * @publicApi\r\n */\r\nexport declare class RequiredValidator implements Validator {\r\n    private _required;\r\n    private _onChange;\r\n    /**\r\n     * @description\r\n     * Tracks changes to the required attribute bound to this directive.\r\n     */\r\n    required: boolean | string;\r\n    /**\r\n     * @description\r\n     * Method that validates whether the control is empty.\r\n     * Returns the validation result if enabled, otherwise null.\r\n     */\r\n    validate(control: AbstractControl): ValidationErrors | null;\r\n    /**\r\n     * @description\r\n     * Registers a callback function to call when the validator inputs change.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnValidatorChange(fn: () => void): void;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<RequiredValidator>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<RequiredValidator, \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", never, { 'required': \"required\" }, {}, never>;\n}\r\n\r\n/**\r\n * @description\r\n * The `ControlValueAccessor` for writing select control values and listening to select control\r\n * changes. The value accessor is used by the `FormControlDirective`, `FormControlName`, and\r\n * `NgModel` directives.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Using select controls in a reactive form\r\n *\r\n * The following examples show how to use a select control in a reactive form.\r\n *\r\n * {@example forms/ts/reactiveSelectControl/reactive_select_control_example.ts region='Component'}\r\n *\r\n * ### Using select controls in a template-driven form\r\n *\r\n * To use a select in a template-driven form, simply add an `ngModel` and a `name`\r\n * attribute to the main `<select>` tag.\r\n *\r\n * {@example forms/ts/selectControl/select_control_example.ts region='Component'}\r\n *\r\n * ### Customizing option selection\r\n *\r\n * Angular uses object identity to select option. It's possible for the identities of items\r\n * to change while the data does not. This can happen, for example, if the items are produced\r\n * from an RPC to the server, and that RPC is re-run. Even if the data hasn't changed, the\r\n * second response will produce objects with different identities.\r\n *\r\n * To customize the default option comparison algorithm, `<select>` supports `compareWith` input.\r\n * `compareWith` takes a **function** which has two arguments: `option1` and `option2`.\r\n * If `compareWith` is given, Angular selects option by the return value of the function.\r\n *\r\n * ```ts\r\n * const selectedCountriesControl = new FormControl();\r\n * ```\r\n *\r\n * ```\r\n * <select [compareWith]=\"compareFn\"  [formControl]=\"selectedCountriesControl\">\r\n *     <option *ngFor=\"let country of countries\" [ngValue]=\"country\">\r\n *         {{country.name}}\r\n *     </option>\r\n * </select>\r\n *\r\n * compareFn(c1: Country, c2: Country): boolean {\r\n *     return c1 && c2 ? c1.id === c2.id : c1 === c2;\r\n * }\r\n * ```\r\n *\r\n * **Note:** We listen to the 'change' event because 'input' events aren't fired\r\n * for selects in Firefox and IE:\r\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1024350\r\n * https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/4660045/\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class SelectControlValueAccessor implements ControlValueAccessor {\r\n    private _renderer;\r\n    private _elementRef;\r\n    value: any;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when a change event occurs on the input element.\r\n     */\r\n    onChange: (_: any) => void;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when a blur event occurs on the input element.\r\n     */\r\n    onTouched: () => void;\r\n    /**\r\n     * @description\r\n     * Tracks the option comparison algorithm for tracking identities when\r\n     * checking for changes.\r\n     */\r\n    compareWith: (o1: any, o2: any) => boolean;\r\n    private _compareWith;\r\n    constructor(_renderer: Renderer2, _elementRef: ElementRef);\r\n    /**\r\n     * Sets the \"value\" property on the input element. The \"selectedIndex\"\r\n     * property is also set if an ID is provided on the option element.\r\n     *\r\n     * @param value The checked value\r\n     */\r\n    writeValue(value: any): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control value changes.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnChange(fn: (value: any) => any): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control is touched.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnTouched(fn: () => any): void;\r\n    /**\r\n     * Sets the \"disabled\" property on the select input element.\r\n     *\r\n     * @param isDisabled The disabled value\r\n     */\r\n    setDisabledState(isDisabled: boolean): void;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<SelectControlValueAccessor>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<SelectControlValueAccessor, \"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]\", never, { 'compareWith': \"compareWith\" }, {}, never>;\n}\r\n\r\n/**\r\n * @description\r\n * The `ControlValueAccessor` for writing multi-select control values and listening to multi-select control\r\n * changes. The value accessor is used by the `FormControlDirective`, `FormControlName`, and `NgModel`\r\n * directives.\r\n *\r\n * @see `SelectControlValueAccessor`\r\n *\r\n * @usageNotes\r\n *\r\n * ### Using a multi-select control\r\n *\r\n * The follow example shows you how to use a multi-select control with a reactive form.\r\n *\r\n * ```ts\r\n * const countryControl = new FormControl();\r\n * ```\r\n *\r\n * ```\r\n * <select multiple name=\"countries\" [formControl]=\"countryControl\">\r\n *   <option *ngFor=\"let country of countries\" [ngValue]=\"country\">\r\n *     {{ country.name }}\r\n *   </option>\r\n * </select>\r\n * ```\r\n *\r\n * ### Customizing option selection\r\n *\r\n * To customize the default option comparison algorithm, `<select>` supports `compareWith` input.\r\n * See the `SelectControlValueAccessor` for usage.\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\nexport declare class SelectMultipleControlValueAccessor implements ControlValueAccessor {\r\n    private _renderer;\r\n    private _elementRef;\r\n    /**\r\n     * @description\r\n     * The current value\r\n     */\r\n    value: any;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when a change event occurs on the input element.\r\n     */\r\n    onChange: (_: any) => void;\r\n    /**\r\n     * @description\r\n     * The registered callback function called when a blur event occurs on the input element.\r\n     */\r\n    onTouched: () => void;\r\n    /**\r\n     * @description\r\n     * Tracks the option comparison algorithm for tracking identities when\r\n     * checking for changes.\r\n     */\r\n    compareWith: (o1: any, o2: any) => boolean;\r\n    private _compareWith;\r\n    constructor(_renderer: Renderer2, _elementRef: ElementRef);\r\n    /**\r\n     * @description\r\n     * Sets the \"value\" property on one or of more\r\n     * of the select's options.\r\n     *\r\n     * @param value The value\r\n     */\r\n    writeValue(value: any): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control value changes\r\n     * and writes an array of the selected options.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnChange(fn: (value: any) => any): void;\r\n    /**\r\n     * @description\r\n     * Registers a function called when the control is touched.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnTouched(fn: () => any): void;\r\n    /**\r\n     * Sets the \"disabled\" property on the select input element.\r\n     *\r\n     * @param isDisabled The disabled value\r\n     */\r\n    setDisabledState(isDisabled: boolean): void;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<SelectMultipleControlValueAccessor>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<SelectMultipleControlValueAccessor, \"select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]\", never, { 'compareWith': \"compareWith\" }, {}, never>;\n}\r\n\r\n/**\r\n * @description\r\n * Defines the map of errors returned from failed validation checks.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type ValidationErrors = {\r\n    [key: string]: any;\r\n};\r\n\r\n/**\r\n * @description\r\n * An interface implemented by classes that perform synchronous validation.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Provide a custom validator\r\n *\r\n * The following example implements the `Validator` interface to create a\r\n * validator directive with a custom error key.\r\n *\r\n * ```typescript\r\n * @Directive({\r\n *   selector: '[customValidator]',\r\n *   providers: [{provide: NG_VALIDATORS, useExisting: CustomValidatorDirective, multi: true}]\r\n * })\r\n * class CustomValidatorDirective implements Validator {\r\n *   validate(control: AbstractControl): ValidationErrors|null {\r\n *     return {'custom': true};\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface Validator {\r\n    /**\r\n     * @description\r\n     * Method that performs synchronous validation against the provided control.\r\n     *\r\n     * @param control The control to validate against.\r\n     *\r\n     * @returns A map of validation errors if validation fails,\r\n     * otherwise null.\r\n     */\r\n    validate(control: AbstractControl): ValidationErrors | null;\r\n    /**\r\n     * @description\r\n     * Registers a callback function to call when the validator inputs change.\r\n     *\r\n     * @param fn The callback function\r\n     */\r\n    registerOnValidatorChange?(fn: () => void): void;\r\n}\r\n\r\n/**\r\n * @description\r\n * A function that receives a control and synchronously returns a map of\r\n * validation errors if present, otherwise null.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface ValidatorFn {\r\n    (control: AbstractControl): ValidationErrors | null;\r\n}\r\n\r\n/**\r\n * @description\r\n * Provides a set of built-in validators that can be used by form controls.\r\n *\r\n * A validator is a function that processes a `FormControl` or collection of\r\n * controls and returns an error map or null. A null map means that validation has passed.\r\n *\r\n * @see [Form Validation](/guide/form-validation)\r\n *\r\n * @publicApi\r\n */\r\nexport declare class Validators {\r\n    /**\r\n     * @description\r\n     * Validator that requires the control's value to be greater than or equal to the provided number.\r\n     * The validator exists only as a function and not as a directive.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ### Validate against a minimum of 3\r\n     *\r\n     * ```typescript\r\n     * const control = new FormControl(2, Validators.min(3));\r\n     *\r\n     * console.log(control.errors); // {min: {min: 3, actual: 2}}\r\n     * ```\r\n     *\r\n     * @returns A validator function that returns an error map with the\r\n     * `min` property if the validation check fails, otherwise `null`.\r\n     *\r\n     * @see `updateValueAndValidity()`\r\n     *\r\n     */\r\n    static min(min: number): ValidatorFn;\r\n    /**\r\n     * @description\r\n     * Validator that requires the control's value to be less than or equal to the provided number.\r\n     * The validator exists only as a function and not as a directive.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ### Validate against a maximum of 15\r\n     *\r\n     * ```typescript\r\n     * const control = new FormControl(16, Validators.max(15));\r\n     *\r\n     * console.log(control.errors); // {max: {max: 15, actual: 16}}\r\n     * ```\r\n     *\r\n     * @returns A validator function that returns an error map with the\r\n     * `max` property if the validation check fails, otherwise `null`.\r\n     *\r\n     * @see `updateValueAndValidity()`\r\n     *\r\n     */\r\n    static max(max: number): ValidatorFn;\r\n    /**\r\n     * @description\r\n     * Validator that requires the control have a non-empty value.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ### Validate that the field is non-empty\r\n     *\r\n     * ```typescript\r\n     * const control = new FormControl('', Validators.required);\r\n     *\r\n     * console.log(control.errors); // {required: true}\r\n     * ```\r\n     *\r\n     * @returns An error map with the `required` property\r\n     * if the validation check fails, otherwise `null`.\r\n     *\r\n     * @see `updateValueAndValidity()`\r\n     *\r\n     */\r\n    static required(control: AbstractControl): ValidationErrors | null;\r\n    /**\r\n     * @description\r\n     * Validator that requires the control's value be true. This validator is commonly\r\n     * used for required checkboxes.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ### Validate that the field value is true\r\n     *\r\n     * ```typescript\r\n     * const control = new FormControl('', Validators.requiredTrue);\r\n     *\r\n     * console.log(control.errors); // {required: true}\r\n     * ```\r\n     *\r\n     * @returns An error map that contains the `required` property\r\n     * set to `true` if the validation check fails, otherwise `null`.\r\n     *\r\n     * @see `updateValueAndValidity()`\r\n     *\r\n     */\r\n    static requiredTrue(control: AbstractControl): ValidationErrors | null;\r\n    /**\r\n     * @description\r\n     * Validator that requires the control's value pass an email validation test.\r\n     *\r\n     * Tests the value using a [regular expression](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)\r\n     * pattern suitable for common usecases. The pattern is based on the definition of a valid email\r\n     * address in the [WHATWG HTML specification](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address)\r\n     * with some enhancements to incorporate more RFC rules (such as rules related to domain names and\r\n     * the lengths of different parts of the address).\r\n     *\r\n     * The differences from the WHATWG version include:\r\n     * - Disallow `local-part` (the part before the `@` symbol) to begin or end with a period (`.`).\r\n     * - Disallow `local-part` to be longer than 64 characters.\r\n     * - Disallow the whole address to be longer than 254 characters.\r\n     *\r\n     * If this pattern does not satisfy your business needs, you can use `Validators.pattern()` to\r\n     * validate the value against a different pattern.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ### Validate that the field matches a valid email pattern\r\n     *\r\n     * ```typescript\r\n     * const control = new FormControl('bad@', Validators.email);\r\n     *\r\n     * console.log(control.errors); // {email: true}\r\n     * ```\r\n     *\r\n     * @returns An error map with the `email` property\r\n     * if the validation check fails, otherwise `null`.\r\n     *\r\n     * @see `updateValueAndValidity()`\r\n     *\r\n     */\r\n    static email(control: AbstractControl): ValidationErrors | null;\r\n    /**\r\n     * @description\r\n     * Validator that requires the length of the control's value to be greater than or equal\r\n     * to the provided minimum length. This validator is also provided by default if you use the\r\n     * the HTML5 `minlength` attribute.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ### Validate that the field has a minimum of 3 characters\r\n     *\r\n     * ```typescript\r\n     * const control = new FormControl('ng', Validators.minLength(3));\r\n     *\r\n     * console.log(control.errors); // {minlength: {requiredLength: 3, actualLength: 2}}\r\n     * ```\r\n     *\r\n     * ```html\r\n     * <input minlength=\"5\">\r\n     * ```\r\n     *\r\n     * @returns A validator function that returns an error map with the\r\n     * `minlength` if the validation check fails, otherwise `null`.\r\n     *\r\n     * @see `updateValueAndValidity()`\r\n     *\r\n     */\r\n    static minLength(minLength: number): ValidatorFn;\r\n    /**\r\n     * @description\r\n     * Validator that requires the length of the control's value to be less than or equal\r\n     * to the provided maximum length. This validator is also provided by default if you use the\r\n     * the HTML5 `maxlength` attribute.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ### Validate that the field has maximum of 5 characters\r\n     *\r\n     * ```typescript\r\n     * const control = new FormControl('Angular', Validators.maxLength(5));\r\n     *\r\n     * console.log(control.errors); // {maxlength: {requiredLength: 5, actualLength: 7}}\r\n     * ```\r\n     *\r\n     * ```html\r\n     * <input maxlength=\"5\">\r\n     * ```\r\n     *\r\n     * @returns A validator function that returns an error map with the\r\n     * `maxlength` property if the validation check fails, otherwise `null`.\r\n     *\r\n     * @see `updateValueAndValidity()`\r\n     *\r\n     */\r\n    static maxLength(maxLength: number): ValidatorFn;\r\n    /**\r\n     * @description\r\n     * Validator that requires the control's value to match a regex pattern. This validator is also\r\n     * provided by default if you use the HTML5 `pattern` attribute.\r\n     *\r\n     * @usageNotes\r\n     *\r\n     * ### Validate that the field only contains letters or spaces\r\n     *\r\n     * ```typescript\r\n     * const control = new FormControl('1', Validators.pattern('[a-zA-Z ]*'));\r\n     *\r\n     * console.log(control.errors); // {pattern: {requiredPattern: '^[a-zA-Z ]*$', actualValue: '1'}}\r\n     * ```\r\n     *\r\n     * ```html\r\n     * <input pattern=\"[a-zA-Z ]*\">\r\n     * ```\r\n     *\r\n     * @param pattern A regular expression to be used as is to test the values, or a string.\r\n     * If a string is passed, the `^` character is prepended and the `$` character is\r\n     * appended to the provided string (if not already present), and the resulting regular\r\n     * expression is used to test the values.\r\n     *\r\n     * @returns A validator function that returns an error map with the\r\n     * `pattern` property if the validation check fails, otherwise `null`.\r\n     *\r\n     * @see `updateValueAndValidity()`\r\n     *\r\n     */\r\n    static pattern(pattern: string | RegExp): ValidatorFn;\r\n    /**\r\n     * @description\r\n     * Validator that performs no operation.\r\n     *\r\n     * @see `updateValueAndValidity()`\r\n     *\r\n     */\r\n    static nullValidator(control: AbstractControl): ValidationErrors | null;\r\n    /**\r\n     * @description\r\n     * Compose multiple validators into a single function that returns the union\r\n     * of the individual error maps for the provided control.\r\n     *\r\n     * @returns A validator function that returns an error map with the\r\n     * merged error maps of the validators if the validation check fails, otherwise `null`.\r\n     *\r\n     * @see `updateValueAndValidity()`\r\n     *\r\n     */\r\n    static compose(validators: null): null;\r\n    static compose(validators: (ValidatorFn | null | undefined)[]): ValidatorFn | null;\r\n    /**\r\n     * @description\r\n     * Compose multiple async validators into a single function that returns the union\r\n     * of the individual error objects for the provided control.\r\n     *\r\n     * @returns A validator function that returns an error map with the\r\n     * merged error objects of the async validators if the validation check fails, otherwise `null`.\r\n     *\r\n     * @see `updateValueAndValidity()`\r\n     *\r\n     */\r\n    static composeAsync(validators: (AsyncValidatorFn | null)[]): AsyncValidatorFn | null;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const VERSION: Version;\r\n\r\nexport declare const ɵangular_packages_forms_forms_a: Type<any>[];\r\n\r\nexport declare const ɵangular_packages_forms_forms_b: Type<any>[];\r\n\r\n/**\r\n * @description\r\n * Provider which adds `CheckboxRequiredValidator` to the `NG_VALIDATORS` multi-provider list.\r\n */\r\nexport declare const ɵangular_packages_forms_forms_ba: StaticProvider;\r\n\r\n/**\r\n * @description\r\n * Provider which adds `EmailValidator` to the `NG_VALIDATORS` multi-provider list.\r\n */\r\nexport declare const ɵangular_packages_forms_forms_bb: any;\r\n\r\n/**\r\n * @description\r\n * Provider which adds `MinLengthValidator` to the `NG_VALIDATORS` multi-provider list.\r\n */\r\nexport declare const ɵangular_packages_forms_forms_bc: any;\r\n\r\n/**\r\n * @description\r\n * Provider which adds `MaxLengthValidator` to the `NG_VALIDATORS` multi-provider list.\r\n */\r\nexport declare const ɵangular_packages_forms_forms_bd: any;\r\n\r\n/**\r\n * @description\r\n * Provider which adds `PatternValidator` to the `NG_VALIDATORS` multi-provider list.\r\n */\r\nexport declare const ɵangular_packages_forms_forms_be: any;\r\n\r\nexport declare const ɵangular_packages_forms_forms_c: Type<any>[];\r\n\r\nexport declare const ɵangular_packages_forms_forms_e: any;\r\n\r\nexport declare const ɵangular_packages_forms_forms_f: any;\r\n\r\nexport declare class ɵangular_packages_forms_forms_g {\r\n    private _cd;\r\n    constructor(cd: AbstractControlDirective);\r\n    readonly ngClassUntouched: boolean;\r\n    readonly ngClassTouched: boolean;\r\n    readonly ngClassPristine: boolean;\r\n    readonly ngClassDirty: boolean;\r\n    readonly ngClassValid: boolean;\r\n    readonly ngClassInvalid: boolean;\r\n    readonly ngClassPending: boolean;\r\n}\r\n\r\nexport declare const ɵangular_packages_forms_forms_h: {\r\n    '[class.ng-untouched]': string;\r\n    '[class.ng-touched]': string;\r\n    '[class.ng-pristine]': string;\r\n    '[class.ng-dirty]': string;\r\n    '[class.ng-valid]': string;\r\n    '[class.ng-invalid]': string;\r\n    '[class.ng-pending]': string;\r\n};\r\n\r\nexport declare const ɵangular_packages_forms_forms_i: any;\r\n\r\nexport declare const ɵangular_packages_forms_forms_j: any;\r\n\r\nexport declare const ɵangular_packages_forms_forms_k: any;\r\n\r\nexport declare const ɵangular_packages_forms_forms_l: any;\r\n\r\nexport declare const ɵangular_packages_forms_forms_m: any;\r\n\r\n/**\r\n * @description\r\n * Class used by Angular to track radio buttons. For internal use only.\r\n */\r\nexport declare class ɵangular_packages_forms_forms_n {\r\n    private _accessors;\r\n    /**\r\n     * @description\r\n     * Adds a control to the internal registry. For internal use only.\r\n     */\r\n    add(control: NgControl, accessor: RadioControlValueAccessor): void;\r\n    /**\r\n     * @description\r\n     * Removes a control from the internal registry. For internal use only.\r\n     */\r\n    remove(accessor: RadioControlValueAccessor): void;\r\n    /**\r\n     * @description\r\n     * Selects a radio button. For internal use only.\r\n     */\r\n    select(accessor: RadioControlValueAccessor): void;\r\n    private _isSameGroup;\r\n}\r\n\r\nexport declare const ɵangular_packages_forms_forms_o: StaticProvider;\r\n\r\n/**\r\n * Token to provide to turn off the ngModel warning on formControl and formControlName.\r\n */\r\nexport declare const ɵangular_packages_forms_forms_p: InjectionToken<unknown>;\r\n\r\nexport declare const ɵangular_packages_forms_forms_q: any;\r\n\r\nexport declare const ɵangular_packages_forms_forms_r: any;\r\n\r\nexport declare const ɵangular_packages_forms_forms_s: any;\r\n\r\nexport declare const ɵangular_packages_forms_forms_t: any;\r\n\r\nexport declare const ɵangular_packages_forms_forms_u: any;\r\n\r\nexport declare const ɵangular_packages_forms_forms_v: StaticProvider;\r\n\r\nexport declare const ɵangular_packages_forms_forms_w: StaticProvider;\r\n\r\n/**\r\n * @description\r\n * Provider which adds `RequiredValidator` to the `NG_VALIDATORS` multi-provider list.\r\n */\r\nexport declare const ɵangular_packages_forms_forms_z: StaticProvider;\r\n\r\n/**\r\n * Internal module used for sharing directives between FormsModule and ReactiveFormsModule\r\n */\r\ndeclare class ɵInternalFormsSharedModule {\r\n    static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta<ɵInternalFormsSharedModule, [typeof ɵNgNoValidate, typeof NgSelectOption, typeof ɵNgSelectMultipleOption, typeof DefaultValueAccessor, typeof NumberValueAccessor, typeof RangeValueAccessor, typeof CheckboxControlValueAccessor, typeof SelectControlValueAccessor, typeof SelectMultipleControlValueAccessor, typeof RadioControlValueAccessor, typeof NgControlStatus, typeof NgControlStatusGroup, typeof RequiredValidator, typeof MinLengthValidator, typeof MaxLengthValidator, typeof PatternValidator, typeof CheckboxRequiredValidator, typeof EmailValidator], never, [typeof ɵNgNoValidate, typeof NgSelectOption, typeof ɵNgSelectMultipleOption, typeof DefaultValueAccessor, typeof NumberValueAccessor, typeof RangeValueAccessor, typeof CheckboxControlValueAccessor, typeof SelectControlValueAccessor, typeof SelectMultipleControlValueAccessor, typeof RadioControlValueAccessor, typeof NgControlStatus, typeof NgControlStatusGroup, typeof RequiredValidator, typeof MinLengthValidator, typeof MaxLengthValidator, typeof PatternValidator, typeof CheckboxRequiredValidator, typeof EmailValidator]>;\n    static ɵinj: ɵngcc0.ɵɵInjectorDef<ɵInternalFormsSharedModule>;\n}\r\nexport { ɵInternalFormsSharedModule }\r\nexport { ɵInternalFormsSharedModule as ɵangular_packages_forms_forms_d }\r\n\r\n\r\n/**\r\n * @description\r\n *\r\n * Adds `novalidate` attribute to all forms by default.\r\n *\r\n * `novalidate` is used to disable browser's native form validation.\r\n *\r\n * If you want to use native validation with Angular forms, just add `ngNativeValidate` attribute:\r\n *\r\n * ```\r\n * <form ngNativeValidate></form>\r\n * ```\r\n *\r\n * @publicApi\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n */\r\ndeclare class ɵNgNoValidate {\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<ɵNgNoValidate>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<ɵNgNoValidate, \"form:not([ngNoForm]):not([ngNativeValidate])\", never, {}, {}, never>;\n}\r\nexport { ɵNgNoValidate }\r\nexport { ɵNgNoValidate as ɵangular_packages_forms_forms_y }\r\n\r\n/**\r\n * @description\r\n * Marks `<option>` as dynamic, so Angular can be notified when options change.\r\n *\r\n * @see `SelectMultipleControlValueAccessor`\r\n *\r\n * @ngModule ReactiveFormsModule\r\n * @ngModule FormsModule\r\n * @publicApi\r\n */\r\ndeclare class ɵNgSelectMultipleOption implements OnDestroy {\r\n    private _element;\r\n    private _renderer;\r\n    private _select;\r\n    id: string;\r\n    constructor(_element: ElementRef, _renderer: Renderer2, _select: SelectMultipleControlValueAccessor);\r\n    /**\r\n     * @description\r\n     * Tracks the value bound to the option element. Unlike the value binding,\r\n     * ngValue supports binding to objects.\r\n     */\r\n    ngValue: any;\r\n    /**\r\n     * @description\r\n     * Tracks simple string values bound to the option element.\r\n     * For objects, use the `ngValue` input binding.\r\n     */\r\n    value: any;\r\n    /**\r\n     * @description\r\n     * Lifecycle method called before the directive's instance is destroyed. For internal use only.\r\n     */\r\n    ngOnDestroy(): void;\r\n    static ɵfac: ɵngcc0.ɵɵFactoryDef<ɵNgSelectMultipleOption>;\n    static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta<ɵNgSelectMultipleOption, \"option\", never, { 'ngValue': \"ngValue\", 'value': \"value\" }, {}, never>;\n}\r\nexport { ɵNgSelectMultipleOption }\r\nexport { ɵNgSelectMultipleOption as ɵangular_packages_forms_forms_x }\r\n\r\nexport { }\r\n\n//# sourceMappingURL=forms.d.ts.map"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/bindCallback.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/bindCallback';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/bindNodeCallback.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/bindNodeCallback';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/combineLatest.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/combineLatest';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/concat.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/concat';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/defer.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/defer';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/dom/ajax.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/dom/ajax';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/dom/webSocket.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/dom/webSocket';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/empty.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/empty';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/forkJoin.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/forkJoin';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/from.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/from';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/fromEvent.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/fromEvent';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/fromEventPattern.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/fromEventPattern';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/fromPromise.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/fromPromise';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/generate.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/generate';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/if.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/if';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/interval.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/interval';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/merge.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/merge';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/never.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/never';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/of.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/of';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/onErrorResumeNext.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/onErrorResumeNext';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/pairs.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/pairs';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/race.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/race';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/range.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/range';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/throw.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/throw';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/timer.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/timer';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/using.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/using';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/observable/zip.d.ts"
    ],
    "content": "import 'rxjs-compat/add/observable/zip';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/audit.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/audit';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/auditTime.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/auditTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/buffer.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/buffer';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/bufferCount.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/bufferCount';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/bufferTime.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/bufferTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/bufferToggle.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/bufferToggle';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/bufferWhen.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/bufferWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/catch.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/catch';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/combineAll.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/combineAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/combineLatest.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/combineLatest';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/concat.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/concat';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/concatAll.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/concatAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/concatMap.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/concatMap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/concatMapTo.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/concatMapTo';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/count.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/count';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/debounce.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/debounce';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/debounceTime.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/debounceTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/defaultIfEmpty.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/defaultIfEmpty';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/delay.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/delay';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/delayWhen.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/delayWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/dematerialize.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/dematerialize';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/distinct.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/distinct';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/distinctUntilChanged.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/distinctUntilChanged';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/distinctUntilKeyChanged.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/distinctUntilKeyChanged';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/do.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/do';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/elementAt.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/elementAt';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/every.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/every';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/exhaust.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/exhaust';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/exhaustMap.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/exhaustMap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/expand.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/expand';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/filter.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/filter';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/finally.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/finally';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/find.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/find';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/findIndex.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/findIndex';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/first.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/first';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/groupBy.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/groupBy';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/ignoreElements.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/ignoreElements';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/isEmpty.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/isEmpty';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/last.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/last';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/let.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/let';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/map.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/map';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/mapTo.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/mapTo';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/materialize.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/materialize';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/max.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/max';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/merge.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/merge';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/mergeAll.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/mergeAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/mergeMap.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/mergeMap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/mergeMapTo.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/mergeMapTo';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/mergeScan.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/mergeScan';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/min.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/min';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/multicast.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/multicast';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/observeOn.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/observeOn';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/onErrorResumeNext.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/onErrorResumeNext';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/pairwise.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/pairwise';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/partition.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/partition';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/pluck.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/pluck';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/publish.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/publish';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/publishBehavior.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/publishBehavior';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/publishLast.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/publishLast';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/publishReplay.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/publishReplay';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/race.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/race';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/reduce.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/reduce';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/repeat.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/repeat';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/repeatWhen.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/repeatWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/retry.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/retry';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/retryWhen.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/retryWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/sample.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/sample';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/sampleTime.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/sampleTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/scan.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/scan';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/sequenceEqual.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/sequenceEqual';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/share.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/share';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/shareReplay.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/shareReplay';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/single.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/single';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/skip.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/skip';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/skipLast.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/skipLast';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/skipUntil.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/skipUntil';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/skipWhile.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/skipWhile';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/startWith.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/startWith';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/subscribeOn.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/subscribeOn';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/switch.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/switch';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/switchMap.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/switchMap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/switchMapTo.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/switchMapTo';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/take.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/take';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/takeLast.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/takeLast';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/takeUntil.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/takeUntil';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/takeWhile.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/takeWhile';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/throttle.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/throttle';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/throttleTime.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/throttleTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/timeInterval.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/timeInterval';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/timeout.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/timeout';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/timeoutWith.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/timeoutWith';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/timestamp.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/timestamp';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/toArray.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/toArray';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/toPromise.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/toPromise';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/window.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/window';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/windowCount.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/windowCount';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/windowTime.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/windowTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/windowToggle.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/windowToggle';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/windowWhen.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/windowWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/withLatestFrom.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/withLatestFrom';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/zip.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/zip';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/add/operator/zipAll.d.ts"
    ],
    "content": "import 'rxjs-compat/add/operator/zipAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/ajax/index.d.ts",
      "node_modules/rxjs/ajax/index.d.ts"
    ],
    "content": "export { ajax } from '../internal/observable/dom/ajax';\nexport { AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/AsyncSubject.d.ts"
    ],
    "content": "export * from 'rxjs-compat/AsyncSubject';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/BehaviorSubject.d.ts"
    ],
    "content": "export * from 'rxjs-compat/BehaviorSubject';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/fetch/index.d.ts",
      "node_modules/rxjs/fetch/index.d.ts"
    ],
    "content": "export { fromFetch } from '../internal/observable/dom/fetch';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/index.d.ts",
      "node_modules/rxjs/index.d.ts"
    ],
    "content": "export { Observable } from './internal/Observable';\nexport { ConnectableObservable } from './internal/observable/ConnectableObservable';\nexport { GroupedObservable } from './internal/operators/groupBy';\nexport { Operator } from './internal/Operator';\nexport { observable } from './internal/symbol/observable';\nexport { Subject } from './internal/Subject';\nexport { BehaviorSubject } from './internal/BehaviorSubject';\nexport { ReplaySubject } from './internal/ReplaySubject';\nexport { AsyncSubject } from './internal/AsyncSubject';\nexport { asap as asapScheduler } from './internal/scheduler/asap';\nexport { async as asyncScheduler } from './internal/scheduler/async';\nexport { queue as queueScheduler } from './internal/scheduler/queue';\nexport { animationFrame as animationFrameScheduler } from './internal/scheduler/animationFrame';\nexport { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler';\nexport { Scheduler } from './internal/Scheduler';\nexport { Subscription } from './internal/Subscription';\nexport { Subscriber } from './internal/Subscriber';\nexport { Notification, NotificationKind } from './internal/Notification';\nexport { pipe } from './internal/util/pipe';\nexport { noop } from './internal/util/noop';\nexport { identity } from './internal/util/identity';\nexport { isObservable } from './internal/util/isObservable';\nexport { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError';\nexport { EmptyError } from './internal/util/EmptyError';\nexport { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError';\nexport { UnsubscriptionError } from './internal/util/UnsubscriptionError';\nexport { TimeoutError } from './internal/util/TimeoutError';\nexport { bindCallback } from './internal/observable/bindCallback';\nexport { bindNodeCallback } from './internal/observable/bindNodeCallback';\nexport { combineLatest } from './internal/observable/combineLatest';\nexport { concat } from './internal/observable/concat';\nexport { defer } from './internal/observable/defer';\nexport { empty } from './internal/observable/empty';\nexport { forkJoin } from './internal/observable/forkJoin';\nexport { from } from './internal/observable/from';\nexport { fromEvent } from './internal/observable/fromEvent';\nexport { fromEventPattern } from './internal/observable/fromEventPattern';\nexport { generate } from './internal/observable/generate';\nexport { iif } from './internal/observable/iif';\nexport { interval } from './internal/observable/interval';\nexport { merge } from './internal/observable/merge';\nexport { never } from './internal/observable/never';\nexport { of } from './internal/observable/of';\nexport { onErrorResumeNext } from './internal/observable/onErrorResumeNext';\nexport { pairs } from './internal/observable/pairs';\nexport { partition } from './internal/observable/partition';\nexport { race } from './internal/observable/race';\nexport { range } from './internal/observable/range';\nexport { throwError } from './internal/observable/throwError';\nexport { timer } from './internal/observable/timer';\nexport { using } from './internal/observable/using';\nexport { zip } from './internal/observable/zip';\nexport { scheduled } from './internal/scheduled/scheduled';\nexport { EMPTY } from './internal/observable/empty';\nexport { NEVER } from './internal/observable/never';\nexport * from './internal/types';\nexport { config } from './internal/config';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/InnerSubscriber.d.ts"
    ],
    "content": "export * from 'rxjs-compat/InnerSubscriber';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/interfaces.d.ts"
    ],
    "content": "export * from 'rxjs-compat/interfaces';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal-compatibility/index.d.ts",
      "node_modules/rxjs/internal-compatibility/index.d.ts"
    ],
    "content": "export { config } from '../internal/config';\nexport { InnerSubscriber } from '../internal/InnerSubscriber';\nexport { OuterSubscriber } from '../internal/OuterSubscriber';\nexport { Scheduler } from '../internal/Scheduler';\nexport { AnonymousSubject } from '../internal/Subject';\nexport { SubjectSubscription } from '../internal/SubjectSubscription';\nexport { Subscriber } from '../internal/Subscriber';\nexport { fromPromise } from '../internal/observable/fromPromise';\nexport { fromIterable } from '../internal/observable/fromIterable';\nexport { ajax } from '../internal/observable/dom/ajax';\nexport { webSocket } from '../internal/observable/dom/webSocket';\nexport { AjaxRequest, AjaxCreationMethod, ajaxGet, ajaxPost, ajaxDelete, ajaxPut, ajaxPatch, ajaxGetJSON, AjaxObservable, AjaxSubscriber, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable';\nexport { WebSocketSubjectConfig, WebSocketSubject } from '../internal/observable/dom/WebSocketSubject';\nexport { CombineLatestOperator } from '../internal/observable/combineLatest';\nexport { EventTargetLike } from '../internal/observable/fromEvent';\nexport { ConditionFunc, IterateFunc, ResultFunc, GenerateBaseOptions, GenerateOptions } from '../internal/observable/generate';\nexport { dispatch } from '../internal/observable/range';\nexport { SubscribeOnObservable } from '../internal/observable/SubscribeOnObservable';\nexport { Timestamp } from '../internal/operators/timestamp';\nexport { TimeInterval } from '../internal/operators/timeInterval';\nexport { GroupedObservable } from '../internal/operators/groupBy';\nexport { ShareReplayConfig } from '../internal/operators/shareReplay';\nexport { ThrottleConfig, defaultThrottleConfig } from '../internal/operators/throttle';\nexport { rxSubscriber } from '../internal/symbol/rxSubscriber';\nexport { iterator } from '../internal/symbol/iterator';\nexport { observable } from '../internal/symbol/observable';\nexport { ArgumentOutOfRangeError } from '../internal/util/ArgumentOutOfRangeError';\nexport { EmptyError } from '../internal/util/EmptyError';\nexport { Immediate } from '../internal/util/Immediate';\nexport { ObjectUnsubscribedError } from '../internal/util/ObjectUnsubscribedError';\nexport { TimeoutError } from '../internal/util/TimeoutError';\nexport { UnsubscriptionError } from '../internal/util/UnsubscriptionError';\nexport { applyMixins } from '../internal/util/applyMixins';\nexport { errorObject } from '../internal/util/errorObject';\nexport { hostReportError } from '../internal/util/hostReportError';\nexport { identity } from '../internal/util/identity';\nexport { isArray } from '../internal/util/isArray';\nexport { isArrayLike } from '../internal/util/isArrayLike';\nexport { isDate } from '../internal/util/isDate';\nexport { isFunction } from '../internal/util/isFunction';\nexport { isIterable } from '../internal/util/isIterable';\nexport { isNumeric } from '../internal/util/isNumeric';\nexport { isObject } from '../internal/util/isObject';\nexport { isInteropObservable as isObservable } from '../internal/util/isInteropObservable';\nexport { isPromise } from '../internal/util/isPromise';\nexport { isScheduler } from '../internal/util/isScheduler';\nexport { noop } from '../internal/util/noop';\nexport { not } from '../internal/util/not';\nexport { pipe } from '../internal/util/pipe';\nexport { root } from '../internal/util/root';\nexport { subscribeTo } from '../internal/util/subscribeTo';\nexport { subscribeToArray } from '../internal/util/subscribeToArray';\nexport { subscribeToIterable } from '../internal/util/subscribeToIterable';\nexport { subscribeToObservable } from '../internal/util/subscribeToObservable';\nexport { subscribeToPromise } from '../internal/util/subscribeToPromise';\nexport { subscribeToResult } from '../internal/util/subscribeToResult';\nexport { toSubscriber } from '../internal/util/toSubscriber';\nexport { tryCatch } from '../internal/util/tryCatch';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/AsyncSubject.d.ts"
    ],
    "content": "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n/**\n * A variant of Subject that only emits a value when it completes. It will emit\n * its latest value to all its observers on completion.\n *\n * @class AsyncSubject<T>\n */\nexport declare class AsyncSubject<T> extends Subject<T> {\n    private value;\n    private hasNext;\n    private hasCompleted;\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _subscribe(subscriber: Subscriber<any>): Subscription;\n    next(value: T): void;\n    error(error: any): void;\n    complete(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/BehaviorSubject.d.ts"
    ],
    "content": "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject<T>\n */\nexport declare class BehaviorSubject<T> extends Subject<T> {\n    private _value;\n    constructor(_value: T);\n    readonly value: T;\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _subscribe(subscriber: Subscriber<T>): Subscription;\n    getValue(): T;\n    next(value: T): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/config.d.ts"
    ],
    "content": "/**\n * The global configuration object for RxJS, used to configure things\n * like what Promise contructor should used to create Promises\n */\nexport declare const config: {\n    /**\n     * The promise constructor used by default for methods such as\n     * {@link toPromise} and {@link forEach}\n     */\n    Promise: PromiseConstructorLike;\n    /**\n     * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n     * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n     * call in a try/catch block. It also enables producer interference, a nasty bug\n     * where a multicast can be broken for all observers by a downstream consumer with\n     * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BY TIME\n     * FOR MIGRATION REASONS.\n     */\n    useDeprecatedSynchronousErrorHandling: boolean;\n};\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/InnerSubscriber.d.ts"
    ],
    "content": "import { Subscriber } from './Subscriber';\nimport { OuterSubscriber } from './OuterSubscriber';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class InnerSubscriber<T, R> extends Subscriber<R> {\n    private parent;\n    outerValue: T;\n    outerIndex: number;\n    private index;\n    constructor(parent: OuterSubscriber<T, R>, outerValue: T, outerIndex: number);\n    protected _next(value: R): void;\n    protected _error(error: any): void;\n    protected _complete(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/Notification.d.ts"
    ],
    "content": "import { PartialObserver } from './types';\nimport { Observable } from './Observable';\n/**\n * @deprecated NotificationKind is deprecated as const enums are not compatible with isolated modules. Use a string literal instead.\n */\nexport declare enum NotificationKind {\n    NEXT = \"N\",\n    ERROR = \"E\",\n    COMPLETE = \"C\"\n}\n/**\n * Represents a push-based event or value that an {@link Observable} can emit.\n * This class is particularly useful for operators that manage notifications,\n * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and\n * others. Besides wrapping the actual delivered value, it also annotates it\n * with metadata of, for instance, what type of push message it is (`next`,\n * `error`, or `complete`).\n *\n * @see {@link materialize}\n * @see {@link dematerialize}\n * @see {@link observeOn}\n *\n * @class Notification<T>\n */\nexport declare class Notification<T> {\n    kind: 'N' | 'E' | 'C';\n    value?: T;\n    error?: any;\n    hasValue: boolean;\n    constructor(kind: 'N' | 'E' | 'C', value?: T, error?: any);\n    /**\n     * Delivers to the given `observer` the value wrapped by this Notification.\n     * @param {Observer} observer\n     * @return\n     */\n    observe(observer: PartialObserver<T>): any;\n    /**\n     * Given some {@link Observer} callbacks, deliver the value represented by the\n     * current Notification to the correctly corresponding callback.\n     * @param {function(value: T): void} next An Observer `next` callback.\n     * @param {function(err: any): void} [error] An Observer `error` callback.\n     * @param {function(): void} [complete] An Observer `complete` callback.\n     * @return {any}\n     */\n    do(next: (value: T) => void, error?: (err: any) => void, complete?: () => void): any;\n    /**\n     * Takes an Observer or its individual callback functions, and calls `observe`\n     * or `do` methods accordingly.\n     * @param {Observer|function(value: T): void} nextOrObserver An Observer or\n     * the `next` callback.\n     * @param {function(err: any): void} [error] An Observer `error` callback.\n     * @param {function(): void} [complete] An Observer `complete` callback.\n     * @return {any}\n     */\n    accept(nextOrObserver: PartialObserver<T> | ((value: T) => void), error?: (err: any) => void, complete?: () => void): any;\n    /**\n     * Returns a simple Observable that just delivers the notification represented\n     * by this Notification instance.\n     * @return {any}\n     */\n    toObservable(): Observable<T>;\n    private static completeNotification;\n    private static undefinedValueNotification;\n    /**\n     * A shortcut to create a Notification instance of the type `next` from a\n     * given value.\n     * @param {T} value The `next` value.\n     * @return {Notification<T>} The \"next\" Notification representing the\n     * argument.\n     * @nocollapse\n     */\n    static createNext<T>(value: T): Notification<T>;\n    /**\n     * A shortcut to create a Notification instance of the type `error` from a\n     * given error.\n     * @param {any} [err] The `error` error.\n     * @return {Notification<T>} The \"error\" Notification representing the\n     * argument.\n     * @nocollapse\n     */\n    static createError<T>(err?: any): Notification<T>;\n    /**\n     * A shortcut to create a Notification instance of the type `complete`.\n     * @return {Notification<any>} The valueless \"complete\" Notification.\n     * @nocollapse\n     */\n    static createComplete(): Notification<any>;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/Observable.d.ts"
    ],
    "content": "import { Operator } from './Operator';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, PartialObserver, Subscribable } from './types';\nimport { iif } from './observable/iif';\nimport { throwError } from './observable/throwError';\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable<T>\n */\nexport declare class Observable<T> implements Subscribable<T> {\n    /** Internal implementation detail, do not use directly. */\n    _isScalar: boolean;\n    /** @deprecated This is an internal implementation detail, do not use. */\n    source: Observable<any>;\n    /** @deprecated This is an internal implementation detail, do not use. */\n    operator: Operator<any, T>;\n    /**\n     * @constructor\n     * @param {Function} subscribe the function that is called when the Observable is\n     * initially subscribed to. This function is given a Subscriber, to which new values\n     * can be `next`ed, or an `error` method can be called to raise an error, or\n     * `complete` can be called to notify of a successful completion.\n     */\n    constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic);\n    /**\n     * Creates a new cold Observable by calling the Observable constructor\n     * @static true\n     * @owner Observable\n     * @method create\n     * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n     * @return {Observable} a new cold observable\n     * @nocollapse\n     * @deprecated use new Observable() instead\n     */\n    static create: Function;\n    /**\n     * Creates a new Observable, with this Observable as the source, and the passed\n     * operator defined as the new observable's operator.\n     * @method lift\n     * @param {Operator} operator the operator defining the operation to take on the observable\n     * @return {Observable} a new observable with the Operator applied\n     */\n    lift<R>(operator: Operator<T, R>): Observable<R>;\n    subscribe(observer?: PartialObserver<T>): Subscription;\n    /** @deprecated Use an observer instead of a complete callback */\n    subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;\n    /** @deprecated Use an observer instead of an error callback */\n    subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;\n    /** @deprecated Use an observer instead of a complete callback */\n    subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription;\n    subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _trySubscribe(sink: Subscriber<T>): TeardownLogic;\n    /**\n     * @method forEach\n     * @param {Function} next a handler for each value emitted by the observable\n     * @param {PromiseConstructor} [promiseCtor] a constructor function used to instantiate the Promise\n     * @return {Promise} a promise that either resolves on observable completion or\n     *  rejects with the handled error\n     */\n    forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise<void>;\n    /** @internal This is an internal implementation detail, do not use. */\n    _subscribe(subscriber: Subscriber<any>): TeardownLogic;\n    /**\n     * @nocollapse\n     * @deprecated In favor of iif creation function: import { iif } from 'rxjs';\n     */\n    static if: typeof iif;\n    /**\n     * @nocollapse\n     * @deprecated In favor of throwError creation function: import { throwError } from 'rxjs';\n     */\n    static throw: typeof throwError;\n    pipe(): Observable<T>;\n    pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;\n    pipe<A, B>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>): Observable<B>;\n    pipe<A, B, C>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>): Observable<C>;\n    pipe<A, B, C, D>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>): Observable<D>;\n    pipe<A, B, C, D, E>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>): Observable<E>;\n    pipe<A, B, C, D, E, F>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>): Observable<F>;\n    pipe<A, B, C, D, E, F, G>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>): Observable<G>;\n    pipe<A, B, C, D, E, F, G, H>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>): Observable<H>;\n    pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>): Observable<I>;\n    pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>, ...operations: OperatorFunction<any, any>[]): Observable<{}>;\n    toPromise<T>(this: Observable<T>): Promise<T>;\n    toPromise<T>(this: Observable<T>, PromiseCtor: typeof Promise): Promise<T>;\n    toPromise<T>(this: Observable<T>, PromiseCtor: PromiseConstructorLike): Promise<T>;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/bindCallback.d.ts"
    ],
    "content": "import { SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\n/** @deprecated resultSelector is no longer supported, use a mapping function. */\nexport declare function bindCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any>;\nexport declare function bindCallback<R1, R2, R3, R4>(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): () => Observable<any[]>;\nexport declare function bindCallback<R1, R2, R3>(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;\nexport declare function bindCallback<R1, R2>(callbackFunc: (callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;\nexport declare function bindCallback<R1>(callbackFunc: (callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable<R1>;\nexport declare function bindCallback(callbackFunc: (callback: () => any) => any, scheduler?: SchedulerLike): () => Observable<void>;\nexport declare function bindCallback<A1, R1, R2, R3, R4>(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<any[]>;\nexport declare function bindCallback<A1, R1, R2, R3>(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;\nexport declare function bindCallback<A1, R1, R2>(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;\nexport declare function bindCallback<A1, R1>(callbackFunc: (arg1: A1, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<R1>;\nexport declare function bindCallback<A1>(callbackFunc: (arg1: A1, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<void>;\nexport declare function bindCallback<A1, A2, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<any[]>;\nexport declare function bindCallback<A1, A2, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;\nexport declare function bindCallback<A1, A2, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;\nexport declare function bindCallback<A1, A2, R1>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<R1>;\nexport declare function bindCallback<A1, A2>(callbackFunc: (arg1: A1, arg2: A2, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<void>;\nexport declare function bindCallback<A1, A2, A3, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<any[]>;\nexport declare function bindCallback<A1, A2, A3, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;\nexport declare function bindCallback<A1, A2, A3, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;\nexport declare function bindCallback<A1, A2, A3, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<R1>;\nexport declare function bindCallback<A1, A2, A3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<void>;\nexport declare function bindCallback<A1, A2, A3, A4, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<any[]>;\nexport declare function bindCallback<A1, A2, A3, A4, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;\nexport declare function bindCallback<A1, A2, A3, A4, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;\nexport declare function bindCallback<A1, A2, A3, A4, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<R1>;\nexport declare function bindCallback<A1, A2, A3, A4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<void>;\nexport declare function bindCallback<A1, A2, A3, A4, A5, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<any[]>;\nexport declare function bindCallback<A1, A2, A3, A4, A5, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;\nexport declare function bindCallback<A1, A2, A3, A4, A5, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;\nexport declare function bindCallback<A1, A2, A3, A4, A5, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<R1>;\nexport declare function bindCallback<A1, A2, A3, A4, A5>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<void>;\nexport declare function bindCallback<A, R>(callbackFunc: (...args: Array<A | ((result: R) => any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable<R>;\nexport declare function bindCallback<A, R>(callbackFunc: (...args: Array<A | ((...results: R[]) => any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable<R[]>;\nexport declare function bindCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/bindNodeCallback.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n/** @deprecated resultSelector is deprecated, pipe to map instead */\nexport declare function bindNodeCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any>;\nexport declare function bindNodeCallback<R1, R2, R3, R4>(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\nexport declare function bindNodeCallback<R1, R2, R3>(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;\nexport declare function bindNodeCallback<R1, R2>(callbackFunc: (callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;\nexport declare function bindNodeCallback<R1>(callbackFunc: (callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable<R1>;\nexport declare function bindNodeCallback(callbackFunc: (callback: (err: any) => any) => any, scheduler?: SchedulerLike): () => Observable<void>;\nexport declare function bindNodeCallback<A1, R1, R2, R3, R4>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\nexport declare function bindNodeCallback<A1, R1, R2, R3>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;\nexport declare function bindNodeCallback<A1, R1, R2>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;\nexport declare function bindNodeCallback<A1, R1>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<R1>;\nexport declare function bindNodeCallback<A1>(callbackFunc: (arg1: A1, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<void>;\nexport declare function bindNodeCallback<A1, A2, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\nexport declare function bindNodeCallback<A1, A2, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;\nexport declare function bindNodeCallback<A1, A2, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;\nexport declare function bindNodeCallback<A1, A2, R1>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<R1>;\nexport declare function bindNodeCallback<A1, A2>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<void>;\nexport declare function bindNodeCallback<A1, A2, A3, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\nexport declare function bindNodeCallback<A1, A2, A3, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;\nexport declare function bindNodeCallback<A1, A2, A3, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;\nexport declare function bindNodeCallback<A1, A2, A3, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<R1>;\nexport declare function bindNodeCallback<A1, A2, A3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<void>;\nexport declare function bindNodeCallback<A1, A2, A3, A4, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\nexport declare function bindNodeCallback<A1, A2, A3, A4, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;\nexport declare function bindNodeCallback<A1, A2, A3, A4, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;\nexport declare function bindNodeCallback<A1, A2, A3, A4, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<R1>;\nexport declare function bindNodeCallback<A1, A2, A3, A4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<void>;\nexport declare function bindNodeCallback<A1, A2, A3, A4, A5, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\nexport declare function bindNodeCallback<A1, A2, A3, A4, A5, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;\nexport declare function bindNodeCallback<A1, A2, A3, A4, A5, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;\nexport declare function bindNodeCallback<A1, A2, A3, A4, A5, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<R1>;\nexport declare function bindNodeCallback<A1, A2, A3, A4, A5>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<void>;\nexport declare function bindNodeCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/combineLatest.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { Operator } from '../Operator';\nimport { InnerSubscriber } from '../InnerSubscriber';\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, R>(sources: [O1], resultSelector: (v1: ObservedValueOf<O1>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, R>(sources: [O1, O2], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(sources: [O1, O2, O3], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(sources: [O1, O2, O3, O4], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(sources: [O1, O2, O3, O4, O5], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(sources: [O1, O2, O3, O4, O5, O6], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O extends ObservableInput<any>, R>(sources: O[], resultSelector: (...args: ObservedValueOf<O>[]) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, R>(v1: O1, resultSelector: (v1: ObservedValueOf<O1>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>>(sources: [O1], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(sources: [O1, O2], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(sources: [O1, O2, O3], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(sources: [O1, O2, O3, O4], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5, O6], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport declare function combineLatest<O extends ObservableInput<any>>(sources: O[], scheduler: SchedulerLike): Observable<ObservedValueOf<O>[]>;\nexport declare function combineLatest<O1 extends ObservableInput<any>>(sources: [O1]): Observable<[ObservedValueOf<O1>]>;\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(sources: [O1, O2]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(sources: [O1, O2, O3]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(sources: [O1, O2, O3, O4]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5, O6]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;\nexport declare function combineLatest<O extends ObservableInput<any>>(sources: O[]): Observable<ObservedValueOf<O>[]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport declare function combineLatest<O1 extends ObservableInput<any>>(v1: O1, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport declare function combineLatest<O extends ObservableInput<any>>(...observables: O[]): Observable<any[]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport declare function combineLatest<O extends ObservableInput<any>, R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function combineLatest<O extends ObservableInput<any>, R>(array: O[], resultSelector: (...values: ObservedValueOf<O>[]) => R, scheduler?: SchedulerLike): Observable<R>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport declare function combineLatest<O extends ObservableInput<any>>(...observables: Array<O | SchedulerLike>): Observable<any[]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport declare function combineLatest<O extends ObservableInput<any>, R>(...observables: Array<O | ((...values: ObservedValueOf<O>[]) => R) | SchedulerLike>): Observable<R>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport declare function combineLatest<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R) | SchedulerLike>): Observable<R>;\nexport declare class CombineLatestOperator<T, R> implements Operator<T, R> {\n    private resultSelector?;\n    constructor(resultSelector?: (...values: Array<any>) => R);\n    call(subscriber: Subscriber<R>, source: any): any;\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class CombineLatestSubscriber<T, R> extends OuterSubscriber<T, R> {\n    private resultSelector?;\n    private active;\n    private values;\n    private observables;\n    private toRespond;\n    constructor(destination: Subscriber<R>, resultSelector?: (...values: Array<any>) => R);\n    protected _next(observable: any): void;\n    protected _complete(): void;\n    notifyComplete(unused: Subscriber<R>): void;\n    notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, R>): void;\n    private _tryResultSelector;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/concat.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport declare function concat<O1 extends ObservableInput<any>>(v1: O1, scheduler: SchedulerLike): Observable<ObservedValueOf<O1>>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2>>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3>>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4>>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5>>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5> | ObservedValueOf<O6>>;\nexport declare function concat<O1 extends ObservableInput<any>>(v1: O1): Observable<ObservedValueOf<O1>>;\nexport declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2): Observable<ObservedValueOf<O1> | ObservedValueOf<O2>>;\nexport declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3>>;\nexport declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4>>;\nexport declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5>>;\nexport declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5> | ObservedValueOf<O6>>;\nexport declare function concat<O extends ObservableInput<any>>(...observables: O[]): Observable<ObservedValueOf<O>>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport declare function concat<O extends ObservableInput<any>>(...observables: (O | SchedulerLike)[]): Observable<ObservedValueOf<O>>;\nexport declare function concat<R>(...observables: ObservableInput<any>[]): Observable<R>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport declare function concat<R>(...observables: (ObservableInput<any> | SchedulerLike)[]): Observable<R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/ConnectableObservable.d.ts"
    ],
    "content": "import { Subject } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\n/**\n * @class ConnectableObservable<T>\n */\nexport declare class ConnectableObservable<T> extends Observable<T> {\n    source: Observable<T>;\n    protected subjectFactory: () => Subject<T>;\n    protected _subject: Subject<T>;\n    protected _refCount: number;\n    protected _connection: Subscription;\n    /** @internal */\n    _isComplete: boolean;\n    constructor(source: Observable<T>, subjectFactory: () => Subject<T>);\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _subscribe(subscriber: Subscriber<T>): Subscription;\n    protected getSubject(): Subject<T>;\n    connect(): Subscription;\n    refCount(): Observable<T>;\n}\nexport declare const connectableObservableDescriptor: PropertyDescriptorMap;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/defer.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { ObservedValueOf, ObservableInput } from '../types';\n/**\n * Creates an Observable that, on subscribe, calls an Observable factory to\n * make an Observable for each new Observer.\n *\n * <span class=\"informal\">Creates the Observable lazily, that is, only when it\n * is subscribed.\n * </span>\n *\n * ![](defer.png)\n *\n * `defer` allows you to create the Observable only when the Observer\n * subscribes, and create a fresh Observable for each Observer. It waits until\n * an Observer subscribes to it, and then it generates an Observable,\n * typically with an Observable factory function. It does this afresh for each\n * subscriber, so although each subscriber may think it is subscribing to the\n * same Observable, in fact each subscriber gets its own individual\n * Observable.\n *\n * ## Example\n * ### Subscribe to either an Observable of clicks or an Observable of interval, at random\n * ```ts\n * import { defer, fromEvent, interval } from 'rxjs';\n *\n * const clicksOrInterval = defer(function () {\n *   return Math.random() > 0.5\n *     ? fromEvent(document, 'click')\n *     : interval(1000);\n * });\n * clicksOrInterval.subscribe(x => console.log(x));\n *\n * // Results in the following behavior:\n * // If the result of Math.random() is greater than 0.5 it will listen\n * // for clicks anywhere on the \"document\"; when document is clicked it\n * // will log a MouseEvent object to the console. If the result is less\n * // than 0.5 it will emit ascending numbers, one every second(1000ms).\n * ```\n *\n * @see {@link Observable}\n *\n * @param {function(): SubscribableOrPromise} observableFactory The Observable\n * factory function to invoke for each Observer that subscribes to the output\n * Observable. May also return a Promise, which will be converted on the fly\n * to an Observable.\n * @return {Observable} An Observable whose Observers' subscriptions trigger\n * an invocation of the given Observable factory function.\n * @static true\n * @name defer\n * @owner Observable\n */\nexport declare function defer<R extends ObservableInput<any> | void>(observableFactory: () => R): Observable<ObservedValueOf<R>>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/dom/ajax.d.ts"
    ],
    "content": "import { AjaxCreationMethod } from './AjaxObservable';\n/**\n * There is an ajax operator on the Rx object.\n *\n * It creates an observable for an Ajax request with either a request object with\n * url, headers, etc or a string for a URL.\n *\n *\n * ## Using ajax() to fetch the response object that is being returned from API.\n * ```ts\n * import { ajax } from 'rxjs/ajax';\n * import { map, catchError } from 'rxjs/operators';\n * import { of } from 'rxjs';\n *\n * const obs$ = ajax(`https://api.github.com/users?per_page=5`).pipe(\n *   map(userResponse => console.log('users: ', userResponse)),\n *   catchError(error => {\n *     console.log('error: ', error);\n *     return of(error);\n *   })\n * );\n *\n * ```\n *\n * ## Using ajax.getJSON() to fetch data from API.\n * ```ts\n * import { ajax } from 'rxjs/ajax';\n * import { map, catchError } from 'rxjs/operators';\n * import { of } from 'rxjs';\n *\n * const obs$ = ajax.getJSON(`https://api.github.com/users?per_page=5`).pipe(\n *   map(userResponse => console.log('users: ', userResponse)),\n *   catchError(error => {\n *     console.log('error: ', error);\n *     return of(error);\n *   })\n * );\n *\n * ```\n *\n * ## Using ajax() with object as argument and method POST with a two seconds delay.\n * ```ts\n * import { ajax } from 'rxjs/ajax';\n * import { of } from 'rxjs';\n *\n * const users = ajax({\n *   url: 'https://httpbin.org/delay/2',\n *   method: 'POST',\n *   headers: {\n *     'Content-Type': 'application/json',\n *     'rxjs-custom-header': 'Rxjs'\n *   },\n *   body: {\n *     rxjs: 'Hello World!'\n *   }\n * }).pipe(\n *   map(response => console.log('response: ', response)),\n *   catchError(error => {\n *     console.log('error: ', error);\n *     return of(error);\n *   })\n * );\n *\n * ```\n *\n * ## Using ajax() to fetch. An error object that is being returned from the request.\n * ```ts\n * import { ajax } from 'rxjs/ajax';\n * import { map, catchError } from 'rxjs/operators';\n * import { of } from 'rxjs';\n *\n * const obs$ = ajax(`https://api.github.com/404`).pipe(\n *   map(userResponse => console.log('users: ', userResponse)),\n *   catchError(error => {\n *     console.log('error: ', error);\n *     return of(error);\n *   })\n * );\n *\n * ```\n */\nexport declare const ajax: AjaxCreationMethod;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/dom/AjaxObservable.d.ts"
    ],
    "content": "import { Observable } from '../../Observable';\nimport { Subscriber } from '../../Subscriber';\nimport { TeardownLogic } from '../../types';\nexport interface AjaxRequest {\n    url?: string;\n    body?: any;\n    user?: string;\n    async?: boolean;\n    method?: string;\n    headers?: Object;\n    timeout?: number;\n    password?: string;\n    hasContent?: boolean;\n    crossDomain?: boolean;\n    withCredentials?: boolean;\n    createXHR?: () => XMLHttpRequest;\n    progressSubscriber?: Subscriber<any>;\n    responseType?: string;\n}\nexport interface AjaxCreationMethod {\n    (urlOrRequest: string | AjaxRequest): Observable<AjaxResponse>;\n    get(url: string, headers?: Object): Observable<AjaxResponse>;\n    post(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;\n    put(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;\n    patch(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;\n    delete(url: string, headers?: Object): Observable<AjaxResponse>;\n    getJSON<T>(url: string, headers?: Object): Observable<T>;\n}\nexport declare function ajaxGet(url: string, headers?: Object): AjaxObservable<AjaxResponse>;\nexport declare function ajaxPost(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;\nexport declare function ajaxDelete(url: string, headers?: Object): Observable<AjaxResponse>;\nexport declare function ajaxPut(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;\nexport declare function ajaxPatch(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;\nexport declare function ajaxGetJSON<T>(url: string, headers?: Object): Observable<T>;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nexport declare class AjaxObservable<T> extends Observable<T> {\n    /**\n     * Creates an observable for an Ajax request with either a request object with\n     * url, headers, etc or a string for a URL.\n     *\n     * ## Example\n     * ```ts\n     * import { ajax } from 'rxjs/ajax';\n   *\n     * const source1 = ajax('/products');\n     * const source2 = ajax({ url: 'products', method: 'GET' });\n     * ```\n     *\n     * @param {string|Object} request Can be one of the following:\n     *   A string of the URL to make the Ajax call.\n     *   An object with the following properties\n     *   - url: URL of the request\n     *   - body: The body of the request\n     *   - method: Method of the request, such as GET, POST, PUT, PATCH, DELETE\n     *   - async: Whether the request is async\n     *   - headers: Optional headers\n     *   - crossDomain: true if a cross domain request, else false\n     *   - createXHR: a function to override if you need to use an alternate\n     *   XMLHttpRequest implementation.\n     *   - resultSelector: a function to use to alter the output value type of\n     *   the Observable. Gets {@link AjaxResponse} as an argument.\n     * @return {Observable} An observable sequence containing the XMLHttpRequest.\n     * @static true\n     * @name ajax\n     * @owner Observable\n     * @nocollapse\n    */\n    static create: AjaxCreationMethod;\n    private request;\n    constructor(urlOrRequest: string | AjaxRequest);\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _subscribe(subscriber: Subscriber<T>): TeardownLogic;\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class AjaxSubscriber<T> extends Subscriber<Event> {\n    request: AjaxRequest;\n    private xhr;\n    private done;\n    constructor(destination: Subscriber<T>, request: AjaxRequest);\n    next(e: Event): void;\n    private send;\n    private serializeBody;\n    private setHeaders;\n    private getHeader;\n    private setupEvents;\n    unsubscribe(): void;\n}\n/**\n * A normalized AJAX response.\n *\n * @see {@link ajax}\n *\n * @class AjaxResponse\n */\nexport declare class AjaxResponse {\n    originalEvent: Event;\n    xhr: XMLHttpRequest;\n    request: AjaxRequest;\n    /** @type {number} The HTTP status code */\n    status: number;\n    /** @type {string|ArrayBuffer|Document|object|any} The response data */\n    response: any;\n    /** @type {string} The raw responseText */\n    responseText: string;\n    /** @type {string} The responseType (e.g. 'json', 'arraybuffer', or 'xml') */\n    responseType: string;\n    constructor(originalEvent: Event, xhr: XMLHttpRequest, request: AjaxRequest);\n}\nexport declare type AjaxErrorNames = 'AjaxError' | 'AjaxTimeoutError';\n/**\n * A normalized AJAX error.\n *\n * @see {@link ajax}\n *\n * @class AjaxError\n */\nexport interface AjaxError extends Error {\n    /** @type {XMLHttpRequest} The XHR instance associated with the error */\n    xhr: XMLHttpRequest;\n    /** @type {AjaxRequest} The AjaxRequest associated with the error */\n    request: AjaxRequest;\n    /** @type {number} The HTTP status code */\n    status: number;\n    /** @type {string} The responseType (e.g. 'json', 'arraybuffer', or 'xml') */\n    responseType: string;\n    /** @type {string|ArrayBuffer|Document|object|any} The response data */\n    response: any;\n}\nexport interface AjaxErrorCtor {\n    new (message: string, xhr: XMLHttpRequest, request: AjaxRequest): AjaxError;\n}\nexport declare const AjaxError: AjaxErrorCtor;\nexport interface AjaxTimeoutError extends AjaxError {\n}\nexport interface AjaxTimeoutErrorCtor {\n    new (xhr: XMLHttpRequest, request: AjaxRequest): AjaxTimeoutError;\n}\n/**\n * @see {@link ajax}\n *\n * @class AjaxTimeoutError\n */\nexport declare const AjaxTimeoutError: AjaxTimeoutErrorCtor;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/dom/fetch.d.ts"
    ],
    "content": "import { Observable } from '../../Observable';\n/**\n * Uses [the Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) to\n * make an HTTP request.\n *\n * **WARNING** Parts of the fetch API are still experimental. `AbortController` is\n * required for this implementation to work and use cancellation appropriately.\n *\n * Will automatically set up an internal [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController)\n * in order to teardown the internal `fetch` when the subscription tears down.\n *\n * If a `signal` is provided via the `init` argument, it will behave like it usually does with\n * `fetch`. If the provided `signal` aborts, the error that `fetch` normally rejects with\n * in that scenario will be emitted as an error from the observable.\n *\n * ### Basic Use\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { fromFetch } from 'rxjs/fetch';\n * import { switchMap, catchError } from 'rxjs/operators';\n *\n * const data$ = fromFetch('https://api.github.com/users?per_page=5').pipe(\n *  switchMap(response => {\n *    if (response.ok) {\n *      // OK return data\n *      return response.json();\n *    } else {\n *      // Server is returning a status requiring the client to try something else.\n *      return of({ error: true, message: `Error ${response.status}` });\n *    }\n *  }),\n *  catchError(err => {\n *    // Network or other error, handle appropriately\n *    console.error(err);\n *    return of({ error: true, message: err.message })\n *  })\n * );\n *\n * data$.subscribe({\n *  next: result => console.log(result),\n *  complete: () => console.log('done')\n * })\n * ```\n *\n * @param input The resource you would like to fetch. Can be a url or a request object.\n * @param init A configuration object for the fetch.\n * [See MDN for more details](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * @returns An Observable, that when subscribed to performs an HTTP request using the native `fetch`\n * function. The {@link Subscription} is tied to an `AbortController` for the the fetch.\n */\nexport declare function fromFetch(input: string | Request, init?: RequestInit): Observable<Response>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/dom/webSocket.d.ts"
    ],
    "content": "import { WebSocketSubject, WebSocketSubjectConfig } from './WebSocketSubject';\n/**\n * Wrapper around the w3c-compatible WebSocket object provided by the browser.\n *\n * <span class=\"informal\">{@link Subject} that communicates with a server via WebSocket</span>\n *\n * `webSocket` is a factory function that produces a `WebSocketSubject`,\n * which can be used to make WebSocket connection with an arbitrary endpoint.\n * `webSocket` accepts as an argument either a string with url of WebSocket endpoint, or an\n * {@link WebSocketSubjectConfig} object for providing additional configuration, as\n * well as Observers for tracking lifecycle of WebSocket connection.\n *\n * When `WebSocketSubject` is subscribed, it attempts to make a socket connection,\n * unless there is one made already. This means that many subscribers will always listen\n * on the same socket, thus saving resources. If however, two instances are made of `WebSocketSubject`,\n * even if these two were provided with the same url, they will attempt to make separate\n * connections. When consumer of a `WebSocketSubject` unsubscribes, socket connection is closed,\n * only if there are no more subscribers still listening. If after some time a consumer starts\n * subscribing again, connection is reestablished.\n *\n * Once connection is made, whenever a new message comes from the server, `WebSocketSubject` will emit that\n * message as a value in the stream. By default, a message from the socket is parsed via `JSON.parse`. If you\n * want to customize how deserialization is handled (if at all), you can provide custom `resultSelector`\n * function in {@link WebSocketSubject}. When connection closes, stream will complete, provided it happened without\n * any errors. If at any point (starting, maintaining or closing a connection) there is an error,\n * stream will also error with whatever WebSocket API has thrown.\n *\n * By virtue of being a {@link Subject}, `WebSocketSubject` allows for receiving and sending messages from the server. In order\n * to communicate with a connected endpoint, use `next`, `error` and `complete` methods. `next` sends a value to the server, so bear in mind\n * that this value will not be serialized beforehand. Because of This, `JSON.stringify` will have to be called on a value by hand,\n * before calling `next` with a result. Note also that if at the moment of nexting value\n * there is no socket connection (for example no one is subscribing), those values will be buffered, and sent when connection\n * is finally established. `complete` method closes socket connection. `error` does the same,\n * as well as notifying the server that something went wrong via status code and string with details of what happened.\n * Since status code is required in WebSocket API, `WebSocketSubject` does not allow, like regular `Subject`,\n * arbitrary values being passed to the `error` method. It needs to be called with an object that has `code`\n * property with status code number and optional `reason` property with string describing details\n * of an error.\n *\n * Calling `next` does not affect subscribers of `WebSocketSubject` - they have no\n * information that something was sent to the server (unless of course the server\n * responds somehow to a message). On the other hand, since calling `complete` triggers\n * an attempt to close socket connection. If that connection is closed without any errors, stream will\n * complete, thus notifying all subscribers. And since calling `error` closes\n * socket connection as well, just with a different status code for the server, if closing itself proceeds\n * without errors, subscribed Observable will not error, as one might expect, but complete as usual. In both cases\n * (calling `complete` or `error`), if process of closing socket connection results in some errors, *then* stream\n * will error.\n *\n * **Multiplexing**\n *\n * `WebSocketSubject` has an additional operator, not found in other Subjects. It is called `multiplex` and it is\n * used to simulate opening several socket connections, while in reality maintaining only one.\n * For example, an application has both chat panel and real-time notifications about sport news. Since these are two distinct functions,\n * it would make sense to have two separate connections for each. Perhaps there could even be two separate services with WebSocket\n * endpoints, running on separate machines with only GUI combining them together. Having a socket connection\n * for each functionality could become too resource expensive. It is a common pattern to have single\n * WebSocket endpoint that acts as a gateway for the other services (in this case chat and sport news services).\n * Even though there is a single connection in a client app, having the ability to manipulate streams as if it\n * were two separate sockets is desirable. This eliminates manually registering and unregistering in a gateway for\n * given service and filter out messages of interest. This is exactly what `multiplex` method is for.\n *\n * Method accepts three parameters. First two are functions returning subscription and unsubscription messages\n * respectively. These are messages that will be sent to the server, whenever consumer of resulting Observable\n * subscribes and unsubscribes. Server can use them to verify that some kind of messages should start or stop\n * being forwarded to the client. In case of the above example application, after getting subscription message with proper identifier,\n * gateway server can decide that it should connect to real sport news service and start forwarding messages from it.\n * Note that both messages will be sent as returned by the functions, they are by default serialized using JSON.stringify, just\n * as messages pushed via `next`. Also bear in mind that these messages will be sent on *every* subscription and\n * unsubscription. This is potentially dangerous, because one consumer of an Observable may unsubscribe and the server\n * might stop sending messages, since it got unsubscription message. This needs to be handled\n * on the server or using {@link publish} on a Observable returned from 'multiplex'.\n *\n * Last argument to `multiplex` is a `messageFilter` function which should return a boolean. It is used to filter out messages\n * sent by the server to only those that belong to simulated WebSocket stream. For example, server might mark these\n * messages with some kind of string identifier on a message object and `messageFilter` would return `true`\n * if there is such identifier on an object emitted by the socket. Messages which returns `false` in `messageFilter` are simply skipped,\n * and are not passed down the stream.\n *\n * Return value of `multiplex` is an Observable with messages incoming from emulated socket connection. Note that this\n * is not a `WebSocketSubject`, so calling `next` or `multiplex` again will fail. For pushing values to the\n * server, use root `WebSocketSubject`.\n *\n * ### Examples\n * #### Listening for messages from the server\n * ```ts\n * import { webSocket } from \"rxjs/webSocket\";\n * const subject = webSocket(\"ws://localhost:8081\");\n *\n * subject.subscribe(\n *    msg => console.log('message received: ' + msg), // Called whenever there is a message from the server.\n *    err => console.log(err), // Called if at any point WebSocket API signals some kind of error.\n *    () => console.log('complete') // Called when connection is closed (for whatever reason).\n *  );\n * ```\n *\n * #### Pushing messages to the server\n * ```ts\n * import { webSocket } from \"rxjs/webSocket\";\n * const subject = webSocket('ws://localhost:8081');\n *\n * subject.subscribe();\n * // Note that at least one consumer has to subscribe to the created subject - otherwise \"nexted\" values will be just buffered and not sent,\n * // since no connection was established!\n *\n * subject.next({message: 'some message'});\n * // This will send a message to the server once a connection is made. Remember value is serialized with JSON.stringify by default!\n *\n * subject.complete(); // Closes the connection.\n *\n * subject.error({code: 4000, reason: 'I think our app just broke!'});\n * // Also closes the connection, but let's the server know that this closing is caused by some error.\n * ```\n *\n * #### Multiplexing WebSocket\n * ```ts\n * import { webSocket } from \"rxjs/webSocket\";\n * const subject = webSocket('ws://localhost:8081');\n *\n * const observableA = subject.multiplex(\n *   () => ({subscribe: 'A'}), // When server gets this message, it will start sending messages for 'A'...\n *   () => ({unsubscribe: 'A'}), // ...and when gets this one, it will stop.\n *   message => message.type === 'A' // If the function returns `true` message is passed down the stream. Skipped if the function returns false.\n * );\n *\n * const observableB = subject.multiplex( // And the same goes for 'B'.\n *   () => ({subscribe: 'B'}),\n *   () => ({unsubscribe: 'B'}),\n *   message => message.type === 'B'\n * );\n *\n * const subA = observableA.subscribe(messageForA => console.log(messageForA));\n * // At this moment WebSocket connection is established. Server gets '{\"subscribe\": \"A\"}' message and starts sending messages for 'A',\n * // which we log here.\n *\n * const subB = observableB.subscribe(messageForB => console.log(messageForB));\n * // Since we already have a connection, we just send '{\"subscribe\": \"B\"}' message to the server. It starts sending messages for 'B',\n * // which we log here.\n *\n * subB.unsubscribe();\n * // Message '{\"unsubscribe\": \"B\"}' is sent to the server, which stops sending 'B' messages.\n *\n * subA.unsubscribe();\n * // Message '{\"unsubscribe\": \"A\"}' makes the server stop sending messages for 'A'. Since there is no more subscribers to root Subject,\n * // socket connection closes.\n * ```\n *\n *\n * @param {string|WebSocketSubjectConfig} urlConfigOrSource The WebSocket endpoint as an url or an object with\n * configuration and additional Observers.\n * @return {WebSocketSubject} Subject which allows to both send and receive messages via WebSocket connection.\n */\nexport declare function webSocket<T>(urlConfigOrSource: string | WebSocketSubjectConfig<T>): WebSocketSubject<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts"
    ],
    "content": "import { Subject, AnonymousSubject } from '../../Subject';\nimport { Subscriber } from '../../Subscriber';\nimport { Observable } from '../../Observable';\nimport { Subscription } from '../../Subscription';\nimport { Operator } from '../../Operator';\nimport { Observer, NextObserver } from '../../types';\n/**\n * WebSocketSubjectConfig is a plain Object that allows us to make our\n * webSocket configurable.\n *\n * <span class=\"informal\">Provides flexibility to {@link webSocket}</span>\n *\n * It defines a set of properties to provide custom behavior in specific\n * moments of the socket's lifecycle. When the connection opens we can\n * use `openObserver`, when the connection is closed `closeObserver`, if we\n * are interested in listening for data comming from server: `deserializer`,\n * which allows us to customize the deserialization strategy of data before passing it\n * to the socket client. By default `deserializer` is going to apply `JSON.parse` to each message comming\n * from the Server.\n *\n * ## Example\n * **deserializer**, the default for this property is `JSON.parse` but since there are just two options\n * for incomming data, either be text or binarydata. We can apply a custom deserialization strategy\n * or just simply skip the default behaviour.\n * ```ts\n * import { webSocket } from 'rxjs/webSocket';\n *\n * const wsSubject = webSocket({\n *     url: 'ws://localhost:8081',\n * //Apply any transformation of your choice.\n *     deserializer: ({data}) => data\n * });\n *\n * wsSubject.subscribe(console.log);\n *\n * // Let's suppose we have this on the Server: ws.send(\"This is a msg from the server\")\n * //output\n * //\n * // This is a msg from the server\n * ```\n *\n * **serializer** allows us tom apply custom serialization strategy but for the outgoing messages\n * ```ts\n * import { webSocket } from 'rxjs/webSocket';\n *\n * const wsSubject = webSocket({\n *     url: 'ws://localhost:8081',\n * //Apply any transformation of your choice.\n *     serializer: msg => JSON.stringify({channel: \"webDevelopment\", msg: msg})\n * });\n *\n * wsSubject.subscribe(() => subject.next(\"msg to the server\"));\n *\n * // Let's suppose we have this on the Server: ws.send(\"This is a msg from the server\")\n * //output\n * //\n * // {\"channel\":\"webDevelopment\",\"msg\":\"msg to the server\"}\n * ```\n *\n * **closeObserver** allows us to set a custom error when an error raise up.\n * ```ts\n * import { webSocket } from 'rxjs/webSocket';\n *\n * const wsSubject = webSocket({\n *     url: 'ws://localhost:8081',\n *     closeObserver: {\n        next(closeEvent) {\n            const customError = { code: 6666, reason: \"Custom evil reason\" }\n            console.log(`code: ${customError.code}, reason: ${customError.reason}`);\n        }\n    }\n * });\n *\n * //output\n * // code: 6666, reason: Custom evil reason\n * ```\n *\n * **openObserver**, Let's say we need to make some kind of init task before sending/receiving msgs to the\n * webSocket or sending notification that the connection was successful, this is when\n * openObserver is usefull for.\n * ```ts\n * import { webSocket } from 'rxjs/webSocket';\n *\n * const wsSubject = webSocket({\n *     url: 'ws://localhost:8081',\n *     openObserver: {\n *         next: () => {\n *             console.log('connetion ok');\n *         }\n *     },\n * });\n *\n * //output\n * // connetion ok`\n * ```\n * */\nexport interface WebSocketSubjectConfig<T> {\n    /** The url of the socket server to connect to */\n    url: string;\n    /** The protocol to use to connect */\n    protocol?: string | Array<string>;\n    /** @deprecated use {@link deserializer} */\n    resultSelector?: (e: MessageEvent) => T;\n    /**\n     * A serializer used to create messages from passed values before the\n     * messages are sent to the server. Defaults to JSON.stringify.\n     */\n    serializer?: (value: T) => WebSocketMessage;\n    /**\n     * A deserializer used for messages arriving on the socket from the\n     * server. Defaults to JSON.parse.\n     */\n    deserializer?: (e: MessageEvent) => T;\n    /**\n     * An Observer that watches when open events occur on the underlying web socket.\n     */\n    openObserver?: NextObserver<Event>;\n    /**\n     * An Observer than watches when close events occur on the underlying webSocket\n     */\n    closeObserver?: NextObserver<CloseEvent>;\n    /**\n     * An Observer that watches when a close is about to occur due to\n     * unsubscription.\n     */\n    closingObserver?: NextObserver<void>;\n    /**\n     * A WebSocket constructor to use. This is useful for situations like using a\n     * WebSocket impl in Node (WebSocket is a DOM API), or for mocking a WebSocket\n     * for testing purposes\n     */\n    WebSocketCtor?: {\n        new (url: string, protocols?: string | string[]): WebSocket;\n    };\n    /** Sets the `binaryType` property of the underlying WebSocket. */\n    binaryType?: 'blob' | 'arraybuffer';\n}\nexport declare type WebSocketMessage = string | ArrayBuffer | Blob | ArrayBufferView;\nexport declare class WebSocketSubject<T> extends AnonymousSubject<T> {\n    private _config;\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _output: Subject<T>;\n    private _socket;\n    constructor(urlConfigOrSource: string | WebSocketSubjectConfig<T> | Observable<T>, destination?: Observer<T>);\n    lift<R>(operator: Operator<T, R>): WebSocketSubject<R>;\n    private _resetState;\n    /**\n     * Creates an {@link Observable}, that when subscribed to, sends a message,\n     * defined by the `subMsg` function, to the server over the socket to begin a\n     * subscription to data over that socket. Once data arrives, the\n     * `messageFilter` argument will be used to select the appropriate data for\n     * the resulting Observable. When teardown occurs, either due to\n     * unsubscription, completion or error, a message defined by the `unsubMsg`\n     * argument will be send to the server over the WebSocketSubject.\n     *\n     * @param subMsg A function to generate the subscription message to be sent to\n     * the server. This will still be processed by the serializer in the\n     * WebSocketSubject's config. (Which defaults to JSON serialization)\n     * @param unsubMsg A function to generate the unsubscription message to be\n     * sent to the server at teardown. This will still be processed by the\n     * serializer in the WebSocketSubject's config.\n     * @param messageFilter A predicate for selecting the appropriate messages\n     * from the server for the output stream.\n     */\n    multiplex(subMsg: () => any, unsubMsg: () => any, messageFilter: (value: T) => boolean): Observable<any>;\n    private _connectSocket;\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _subscribe(subscriber: Subscriber<T>): Subscription;\n    unsubscribe(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/empty.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n/**\n * The same Observable instance returned by any call to {@link empty} without a\n * `scheduler`. It is preferrable to use this over `empty()`.\n */\nexport declare const EMPTY: Observable<never>;\n/**\n * Creates an Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * <span class=\"informal\">Just emits 'complete', and nothing else.\n * </span>\n *\n * ![](empty.png)\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the complete notification. It can be used for composing with other\n * Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n * ### Emit the number 7, then complete\n * ```ts\n * import { empty } from 'rxjs';\n * import { startWith } from 'rxjs/operators';\n *\n * const result = empty().pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * ### Map and flatten only odd numbers to the sequence 'a', 'b', 'c'\n * ```ts\n * import { empty, interval, of } from 'rxjs';\n * import { mergeMap } from 'rxjs/operators';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n *   mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : empty()),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval eg(0,1,2,3,...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1 print abc\n * // if x % 2 is not equal to 1 nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link never}\n * @see {@link of}\n * @see {@link throwError}\n *\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @return An \"empty\" Observable: emits only the complete\n * notification.\n * @deprecated Deprecated in favor of using {@link EMPTY} constant, or {@link scheduled} (e.g. `scheduled([], scheduler)`)\n */\nexport declare function empty(scheduler?: SchedulerLike): Observable<never>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/forkJoin.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { ObservableInput, ObservedValuesFromArray, ObservedValueOf, SubscribableOrPromise } from '../types';\n/** @deprecated Use the version that takes an array of Observables instead */\nexport declare function forkJoin<T>(v1: SubscribableOrPromise<T>): Observable<[T]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport declare function forkJoin<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>): Observable<[T, T2]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport declare function forkJoin<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<[T, T2, T3]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport declare function forkJoin<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<[T, T2, T3, T4]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport declare function forkJoin<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<[T, T2, T3, T4, T5]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport declare function forkJoin<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<[T, T2, T3, T4, T5, T6]>;\nexport declare function forkJoin<A>(sources: [ObservableInput<A>]): Observable<[A]>;\nexport declare function forkJoin<A, B>(sources: [ObservableInput<A>, ObservableInput<B>]): Observable<[A, B]>;\nexport declare function forkJoin<A, B, C>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>]): Observable<[A, B, C]>;\nexport declare function forkJoin<A, B, C, D>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>]): Observable<[A, B, C, D]>;\nexport declare function forkJoin<A, B, C, D, E>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>, ObservableInput<E>]): Observable<[A, B, C, D, E]>;\nexport declare function forkJoin<A, B, C, D, E, F>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>, ObservableInput<E>, ObservableInput<F>]): Observable<[A, B, C, D, E, F]>;\nexport declare function forkJoin<A extends ObservableInput<any>[]>(sources: A): Observable<ObservedValuesFromArray<A>[]>;\nexport declare function forkJoin(sourcesObject: {}): Observable<never>;\nexport declare function forkJoin<T, K extends keyof T>(sourcesObject: T): Observable<{\n    [K in keyof T]: ObservedValueOf<T[K]>;\n}>;\n/** @deprecated resultSelector is deprecated, pipe to map instead */\nexport declare function forkJoin(...args: Array<ObservableInput<any> | Function>): Observable<any>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport declare function forkJoin<T>(...sources: ObservableInput<T>[]): Observable<T[]>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/from.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nexport declare function from<O extends ObservableInput<any>>(input: O): Observable<ObservedValueOf<O>>;\n/** @deprecated use {@link scheduled} instead. */\nexport declare function from<O extends ObservableInput<any>>(input: O, scheduler: SchedulerLike): Observable<ObservedValueOf<O>>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/fromArray.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nexport declare function fromArray<T>(input: ArrayLike<T>, scheduler?: SchedulerLike): Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/fromEvent.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nexport interface NodeStyleEventEmitter {\n    addListener: (eventName: string | symbol, handler: NodeEventHandler) => this;\n    removeListener: (eventName: string | symbol, handler: NodeEventHandler) => this;\n}\nexport declare type NodeEventHandler = (...args: any[]) => void;\nexport interface NodeCompatibleEventEmitter {\n    addListener: (eventName: string, handler: NodeEventHandler) => void | {};\n    removeListener: (eventName: string, handler: NodeEventHandler) => void | {};\n}\nexport interface JQueryStyleEventEmitter {\n    on: (eventName: string, handler: Function) => void;\n    off: (eventName: string, handler: Function) => void;\n}\nexport interface HasEventTargetAddRemove<E> {\n    addEventListener(type: string, listener: ((evt: E) => void) | null, options?: boolean | AddEventListenerOptions): void;\n    removeEventListener(type: string, listener?: ((evt: E) => void) | null, options?: EventListenerOptions | boolean): void;\n}\nexport declare type EventTargetLike<T> = HasEventTargetAddRemove<T> | NodeStyleEventEmitter | NodeCompatibleEventEmitter | JQueryStyleEventEmitter;\nexport declare type FromEventTarget<T> = EventTargetLike<T> | ArrayLike<EventTargetLike<T>>;\nexport interface EventListenerOptions {\n    capture?: boolean;\n    passive?: boolean;\n    once?: boolean;\n}\nexport interface AddEventListenerOptions extends EventListenerOptions {\n    once?: boolean;\n    passive?: boolean;\n}\nexport declare function fromEvent<T>(target: FromEventTarget<T>, eventName: string): Observable<T>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function fromEvent<T>(target: FromEventTarget<T>, eventName: string, resultSelector: (...args: any[]) => T): Observable<T>;\nexport declare function fromEvent<T>(target: FromEventTarget<T>, eventName: string, options: EventListenerOptions): Observable<T>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function fromEvent<T>(target: FromEventTarget<T>, eventName: string, options: EventListenerOptions, resultSelector: (...args: any[]) => T): Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/fromEventPattern.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { NodeEventHandler } from './fromEvent';\nexport declare function fromEventPattern<T>(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void): Observable<T>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport declare function fromEventPattern<T>(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void, resultSelector?: (...args: any[]) => T): Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/fromIterable.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nexport declare function fromIterable<T>(input: Iterable<T>, scheduler?: SchedulerLike): Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/fromPromise.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nexport declare function fromPromise<T>(input: PromiseLike<T>, scheduler?: SchedulerLike): Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/generate.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nexport declare type ConditionFunc<S> = (state: S) => boolean;\nexport declare type IterateFunc<S> = (state: S) => S;\nexport declare type ResultFunc<S, T> = (state: S) => T;\nexport interface GenerateBaseOptions<S> {\n    /**\n     * Initial state.\n     */\n    initialState: S;\n    /**\n     * Condition function that accepts state and returns boolean.\n     * When it returns false, the generator stops.\n     * If not specified, a generator never stops.\n     */\n    condition?: ConditionFunc<S>;\n    /**\n     * Iterate function that accepts state and returns new state.\n     */\n    iterate: IterateFunc<S>;\n    /**\n     * SchedulerLike to use for generation process.\n     * By default, a generator starts immediately.\n     */\n    scheduler?: SchedulerLike;\n}\nexport interface GenerateOptions<T, S> extends GenerateBaseOptions<S> {\n    /**\n     * Result selection function that accepts state and returns a value to emit.\n     */\n    resultSelector: ResultFunc<S, T>;\n}\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n *\n * ![](generate.png)\n *\n * @example <caption>Produces sequence of 0, 1, 2, ... 9, then completes.</caption>\n * const res = generate(0, x => x < 10, x => x + 1, x => x);\n *\n * @example <caption>Using asap scheduler, produces sequence of 2, 3, 5, then completes.</caption>\n * const res = generate(1, x => x < 5, x => x * 2, x => x + 1, asap);\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {S} initialState Initial state.\n * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).\n * @param {function (state: S): S} iterate Iteration step function.\n * @param {function (state: S): T} resultSelector Selector function for results produced in the sequence. (deprecated)\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} on which to run the generator loop. If not provided, defaults to emit immediately.\n * @returns {Observable<T>} The generated sequence.\n */\nexport declare function generate<T, S>(initialState: S, condition: ConditionFunc<S>, iterate: IterateFunc<S>, resultSelector: ResultFunc<S, T>, scheduler?: SchedulerLike): Observable<T>;\n/**\n * Generates an Observable by running a state-driven loop\n * that emits an element on each iteration.\n *\n * <span class=\"informal\">Use it instead of nexting values in a for loop.</span>\n *\n * <img src=\"./img/generate.png\" width=\"100%\">\n *\n * `generate` allows you to create stream of values generated with a loop very similar to\n * traditional for loop. First argument of `generate` is a beginning value. Second argument\n * is a function that accepts this value and tests if some condition still holds. If it does,\n * loop continues, if not, it stops. Third value is a function which takes previously defined\n * value and modifies it in some way on each iteration. Note how these three parameters\n * are direct equivalents of three expressions in regular for loop: first expression\n * initializes some state (for example numeric index), second tests if loop can make next\n * iteration (for example if index is lower than 10) and third states how defined value\n * will be modified on every step (index will be incremented by one).\n *\n * Return value of a `generate` operator is an Observable that on each loop iteration\n * emits a value. First, condition function is ran. If it returned true, Observable\n * emits currently stored value (initial value at the first iteration) and then updates\n * that value with iterate function. If at some point condition returned false, Observable\n * completes at that moment.\n *\n * Optionally you can pass fourth parameter to `generate` - a result selector function which allows you\n * to immediately map value that would normally be emitted by an Observable.\n *\n * If you find three anonymous functions in `generate` call hard to read, you can provide\n * single object to the operator instead. That object has properties: `initialState`,\n * `condition`, `iterate` and `resultSelector`, which should have respective values that you\n * would normally pass to `generate`. `resultSelector` is still optional, but that form\n * of calling `generate` allows you to omit `condition` as well. If you omit it, that means\n * condition always holds, so output Observable will never complete.\n *\n * Both forms of `generate` can optionally accept a scheduler. In case of multi-parameter call,\n * scheduler simply comes as a last argument (no matter if there is resultSelector\n * function or not). In case of single-parameter call, you can provide it as a\n * `scheduler` property on object passed to the operator. In both cases scheduler decides when\n * next iteration of the loop will happen and therefore when next value will be emitted\n * by the Observable. For example to ensure that each value is pushed to the observer\n * on separate task in event loop, you could use `async` scheduler. Note that\n * by default (when no scheduler is passed) values are simply emitted synchronously.\n *\n *\n * @example <caption>Use with condition and iterate functions.</caption>\n * const generated = generate(0, x => x < 3, x => x + 1);\n *\n * generated.subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('Yo!')\n * );\n *\n * // Logs:\n * // 0\n * // 1\n * // 2\n * // \"Yo!\"\n *\n *\n * @example <caption>Use with condition, iterate and resultSelector functions.</caption>\n * const generated = generate(0, x => x < 3, x => x + 1, x => x * 1000);\n *\n * generated.subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('Yo!')\n * );\n *\n * // Logs:\n * // 0\n * // 1000\n * // 2000\n * // \"Yo!\"\n *\n *\n * @example <caption>Use with options object.</caption>\n * const generated = generate({\n *   initialState: 0,\n *   condition(value) { return value < 3; },\n *   iterate(value) { return value + 1; },\n *   resultSelector(value) { return value * 1000; }\n * });\n *\n * generated.subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('Yo!')\n * );\n *\n * // Logs:\n * // 0\n * // 1000\n * // 2000\n * // \"Yo!\"\n *\n * @example <caption>Use options object without condition function.</caption>\n * const generated = generate({\n *   initialState: 0,\n *   iterate(value) { return value + 1; },\n *   resultSelector(value) { return value * 1000; }\n * });\n *\n * generated.subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('Yo!') // This will never run.\n * );\n *\n * // Logs:\n * // 0\n * // 1000\n * // 2000\n * // 3000\n * // ...and never stops.\n *\n *\n * @see {@link from}\n * @see {@link index/Observable.create}\n *\n * @param {S} initialState Initial state.\n * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).\n * @param {function (state: S): S} iterate Iteration step function.\n * @param {function (state: S): T} [resultSelector] Selector function for results produced in the sequence.\n * @param {Scheduler} [scheduler] A {@link Scheduler} on which to run the generator loop. If not provided, defaults to emitting immediately.\n * @return {Observable<T>} The generated sequence.\n */\nexport declare function generate<S>(initialState: S, condition: ConditionFunc<S>, iterate: IterateFunc<S>, scheduler?: SchedulerLike): Observable<S>;\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n * The overload accepts options object that might contain initial state, iterate,\n * condition and scheduler.\n *\n * ![](generate.png)\n *\n * @example <caption>Produces sequence of 0, 1, 2, ... 9, then completes.</caption>\n * const res = generate({\n *   initialState: 0,\n *   condition: x => x < 10,\n *   iterate: x => x + 1,\n * });\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {GenerateBaseOptions<S>} options Object that must contain initialState, iterate and might contain condition and scheduler.\n * @returns {Observable<S>} The generated sequence.\n */\nexport declare function generate<S>(options: GenerateBaseOptions<S>): Observable<S>;\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n * The overload accepts options object that might contain initial state, iterate,\n * condition, result selector and scheduler.\n *\n * ![](generate.png)\n *\n * @example <caption>Produces sequence of 0, 1, 2, ... 9, then completes.</caption>\n * const res = generate({\n *   initialState: 0,\n *   condition: x => x < 10,\n *   iterate: x => x + 1,\n *   resultSelector: x => x,\n * });\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {GenerateOptions<T, S>} options Object that must contain initialState, iterate, resultSelector and might contain condition and scheduler.\n * @returns {Observable<T>} The generated sequence.\n */\nexport declare function generate<T, S>(options: GenerateOptions<T, S>): Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/iif.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SubscribableOrPromise } from '../types';\n/**\n * Decides at subscription time which Observable will actually be subscribed.\n *\n * <span class=\"informal\">`If` statement for Observables.</span>\n *\n * `iif` accepts a condition function and two Observables. When\n * an Observable returned by the operator is subscribed, condition function will be called.\n * Based on what boolean it returns at that moment, consumer will subscribe either to\n * the first Observable (if condition was true) or to the second (if condition was false). Condition\n * function may also not return anything - in that case condition will be evaluated as false and\n * second Observable will be subscribed.\n *\n * Note that Observables for both cases (true and false) are optional. If condition points to an Observable that\n * was left undefined, resulting stream will simply complete immediately. That allows you to, rather\n * than controlling which Observable will be subscribed, decide at runtime if consumer should have access\n * to given Observable or not.\n *\n * If you have more complex logic that requires decision between more than two Observables, {@link defer}\n * will probably be a better choice. Actually `iif` can be easily implemented with {@link defer}\n * and exists only for convenience and readability reasons.\n *\n *\n * ## Examples\n * ### Change at runtime which Observable will be subscribed\n * ```ts\n * import { iif, of } from 'rxjs';\n *\n * let subscribeToFirst;\n * const firstOrSecond = iif(\n *   () => subscribeToFirst,\n *   of('first'),\n *   of('second'),\n * );\n *\n * subscribeToFirst = true;\n * firstOrSecond.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"first\"\n *\n * subscribeToFirst = false;\n * firstOrSecond.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"second\"\n *\n * ```\n *\n * ### Control an access to an Observable\n * ```ts\n * let accessGranted;\n * const observableIfYouHaveAccess = iif(\n *   () => accessGranted,\n *   of('It seems you have an access...'), // Note that only one Observable is passed to the operator.\n * );\n *\n * accessGranted = true;\n * observableIfYouHaveAccess.subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('The end'),\n * );\n *\n * // Logs:\n * // \"It seems you have an access...\"\n * // \"The end\"\n *\n * accessGranted = false;\n * observableIfYouHaveAccess.subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('The end'),\n * );\n *\n * // Logs:\n * // \"The end\"\n * ```\n *\n * @see {@link defer}\n *\n * @param {function(): boolean} condition Condition which Observable should be chosen.\n * @param {Observable} [trueObservable] An Observable that will be subscribed if condition is true.\n * @param {Observable} [falseObservable] An Observable that will be subscribed if condition is false.\n * @return {Observable} Either first or second Observable, depending on condition.\n * @static true\n * @name iif\n * @owner Observable\n */\nexport declare function iif<T, F>(condition: () => boolean, trueResult?: SubscribableOrPromise<T>, falseResult?: SubscribableOrPromise<F>): Observable<T | F>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/interval.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n/**\n * Creates an Observable that emits sequential numbers every specified\n * interval of time, on a specified {@link SchedulerLike}.\n *\n * <span class=\"informal\">Emits incremental numbers periodically in time.\n * </span>\n *\n * ![](interval.png)\n *\n * `interval` returns an Observable that emits an infinite sequence of\n * ascending integers, with a constant interval of time of your choosing\n * between those emissions. The first emission is not sent immediately, but\n * only after the first period has passed. By default, this operator uses the\n * `async` {@link SchedulerLike} to provide a notion of time, but you may pass any\n * {@link SchedulerLike} to it.\n *\n * ## Example\n * Emits ascending numbers, one every second (1000ms) up to the number 3\n * ```ts\n * import { interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const numbers = interval(1000);\n *\n * const takeFourNumbers = numbers.pipe(take(4));\n *\n * takeFourNumbers.subscribe(x => console.log('Next: ', x));\n *\n * // Logs:\n * // Next: 0\n * // Next: 1\n * // Next: 2\n * // Next: 3\n * ```\n *\n * @see {@link timer}\n * @see {@link delay}\n *\n * @param {number} [period=0] The interval size in milliseconds (by default)\n * or the time unit determined by the scheduler's clock.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a sequential number each time\n * interval.\n * @static true\n * @name interval\n * @owner Observable\n */\nexport declare function interval(period?: number, scheduler?: SchedulerLike): Observable<number>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/merge.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike } from '../types';\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T>(v1: ObservableInput<T>, scheduler: SchedulerLike): Observable<T>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T>(v1: ObservableInput<T>, concurrent: number, scheduler: SchedulerLike): Observable<T>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>, scheduler: SchedulerLike): Observable<T | T2>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, scheduler: SchedulerLike): Observable<T | T2 | T3>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;\nexport declare function merge<T>(v1: ObservableInput<T>): Observable<T>;\nexport declare function merge<T>(v1: ObservableInput<T>, concurrent?: number): Observable<T>;\nexport declare function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>): Observable<T | T2>;\nexport declare function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>, concurrent?: number): Observable<T | T2>;\nexport declare function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<T | T2 | T3>;\nexport declare function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, concurrent?: number): Observable<T | T2 | T3>;\nexport declare function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<T | T2 | T3 | T4>;\nexport declare function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, concurrent?: number): Observable<T | T2 | T3 | T4>;\nexport declare function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<T | T2 | T3 | T4 | T5>;\nexport declare function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, concurrent?: number): Observable<T | T2 | T3 | T4 | T5>;\nexport declare function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<T | T2 | T3 | T4 | T5 | T6>;\nexport declare function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, concurrent?: number): Observable<T | T2 | T3 | T4 | T5 | T6>;\nexport declare function merge<T>(...observables: (ObservableInput<T> | number)[]): Observable<T>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T>(...observables: (ObservableInput<T> | SchedulerLike | number)[]): Observable<T>;\nexport declare function merge<T, R>(...observables: (ObservableInput<any> | number)[]): Observable<R>;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport declare function merge<T, R>(...observables: (ObservableInput<any> | SchedulerLike | number)[]): Observable<R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/never.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\n/**\n * An Observable that emits no items to the Observer and never completes.\n *\n * ![](never.png)\n *\n * A simple Observable that emits neither values nor errors nor the completion\n * notification. It can be used for testing purposes or for composing with other\n * Observables. Please note that by never emitting a complete notification, this\n * Observable keeps the subscription from being disposed automatically.\n * Subscriptions need to be manually disposed.\n *\n * ##  Example\n * ### Emit the number 7, then never emit anything else (not even complete)\n * ```ts\n * import { NEVER } from 'rxjs';\n * import { startWith } from 'rxjs/operators';\n *\n * function info() {\n *   console.log('Will not be called');\n * }\n * const result = NEVER.pipe(startWith(7));\n * result.subscribe(x => console.log(x), info, info);\n *\n * ```\n *\n * @see {@link Observable}\n * @see {@link index/EMPTY}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport declare const NEVER: Observable<never>;\n/**\n * @deprecated Deprecated in favor of using {@link NEVER} constant.\n */\nexport declare function never(): Observable<never>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/of.d.ts"
    ],
    "content": "import { SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport declare function of<T>(a: T, scheduler: SchedulerLike): Observable<T>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport declare function of<T, T2>(a: T, b: T2, scheduler: SchedulerLike): Observable<T | T2>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport declare function of<T, T2, T3>(a: T, b: T2, c: T3, scheduler: SchedulerLike): Observable<T | T2 | T3>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport declare function of<T, T2, T3, T4>(a: T, b: T2, c: T3, d: T4, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport declare function of<T, T2, T3, T4, T5>(a: T, b: T2, c: T3, d: T4, e: T5, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport declare function of<T, T2, T3, T4, T5, T6>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport declare function of<T, T2, T3, T4, T5, T6, T7>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6 | T7>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport declare function of<T, T2, T3, T4, T5, T6, T7, T8>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8>;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport declare function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;\nexport declare function of<T>(...args: (T | SchedulerLike)[]): Observable<T>;\nexport declare function of<T>(a: T): Observable<T>;\nexport declare function of<T, T2>(a: T, b: T2): Observable<T | T2>;\nexport declare function of<T, T2, T3>(a: T, b: T2, c: T3): Observable<T | T2 | T3>;\nexport declare function of<T, T2, T3, T4>(a: T, b: T2, c: T3, d: T4): Observable<T | T2 | T3 | T4>;\nexport declare function of<T, T2, T3, T4, T5>(a: T, b: T2, c: T3, d: T4, e: T5): Observable<T | T2 | T3 | T4 | T5>;\nexport declare function of<T, T2, T3, T4, T5, T6>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6): Observable<T | T2 | T3 | T4 | T5 | T6>;\nexport declare function of<T, T2, T3, T4, T5, T6, T7>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7): Observable<T | T2 | T3 | T4 | T5 | T6 | T7>;\nexport declare function of<T, T2, T3, T4, T5, T6, T7, T8>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8): Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8>;\nexport declare function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9): Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;\nexport declare function of<T>(...args: T[]): Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { ObservableInput } from '../types';\nexport declare function onErrorResumeNext<R>(v: ObservableInput<R>): Observable<R>;\nexport declare function onErrorResumeNext<T2, T3, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<R>;\nexport declare function onErrorResumeNext<T2, T3, T4, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<R>;\nexport declare function onErrorResumeNext<T2, T3, T4, T5, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<R>;\nexport declare function onErrorResumeNext<T2, T3, T4, T5, T6, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<R>;\nexport declare function onErrorResumeNext<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;\nexport declare function onErrorResumeNext<R>(array: ObservableInput<any>[]): Observable<R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/pairs.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\n/**\n * Convert an object into an Observable of `[key, value]` pairs.\n *\n * <span class=\"informal\">Turn entries of an object into a stream.</span>\n *\n * <img src=\"./img/pairs.png\" width=\"100%\">\n *\n * `pairs` takes an arbitrary object and returns an Observable that emits arrays. Each\n * emitted array has exactly two elements - the first is a key from the object\n * and the second is a value corresponding to that key. Keys are extracted from\n * an object via `Object.keys` function, which means that they will be only\n * enumerable keys that are present on an object directly - not ones inherited\n * via prototype chain.\n *\n * By default these arrays are emitted synchronously. To change that you can\n * pass a {@link SchedulerLike} as a second argument to `pairs`.\n *\n * @example <caption>Converts a javascript object to an Observable</caption>\n * ```ts\n * import { pairs } from 'rxjs';\n *\n * const obj = {\n *   foo: 42,\n *   bar: 56,\n *   baz: 78\n * };\n *\n * pairs(obj)\n * .subscribe(\n *   value => console.log(value),\n *   err => {},\n *   () => console.log('the end!')\n * );\n *\n * // Logs:\n * // [\"foo\", 42],\n * // [\"bar\", 56],\n * // [\"baz\", 78],\n * // \"the end!\"\n * ```\n *\n * @param {Object} obj The object to inspect and turn into an\n * Observable sequence.\n * @param {Scheduler} [scheduler] An optional IScheduler to schedule\n * when resulting Observable will emit values.\n * @returns {(Observable<Array<string|T>>)} An observable sequence of\n * [key, value] pairs from the object.\n */\nexport declare function pairs<T>(obj: Object, scheduler?: SchedulerLike): Observable<[string, T]>;\n/** @internal */\nexport declare function dispatch<T>(this: SchedulerAction<any>, state: {\n    keys: string[];\n    index: number;\n    subscriber: Subscriber<[string, T]>;\n    subscription: Subscription;\n    obj: Object;\n}): void;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/partition.d.ts"
    ],
    "content": "import { ObservableInput } from '../types';\nimport { Observable } from '../Observable';\n/**\n * Splits the source Observable into two, one with values that satisfy a\n * predicate, and another with values that don't satisfy the predicate.\n *\n * <span class=\"informal\">It's like {@link filter}, but returns two Observables:\n * one like the output of {@link filter}, and the other with values that did not\n * pass the condition.</span>\n *\n * ![](partition.png)\n *\n * `partition` outputs an array with two Observables that partition the values\n * from the source Observable through the given `predicate` function. The first\n * Observable in that array emits source values for which the predicate argument\n * returns true. The second Observable emits source values for which the\n * predicate returns false. The first behaves like {@link filter} and the second\n * behaves like {@link filter} with the predicate negated.\n *\n * ## Example\n * Partition a set of numbers into odds and evens observables\n * ```ts\n * import { of, partition } from 'rxjs';\n *\n * const observableValues = of(1, 2, 3, 4, 5, 6);\n * const [evens$, odds$] = partition(observableValues, (value, index) => value % 2 === 0);\n *\n * odds$.subscribe(x => console.log('odds', x));\n * evens$.subscribe(x => console.log('evens', x));\n *\n * // Logs:\n * // odds 1\n * // odds 3\n * // odds 5\n * // evens 2\n * // evens 4\n * // evens 6\n * ```\n *\n * @see {@link filter}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted on the first Observable in the returned array, if\n * `false` the value is emitted on the second Observable in the array. The\n * `index` parameter is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {[Observable<T>, Observable<T>]} An array with two Observables: one\n * with values that passed the predicate, and another with values that did not\n * pass the predicate.\n */\nexport declare function partition<T>(source: ObservableInput<T>, predicate: (value: T, index: number) => boolean, thisArg?: any): [Observable<T>, Observable<T>];\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/race.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { TeardownLogic, ObservableInput } from '../types';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nexport declare function race<A>(arg: [ObservableInput<A>]): Observable<A>;\nexport declare function race<A, B>(arg: [ObservableInput<A>, ObservableInput<B>]): Observable<A | B>;\nexport declare function race<A, B, C>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>]): Observable<A | B | C>;\nexport declare function race<A, B, C, D>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>]): Observable<A | B | C | D>;\nexport declare function race<A, B, C, D, E>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>, ObservableInput<E>]): Observable<A | B | C | D | E>;\nexport declare function race<T>(arg: ObservableInput<T>[]): Observable<T>;\nexport declare function race(arg: ObservableInput<any>[]): Observable<{}>;\nexport declare function race<A>(a: ObservableInput<A>): Observable<A>;\nexport declare function race<A, B>(a: ObservableInput<A>, b: ObservableInput<B>): Observable<A | B>;\nexport declare function race<A, B, C>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>): Observable<A | B | C>;\nexport declare function race<A, B, C, D>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>, d: ObservableInput<D>): Observable<A | B | C | D>;\nexport declare function race<A, B, C, D, E>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>, d: ObservableInput<D>, e: ObservableInput<E>): Observable<A | B | C | D | E>;\nexport declare function race<T>(observables: ObservableInput<T>[]): Observable<T>;\nexport declare function race(observables: ObservableInput<any>[]): Observable<{}>;\nexport declare function race<T>(...observables: ObservableInput<T>[]): Observable<T>;\nexport declare function race(...observables: ObservableInput<any>[]): Observable<{}>;\nexport declare class RaceOperator<T> implements Operator<T, T> {\n    call(subscriber: Subscriber<T>, source: any): TeardownLogic;\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class RaceSubscriber<T> extends OuterSubscriber<T, T> {\n    private hasFirst;\n    private observables;\n    private subscriptions;\n    constructor(destination: Subscriber<T>);\n    protected _next(observable: any): void;\n    protected _complete(): void;\n    notifyNext(outerValue: T, innerValue: T, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, T>): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/range.d.ts"
    ],
    "content": "import { SchedulerAction, SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\n/**\n * Creates an Observable that emits a sequence of numbers within a specified\n * range.\n *\n * <span class=\"informal\">Emits a sequence of numbers in a range.</span>\n *\n * ![](range.png)\n *\n * `range` operator emits a range of sequential integers, in order, where you\n * select the `start` of the range and its `length`. By default, uses no\n * {@link SchedulerLike} and just delivers the notifications synchronously, but may use\n * an optional {@link SchedulerLike} to regulate those deliveries.\n *\n * ## Example\n * Emits the numbers 1 to 10</caption>\n * ```ts\n * import { range } from 'rxjs';\n *\n * const numbers = range(1, 10);\n * numbers.subscribe(x => console.log(x));\n * ```\n * @see {@link timer}\n * @see {@link index/interval}\n *\n * @param {number} [start=0] The value of the first integer in the sequence.\n * @param {number} count The number of sequential integers to generate.\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling\n * the emissions of the notifications.\n * @return {Observable} An Observable of numbers that emits a finite range of\n * sequential integers.\n * @static true\n * @name range\n * @owner Observable\n */\nexport declare function range(start?: number, count?: number, scheduler?: SchedulerLike): Observable<number>;\n/** @internal */\nexport declare function dispatch(this: SchedulerAction<any>, state: any): void;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/SubscribeOnObservable.d.ts"
    ],
    "content": "import { SchedulerLike, SchedulerAction } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nexport interface DispatchArg<T> {\n    source: Observable<T>;\n    subscriber: Subscriber<T>;\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nexport declare class SubscribeOnObservable<T> extends Observable<T> {\n    source: Observable<T>;\n    private delayTime;\n    private scheduler;\n    /** @nocollapse */\n    static create<T>(source: Observable<T>, delay?: number, scheduler?: SchedulerLike): Observable<T>;\n    /** @nocollapse */\n    static dispatch<T>(this: SchedulerAction<T>, arg: DispatchArg<T>): Subscription;\n    constructor(source: Observable<T>, delayTime?: number, scheduler?: SchedulerLike);\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _subscribe(subscriber: Subscriber<T>): Subscription;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/throwError.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n/**\n * Creates an Observable that emits no items to the Observer and immediately\n * emits an error notification.\n *\n * <span class=\"informal\">Just emits 'error', and nothing else.\n * </span>\n *\n * ![](throw.png)\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the error notification. It can be used for composing with other\n * Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n * ### Emit the number 7, then emit an error\n * ```ts\n * import { throwError, concat, of } from 'rxjs';\n *\n * const result = concat(of(7), throwError(new Error('oops!')));\n * result.subscribe(x => console.log(x), e => console.error(e));\n *\n * // Logs:\n * // 7\n * // Error: oops!\n * ```\n *\n * ---\n *\n * ### Map and flatten numbers to the sequence 'a', 'b', 'c', but throw an error for 2\n * ```ts\n * import { throwError, interval, of } from 'rxjs';\n * import { mergeMap } from 'rxjs/operators';\n *\n * interval(1000).pipe(\n *   mergeMap(x => x === 2\n *     ? throwError('Twos are bad')\n *     : of('a', 'b', 'c')\n *   ),\n * ).subscribe(x => console.log(x), e => console.error(e));\n *\n * // Logs:\n * // a\n * // b\n * // c\n * // a\n * // b\n * // c\n * // Twos are bad\n * ```\n *\n * @see {@link Observable}\n * @see {@link empty}\n * @see {@link never}\n * @see {@link of}\n *\n * @param {any} error The particular Error to pass to the error notification.\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling\n * the emission of the error notification.\n * @return {Observable} An error Observable: emits only the error notification\n * using the given error argument.\n * @static true\n * @name throwError\n * @owner Observable\n */\nexport declare function throwError(error: any, scheduler?: SchedulerLike): Observable<never>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/timer.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n/**\n * Creates an Observable that starts emitting after an `dueTime` and\n * emits ever increasing numbers after each `period` of time thereafter.\n *\n * <span class=\"informal\">Its like {@link index/interval}, but you can specify when\n * should the emissions start.</span>\n *\n * ![](timer.png)\n *\n * `timer` returns an Observable that emits an infinite sequence of ascending\n * integers, with a constant interval of time, `period` of your choosing\n * between those emissions. The first emission happens after the specified\n * `dueTime`. The initial delay may be a `Date`. By default, this\n * operator uses the {@link asyncScheduler} {@link SchedulerLike} to provide a notion of time, but you\n * may pass any {@link SchedulerLike} to it. If `period` is not specified, the output\n * Observable emits only one value, `0`. Otherwise, it emits an infinite\n * sequence.\n *\n * ## Examples\n * ### Emits ascending numbers, one every second (1000ms), starting after 3 seconds\n * ```ts\n * import { timer } from 'rxjs';\n *\n * const numbers = timer(3000, 1000);\n * numbers.subscribe(x => console.log(x));\n * ```\n *\n * ### Emits one number after five seconds\n * ```ts\n * import { timer } from 'rxjs';\n *\n * const numbers = timer(5000);\n * numbers.subscribe(x => console.log(x));\n * ```\n * @see {@link index/interval}\n * @see {@link delay}\n *\n * @param {number|Date} [dueTime] The initial delay time specified as a Date object or as an integer denoting\n * milliseconds to wait before emitting the first value of 0`.\n * @param {number|SchedulerLike} [periodOrScheduler] The period of time between emissions of the\n * subsequent numbers.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a `0` after the\n * `dueTime` and ever increasing numbers after each `period` of time\n * thereafter.\n * @static true\n * @name timer\n * @owner Observable\n */\nexport declare function timer(dueTime?: number | Date, periodOrScheduler?: number | SchedulerLike, scheduler?: SchedulerLike): Observable<number>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/using.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { Unsubscribable, ObservableInput } from '../types';\n/**\n * Creates an Observable that uses a resource which will be disposed at the same time as the Observable.\n *\n * <span class=\"informal\">Use it when you catch yourself cleaning up after an Observable.</span>\n *\n * `using` is a factory operator, which accepts two functions. First function returns a disposable resource.\n * It can be an arbitrary object that implements `unsubscribe` method. Second function will be injected with\n * that object and should return an Observable. That Observable can use resource object during its execution.\n * Both functions passed to `using` will be called every time someone subscribes - neither an Observable nor\n * resource object will be shared in any way between subscriptions.\n *\n * When Observable returned by `using` is subscribed, Observable returned from the second function will be subscribed\n * as well. All its notifications (nexted values, completion and error events) will be emitted unchanged by the output\n * Observable. If however someone unsubscribes from the Observable or source Observable completes or errors by itself,\n * the `unsubscribe` method on resource object will be called. This can be used to do any necessary clean up, which\n * otherwise would have to be handled by hand. Note that complete or error notifications are not emitted when someone\n * cancels subscription to an Observable via `unsubscribe`, so `using` can be used as a hook, allowing you to make\n * sure that all resources which need to exist during an Observable execution will be disposed at appropriate time.\n *\n * @see {@link defer}\n *\n * @param {function(): ISubscription} resourceFactory A function which creates any resource object\n * that implements `unsubscribe` method.\n * @param {function(resource: ISubscription): Observable<T>} observableFactory A function which\n * creates an Observable, that can use injected resource object.\n * @return {Observable<T>} An Observable that behaves the same as Observable returned by `observableFactory`, but\n * which - when completed, errored or unsubscribed - will also call `unsubscribe` on created resource object.\n */\nexport declare function using<T>(resourceFactory: () => Unsubscribable | void, observableFactory: (resource: Unsubscribable | void) => ObservableInput<T> | void): Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/observable/zip.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { ObservableInput, ObservedValueOf } from '../types';\nimport { Subscriber } from '../Subscriber';\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport declare function zip<O1 extends ObservableInput<any>, R>(v1: O1, resultSelector: (v1: ObservedValueOf<O1>) => R): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>) => R): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R): Observable<R>;\nexport declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;\nexport declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;\nexport declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;\nexport declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;\nexport declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;\nexport declare function zip<O extends ObservableInput<any>>(array: O[]): Observable<ObservedValueOf<O>[]>;\nexport declare function zip<R>(array: ObservableInput<any>[]): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport declare function zip<O extends ObservableInput<any>, R>(array: O[], resultSelector: (...values: ObservedValueOf<O>[]) => R): Observable<R>;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport declare function zip<R>(array: ObservableInput<any>[], resultSelector: (...values: any[]) => R): Observable<R>;\nexport declare function zip<O extends ObservableInput<any>>(...observables: O[]): Observable<ObservedValueOf<O>[]>;\nexport declare function zip<O extends ObservableInput<any>, R>(...observables: Array<O | ((...values: ObservedValueOf<O>[]) => R)>): Observable<R>;\nexport declare function zip<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;\nexport declare class ZipOperator<T, R> implements Operator<T, R> {\n    resultSelector: (...values: Array<any>) => R;\n    constructor(resultSelector?: (...values: Array<any>) => R);\n    call(subscriber: Subscriber<R>, source: any): any;\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class ZipSubscriber<T, R> extends Subscriber<T> {\n    private values;\n    private resultSelector;\n    private iterators;\n    private active;\n    constructor(destination: Subscriber<R>, resultSelector?: (...values: Array<any>) => R, values?: any);\n    protected _next(value: any): void;\n    protected _complete(): void;\n    notifyInactive(): void;\n    checkIterators(): void;\n    protected _tryresultSelector(args: any[]): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/Observer.d.ts"
    ],
    "content": "import { Observer } from './types';\nexport declare const empty: Observer<any>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/Operator.d.ts"
    ],
    "content": "import { Subscriber } from './Subscriber';\nimport { TeardownLogic } from './types';\nexport interface Operator<T, R> {\n    call(subscriber: Subscriber<R>, source: any): TeardownLogic;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/audit.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction, SubscribableOrPromise } from '../types';\n/**\n * Ignores source values for a duration determined by another Observable, then\n * emits the most recent value from the source Observable, then repeats this\n * process.\n *\n * <span class=\"informal\">It's like {@link auditTime}, but the silencing\n * duration is determined by a second Observable.</span>\n *\n * ![](audit.png)\n *\n * `audit` is similar to `throttle`, but emits the last value from the silenced\n * time window, instead of the first value. `audit` emits the most recent value\n * from the source Observable on the output Observable as soon as its internal\n * timer becomes disabled, and ignores source values while the timer is enabled.\n * Initially, the timer is disabled. As soon as the first source value arrives,\n * the timer is enabled by calling the `durationSelector` function with the\n * source value, which returns the \"duration\" Observable. When the duration\n * Observable emits a value or completes, the timer is disabled, then the most\n * recent source value is emitted on the output Observable, and this process\n * repeats for the next source value.\n *\n * ## Example\n *\n * Emit clicks at a rate of at most one click per second\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { audit } from 'rxjs/operators'\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(audit(ev => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n * @see {@link auditTime}\n * @see {@link debounce}\n * @see {@link delayWhen}\n * @see {@link sample}\n * @see {@link throttle}\n *\n * @param {function(value: T): SubscribableOrPromise} durationSelector A function\n * that receives a value from the source Observable, for computing the silencing\n * duration, returned as an Observable or a Promise.\n * @return {Observable<T>} An Observable that performs rate-limiting of\n * emissions from the source Observable.\n * @method audit\n * @owner Observable\n */\nexport declare function audit<T>(durationSelector: (value: T) => SubscribableOrPromise<any>): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/auditTime.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction, SchedulerLike } from '../types';\n/**\n * Ignores source values for `duration` milliseconds, then emits the most recent\n * value from the source Observable, then repeats this process.\n *\n * <span class=\"informal\">When it sees a source value, it ignores that plus\n * the next ones for `duration` milliseconds, and then it emits the most recent\n * value from the source.</span>\n *\n * ![](auditTime.png)\n *\n * `auditTime` is similar to `throttleTime`, but emits the last value from the\n * silenced time window, instead of the first value. `auditTime` emits the most\n * recent value from the source Observable on the output Observable as soon as\n * its internal timer becomes disabled, and ignores source values while the\n * timer is enabled. Initially, the timer is disabled. As soon as the first\n * source value arrives, the timer is enabled. After `duration` milliseconds (or\n * the time unit determined internally by the optional `scheduler`) has passed,\n * the timer is disabled, then the most recent source value is emitted on the\n * output Observable, and this process repeats for the next source value.\n * Optionally takes a {@link SchedulerLike} for managing timers.\n *\n * ## Example\n *\n * Emit clicks at a rate of at most one click per second\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { auditTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(auditTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttleTime}\n *\n * @param {number} duration Time to wait before emitting the most recent source\n * value, measured in milliseconds or the time unit determined internally\n * by the optional `scheduler`.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the rate-limiting behavior.\n * @return {Observable<T>} An Observable that performs rate-limiting of\n * emissions from the source Observable.\n * @method auditTime\n * @owner Observable\n */\nexport declare function auditTime<T>(duration: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/buffer.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n/**\n * Buffers the source Observable values until `closingNotifier` emits.\n *\n * <span class=\"informal\">Collects values from the past as an array, and emits\n * that array only when another Observable emits.</span>\n *\n * ![](content/img/buffer.png)\n *\n * Buffers the incoming Observable values until the given `closingNotifier`\n * Observable emits a value, at which point it emits the buffer on the output\n * Observable and starts a new buffer internally, awaiting the next time\n * `closingNotifier` emits.\n *\n * ## Example\n *\n * On every click, emit array of most recent interval events\n *\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { buffer } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const intervalEvents = interval(1000);\n * const buffered = intervalEvents.pipe(buffer(clicks));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link window}\n *\n * @param {Observable<any>} closingNotifier An Observable that signals the\n * buffer to be emitted on the output Observable.\n * @return {Observable<T[]>} An Observable of buffers, which are arrays of\n * values.\n * @method buffer\n * @owner Observable\n */\nexport declare function buffer<T>(closingNotifier: Observable<any>): OperatorFunction<T, T[]>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/bufferCount.d.ts"
    ],
    "content": "import { OperatorFunction } from '../types';\n/**\n * Buffers the source Observable values until the size hits the maximum\n * `bufferSize` given.\n *\n * <span class=\"informal\">Collects values from the past as an array, and emits\n * that array only when its size reaches `bufferSize`.</span>\n *\n * ![](bufferCount.png)\n *\n * Buffers a number of values from the source Observable by `bufferSize` then\n * emits the buffer and clears it, and starts a new buffer each\n * `startBufferEvery` values. If `startBufferEvery` is not provided or is\n * `null`, then new buffers are started immediately at the start of the source\n * and when each buffer closes and is emitted.\n *\n * ## Examples\n *\n * Emit the last two click events as an array\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { bufferCount } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferCount(2));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * On every click, emit the last two click events as an array\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { bufferCount } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferCount(2, 1));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link pairwise}\n * @see {@link windowCount}\n *\n * @param {number} bufferSize The maximum size of the buffer emitted.\n * @param {number} [startBufferEvery] Interval at which to start a new buffer.\n * For example if `startBufferEvery` is `2`, then a new buffer will be started\n * on every other value from the source. A new buffer is started at the\n * beginning of the source by default.\n * @return {Observable<T[]>} An Observable of arrays of buffered values.\n * @method bufferCount\n * @owner Observable\n */\nexport declare function bufferCount<T>(bufferSize: number, startBufferEvery?: number): OperatorFunction<T, T[]>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/bufferTime.d.ts"
    ],
    "content": "import { OperatorFunction, SchedulerLike } from '../types';\nexport declare function bufferTime<T>(bufferTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction<T, T[]>;\nexport declare function bufferTime<T>(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, scheduler?: SchedulerLike): OperatorFunction<T, T[]>;\nexport declare function bufferTime<T>(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, maxBufferSize: number, scheduler?: SchedulerLike): OperatorFunction<T, T[]>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/bufferToggle.d.ts"
    ],
    "content": "import { OperatorFunction, SubscribableOrPromise } from '../types';\n/**\n * Buffers the source Observable values starting from an emission from\n * `openings` and ending when the output of `closingSelector` emits.\n *\n * <span class=\"informal\">Collects values from the past as an array. Starts\n * collecting only when `opening` emits, and calls the `closingSelector`\n * function to get an Observable that tells when to close the buffer.</span>\n *\n * ![](bufferToggle.png)\n *\n * Buffers values from the source by opening the buffer via signals from an\n * Observable provided to `openings`, and closing and sending the buffers when\n * a Subscribable or Promise returned by the `closingSelector` function emits.\n *\n * ## Example\n *\n * Every other second, emit the click events from the next 500ms\n *\n * ```ts\n * import { fromEvent, interval, EMPTY } from 'rxjs';\n * import { bufferToggle } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const openings = interval(1000);\n * const buffered = clicks.pipe(bufferToggle(openings, i =>\n *   i % 2 ? interval(500) : EMPTY\n * ));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferWhen}\n * @see {@link windowToggle}\n *\n * @param {SubscribableOrPromise<O>} openings A Subscribable or Promise of notifications to start new\n * buffers.\n * @param {function(value: O): SubscribableOrPromise} closingSelector A function that takes\n * the value emitted by the `openings` observable and returns a Subscribable or Promise,\n * which, when it emits, signals that the associated buffer should be emitted\n * and cleared.\n * @return {Observable<T[]>} An observable of arrays of buffered values.\n * @method bufferToggle\n * @owner Observable\n */\nexport declare function bufferToggle<T, O>(openings: SubscribableOrPromise<O>, closingSelector: (value: O) => SubscribableOrPromise<any>): OperatorFunction<T, T[]>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/bufferWhen.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n/**\n * Buffers the source Observable values, using a factory function of closing\n * Observables to determine when to close, emit, and reset the buffer.\n *\n * <span class=\"informal\">Collects values from the past as an array. When it\n * starts collecting values, it calls a function that returns an Observable that\n * tells when to close the buffer and restart collecting.</span>\n *\n * ![](bufferWhen.png)\n *\n * Opens a buffer immediately, then closes the buffer when the observable\n * returned by calling `closingSelector` function emits a value. When it closes\n * the buffer, it immediately opens a new buffer and repeats the process.\n *\n * ## Example\n *\n * Emit an array of the last clicks every [1-5] random seconds\n *\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { bufferWhen } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferWhen(() =>\n *   interval(1000 + Math.random() * 4000)\n * ));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link windowWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals buffer closure.\n * @return {Observable<T[]>} An observable of arrays of buffered values.\n * @method bufferWhen\n * @owner Observable\n */\nexport declare function bufferWhen<T>(closingSelector: () => Observable<any>): OperatorFunction<T, T[]>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/catchError.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nexport declare function catchError<T, O extends ObservableInput<any>>(selector: (err: any, caught: Observable<T>) => O): OperatorFunction<T, T | ObservedValueOf<O>>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/combineAll.d.ts"
    ],
    "content": "import { OperatorFunction, ObservableInput } from '../types';\nexport declare function combineAll<T>(): OperatorFunction<ObservableInput<T>, T[]>;\nexport declare function combineAll<T>(): OperatorFunction<any, T[]>;\nexport declare function combineAll<T, R>(project: (...values: T[]) => R): OperatorFunction<ObservableInput<T>, R>;\nexport declare function combineAll<R>(project: (...values: Array<any>) => R): OperatorFunction<any, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/combineLatest.d.ts"
    ],
    "content": "import { ObservableInput, OperatorFunction } from '../types';\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, R>(project: (v1: T) => R): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, T2, R>(v2: ObservableInput<T2>, project: (v1: T, v2: T2) => R): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, T2, T3, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, T2, T3, T4, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, T2, T3, T4, T5, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, T2, T3, T4, T5, T6, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, T2>(v2: ObservableInput<T2>): OperatorFunction<T, [T, T2]>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>): OperatorFunction<T, [T, T2, T3]>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): OperatorFunction<T, [T, T2, T3, T4]>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): OperatorFunction<T, [T, T2, T3, T4, T5]>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): OperatorFunction<T, [T, T2, T3, T4, T5, T6]>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, R>(...observables: Array<ObservableInput<T> | ((...values: Array<T>) => R)>): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, R>(array: ObservableInput<T>[]): OperatorFunction<T, Array<T>>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport declare function combineLatest<T, TOther, R>(array: ObservableInput<TOther>[], project: (v1: T, ...values: Array<TOther>) => R): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/concat.d.ts"
    ],
    "content": "import { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types';\n/** @deprecated Deprecated in favor of static concat. */\nexport declare function concat<T>(scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;\n/** @deprecated Deprecated in favor of static concat. */\nexport declare function concat<T, T2>(v2: ObservableInput<T2>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2>;\n/** @deprecated Deprecated in favor of static concat. */\nexport declare function concat<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3>;\n/** @deprecated Deprecated in favor of static concat. */\nexport declare function concat<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4>;\n/** @deprecated Deprecated in favor of static concat. */\nexport declare function concat<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5>;\n/** @deprecated Deprecated in favor of static concat. */\nexport declare function concat<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6>;\n/** @deprecated Deprecated in favor of static concat. */\nexport declare function concat<T>(...observables: Array<ObservableInput<T> | SchedulerLike>): MonoTypeOperatorFunction<T>;\n/** @deprecated Deprecated in favor of static concat. */\nexport declare function concat<T, R>(...observables: Array<ObservableInput<any> | SchedulerLike>): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/concatAll.d.ts"
    ],
    "content": "import { OperatorFunction, ObservableInput } from '../types';\nexport declare function concatAll<T>(): OperatorFunction<ObservableInput<T>, T>;\nexport declare function concatAll<R>(): OperatorFunction<any, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/concatMap.d.ts"
    ],
    "content": "import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nexport declare function concatMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport declare function concatMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport declare function concatMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/concatMapTo.d.ts"
    ],
    "content": "import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nexport declare function concatMapTo<T, O extends ObservableInput<any>>(observable: O): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated */\nexport declare function concatMapTo<T, O extends ObservableInput<any>>(observable: O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated */\nexport declare function concatMapTo<T, R, O extends ObservableInput<any>>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/count.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n/**\n * Counts the number of emissions on the source and emits that number when the\n * source completes.\n *\n * <span class=\"informal\">Tells how many values were emitted, when the source\n * completes.</span>\n *\n * ![](count.png)\n *\n * `count` transforms an Observable that emits values into an Observable that\n * emits a single value that represents the number of values emitted by the\n * source Observable. If the source Observable terminates with an error, `count`\n * will pass this error notification along without emitting a value first. If\n * the source Observable does not terminate at all, `count` will neither emit\n * a value nor terminate. This operator takes an optional `predicate` function\n * as argument, in which case the output emission will represent the number of\n * source values that matched `true` with the `predicate`.\n *\n * ## Examples\n *\n * Counts how many seconds have passed before the first click happened\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { count, takeUntil } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const secondsBeforeClick = seconds.pipe(takeUntil(clicks));\n * const result = secondsBeforeClick.pipe(count());\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Counts how many odd numbers are there between 1 and 7\n * ```ts\n * import { range } from 'rxjs';\n * import { count } from 'rxjs/operators';\n *\n * const numbers = range(1, 7);\n * const result = numbers.pipe(count(i => i % 2 === 1));\n * result.subscribe(x => console.log(x));\n * // Results in:\n * // 4\n * ```\n *\n * @see {@link max}\n * @see {@link min}\n * @see {@link reduce}\n *\n * @param {function(value: T, i: number, source: Observable<T>): boolean} [predicate] A\n * boolean function to select what values are to be counted. It is provided with\n * arguments of:\n * - `value`: the value from the source Observable.\n * - `index`: the (zero-based) \"index\" of the value from the source Observable.\n * - `source`: the source Observable instance itself.\n * @return {Observable} An Observable of one number that represents the count as\n * described above.\n * @method count\n * @owner Observable\n */\nexport declare function count<T>(predicate?: (value: T, index: number, source: Observable<T>) => boolean): OperatorFunction<T, number>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/debounce.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction, SubscribableOrPromise } from '../types';\n/**\n * Emits a value from the source Observable only after a particular time span\n * determined by another Observable has passed without another source emission.\n *\n * <span class=\"informal\">It's like {@link debounceTime}, but the time span of\n * emission silence is determined by a second Observable.</span>\n *\n * ![](debounce.png)\n *\n * `debounce` delays values emitted by the source Observable, but drops previous\n * pending delayed emissions if a new value arrives on the source Observable.\n * This operator keeps track of the most recent value from the source\n * Observable, and spawns a duration Observable by calling the\n * `durationSelector` function. The value is emitted only when the duration\n * Observable emits a value or completes, and if no other value was emitted on\n * the source Observable since the duration Observable was spawned. If a new\n * value appears before the duration Observable emits, the previous value will\n * be dropped and will not be emitted on the output Observable.\n *\n * Like {@link debounceTime}, this is a rate-limiting operator, and also a\n * delay-like operator since output emissions do not necessarily occur at the\n * same time as they did on the source Observable.\n *\n * ## Example\n * Emit the most recent click after a burst of clicks\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { debounce } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(debounce(() => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounceTime}\n * @see {@link delayWhen}\n * @see {@link throttle}\n *\n * @param {function(value: T): SubscribableOrPromise} durationSelector A function\n * that receives a value from the source Observable, for computing the timeout\n * duration for each source value, returned as an Observable or a Promise.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by the specified duration Observable returned by\n * `durationSelector`, and may drop some values if they occur too frequently.\n * @method debounce\n * @owner Observable\n */\nexport declare function debounce<T>(durationSelector: (value: T) => SubscribableOrPromise<any>): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/debounceTime.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction, SchedulerLike } from '../types';\n/**\n * Emits a value from the source Observable only after a particular time span\n * has passed without another source emission.\n *\n * <span class=\"informal\">It's like {@link delay}, but passes only the most\n * recent value from each burst of emissions.</span>\n *\n * ![](debounceTime.png)\n *\n * `debounceTime` delays values emitted by the source Observable, but drops\n * previous pending delayed emissions if a new value arrives on the source\n * Observable. This operator keeps track of the most recent value from the\n * source Observable, and emits that only when `dueTime` enough time has passed\n * without any other value appearing on the source Observable. If a new value\n * appears before `dueTime` silence occurs, the previous value will be dropped\n * and will not be emitted on the output Observable.\n *\n * This is a rate-limiting operator, because it is impossible for more than one\n * value to be emitted in any time window of duration `dueTime`, but it is also\n * a delay-like operator since output emissions do not occur at the same time as\n * they did on the source Observable. Optionally takes a {@link SchedulerLike} for\n * managing timers.\n *\n * ## Example\n * Emit the most recent click after a burst of clicks\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { debounceTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(debounceTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link auditTime}\n * @see {@link debounce}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttleTime}\n *\n * @param {number} dueTime The timeout duration in milliseconds (or the time\n * unit determined internally by the optional `scheduler`) for the window of\n * time required to wait for emission silence before emitting the most recent\n * source value.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the timeout for each value.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by the specified `dueTime`, and may drop some values if they occur\n * too frequently.\n * @method debounceTime\n * @owner Observable\n */\nexport declare function debounceTime<T>(dueTime: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/defaultIfEmpty.d.ts"
    ],
    "content": "import { OperatorFunction, MonoTypeOperatorFunction } from '../types';\nexport declare function defaultIfEmpty<T>(defaultValue?: T): MonoTypeOperatorFunction<T>;\nexport declare function defaultIfEmpty<T, R>(defaultValue?: R): OperatorFunction<T, T | R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/delay.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction, SchedulerLike } from '../types';\n/**\n * Delays the emission of items from the source Observable by a given timeout or\n * until a given Date.\n *\n * <span class=\"informal\">Time shifts each item by some specified amount of\n * milliseconds.</span>\n *\n * ![](delay.png)\n *\n * If the delay argument is a Number, this operator time shifts the source\n * Observable by that amount of time expressed in milliseconds. The relative\n * time intervals between the values are preserved.\n *\n * If the delay argument is a Date, this operator time shifts the start of the\n * Observable execution until the given date occurs.\n *\n * ## Examples\n * Delay each click by one second\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { delay } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const delayedClicks = clicks.pipe(delay(1000)); // each click emitted after 1 second\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * Delay all clicks until a future date happens\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { delay } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const date = new Date('March 15, 2050 12:00:00'); // in the future\n * const delayedClicks = clicks.pipe(delay(date)); // click emitted only after that date\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link debounceTime}\n * @see {@link delayWhen}\n *\n * @param {number|Date} delay The delay duration in milliseconds (a `number`) or\n * a `Date` until which the emission of the source items is delayed.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the time-shift for each item.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by the specified timeout or Date.\n * @method delay\n * @owner Observable\n */\nexport declare function delay<T>(delay: number | Date, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/delayWhen.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction } from '../types';\n/** @deprecated In future versions, empty notifiers will no longer re-emit the source value on the output observable. */\nexport declare function delayWhen<T>(delayDurationSelector: (value: T, index: number) => Observable<never>, subscriptionDelay?: Observable<any>): MonoTypeOperatorFunction<T>;\nexport declare function delayWhen<T>(delayDurationSelector: (value: T, index: number) => Observable<any>, subscriptionDelay?: Observable<any>): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/dematerialize.d.ts"
    ],
    "content": "import { Notification } from '../Notification';\nimport { OperatorFunction } from '../types';\n/**\n * Converts an Observable of {@link Notification} objects into the emissions\n * that they represent.\n *\n * <span class=\"informal\">Unwraps {@link Notification} objects as actual `next`,\n * `error` and `complete` emissions. The opposite of {@link materialize}.</span>\n *\n * ![](dematerialize.png)\n *\n * `dematerialize` is assumed to operate an Observable that only emits\n * {@link Notification} objects as `next` emissions, and does not emit any\n * `error`. Such Observable is the output of a `materialize` operation. Those\n * notifications are then unwrapped using the metadata they contain, and emitted\n * as `next`, `error`, and `complete` on the output Observable.\n *\n * Use this operator in conjunction with {@link materialize}.\n *\n * ## Example\n * Convert an Observable of Notifications to an actual Observable\n * ```ts\n * import { of, Notification } from 'rxjs';\n * import { dematerialize } from 'rxjs/operators';\n *\n * const notifA = new Notification('N', 'A');\n * const notifB = new Notification('N', 'B');\n * const notifE = new Notification('E', undefined,\n *   new TypeError('x.toUpperCase is not a function')\n * );\n * const materialized = of(notifA, notifB, notifE);\n * const upperCase = materialized.pipe(dematerialize());\n * upperCase.subscribe(x => console.log(x), e => console.error(e));\n *\n * // Results in:\n * // A\n * // B\n * // TypeError: x.toUpperCase is not a function\n * ```\n *\n * @see {@link Notification}\n * @see {@link materialize}\n *\n * @return {Observable} An Observable that emits items and notifications\n * embedded in Notification objects emitted by the source Observable.\n * @method dematerialize\n * @owner Observable\n */\nexport declare function dematerialize<T>(): OperatorFunction<Notification<T>, T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/distinct.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { MonoTypeOperatorFunction } from '../types';\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from previous items.\n *\n * If a keySelector function is provided, then it will project each value from the source observable into a new value that it will\n * check for equality with previously projected values. If a keySelector function is not provided, it will use each value from the\n * source observable directly with an equality check against previous values.\n *\n * In JavaScript runtimes that support `Set`, this operator will use a `Set` to improve performance of the distinct value checking.\n *\n * In other runtimes, this operator will use a minimal implementation of `Set` that relies on an `Array` and `indexOf` under the\n * hood, so performance will degrade as more values are checked for distinction. Even in newer browsers, a long-running `distinct`\n * use might result in memory leaks. To help alleviate this in some scenarios, an optional `flushes` parameter is also provided so\n * that the internal `Set` can be \"flushed\", basically clearing it of values.\n *\n * ## Examples\n * A simple example with numbers\n * ```ts\n * import { of } from 'rxjs';\n * import { distinct } from 'rxjs/operators';\n *\n * of(1, 1, 2, 2, 2, 1, 2, 3, 4, 3, 2, 1).pipe(\n *     distinct(),\n *   )\n *   .subscribe(x => console.log(x)); // 1, 2, 3, 4\n * ```\n *\n * An example using a keySelector function\n * ```typescript\n * import { of } from 'rxjs';\n * import { distinct } from 'rxjs/operators';\n *\n * interface Person {\n *    age: number,\n *    name: string\n * }\n *\n * of<Person>(\n *     { age: 4, name: 'Foo'},\n *     { age: 7, name: 'Bar'},\n *     { age: 5, name: 'Foo'},\n *   ).pipe(\n *     distinct((p: Person) => p.name),\n *   )\n *   .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo' }\n * // { age: 7, name: 'Bar' }\n * ```\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n *\n * @param {function} [keySelector] Optional function to select which value you want to check as distinct.\n * @param {Observable} [flushes] Optional Observable for flushing the internal HashSet of the operator.\n * @return {Observable} An Observable that emits items from the source Observable with distinct values.\n * @method distinct\n * @owner Observable\n */\nexport declare function distinct<T, K>(keySelector?: (value: T) => K, flushes?: Observable<any>): MonoTypeOperatorFunction<T>;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class DistinctSubscriber<T, K> extends OuterSubscriber<T, T> {\n    private keySelector;\n    private values;\n    constructor(destination: Subscriber<T>, keySelector: (value: T) => K, flushes: Observable<any>);\n    notifyNext(outerValue: T, innerValue: T, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, T>): void;\n    notifyError(error: any, innerSub: InnerSubscriber<T, T>): void;\n    protected _next(value: T): void;\n    private _useKeySelector;\n    private _finalizeNext;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/distinctUntilChanged.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\nexport declare function distinctUntilChanged<T>(compare?: (x: T, y: T) => boolean): MonoTypeOperatorFunction<T>;\nexport declare function distinctUntilChanged<T, K>(compare: (x: K, y: K) => boolean, keySelector: (x: T) => K): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/distinctUntilKeyChanged.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\nexport declare function distinctUntilKeyChanged<T>(key: keyof T): MonoTypeOperatorFunction<T>;\nexport declare function distinctUntilKeyChanged<T, K extends keyof T>(key: K, compare: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/elementAt.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * Emits the single value at the specified `index` in a sequence of emissions\n * from the source Observable.\n *\n * <span class=\"informal\">Emits only the i-th value, then completes.</span>\n *\n * ![](elementAt.png)\n *\n * `elementAt` returns an Observable that emits the item at the specified\n * `index` in the source Observable, or a default value if that `index` is out\n * of range and the `default` argument is provided. If the `default` argument is\n * not given and the `index` is out of range, the output Observable will emit an\n * `ArgumentOutOfRangeError` error.\n *\n * ## Example\n * Emit only the third click event\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { elementAt } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(elementAt(2));\n * result.subscribe(x => console.log(x));\n *\n * // Results in:\n * // click 1 = nothing\n * // click 2 = nothing\n * // click 3 = MouseEvent object logged to console\n * ```\n *\n * @see {@link first}\n * @see {@link last}\n * @see {@link skip}\n * @see {@link single}\n * @see {@link take}\n *\n * @throws {ArgumentOutOfRangeError} When using `elementAt(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0` or the\n * Observable has completed before emitting the i-th `next` notification.\n *\n * @param {number} index Is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {T} [defaultValue] The default value returned for missing indices.\n * @return {Observable} An Observable that emits a single item, if it is found.\n * Otherwise, will emit the default value if given. If not, then emits an error.\n * @method elementAt\n * @owner Observable\n */\nexport declare function elementAt<T>(index: number, defaultValue?: T): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/endWith.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction, SchedulerLike, OperatorFunction } from '../types';\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport declare function endWith<T>(scheduler: SchedulerLike): MonoTypeOperatorFunction<T>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport declare function endWith<T, A>(v1: A, scheduler: SchedulerLike): OperatorFunction<T, T | A>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport declare function endWith<T, A, B>(v1: A, v2: B, scheduler: SchedulerLike): OperatorFunction<T, T | A | B>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport declare function endWith<T, A, B, C>(v1: A, v2: B, v3: C, scheduler: SchedulerLike): OperatorFunction<T, T | A | B | C>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport declare function endWith<T, A, B, C, D>(v1: A, v2: B, v3: C, v4: D, scheduler: SchedulerLike): OperatorFunction<T, T | A | B | C | D>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport declare function endWith<T, A, B, C, D, E>(v1: A, v2: B, v3: C, v4: D, v5: E, scheduler: SchedulerLike): OperatorFunction<T, T | A | B | C | D | E>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport declare function endWith<T, A, B, C, D, E, F>(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F, scheduler: SchedulerLike): OperatorFunction<T, T | A | B | C | D | E | F>;\nexport declare function endWith<T, A>(v1: A): OperatorFunction<T, T | A>;\nexport declare function endWith<T, A, B>(v1: A, v2: B): OperatorFunction<T, T | A | B>;\nexport declare function endWith<T, A, B, C>(v1: A, v2: B, v3: C): OperatorFunction<T, T | A | B | C>;\nexport declare function endWith<T, A, B, C, D>(v1: A, v2: B, v3: C, v4: D): OperatorFunction<T, T | A | B | C | D>;\nexport declare function endWith<T, A, B, C, D, E>(v1: A, v2: B, v3: C, v4: D, v5: E): OperatorFunction<T, T | A | B | C | D | E>;\nexport declare function endWith<T, A, B, C, D, E, F>(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F): OperatorFunction<T, T | A | B | C | D | E | F>;\nexport declare function endWith<T, Z = T>(...array: Z[]): OperatorFunction<T, T | Z>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport declare function endWith<T, Z = T>(...array: Array<Z | SchedulerLike>): OperatorFunction<T, T | Z>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/every.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n/**\n * Returns an Observable that emits whether or not every item of the source satisfies the condition specified.\n *\n * ## Example\n * A simple example emitting true if all elements are less than 5, false otherwise\n * ```ts\n * import { of } from 'rxjs';\n * import { every } from 'rxjs/operators';\n *\n *  of(1, 2, 3, 4, 5, 6).pipe(\n *     every(x => x < 5),\n * )\n * .subscribe(x => console.log(x)); // -> false\n * ```\n *\n * @param {function} predicate A function for determining if an item meets a specified condition.\n * @param {any} [thisArg] Optional object to use for `this` in the callback.\n * @return {Observable} An Observable of booleans that determines if all items of the source Observable meet the condition specified.\n * @method every\n * @owner Observable\n */\nexport declare function every<T>(predicate: (value: T, index: number, source: Observable<T>) => boolean, thisArg?: any): OperatorFunction<T, boolean>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/exhaust.d.ts"
    ],
    "content": "import { ObservableInput, OperatorFunction } from '../types';\nexport declare function exhaust<T>(): OperatorFunction<ObservableInput<T>, T>;\nexport declare function exhaust<R>(): OperatorFunction<any, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/exhaustMap.d.ts"
    ],
    "content": "import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nexport declare function exhaustMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated resultSelector is no longer supported. Use inner map instead. */\nexport declare function exhaustMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated resultSelector is no longer supported. Use inner map instead. */\nexport declare function exhaustMap<T, I, R>(project: (value: T, index: number) => ObservableInput<I>, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/expand.d.ts"
    ],
    "content": "import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { MonoTypeOperatorFunction, OperatorFunction, ObservableInput, SchedulerLike } from '../types';\nexport declare function expand<T, R>(project: (value: T, index: number) => ObservableInput<R>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, R>;\nexport declare function expand<T>(project: (value: T, index: number) => ObservableInput<T>, concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;\nexport declare class ExpandOperator<T, R> implements Operator<T, R> {\n    private project;\n    private concurrent;\n    private scheduler;\n    constructor(project: (value: T, index: number) => ObservableInput<R>, concurrent: number, scheduler: SchedulerLike);\n    call(subscriber: Subscriber<R>, source: any): any;\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class ExpandSubscriber<T, R> extends OuterSubscriber<T, R> {\n    private project;\n    private concurrent;\n    private scheduler;\n    private index;\n    private active;\n    private hasCompleted;\n    private buffer;\n    constructor(destination: Subscriber<R>, project: (value: T, index: number) => ObservableInput<R>, concurrent: number, scheduler: SchedulerLike);\n    private static dispatch;\n    protected _next(value: any): void;\n    private subscribeToProjection;\n    protected _complete(): void;\n    notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, R>): void;\n    notifyComplete(innerSub: Subscription): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/filter.d.ts"
    ],
    "content": "import { OperatorFunction, MonoTypeOperatorFunction } from '../types';\nexport declare function filter<T, S extends T>(predicate: (value: T, index: number) => value is S, thisArg?: any): OperatorFunction<T, S>;\nexport declare function filter<T>(predicate: (value: T, index: number) => boolean, thisArg?: any): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/finalize.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * Returns an Observable that mirrors the source Observable, but will call a specified function when\n * the source terminates on complete or error.\n * @param {function} callback Function to be called when source terminates.\n * @return {Observable} An Observable that mirrors the source, but will call the specified function on termination.\n * @method finally\n * @owner Observable\n */\nexport declare function finalize<T>(callback: () => void): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/find.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nexport declare function find<T, S extends T>(predicate: (value: T, index: number, source: Observable<T>) => value is S, thisArg?: any): OperatorFunction<T, S | undefined>;\nexport declare function find<T>(predicate: (value: T, index: number, source: Observable<T>) => boolean, thisArg?: any): OperatorFunction<T, T | undefined>;\nexport declare class FindValueOperator<T> implements Operator<T, T | number | undefined> {\n    private predicate;\n    private source;\n    private yieldIndex;\n    private thisArg?;\n    constructor(predicate: (value: T, index: number, source: Observable<T>) => boolean, source: Observable<T>, yieldIndex: boolean, thisArg?: any);\n    call(observer: Subscriber<T>, source: any): any;\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class FindValueSubscriber<T> extends Subscriber<T> {\n    private predicate;\n    private source;\n    private yieldIndex;\n    private thisArg?;\n    private index;\n    constructor(destination: Subscriber<T>, predicate: (value: T, index: number, source: Observable<T>) => boolean, source: Observable<T>, yieldIndex: boolean, thisArg?: any);\n    private notifyComplete;\n    protected _next(value: T): void;\n    protected _complete(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/findIndex.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n/**\n * Emits only the index of the first value emitted by the source Observable that\n * meets some condition.\n *\n * <span class=\"informal\">It's like {@link find}, but emits the index of the\n * found value, not the value itself.</span>\n *\n * ![](findIndex.png)\n *\n * `findIndex` searches for the first item in the source Observable that matches\n * the specified condition embodied by the `predicate`, and returns the\n * (zero-based) index of the first occurrence in the source. Unlike\n * {@link first}, the `predicate` is required in `findIndex`, and does not emit\n * an error if a valid value is not found.\n *\n * ## Example\n * Emit the index of first click that happens on a DIV element\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { findIndex } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(findIndex(ev => ev.target.tagName === 'DIV'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link filter}\n * @see {@link find}\n * @see {@link first}\n * @see {@link take}\n *\n * @param {function(value: T, index: number, source: Observable<T>): boolean} predicate\n * A function called with each item to test for condition matching.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of the index of the first item that\n * matches the condition.\n * @method find\n * @owner Observable\n */\nexport declare function findIndex<T>(predicate: (value: T, index: number, source: Observable<T>) => boolean, thisArg?: any): OperatorFunction<T, number>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/first.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { OperatorFunction } from '../../internal/types';\nexport declare function first<T, D = T>(predicate?: null, defaultValue?: D): OperatorFunction<T, T | D>;\nexport declare function first<T, S extends T>(predicate: (value: T, index: number, source: Observable<T>) => value is S, defaultValue?: S): OperatorFunction<T, S>;\nexport declare function first<T, D = T>(predicate: (value: T, index: number, source: Observable<T>) => boolean, defaultValue?: D): OperatorFunction<T, T | D>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/groupBy.d.ts"
    ],
    "content": "import { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { OperatorFunction } from '../types';\nexport declare function groupBy<T, K>(keySelector: (value: T) => K): OperatorFunction<T, GroupedObservable<K, T>>;\nexport declare function groupBy<T, K>(keySelector: (value: T) => K, elementSelector: void, durationSelector: (grouped: GroupedObservable<K, T>) => Observable<any>): OperatorFunction<T, GroupedObservable<K, T>>;\nexport declare function groupBy<T, K, R>(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>): OperatorFunction<T, GroupedObservable<K, R>>;\nexport declare function groupBy<T, K, R>(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>, subjectSelector?: () => Subject<R>): OperatorFunction<T, GroupedObservable<K, R>>;\nexport interface RefCountSubscription {\n    count: number;\n    unsubscribe: () => void;\n    closed: boolean;\n    attemptedToUnsubscribe: boolean;\n}\n/**\n * An Observable representing values belonging to the same group represented by\n * a common key. The values emitted by a GroupedObservable come from the source\n * Observable. The common key is available as the field `key` on a\n * GroupedObservable instance.\n *\n * @class GroupedObservable<K, T>\n */\nexport declare class GroupedObservable<K, T> extends Observable<T> {\n    key: K;\n    private groupSubject;\n    private refCountSubscription?;\n    /** @deprecated Do not construct this type. Internal use only */\n    constructor(key: K, groupSubject: Subject<T>, refCountSubscription?: RefCountSubscription);\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _subscribe(subscriber: Subscriber<T>): Subscription;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/ignoreElements.d.ts"
    ],
    "content": "import { OperatorFunction } from '../types';\n/**\n * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`.\n *\n * ![](ignoreElements.png)\n *\n * ## Examples\n * ### Ignores emitted values, reacts to observable's completion.\n * ```ts\n * import { of } from 'rxjs';\n * import { ignoreElements } from 'rxjs/operators';\n *\n * of('you', 'talking', 'to', 'me').pipe(\n *   ignoreElements(),\n * )\n * .subscribe(\n *   word => console.log(word),\n *   err => console.log('error:', err),\n *   () => console.log('the end'),\n * );\n * // result:\n * // 'the end'\n * ```\n * @return {Observable} An empty Observable that only calls `complete`\n * or `error`, based on which one is called by the source Observable.\n * @method ignoreElements\n * @owner Observable\n */\nexport declare function ignoreElements(): OperatorFunction<any, never>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/index.d.ts",
      "node_modules/rxjs/internal/operators/index.d.ts"
    ],
    "content": "export { audit } from './audit';\nexport { auditTime } from './auditTime';\nexport { buffer } from './buffer';\nexport { bufferCount } from './bufferCount';\nexport { bufferTime } from './bufferTime';\nexport { bufferToggle } from './bufferToggle';\nexport { bufferWhen } from './bufferWhen';\nexport { catchError } from './catchError';\nexport { combineAll } from './combineAll';\nexport { combineLatest } from './combineLatest';\nexport { concat } from './concat';\nexport { concatAll } from './concatAll';\nexport { concatMap } from './concatMap';\nexport { concatMapTo } from './concatMapTo';\nexport { count } from './count';\nexport { debounce } from './debounce';\nexport { debounceTime } from './debounceTime';\nexport { defaultIfEmpty } from './defaultIfEmpty';\nexport { delay } from './delay';\nexport { delayWhen } from './delayWhen';\nexport { dematerialize } from './dematerialize';\nexport { distinct } from './distinct';\nexport { distinctUntilChanged } from './distinctUntilChanged';\nexport { distinctUntilKeyChanged } from './distinctUntilKeyChanged';\nexport { elementAt } from './elementAt';\nexport { every } from './every';\nexport { exhaust } from './exhaust';\nexport { exhaustMap } from './exhaustMap';\nexport { expand } from './expand';\nexport { filter } from './filter';\nexport { finalize } from './finalize';\nexport { find } from './find';\nexport { findIndex } from './findIndex';\nexport { first } from './first';\nexport { groupBy } from './groupBy';\nexport { ignoreElements } from './ignoreElements';\nexport { isEmpty } from './isEmpty';\nexport { last } from './last';\nexport { map } from './map';\nexport { mapTo } from './mapTo';\nexport { materialize } from './materialize';\nexport { max } from './max';\nexport { merge } from './merge';\nexport { mergeAll } from './mergeAll';\nexport { mergeMap } from './mergeMap';\nexport { mergeMap as flatMap } from './mergeMap';\nexport { mergeMapTo } from './mergeMapTo';\nexport { mergeScan } from './mergeScan';\nexport { min } from './min';\nexport { multicast } from './multicast';\nexport { observeOn } from './observeOn';\nexport { onErrorResumeNext } from './onErrorResumeNext';\nexport { pairwise } from './pairwise';\nexport { partition } from './partition';\nexport { pluck } from './pluck';\nexport { publish } from './publish';\nexport { publishBehavior } from './publishBehavior';\nexport { publishLast } from './publishLast';\nexport { publishReplay } from './publishReplay';\nexport { race } from './race';\nexport { reduce } from './reduce';\nexport { repeat } from './repeat';\nexport { repeatWhen } from './repeatWhen';\nexport { retry } from './retry';\nexport { retryWhen } from './retryWhen';\nexport { refCount } from './refCount';\nexport { sample } from './sample';\nexport { sampleTime } from './sampleTime';\nexport { scan } from './scan';\nexport { sequenceEqual } from './sequenceEqual';\nexport { share } from './share';\nexport { shareReplay } from './shareReplay';\nexport { single } from './single';\nexport { skip } from './skip';\nexport { skipLast } from './skipLast';\nexport { skipUntil } from './skipUntil';\nexport { skipWhile } from './skipWhile';\nexport { startWith } from './startWith';\nexport { subscribeOn } from './subscribeOn';\nexport { switchAll } from './switchAll';\nexport { switchMap } from './switchMap';\nexport { switchMapTo } from './switchMapTo';\nexport { take } from './take';\nexport { takeLast } from './takeLast';\nexport { takeUntil } from './takeUntil';\nexport { takeWhile } from './takeWhile';\nexport { tap } from './tap';\nexport { throttle } from './throttle';\nexport { throttleTime } from './throttleTime';\nexport { timeInterval } from './timeInterval';\nexport { timeout } from './timeout';\nexport { timeoutWith } from './timeoutWith';\nexport { timestamp } from './timestamp';\nexport { toArray } from './toArray';\nexport { window } from './window';\nexport { windowCount } from './windowCount';\nexport { windowTime } from './windowTime';\nexport { windowToggle } from './windowToggle';\nexport { windowWhen } from './windowWhen';\nexport { withLatestFrom } from './withLatestFrom';\nexport { zip } from './zip';\nexport { zipAll } from './zipAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/isEmpty.d.ts"
    ],
    "content": "import { OperatorFunction } from '../types';\n/**\n * Emits false if the input observable emits any values, or emits true if the\n * input observable completes without emitting any values.\n *\n * <span class=\"informal\">Tells whether any values are emitted by an observable</span>\n *\n * ![](isEmpty.png)\n *\n * `isEmpty` transforms an Observable that emits values into an Observable that\n * emits a single boolean value representing whether or not any values were\n * emitted by the source Observable. As soon as the source Observable emits a\n * value, `isEmpty` will emit a `false` and complete.  If the source Observable\n * completes having not emitted anything, `isEmpty` will emit a `true` and\n * complete.\n *\n * A similar effect could be achieved with {@link count}, but `isEmpty` can emit\n * a `false` value sooner.\n *\n * ## Examples\n *\n * Emit `false` for a non-empty Observable\n * ```javascript\n * import { Subject } from 'rxjs';\n * import { isEmpty } from 'rxjs/operators';\n *\n * const source = new Subject<string>();\n * const result = source.pipe(isEmpty());\n * source.subscribe(x => console.log(x));\n * result.subscribe(x => console.log(x));\n * source.next('a');\n * source.next('b');\n * source.next('c');\n * source.complete();\n *\n * // Results in:\n * // a\n * // false\n * // b\n * // c\n * ```\n *\n * Emit `true` for an empty Observable\n * ```javascript\n * import { EMPTY } from 'rxjs';\n * import { isEmpty } from 'rxjs/operators';\n *\n * const result = EMPTY.pipe(isEmpty());\n * result.subscribe(x => console.log(x));\n * // Results in:\n * // true\n * ```\n *\n * @see {@link count}\n * @see {@link EMPTY}\n *\n * @return {OperatorFunction<T, boolean>} An Observable of a boolean value indicating whether observable was empty or not\n * @method isEmpty\n * @owner Observable\n */\nexport declare function isEmpty<T>(): OperatorFunction<T, boolean>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/last.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { OperatorFunction } from '../../internal/types';\nexport declare function last<T, D = T>(predicate?: null, defaultValue?: D): OperatorFunction<T, T | D>;\nexport declare function last<T, S extends T>(predicate: (value: T, index: number, source: Observable<T>) => value is S, defaultValue?: S): OperatorFunction<T, S>;\nexport declare function last<T, D = T>(predicate: (value: T, index: number, source: Observable<T>) => boolean, defaultValue?: D): OperatorFunction<T, T | D>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/map.d.ts"
    ],
    "content": "import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\n/**\n * Applies a given `project` function to each value emitted by the source\n * Observable, and emits the resulting values as an Observable.\n *\n * <span class=\"informal\">Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),\n * it passes each source value through a transformation function to get\n * corresponding output values.</span>\n *\n * ![](map.png)\n *\n * Similar to the well known `Array.prototype.map` function, this operator\n * applies a projection to each value and emits that projection in the output\n * Observable.\n *\n * ## Example\n * Map every click to the clientX position of that click\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const positions = clicks.pipe(map(ev => ev.clientX));\n * positions.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link mapTo}\n * @see {@link pluck}\n *\n * @param {function(value: T, index: number): R} project The function to apply\n * to each `value` emitted by the source Observable. The `index` parameter is\n * the number `i` for the i-th emission that has happened since the\n * subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to define what `this` is in the\n * `project` function.\n * @return {Observable<R>} An Observable that emits the values from the source\n * Observable transformed by the given `project` function.\n * @method map\n * @owner Observable\n */\nexport declare function map<T, R>(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction<T, R>;\nexport declare class MapOperator<T, R> implements Operator<T, R> {\n    private project;\n    private thisArg;\n    constructor(project: (value: T, index: number) => R, thisArg: any);\n    call(subscriber: Subscriber<R>, source: any): any;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/mapTo.d.ts"
    ],
    "content": "import { OperatorFunction } from '../types';\n/**\n * Emits the given constant value on the output Observable every time the source\n * Observable emits a value.\n *\n * <span class=\"informal\">Like {@link map}, but it maps every source value to\n * the same output value every time.</span>\n *\n * ![](mapTo.png)\n *\n * Takes a constant `value` as argument, and emits that whenever the source\n * Observable emits a value. In other words, ignores the actual source value,\n * and simply uses the emission moment to know when to emit the given `value`.\n *\n * ## Example\n * Map every click to the string 'Hi'\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { mapTo } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const greetings = clicks.pipe(mapTo('Hi'));\n * greetings.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link map}\n *\n * @param {any} value The value to map each source value to.\n * @return {Observable} An Observable that emits the given `value` every time\n * the source Observable emits something.\n * @method mapTo\n * @owner Observable\n */\nexport declare function mapTo<T, R>(value: R): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/materialize.d.ts"
    ],
    "content": "import { Notification } from '../Notification';\nimport { OperatorFunction } from '../types';\n/**\n * Represents all of the notifications from the source Observable as `next`\n * emissions marked with their original types within {@link Notification}\n * objects.\n *\n * <span class=\"informal\">Wraps `next`, `error` and `complete` emissions in\n * {@link Notification} objects, emitted as `next` on the output Observable.\n * </span>\n *\n * ![](materialize.png)\n *\n * `materialize` returns an Observable that emits a `next` notification for each\n * `next`, `error`, or `complete` emission of the source Observable. When the\n * source Observable emits `complete`, the output Observable will emit `next` as\n * a Notification of type \"complete\", and then it will emit `complete` as well.\n * When the source Observable emits `error`, the output will emit `next` as a\n * Notification of type \"error\", and then `complete`.\n *\n * This operator is useful for producing metadata of the source Observable, to\n * be consumed as `next` emissions. Use it in conjunction with\n * {@link dematerialize}.\n *\n * ## Example\n * Convert a faulty Observable to an Observable of Notifications\n * ```ts\n * import { of } from 'rxjs';\n * import { materialize, map } from 'rxjs/operators';\n *\n * const letters = of('a', 'b', 13, 'd');\n * const upperCase = letters.pipe(map(x => x.toUpperCase()));\n * const materialized = upperCase.pipe(materialize());\n * materialized.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // - Notification {kind: \"N\", value: \"A\", error: undefined, hasValue: true}\n * // - Notification {kind: \"N\", value: \"B\", error: undefined, hasValue: true}\n * // - Notification {kind: \"E\", value: undefined, error: TypeError:\n * //   x.toUpperCase is not a function at MapSubscriber.letters.map.x\n * //   [as project] (http://1…, hasValue: false}\n * ```\n *\n * @see {@link Notification}\n * @see {@link dematerialize}\n *\n * @return {Observable<Notification<T>>} An Observable that emits\n * {@link Notification} objects that wrap the original emissions from the source\n * Observable with metadata.\n * @method materialize\n * @owner Observable\n */\nexport declare function materialize<T>(): OperatorFunction<T, Notification<T>>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/max.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * The Max operator operates on an Observable that emits numbers (or items that can be compared with a provided function),\n * and when source Observable completes it emits a single item: the item with the largest value.\n *\n * ![](max.png)\n *\n * ## Examples\n * Get the maximal value of a series of numbers\n * ```ts\n * import { of } from 'rxjs';\n * import { max } from 'rxjs/operators';\n *\n * of(5, 4, 7, 2, 8).pipe(\n *   max(),\n * )\n * .subscribe(x => console.log(x)); // -> 8\n * ```\n *\n * Use a comparer function to get the maximal item\n * ```typescript\n * import { of } from 'rxjs';\n * import { max } from 'rxjs/operators';\n *\n * interface Person {\n *   age: number,\n *   name: string\n * }\n * of<Person>(\n *   {age: 7, name: 'Foo'},\n *   {age: 5, name: 'Bar'},\n *   {age: 9, name: 'Beer'},\n * ).pipe(\n *   max<Person>((a: Person, b: Person) => a.age < b.age ? -1 : 1),\n * )\n * .subscribe((x: Person) => console.log(x.name)); // -> 'Beer'\n * ```\n *\n * @see {@link min}\n *\n * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the\n * value of two items.\n * @return {Observable} An Observable that emits item with the largest value.\n * @method max\n * @owner Observable\n */\nexport declare function max<T>(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/merge.d.ts"
    ],
    "content": "import { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types';\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T>(scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T>(concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T, T2>(v2: ObservableInput<T2>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2>;\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T, T2>(v2: ObservableInput<T2>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2>;\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3>;\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3>;\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4>;\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4>;\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5>;\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5>;\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6>;\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6>;\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T>(...observables: Array<ObservableInput<T> | SchedulerLike | number>): MonoTypeOperatorFunction<T>;\n/** @deprecated Deprecated in favor of static merge. */\nexport declare function merge<T, R>(...observables: Array<ObservableInput<any> | SchedulerLike | number>): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/mergeAll.d.ts"
    ],
    "content": "import { OperatorFunction, ObservableInput } from '../types';\n/**\n * Converts a higher-order Observable into a first-order Observable which\n * concurrently delivers all values that are emitted on the inner Observables.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables.</span>\n *\n * ![](mergeAll.png)\n *\n * `mergeAll` subscribes to an Observable that emits Observables, also known as\n * a higher-order Observable. Each time it observes one of these emitted inner\n * Observables, it subscribes to that and delivers all the values from the\n * inner Observable on the output Observable. The output Observable only\n * completes once all inner Observables have completed. Any error delivered by\n * a inner Observable will be immediately emitted on the output Observable.\n *\n * ## Examples\n * Spawn a new interval Observable for each click event, and blend their outputs as one Observable\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { map, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(map((ev) => interval(1000)));\n * const firstOrder = higherOrder.pipe(mergeAll());\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * Count from 0 to 9 every second for each click, but only allow 2 concurrent timers\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { take, map, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n *   map((ev) => interval(1000).pipe(take(10))),\n * );\n * const firstOrder = higherOrder.pipe(mergeAll(2));\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link exhaust}\n * @see {@link merge}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of inner\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits values coming from all the\n * inner Observables emitted by the source Observable.\n * @method mergeAll\n * @owner Observable\n */\nexport declare function mergeAll<T>(concurrent?: number): OperatorFunction<ObservableInput<T>, T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/mergeMap.d.ts"
    ],
    "content": "import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nexport declare function mergeMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, concurrent?: number): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport declare function mergeMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined, concurrent?: number): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport declare function mergeMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction<T, R>;\nexport declare class MergeMapOperator<T, R> implements Operator<T, R> {\n    private project;\n    private concurrent;\n    constructor(project: (value: T, index: number) => ObservableInput<R>, concurrent?: number);\n    call(observer: Subscriber<R>, source: any): any;\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class MergeMapSubscriber<T, R> extends OuterSubscriber<T, R> {\n    private project;\n    private concurrent;\n    private hasCompleted;\n    private buffer;\n    private active;\n    protected index: number;\n    constructor(destination: Subscriber<R>, project: (value: T, index: number) => ObservableInput<R>, concurrent?: number);\n    protected _next(value: T): void;\n    protected _tryNext(value: T): void;\n    private _innerSub;\n    protected _complete(): void;\n    notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, R>): void;\n    notifyComplete(innerSub: Subscription): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/mergeMapTo.d.ts"
    ],
    "content": "import { OperatorFunction, ObservedValueOf } from '../../internal/types';\nimport { ObservableInput } from '../types';\nexport declare function mergeMapTo<T, O extends ObservableInput<any>>(innerObservable: O, concurrent?: number): OperatorFunction<any, ObservedValueOf<O>>;\n/** @deprecated */\nexport declare function mergeMapTo<T, R, O extends ObservableInput<any>>(innerObservable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/mergeScan.d.ts"
    ],
    "content": "import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { ObservableInput, OperatorFunction } from '../types';\n/**\n * Applies an accumulator function over the source Observable where the\n * accumulator function itself returns an Observable, then each intermediate\n * Observable returned is merged into the output Observable.\n *\n * <span class=\"informal\">It's like {@link scan}, but the Observables returned\n * by the accumulator are merged into the outer Observable.</span>\n *\n * ## Example\n * Count the number of click events\n * ```ts\n * import { fromEvent, of } from 'rxjs';\n * import { mapTo, mergeScan } from 'rxjs/operators';\n *\n * const click$ = fromEvent(document, 'click');\n * const one$ = click$.pipe(mapTo(1));\n * const seed = 0;\n * const count$ = one$.pipe(\n *   mergeScan((acc, one) => of(acc + one), seed),\n * );\n * count$.subscribe(x => console.log(x));\n *\n * // Results:\n * // 1\n * // 2\n * // 3\n * // 4\n * // ...and so on for each click\n * ```\n *\n * @param {function(acc: R, value: T): Observable<R>} accumulator\n * The accumulator function called on each source value.\n * @param seed The initial accumulation value.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of\n * input Observables being subscribed to concurrently.\n * @return {Observable<R>} An observable of the accumulated values.\n * @method mergeScan\n * @owner Observable\n */\nexport declare function mergeScan<T, R>(accumulator: (acc: R, value: T, index: number) => ObservableInput<R>, seed: R, concurrent?: number): OperatorFunction<T, R>;\nexport declare class MergeScanOperator<T, R> implements Operator<T, R> {\n    private accumulator;\n    private seed;\n    private concurrent;\n    constructor(accumulator: (acc: R, value: T, index: number) => ObservableInput<R>, seed: R, concurrent: number);\n    call(subscriber: Subscriber<R>, source: any): any;\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class MergeScanSubscriber<T, R> extends OuterSubscriber<T, R> {\n    private accumulator;\n    private acc;\n    private concurrent;\n    private hasValue;\n    private hasCompleted;\n    private buffer;\n    private active;\n    protected index: number;\n    constructor(destination: Subscriber<R>, accumulator: (acc: R, value: T, index: number) => ObservableInput<R>, acc: R, concurrent: number);\n    protected _next(value: any): void;\n    private _innerSub;\n    protected _complete(): void;\n    notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, R>): void;\n    notifyComplete(innerSub: Subscription): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/min.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * The Min operator operates on an Observable that emits numbers (or items that can be compared with a provided function),\n * and when source Observable completes it emits a single item: the item with the smallest value.\n *\n * ![](min.png)\n *\n * ## Examples\n * Get the minimal value of a series of numbers\n * ```ts\n * import { of } from 'rxjs';\n * import { min } from 'rxjs/operators';\n *\n * of(5, 4, 7, 2, 8).pipe(\n *   min(),\n * )\n * .subscribe(x => console.log(x)); // -> 2\n * ```\n *\n * Use a comparer function to get the minimal item\n * ```typescript\n * import { of } from 'rxjs';\n * import { min } from 'rxjs/operators';\n *\n * interface Person {\n *   age: number,\n *   name: string\n * }\n * of<Person>(\n *   {age: 7, name: 'Foo'},\n *   {age: 5, name: 'Bar'},\n *   {age: 9, name: 'Beer'},\n * ).pipe(\n *   min<Person>( (a: Person, b: Person) => a.age < b.age ? -1 : 1),\n * )\n * .subscribe((x: Person) => console.log(x.name)); // -> 'Bar'\n * ```\n * @see {@link max}\n *\n * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the\n * value of two items.\n * @return {Observable<R>} An Observable that emits item with the smallest value.\n * @method min\n * @owner Observable\n */\nexport declare function min<T>(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/multicast.d.ts"
    ],
    "content": "import { Subject } from '../Subject';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { OperatorFunction, UnaryFunction, ObservedValueOf, ObservableInput } from '../types';\nexport declare function multicast<T>(subject: Subject<T>): UnaryFunction<Observable<T>, ConnectableObservable<T>>;\nexport declare function multicast<T, O extends ObservableInput<any>>(subject: Subject<T>, selector: (shared: Observable<T>) => O): UnaryFunction<Observable<T>, ConnectableObservable<ObservedValueOf<O>>>;\nexport declare function multicast<T>(subjectFactory: (this: Observable<T>) => Subject<T>): UnaryFunction<Observable<T>, ConnectableObservable<T>>;\nexport declare function multicast<T, O extends ObservableInput<any>>(SubjectFactory: (this: Observable<T>) => Subject<T>, selector: (shared: Observable<T>) => O): OperatorFunction<T, ObservedValueOf<O>>;\nexport declare class MulticastOperator<T, R> implements Operator<T, R> {\n    private subjectFactory;\n    private selector;\n    constructor(subjectFactory: () => Subject<T>, selector: (source: Observable<T>) => Observable<R>);\n    call(subscriber: Subscriber<R>, source: any): any;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/observeOn.d.ts"
    ],
    "content": "import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nimport { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\n/**\n *\n * Re-emits all notifications from source Observable with specified scheduler.\n *\n * <span class=\"informal\">Ensure a specific scheduler is used, from outside of an Observable.</span>\n *\n * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule\n * notifications emitted by the source Observable. It might be useful, if you do not have control over\n * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless.\n *\n * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable,\n * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal\n * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits\n * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`.\n * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split\n * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source\n * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a\n * little bit more, to ensure that they are emitted at expected moments.\n *\n * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications\n * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn`\n * will delay all notifications - including error notifications - while `delay` will pass through error\n * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator\n * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used\n * for notification emissions in general.\n *\n * ## Example\n * Ensure values in subscribe are called just before browser repaint.\n * ```ts\n * import { interval } from 'rxjs';\n * import { observeOn } from 'rxjs/operators';\n *\n * const intervals = interval(10);                // Intervals are scheduled\n *                                                // with async scheduler by default...\n * intervals.pipe(\n *   observeOn(animationFrameScheduler),          // ...but we will observe on animationFrame\n * )                                              // scheduler to ensure smooth animation.\n * .subscribe(val => {\n *   someDiv.style.height = val + 'px';\n * });\n * ```\n *\n * @see {@link delay}\n *\n * @param {SchedulerLike} scheduler Scheduler that will be used to reschedule notifications from source Observable.\n * @param {number} [delay] Number of milliseconds that states with what delay every notification should be rescheduled.\n * @return {Observable<T>} Observable that emits the same notifications as the source Observable,\n * but with provided scheduler.\n *\n * @method observeOn\n * @owner Observable\n */\nexport declare function observeOn<T>(scheduler: SchedulerLike, delay?: number): MonoTypeOperatorFunction<T>;\nexport declare class ObserveOnOperator<T> implements Operator<T, T> {\n    private scheduler;\n    private delay;\n    constructor(scheduler: SchedulerLike, delay?: number);\n    call(subscriber: Subscriber<T>, source: any): TeardownLogic;\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class ObserveOnSubscriber<T> extends Subscriber<T> {\n    private scheduler;\n    private delay;\n    /** @nocollapse */\n    static dispatch(this: SchedulerAction<ObserveOnMessage>, arg: ObserveOnMessage): void;\n    constructor(destination: Subscriber<T>, scheduler: SchedulerLike, delay?: number);\n    private scheduleMessage;\n    protected _next(value: T): void;\n    protected _error(err: any): void;\n    protected _complete(): void;\n}\nexport declare class ObserveOnMessage {\n    notification: Notification<any>;\n    destination: PartialObserver<any>;\n    constructor(notification: Notification<any>, destination: PartialObserver<any>);\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/onErrorResumeNext.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction } from '../types';\nexport declare function onErrorResumeNext<T>(): OperatorFunction<T, T>;\nexport declare function onErrorResumeNext<T, T2>(v: ObservableInput<T2>): OperatorFunction<T, T | T2>;\nexport declare function onErrorResumeNext<T, T2, T3>(v: ObservableInput<T2>, v2: ObservableInput<T3>): OperatorFunction<T, T | T2 | T3>;\nexport declare function onErrorResumeNext<T, T2, T3, T4>(v: ObservableInput<T2>, v2: ObservableInput<T3>, v3: ObservableInput<T4>): OperatorFunction<T, T | T2 | T3 | T4>;\nexport declare function onErrorResumeNext<T, T2, T3, T4, T5>(v: ObservableInput<T2>, v2: ObservableInput<T3>, v3: ObservableInput<T4>, v4: ObservableInput<T5>): OperatorFunction<T, T | T2 | T3 | T4 | T5>;\nexport declare function onErrorResumeNext<T, T2, T3, T4, T5, T6>(v: ObservableInput<T2>, v2: ObservableInput<T3>, v3: ObservableInput<T4>, v4: ObservableInput<T5>, v5: ObservableInput<T6>): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6>;\nexport declare function onErrorResumeNext<T, T2, T3, T4, T5, T6, T7>(v: ObservableInput<T2>, v2: ObservableInput<T3>, v3: ObservableInput<T4>, v4: ObservableInput<T5>, v5: ObservableInput<T6>, v6: ObservableInput<T7>): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6 | T7>;\nexport declare function onErrorResumeNext<T, R>(...observables: Array<ObservableInput<any>>): OperatorFunction<T, T | R>;\nexport declare function onErrorResumeNext<T, R>(array: ObservableInput<any>[]): OperatorFunction<T, T | R>;\nexport declare function onErrorResumeNextStatic<R>(v: ObservableInput<R>): Observable<R>;\nexport declare function onErrorResumeNextStatic<T2, T3, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<R>;\nexport declare function onErrorResumeNextStatic<T2, T3, T4, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<R>;\nexport declare function onErrorResumeNextStatic<T2, T3, T4, T5, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<R>;\nexport declare function onErrorResumeNextStatic<T2, T3, T4, T5, T6, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<R>;\nexport declare function onErrorResumeNextStatic<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;\nexport declare function onErrorResumeNextStatic<R>(array: ObservableInput<any>[]): Observable<R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/pairwise.d.ts"
    ],
    "content": "import { OperatorFunction } from '../types';\n/**\n * Groups pairs of consecutive emissions together and emits them as an array of\n * two values.\n *\n * <span class=\"informal\">Puts the current value and previous value together as\n * an array, and emits that.</span>\n *\n * ![](pairwise.png)\n *\n * The Nth emission from the source Observable will cause the output Observable\n * to emit an array [(N-1)th, Nth] of the previous and the current value, as a\n * pair. For this reason, `pairwise` emits on the second and subsequent\n * emissions from the source Observable, but not on the first emission, because\n * there is no previous value in that case.\n *\n * ## Example\n * On every click (starting from the second), emit the relative distance to the previous click\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { pairwise, map } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const pairs = clicks.pipe(pairwise());\n * const distance = pairs.pipe(\n *   map(pair => {\n *     const x0 = pair[0].clientX;\n *     const y0 = pair[0].clientY;\n *     const x1 = pair[1].clientX;\n *     const y1 = pair[1].clientY;\n *     return Math.sqrt(Math.pow(x0 - x1, 2) + Math.pow(y0 - y1, 2));\n *   }),\n * );\n * distance.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n *\n * @return {Observable<Array<T>>} An Observable of pairs (as arrays) of\n * consecutive values from the source Observable.\n * @method pairwise\n * @owner Observable\n */\nexport declare function pairwise<T>(): OperatorFunction<T, [T, T]>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/partition.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { UnaryFunction } from '../types';\n/**\n * Splits the source Observable into two, one with values that satisfy a\n * predicate, and another with values that don't satisfy the predicate.\n *\n * <span class=\"informal\">It's like {@link filter}, but returns two Observables:\n * one like the output of {@link filter}, and the other with values that did not\n * pass the condition.</span>\n *\n * ![](partition.png)\n *\n * `partition` outputs an array with two Observables that partition the values\n * from the source Observable through the given `predicate` function. The first\n * Observable in that array emits source values for which the predicate argument\n * returns true. The second Observable emits source values for which the\n * predicate returns false. The first behaves like {@link filter} and the second\n * behaves like {@link filter} with the predicate negated.\n *\n * ## Example\n * Partition click events into those on DIV elements and those elsewhere\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { partition } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const parts = clicks.pipe(partition(ev => ev.target.tagName === 'DIV'));\n * const clicksOnDivs = parts[0];\n * const clicksElsewhere = parts[1];\n * clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x));\n * clicksElsewhere.subscribe(x => console.log('Other clicked: ', x));\n * ```\n *\n * @see {@link filter}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted on the first Observable in the returned array, if\n * `false` the value is emitted on the second Observable in the array. The\n * `index` parameter is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {[Observable<T>, Observable<T>]} An array with two Observables: one\n * with values that passed the predicate, and another with values that did not\n * pass the predicate.\n * @method partition\n * @owner Observable\n * @deprecated use `partition` static creation function instead\n */\nexport declare function partition<T>(predicate: (value: T, index: number) => boolean, thisArg?: any): UnaryFunction<Observable<T>, [Observable<T>, Observable<T>]>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/pluck.d.ts"
    ],
    "content": "import { OperatorFunction } from '../types';\nexport declare function pluck<T, K1 extends keyof T>(k1: K1): OperatorFunction<T, T[K1]>;\nexport declare function pluck<T, K1 extends keyof T, K2 extends keyof T[K1]>(k1: K1, k2: K2): OperatorFunction<T, T[K1][K2]>;\nexport declare function pluck<T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2]>(k1: K1, k2: K2, k3: K3): OperatorFunction<T, T[K1][K2][K3]>;\nexport declare function pluck<T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3]>(k1: K1, k2: K2, k3: K3, k4: K4): OperatorFunction<T, T[K1][K2][K3][K4]>;\nexport declare function pluck<T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4]>(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5): OperatorFunction<T, T[K1][K2][K3][K4][K5]>;\nexport declare function pluck<T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4], K6 extends keyof T[K1][K2][K3][K4][K5]>(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6): OperatorFunction<T, T[K1][K2][K3][K4][K5][K6]>;\nexport declare function pluck<T, R>(...properties: string[]): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/publish.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { MonoTypeOperatorFunction, OperatorFunction, UnaryFunction, ObservableInput, ObservedValueOf } from '../types';\nexport declare function publish<T>(): UnaryFunction<Observable<T>, ConnectableObservable<T>>;\nexport declare function publish<T, O extends ObservableInput<any>>(selector: (shared: Observable<T>) => O): OperatorFunction<T, ObservedValueOf<O>>;\nexport declare function publish<T>(selector: MonoTypeOperatorFunction<T>): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/publishBehavior.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { UnaryFunction } from '../types';\n/**\n * @param value\n * @return {ConnectableObservable<T>}\n * @method publishBehavior\n * @owner Observable\n */\nexport declare function publishBehavior<T>(value: T): UnaryFunction<Observable<T>, ConnectableObservable<T>>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/publishLast.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { UnaryFunction } from '../types';\n/**\n * Returns a connectable observable sequence that shares a single subscription to the\n * underlying sequence containing only the last notification.\n *\n * ![](publishLast.png)\n *\n * Similar to {@link publish}, but it waits until the source observable completes and stores\n * the last emitted value.\n * Similarly to {@link publishReplay} and {@link publishBehavior}, this keeps storing the last\n * value even if it has no more subscribers. If subsequent subscriptions happen, they will\n * immediately get that last stored value and complete.\n *\n * ## Example\n *\n * ```ts\n * import { interval } from 'rxjs';\n * import { publishLast, tap, take } from 'rxjs/operators';\n *\n * const connectable =\n *   interval(1000)\n *     .pipe(\n *       tap(x => console.log(\"side effect\", x)),\n *       take(3),\n *       publishLast());\n *\n * connectable.subscribe(\n *   x => console.log(  \"Sub. A\", x),\n *   err => console.log(\"Sub. A Error\", err),\n *   () => console.log( \"Sub. A Complete\"));\n *\n * connectable.subscribe(\n *   x => console.log(  \"Sub. B\", x),\n *   err => console.log(\"Sub. B Error\", err),\n *   () => console.log( \"Sub. B Complete\"));\n *\n * connectable.connect();\n *\n * // Results:\n * //    \"side effect 0\"\n * //    \"side effect 1\"\n * //    \"side effect 2\"\n * //    \"Sub. A 2\"\n * //    \"Sub. B 2\"\n * //    \"Sub. A Complete\"\n * //    \"Sub. B Complete\"\n * ```\n *\n * @see {@link ConnectableObservable}\n * @see {@link publish}\n * @see {@link publishReplay}\n * @see {@link publishBehavior}\n *\n * @return {ConnectableObservable} An observable sequence that contains the elements of a\n * sequence produced by multicasting the source sequence.\n * @method publishLast\n * @owner Observable\n */\nexport declare function publishLast<T>(): UnaryFunction<Observable<T>, ConnectableObservable<T>>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/publishReplay.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, OperatorFunction, SchedulerLike, ObservableInput, ObservedValueOf } from '../types';\nexport declare function publishReplay<T>(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;\nexport declare function publishReplay<T, O extends ObservableInput<any>>(bufferSize?: number, windowTime?: number, selector?: (shared: Observable<T>) => O, scheduler?: SchedulerLike): OperatorFunction<T, ObservedValueOf<O>>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/race.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, OperatorFunction } from '../types';\n/** @deprecated Deprecated in favor of static race. */\nexport declare function race<T>(observables: Array<Observable<T>>): MonoTypeOperatorFunction<T>;\n/** @deprecated Deprecated in favor of static race. */\nexport declare function race<T, R>(observables: Array<Observable<T>>): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static race. */\nexport declare function race<T>(...observables: Array<Observable<T> | Array<Observable<T>>>): MonoTypeOperatorFunction<T>;\n/** @deprecated Deprecated in favor of static race. */\nexport declare function race<T, R>(...observables: Array<Observable<any> | Array<Observable<any>>>): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/reduce.d.ts"
    ],
    "content": "import { OperatorFunction, MonoTypeOperatorFunction } from '../types';\nexport declare function reduce<T, R>(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction<T, R>;\nexport declare function reduce<T>(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction<T>;\nexport declare function reduce<T, R>(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/refCount.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * Make a {@link ConnectableObservable} behave like a ordinary observable and automates the way\n * you can connect to it.\n *\n * Internally it counts the subscriptions to the observable and subscribes (only once) to the source if\n * the number of subscriptions is larger than 0. If the number of subscriptions is smaller than 1, it\n * unsubscribes from the source. This way you can make sure that everything before the *published*\n * refCount has only a single subscription independently of the number of subscribers to the target\n * observable.\n *\n * Note that using the {@link share} operator is exactly the same as using the *publish* operator\n * (making the observable hot) and the *refCount* operator in a sequence.\n *\n * ![](refCount.png)\n *\n * ## Example\n *\n * In the following example there are two intervals turned into connectable observables\n * by using the *publish* operator. The first one uses the *refCount* operator, the\n * second one does not use it. You will notice that a connectable observable does nothing\n * until you call its connect function.\n *\n * ```ts\n * import { interval } from 'rxjs';\n * import { tap, publish, refCount } from 'rxjs/operators';\n *\n * // Turn the interval observable into a ConnectableObservable (hot)\n * const refCountInterval = interval(400).pipe(\n *   tap((num) => console.log(`refCount ${num}`)),\n *   publish(),\n *   refCount()\n * );\n *\n * const publishedInterval = interval(400).pipe(\n *   tap((num) => console.log(`publish ${num}`)),\n *   publish()\n * );\n *\n * refCountInterval.subscribe();\n * refCountInterval.subscribe();\n * // 'refCount 0' -----> 'refCount 1' -----> etc\n * // All subscriptions will receive the same value and the tap (and\n * // every other operator) before the publish operator will be executed\n * // only once per event independently of the number of subscriptions.\n *\n * publishedInterval.subscribe();\n * // Nothing happens until you call .connect() on the observable.\n * ```\n *\n * @see {@link ConnectableObservable}\n * @see {@link share}\n * @see {@link publish}\n */\nexport declare function refCount<T>(): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/repeat.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * Returns an Observable that will resubscribe to the source stream when the source stream completes, at most count times.\n *\n * <span class=\"informal\">Repeats all values emitted on the source. It's like {@link retry}, but for non error cases.</span>\n *\n * ![](repeat.png)\n *\n * Similar to {@link retry}, this operator repeats the stream of items emitted by the source for non error cases.\n * Repeat can be useful for creating observables that are meant to have some repeated pattern or rhythm.\n *\n * Note: `repeat(0)` returns an empty observable and `repeat()` will repeat forever\n *\n * ## Example\n * Repeat a message stream\n * ```ts\n * import { of } from 'rxjs';\n * import { repeat, delay } from 'rxjs/operators';\n *\n * const source = of('Repeat message');\n * const example = source.pipe(repeat(3));\n * example.subscribe(x => console.log(x));\n *\n * // Results\n * // Repeat message\n * // Repeat message\n * // Repeat message\n * ```\n *\n * Repeat 3 values, 2 times\n * ```ts\n * import { interval } from 'rxjs';\n * import { repeat, take } from 'rxjs/operators';\n *\n * const source = interval(1000);\n * const example = source.pipe(take(3), repeat(2));\n * example.subscribe(x => console.log(x));\n *\n * // Results every second\n * // 0\n * // 1\n * // 2\n * // 0\n * // 1\n * // 2\n * ```\n *\n * @see {@link repeatWhen}\n * @see {@link retry}\n *\n * @param {number} [count] The number of times the source Observable items are repeated, a count of 0 will yield\n * an empty Observable.\n * @return {Observable} An Observable that will resubscribe to the source stream when the source stream completes\n * , at most count times.\n * @method repeat\n * @owner Observable\n */\nexport declare function repeat<T>(count?: number): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/repeatWhen.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction } from '../types';\n/**\n * Returns an Observable that mirrors the source Observable with the exception of a `complete`. If the source\n * Observable calls `complete`, this method will emit to the Observable returned from `notifier`. If that Observable\n * calls `complete` or `error`, then this method will call `complete` or `error` on the child subscription. Otherwise\n * this method will resubscribe to the source Observable.\n *\n * ![](repeatWhen.png)\n *\n * ## Example\n * Repeat a message stream on click\n * ```ts\n * import { of, fromEvent } from 'rxjs';\n * import { repeatWhen } from 'rxjs/operators';\n *\n * const source = of('Repeat message');\n * const documentClick$ = fromEvent(document, 'click');\n *\n * source.pipe(repeatWhen(() => documentClick$)\n * ).subscribe(data => console.log(data))\n * ```\n * @see {@link repeat}\n * @see {@link retry}\n * @see {@link retryWhen}\n *\n * @param {function(notifications: Observable): Observable} notifier - Receives an Observable of notifications with\n * which a user can `complete` or `error`, aborting the repetition.\n * @return {Observable} The source Observable modified with repeat logic.\n * @method repeatWhen\n * @owner Observable\n */\nexport declare function repeatWhen<T>(notifier: (notifications: Observable<any>) => Observable<any>): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/retry.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable\n * calls `error`, this method will resubscribe to the source Observable for a maximum of `count` resubscriptions (given\n * as a number parameter) rather than propagating the `error` call.\n *\n * ![](retry.png)\n *\n * Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted\n * during failed subscriptions. For example, if an Observable fails at first but emits [1, 2] then succeeds the second\n * time and emits: [1, 2, 3, 4, 5] then the complete stream of emissions and notifications\n * would be: [1, 2, 1, 2, 3, 4, 5, `complete`].\n *\n * ## Example\n * ```ts\n * import { interval, of, throwError } from 'rxjs';\n * import { mergeMap, retry } from 'rxjs/operators';\n *\n * const source = interval(1000);\n * const example = source.pipe(\n *   mergeMap(val => {\n *     if(val > 5){\n *       return throwError('Error!');\n *     }\n *     return of(val);\n *   }),\n *   //retry 2 times on error\n *   retry(2)\n * );\n *\n * const subscribe = example.subscribe({\n *   next: val => console.log(val),\n *   error: val => console.log(`${val}: Retried 2 times then quit!`)\n * });\n *\n * // Output:\n * // 0..1..2..3..4..5..\n * // 0..1..2..3..4..5..\n * // 0..1..2..3..4..5..\n * // \"Error!: Retried 2 times then quit!\"\n * ```\n *\n * @param {number} count - Number of retry attempts before failing.\n * @return {Observable} The source Observable modified with the retry logic.\n * @method retry\n * @owner Observable\n */\nexport declare function retry<T>(count?: number): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/retryWhen.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction } from '../types';\n/**\n * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable\n * calls `error`, this method will emit the Throwable that caused the error to the Observable returned from `notifier`.\n * If that Observable calls `complete` or `error` then this method will call `complete` or `error` on the child\n * subscription. Otherwise this method will resubscribe to the source Observable.\n *\n * ![](retryWhen.png)\n *\n * @param {function(errors: Observable): Observable} notifier - Receives an Observable of notifications with which a\n * user can `complete` or `error`, aborting the retry.\n * @return {Observable} The source Observable modified with retry logic.\n * @method retryWhen\n * @owner Observable\n */\nexport declare function retryWhen<T>(notifier: (errors: Observable<any>) => Observable<any>): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/sample.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction } from '../types';\n/**\n * Emits the most recently emitted value from the source Observable whenever\n * another Observable, the `notifier`, emits.\n *\n * <span class=\"informal\">It's like {@link sampleTime}, but samples whenever\n * the `notifier` Observable emits something.</span>\n *\n * ![](sample.png)\n *\n * Whenever the `notifier` Observable emits a value or completes, `sample`\n * looks at the source Observable and emits whichever value it has most recently\n * emitted since the previous sampling, unless the source has not emitted\n * anything since the previous sampling. The `notifier` is subscribed to as soon\n * as the output Observable is subscribed.\n *\n * ## Example\n * On every click, sample the most recent \"seconds\" timer\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { sample } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const result = seconds.pipe(sample(clicks));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounce}\n * @see {@link sampleTime}\n * @see {@link throttle}\n *\n * @param {Observable<any>} notifier The Observable to use for sampling the\n * source Observable.\n * @return {Observable<T>} An Observable that emits the results of sampling the\n * values emitted by the source Observable whenever the notifier Observable\n * emits value or completes.\n * @method sample\n * @owner Observable\n */\nexport declare function sample<T>(notifier: Observable<any>): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/sampleTime.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction, SchedulerLike } from '../types';\n/**\n * Emits the most recently emitted value from the source Observable within\n * periodic time intervals.\n *\n * <span class=\"informal\">Samples the source Observable at periodic time\n * intervals, emitting what it samples.</span>\n *\n * ![](sampleTime.png)\n *\n * `sampleTime` periodically looks at the source Observable and emits whichever\n * value it has most recently emitted since the previous sampling, unless the\n * source has not emitted anything since the previous sampling. The sampling\n * happens periodically in time every `period` milliseconds (or the time unit\n * defined by the optional `scheduler` argument). The sampling starts as soon as\n * the output Observable is subscribed.\n *\n * ## Example\n * Every second, emit the most recent click at most once\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { sampleTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(sampleTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link auditTime}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sample}\n * @see {@link throttleTime}\n *\n * @param {number} period The sampling period expressed in milliseconds or the\n * time unit determined internally by the optional `scheduler`.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the sampling.\n * @return {Observable<T>} An Observable that emits the results of sampling the\n * values emitted by the source Observable at the specified time interval.\n * @method sampleTime\n * @owner Observable\n */\nexport declare function sampleTime<T>(period: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/scan.d.ts"
    ],
    "content": "import { OperatorFunction, MonoTypeOperatorFunction } from '../types';\nexport declare function scan<T, R>(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction<T, R>;\nexport declare function scan<T>(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction<T>;\nexport declare function scan<T, R>(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/sequenceEqual.d.ts"
    ],
    "content": "import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Observer, OperatorFunction } from '../types';\n/**\n * Compares all values of two observables in sequence using an optional comparator function\n * and returns an observable of a single boolean value representing whether or not the two sequences\n * are equal.\n *\n * <span class=\"informal\">Checks to see of all values emitted by both observables are equal, in order.</span>\n *\n * ![](sequenceEqual.png)\n *\n * `sequenceEqual` subscribes to two observables and buffers incoming values from each observable. Whenever either\n * observable emits a value, the value is buffered and the buffers are shifted and compared from the bottom\n * up; If any value pair doesn't match, the returned observable will emit `false` and complete. If one of the\n * observables completes, the operator will wait for the other observable to complete; If the other\n * observable emits before completing, the returned observable will emit `false` and complete. If one observable never\n * completes or emits after the other complets, the returned observable will never complete.\n *\n * ## Example\n * figure out if the Konami code matches\n * ```ts\n * import { from, fromEvent } from 'rxjs';\n * import { sequenceEqual, bufferCount, mergeMap, map } from 'rxjs/operators';\n *\n * const codes = from([\n *   'ArrowUp',\n *   'ArrowUp',\n *   'ArrowDown',\n *   'ArrowDown',\n *   'ArrowLeft',\n *   'ArrowRight',\n *   'ArrowLeft',\n *   'ArrowRight',\n *   'KeyB',\n *   'KeyA',\n *   'Enter', // no start key, clearly.\n * ]);\n *\n * const keys = fromEvent(document, 'keyup').pipe(map(e => e.code));\n * const matches = keys.pipe(\n *   bufferCount(11, 1),\n *   mergeMap(\n *     last11 => from(last11).pipe(sequenceEqual(codes)),\n *   ),\n * );\n * matches.subscribe(matched => console.log('Successful cheat at Contra? ', matched));\n * ```\n *\n * @see {@link combineLatest}\n * @see {@link zip}\n * @see {@link withLatestFrom}\n *\n * @param {Observable} compareTo The observable sequence to compare the source sequence to.\n * @param {function} [comparator] An optional function to compare each value pair\n * @return {Observable} An Observable of a single boolean value representing whether or not\n * the values emitted by both observables were equal in sequence.\n * @method sequenceEqual\n * @owner Observable\n */\nexport declare function sequenceEqual<T>(compareTo: Observable<T>, comparator?: (a: T, b: T) => boolean): OperatorFunction<T, boolean>;\nexport declare class SequenceEqualOperator<T> implements Operator<T, boolean> {\n    private compareTo;\n    private comparator;\n    constructor(compareTo: Observable<T>, comparator: (a: T, b: T) => boolean);\n    call(subscriber: Subscriber<boolean>, source: any): any;\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class SequenceEqualSubscriber<T, R> extends Subscriber<T> {\n    private compareTo;\n    private comparator;\n    private _a;\n    private _b;\n    private _oneComplete;\n    constructor(destination: Observer<R>, compareTo: Observable<T>, comparator: (a: T, b: T) => boolean);\n    protected _next(value: T): void;\n    _complete(): void;\n    checkValues(): void;\n    emit(value: boolean): void;\n    nextB(value: T): void;\n    completeB(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/share.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * Returns a new Observable that multicasts (shares) the original Observable. As long as there is at least one\n * Subscriber this Observable will be subscribed and emitting data. When all subscribers have unsubscribed it will\n * unsubscribe from the source Observable. Because the Observable is multicasting it makes the stream `hot`.\n * This is an alias for `multicast(() => new Subject()), refCount()`.\n *\n * ![](share.png)\n *\n * @return {Observable<T>} An Observable that upon connection causes the source Observable to emit items to its Observers.\n * @method share\n * @owner Observable\n */\nexport declare function share<T>(): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/shareReplay.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nexport interface ShareReplayConfig {\n    bufferSize?: number;\n    windowTime?: number;\n    refCount: boolean;\n    scheduler?: SchedulerLike;\n}\n/**\n * Share source and replay specified number of emissions on subscription.\n *\n * This operator is a specialization of `replay` that connects to a source observable\n * and multicasts through a `ReplaySubject` constructed with the specified arguments.\n * A successfully completed source will stay cached in the `shareReplayed observable` forever,\n * but an errored source can be retried.\n *\n * ## Why use shareReplay?\n * You generally want to use `shareReplay` when you have side-effects or taxing computations\n * that you do not wish to be executed amongst multiple subscribers.\n * It may also be valuable in situations where you know you will have late subscribers to\n * a stream that need access to previously emitted values.\n * This ability to replay values on subscription is what differentiates {@link share} and `shareReplay`.\n *\n * ![](shareReplay.png)\n *\n * ## Example\n * ```ts\n * import { interval } from 'rxjs';\n * import { shareReplay, take } from 'rxjs/operators';\n *\n * const obs$ = interval(1000);\n * const shared$ = obs$.pipe(\n *   take(4),\n *   shareReplay(3)\n * );\n * shared$.subscribe(x => console.log('source A: ', x));\n * shared$.subscribe(y => console.log('source B: ', y));\n *\n * ```\n *\n * @see {@link publish}\n * @see {@link share}\n * @see {@link publishReplay}\n *\n * @param {Number} [bufferSize=Number.POSITIVE_INFINITY] Maximum element count of the replay buffer.\n * @param {Number} [windowTime=Number.POSITIVE_INFINITY] Maximum time length of the replay buffer in milliseconds.\n * @param {Scheduler} [scheduler] Scheduler where connected observers within the selector function\n * will be invoked on.\n * @return {Observable} An observable sequence that contains the elements of a sequence produced\n * by multicasting the source sequence within a selector function.\n * @method shareReplay\n * @owner Observable\n */\nexport declare function shareReplay<T>(config: ShareReplayConfig): MonoTypeOperatorFunction<T>;\nexport declare function shareReplay<T>(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/single.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction } from '../types';\n/**\n * Returns an Observable that emits the single item emitted by the source Observable that matches a specified\n * predicate, if that Observable emits one such item. If the source Observable emits more than one such item or no\n * items, notify of an IllegalArgumentException or NoSuchElementException respectively. If the source Observable\n * emits items but none match the specified predicate then `undefined` is emitted.\n *\n * <span class=\"informal\">Like {@link first}, but emit with error notification if there is more than one value.</span>\n * ![](single.png)\n *\n * ## Example\n * emits 'error'\n * ```ts\n * import { range } from 'rxjs';\n * import { single } from 'rxjs/operators';\n *\n * const numbers = range(1,5).pipe(single());\n * numbers.subscribe(x => console.log('never get called'), e => console.log('error'));\n * // result\n * // 'error'\n * ```\n *\n * emits 'undefined'\n * ```ts\n * import { range } from 'rxjs';\n * import { single } from 'rxjs/operators';\n *\n * const numbers = range(1,5).pipe(single(x => x === 10));\n * numbers.subscribe(x => console.log(x));\n * // result\n * // 'undefined'\n * ```\n *\n * @see {@link first}\n * @see {@link find}\n * @see {@link findIndex}\n * @see {@link elementAt}\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n * @param {Function} predicate - A predicate function to evaluate items emitted by the source Observable.\n * @return {Observable<T>} An Observable that emits the single item emitted by the source Observable that matches\n * the predicate or `undefined` when no items match.\n *\n * @method single\n * @owner Observable\n */\nexport declare function single<T>(predicate?: (value: T, index: number, source: Observable<T>) => boolean): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/skip.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * Returns an Observable that skips the first `count` items emitted by the source Observable.\n *\n * ![](skip.png)\n *\n * @param {Number} count - The number of times, items emitted by source Observable should be skipped.\n * @return {Observable} An Observable that skips values emitted by the source Observable.\n *\n * @method skip\n * @owner Observable\n */\nexport declare function skip<T>(count: number): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/skipLast.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * Skip the last `count` values emitted by the source Observable.\n *\n * ![](skipLast.png)\n *\n * `skipLast` returns an Observable that accumulates a queue with a length\n * enough to store the first `count` values. As more values are received,\n * values are taken from the front of the queue and produced on the result\n * sequence. This causes values to be delayed.\n *\n * ## Example\n * Skip the last 2 values of an Observable with many values\n * ```ts\n * import { range } from 'rxjs';\n * import { skipLast } from 'rxjs/operators';\n *\n * const many = range(1, 5);\n * const skipLastTwo = many.pipe(skipLast(2));\n * skipLastTwo.subscribe(x => console.log(x));\n *\n * // Results in:\n * // 1 2 3\n * ```\n *\n * @see {@link skip}\n * @see {@link skipUntil}\n * @see {@link skipWhile}\n * @see {@link take}\n *\n * @throws {ArgumentOutOfRangeError} When using `skipLast(i)`, it throws\n * ArgumentOutOrRangeError if `i < 0`.\n *\n * @param {number} count Number of elements to skip from the end of the source Observable.\n * @returns {Observable<T>} An Observable that skips the last count values\n * emitted by the source Observable.\n * @method skipLast\n * @owner Observable\n */\nexport declare function skipLast<T>(count: number): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/skipUntil.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction } from '../types';\n/**\n * Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item.\n *\n * The `skipUntil` operator causes the observable stream to skip the emission of values ​​until the passed in observable emits the first value.\n * This can be particularly useful in combination with user interactions, responses of http requests or waiting for specific times to pass by.\n *\n * ![](skipUntil.png)\n *\n * Internally the `skipUntil` operator subscribes to the passed in observable (in the following called *notifier*) in order to recognize the emission\n * of its first value. When this happens, the operator unsubscribes from the *notifier* and starts emitting the values of the *source*\n * observable. It will never let the *source* observable emit any values if the *notifier* completes or throws an error without emitting\n * a value before.\n *\n * ## Example\n *\n * In the following example, all emitted values ​​of the interval observable are skipped until the user clicks anywhere within the page.\n *\n * ```ts\n * import { interval, fromEvent } from 'rxjs';\n * import { skipUntil } from 'rxjs/operators';\n *\n * const intervalObservable = interval(1000);\n * const click = fromEvent(document, 'click');\n *\n * const emitAfterClick = intervalObservable.pipe(\n *   skipUntil(click)\n * );\n * // clicked at 4.6s. output: 5...6...7...8........ or\n * // clicked at 7.3s. output: 8...9...10..11.......\n * const subscribe = emitAfterClick.subscribe(value => console.log(value));\n * ```\n *\n * @param {Observable} notifier - The second Observable that has to emit an item before the source Observable's elements begin to\n * be mirrored by the resulting Observable.\n * @return {Observable<T>} An Observable that skips items from the source Observable until the second Observable emits\n * an item, then emits the remaining items.\n * @method skipUntil\n * @owner Observable\n */\nexport declare function skipUntil<T>(notifier: Observable<any>): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/skipWhile.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds\n * true, but emits all further source items as soon as the condition becomes false.\n *\n * ![](skipWhile.png)\n *\n * @param {Function} predicate - A function to test each item emitted from the source Observable.\n * @return {Observable<T>} An Observable that begins emitting items emitted by the source Observable when the\n * specified predicate becomes false.\n * @method skipWhile\n * @owner Observable\n */\nexport declare function skipWhile<T>(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/startWith.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction, OperatorFunction, SchedulerLike } from '../types';\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport declare function startWith<T>(scheduler: SchedulerLike): MonoTypeOperatorFunction<T>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport declare function startWith<T, D>(v1: D, scheduler: SchedulerLike): OperatorFunction<T, T | D>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport declare function startWith<T, D, E>(v1: D, v2: E, scheduler: SchedulerLike): OperatorFunction<T, T | D | E>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport declare function startWith<T, D, E, F>(v1: D, v2: E, v3: F, scheduler: SchedulerLike): OperatorFunction<T, T | D | E | F>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport declare function startWith<T, D, E, F, G>(v1: D, v2: E, v3: F, v4: G, scheduler: SchedulerLike): OperatorFunction<T, T | D | E | F | G>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport declare function startWith<T, D, E, F, G, H>(v1: D, v2: E, v3: F, v4: G, v5: H, scheduler: SchedulerLike): OperatorFunction<T, T | D | E | F | G | H>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport declare function startWith<T, D, E, F, G, H, I>(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I, scheduler: SchedulerLike): OperatorFunction<T, T | D | E | F | G | H | I>;\nexport declare function startWith<T, D>(v1: D): OperatorFunction<T, T | D>;\nexport declare function startWith<T, D, E>(v1: D, v2: E): OperatorFunction<T, T | D | E>;\nexport declare function startWith<T, D, E, F>(v1: D, v2: E, v3: F): OperatorFunction<T, T | D | E | F>;\nexport declare function startWith<T, D, E, F, G>(v1: D, v2: E, v3: F, v4: G): OperatorFunction<T, T | D | E | F | G>;\nexport declare function startWith<T, D, E, F, G, H>(v1: D, v2: E, v3: F, v4: G, v5: H): OperatorFunction<T, T | D | E | F | G | H>;\nexport declare function startWith<T, D, E, F, G, H, I>(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I): OperatorFunction<T, T | D | E | F | G | H | I>;\nexport declare function startWith<T, D = T>(...array: D[]): OperatorFunction<T, T | D>;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport declare function startWith<T, D = T>(...array: Array<D | SchedulerLike>): OperatorFunction<T, T | D>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/subscribeOn.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction, SchedulerLike } from '../types';\n/**\n * Asynchronously subscribes Observers to this Observable on the specified {@link SchedulerLike}.\n *\n * With `subscribeOn` you can decide what type of scheduler a specific Observable will be using when it is subscribed to.\n *\n * Schedulers control the speed and order of emissions to observers from an Observable stream.\n *\n * ![](subscribeOn.png)\n *\n * ## Example\n * Given the following code:\n * ```javascript\n * import { of, merge } from 'rxjs';\n *\n * const a = of(1, 2, 3, 4);\n * const b = of(5, 6, 7, 8, 9);\n * merge(a, b).subscribe(console.log);\n * ```\n *\n * Both Observable `a` and `b` will emit their values directly and synchronously once they are subscribed to.\n * This will result in the output of `1 2 3 4 5 6 7 8 9`.\n *\n * But if we instead us the `subscribeOn` operator declaring that we want to use the {@link asyncScheduler} for values emited by Observable `a`:\n * ```javascript\n * import { of, merge, asyncScheduler } from 'rxjs';\n * import { subscribeOn } from 'rxjs/operators';\n *\n * const a = of(1, 2, 3, 4).pipe(subscribeOn(asyncScheduler));\n * const b = of(5, 6, 7, 8, 9);\n * merge(a, b).subscribe(console.log);\n * ```\n *\n * The output will instead be `5 6 7 8 9 1 2 3 4`.\n * The reason for this is that Observable `b` emits its values directly and synchronously like before\n * but the emissions from `a` are scheduled on the event loop because we are now using the {@link asyncScheduler} for that specific Observable.\n *\n * @param {SchedulerLike} scheduler - The {@link SchedulerLike} to perform subscription actions on.\n * @return {Observable<T>} The source Observable modified so that its subscriptions happen on the specified {@link SchedulerLike}.\n .\n * @method subscribeOn\n * @owner Observable\n */\nexport declare function subscribeOn<T>(scheduler: SchedulerLike, delay?: number): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/switchAll.d.ts"
    ],
    "content": "import { OperatorFunction, ObservableInput } from '../types';\nexport declare function switchAll<T>(): OperatorFunction<ObservableInput<T>, T>;\nexport declare function switchAll<R>(): OperatorFunction<any, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/switchMap.d.ts"
    ],
    "content": "import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nexport declare function switchMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated resultSelector is no longer supported, use inner map instead */\nexport declare function switchMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated resultSelector is no longer supported, use inner map instead */\nexport declare function switchMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/switchMapTo.d.ts"
    ],
    "content": "import { ObservableInput, OperatorFunction } from '../types';\nexport declare function switchMapTo<R>(observable: ObservableInput<R>): OperatorFunction<any, R>;\n/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */\nexport declare function switchMapTo<T, R>(observable: ObservableInput<R>, resultSelector: undefined): OperatorFunction<T, R>;\n/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */\nexport declare function switchMapTo<T, I, R>(observable: ObservableInput<I>, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/take.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * Emits only the first `count` values emitted by the source Observable.\n *\n * <span class=\"informal\">Takes the first `count` values from the source, then\n * completes.</span>\n *\n * ![](take.png)\n *\n * `take` returns an Observable that emits only the first `count` values emitted\n * by the source Observable. If the source emits fewer than `count` values then\n * all of its values are emitted. After that, it completes, regardless if the\n * source completes.\n *\n * ## Example\n * Take the first 5 seconds of an infinite 1-second interval Observable\n * ```ts\n * import { interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const intervalCount = interval(1000);\n * const takeFive = intervalCount.pipe(take(5));\n * takeFive.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 0\n * // 1\n * // 2\n * // 3\n * // 4\n * ```\n *\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @throws {ArgumentOutOfRangeError} When using `take(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.\n *\n * @param {number} count The maximum number of `next` values to emit.\n * @return {Observable<T>} An Observable that emits only the first `count`\n * values emitted by the source Observable, or all of the values from the source\n * if the source emits fewer than `count` values.\n * @method take\n * @owner Observable\n */\nexport declare function take<T>(count: number): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/takeLast.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * Emits only the last `count` values emitted by the source Observable.\n *\n * <span class=\"informal\">Remembers the latest `count` values, then emits those\n * only when the source completes.</span>\n *\n * ![](takeLast.png)\n *\n * `takeLast` returns an Observable that emits at most the last `count` values\n * emitted by the source Observable. If the source emits fewer than `count`\n * values then all of its values are emitted. This operator must wait until the\n * `complete` notification emission from the source in order to emit the `next`\n * values on the output Observable, because otherwise it is impossible to know\n * whether or not more values will be emitted on the source. For this reason,\n * all values are emitted synchronously, followed by the complete notification.\n *\n * ## Example\n * Take the last 3 values of an Observable with many values\n * ```ts\n * import { range } from 'rxjs';\n * import { takeLast } from 'rxjs/operators';\n *\n * const many = range(1, 100);\n * const lastThree = many.pipe(takeLast(3));\n * lastThree.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @throws {ArgumentOutOfRangeError} When using `takeLast(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.\n *\n * @param {number} count The maximum number of values to emit from the end of\n * the sequence of values emitted by the source Observable.\n * @return {Observable<T>} An Observable that emits at most the last count\n * values emitted by the source Observable.\n * @method takeLast\n * @owner Observable\n */\nexport declare function takeLast<T>(count: number): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/takeUntil.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction } from '../types';\n/**\n * Emits the values emitted by the source Observable until a `notifier`\n * Observable emits a value.\n *\n * <span class=\"informal\">Lets values pass until a second Observable,\n * `notifier`, emits a value. Then, it completes.</span>\n *\n * ![](takeUntil.png)\n *\n * `takeUntil` subscribes and begins mirroring the source Observable. It also\n * monitors a second Observable, `notifier` that you provide. If the `notifier`\n * emits a value, the output Observable stops mirroring the source Observable\n * and completes. If the `notifier` doesn't emit any value and completes\n * then `takeUntil` will pass all values.\n *\n * ## Example\n * Tick every second until the first click happens\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { takeUntil } from 'rxjs/operators';\n *\n * const source = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const result = source.pipe(takeUntil(clicks));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeLast}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @param {Observable} notifier The Observable whose first emitted value will\n * cause the output Observable of `takeUntil` to stop emitting values from the\n * source Observable.\n * @return {Observable<T>} An Observable that emits the values from the source\n * Observable until such time as `notifier` emits its first value.\n * @method takeUntil\n * @owner Observable\n */\nexport declare function takeUntil<T>(notifier: Observable<any>): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/takeWhile.d.ts"
    ],
    "content": "import { OperatorFunction, MonoTypeOperatorFunction } from '../types';\nexport declare function takeWhile<T, S extends T>(predicate: (value: T, index: number) => value is S): OperatorFunction<T, S>;\nexport declare function takeWhile<T, S extends T>(predicate: (value: T, index: number) => value is S, inclusive: false): OperatorFunction<T, S>;\nexport declare function takeWhile<T>(predicate: (value: T, index: number) => boolean, inclusive?: boolean): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/tap.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction, PartialObserver } from '../types';\n/** @deprecated Use an observer instead of a complete callback */\nexport declare function tap<T>(next: null | undefined, error: null | undefined, complete: () => void): MonoTypeOperatorFunction<T>;\n/** @deprecated Use an observer instead of an error callback */\nexport declare function tap<T>(next: null | undefined, error: (error: any) => void, complete?: () => void): MonoTypeOperatorFunction<T>;\n/** @deprecated Use an observer instead of a complete callback */\nexport declare function tap<T>(next: (value: T) => void, error: null | undefined, complete: () => void): MonoTypeOperatorFunction<T>;\nexport declare function tap<T>(next?: (x: T) => void, error?: (e: any) => void, complete?: () => void): MonoTypeOperatorFunction<T>;\nexport declare function tap<T>(observer: PartialObserver<T>): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/throttle.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction, SubscribableOrPromise } from '../types';\nexport interface ThrottleConfig {\n    leading?: boolean;\n    trailing?: boolean;\n}\nexport declare const defaultThrottleConfig: ThrottleConfig;\n/**\n * Emits a value from the source Observable, then ignores subsequent source\n * values for a duration determined by another Observable, then repeats this\n * process.\n *\n * <span class=\"informal\">It's like {@link throttleTime}, but the silencing\n * duration is determined by a second Observable.</span>\n *\n * ![](throttle.png)\n *\n * `throttle` emits the source Observable values on the output Observable\n * when its internal timer is disabled, and ignores source values when the timer\n * is enabled. Initially, the timer is disabled. As soon as the first source\n * value arrives, it is forwarded to the output Observable, and then the timer\n * is enabled by calling the `durationSelector` function with the source value,\n * which returns the \"duration\" Observable. When the duration Observable emits a\n * value or completes, the timer is disabled, and this process repeats for the\n * next source value.\n *\n * ## Example\n * Emit clicks at a rate of at most one click per second\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { throttle } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(throttle(ev => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounce}\n * @see {@link delayWhen}\n * @see {@link sample}\n * @see {@link throttleTime}\n *\n * @param {function(value: T): SubscribableOrPromise} durationSelector A function\n * that receives a value from the source Observable, for computing the silencing\n * duration for each source value, returned as an Observable or a Promise.\n * @param {Object} config a configuration object to define `leading` and `trailing` behavior. Defaults\n * to `{ leading: true, trailing: false }`.\n * @return {Observable<T>} An Observable that performs the throttle operation to\n * limit the rate of emissions from the source.\n * @method throttle\n * @owner Observable\n */\nexport declare function throttle<T>(durationSelector: (value: T) => SubscribableOrPromise<any>, config?: ThrottleConfig): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/throttleTime.d.ts"
    ],
    "content": "import { ThrottleConfig } from './throttle';\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\n/**\n * Emits a value from the source Observable, then ignores subsequent source\n * values for `duration` milliseconds, then repeats this process.\n *\n * <span class=\"informal\">Lets a value pass, then ignores source values for the\n * next `duration` milliseconds.</span>\n *\n * ![](throttleTime.png)\n *\n * `throttleTime` emits the source Observable values on the output Observable\n * when its internal timer is disabled, and ignores source values when the timer\n * is enabled. Initially, the timer is disabled. As soon as the first source\n * value arrives, it is forwarded to the output Observable, and then the timer\n * is enabled. After `duration` milliseconds (or the time unit determined\n * internally by the optional `scheduler`) has passed, the timer is disabled,\n * and this process repeats for the next source value. Optionally takes a\n * {@link SchedulerLike} for managing timers.\n *\n * ## Examples\n *\n * #### Limit click rate\n *\n * Emit clicks at a rate of at most one click per second\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { throttleTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(throttleTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * #### Double Click\n *\n * The following example only emits clicks which happen within a subsequent\n * delay of 400ms of the previous click. This for example can emulate a double\n * click. It makes use of the `trailing` parameter of the throttle configuration.\n *\n * ```ts\n * import { fromEvent, asyncScheduler } from 'rxjs';\n * import { throttleTime, withLatestFrom } from 'rxjs/operators';\n *\n * // defaultThottleConfig = { leading: true, trailing: false }\n * const throttleConfig = {\n *   leading: false,\n *   trailing: true\n * }\n *\n * const click = fromEvent(document, 'click');\n * const doubleClick = click.pipe(\n *   throttleTime(400, asyncScheduler, throttleConfig)\n * );\n *\n * doubleClick.subscribe((throttleValue: Event) => {\n *   console.log(`Double-clicked! Timestamp: ${throttleValue.timeStamp}`);\n * });\n * ```\n *\n * If you enable the `leading` parameter in this example, the output would be the primary click and\n * the double click, but restricts additional clicks within 400ms.\n *\n * @see {@link auditTime}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttle}\n *\n * @param {number} duration Time to wait before emitting another value after\n * emitting the last value, measured in milliseconds or the time unit determined\n * internally by the optional `scheduler`.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the throttling.\n * @param {Object} config a configuration object to define `leading` and\n * `trailing` behavior. Defaults to `{ leading: true, trailing: false }`.\n * @return {Observable<T>} An Observable that performs the throttle operation to\n * limit the rate of emissions from the source.\n * @method throttleTime\n * @owner Observable\n */\nexport declare function throttleTime<T>(duration: number, scheduler?: SchedulerLike, config?: ThrottleConfig): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/throwIfEmpty.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction } from '../types';\n/**\n * If the source observable completes without emitting a value, it will emit\n * an error. The error will be created at that time by the optional\n * `errorFactory` argument, otherwise, the error will be {@link EmptyError}.\n *\n * ![](throwIfEmpty.png)\n *\n * ## Example\n * ```ts\n * import { fromEvent, timer } from 'rxjs';\n * import { throwIfEmpty, takeUntil } from 'rxjs/operators';\n *\n * const click$ = fromEvent(document, 'click');\n *\n * click$.pipe(\n *   takeUntil(timer(1000)),\n *   throwIfEmpty(\n *     () => new Error('the document was not clicked within 1 second')\n *   ),\n * )\n * .subscribe({\n *   next() { console.log('The button was clicked'); },\n *   error(err) { console.error(err); }\n * });\n * ```\n *\n * @param errorFactory A factory function called to produce the\n * error to be thrown when the source observable completes without emitting a\n * value.\n */\nexport declare function throwIfEmpty<T>(errorFactory?: (() => any)): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/timeInterval.d.ts"
    ],
    "content": "import { SchedulerLike, OperatorFunction } from '../types';\n/**\n *\n * Emits an object containing the current value, and the time that has\n * passed between emitting the current value and the previous value, which is\n * calculated by using the provided `scheduler`'s `now()` method to retrieve\n * the current time at each emission, then calculating the difference. The `scheduler`\n * defaults to {@link asyncScheduler}, so by default, the `interval` will be in\n * milliseconds.\n *\n * <span class=\"informal\">Convert an Observable that emits items into one that\n * emits indications of the amount of time elapsed between those emissions.</span>\n *\n * ![](timeinterval.png)\n *\n * ## Examples\n * Emit inteval between current value with the last value\n *\n * ```ts\n * const seconds = interval(1000);\n *\n * seconds.pipe(timeInterval())\n * .subscribe(\n *     value => console.log(value),\n *     err => console.log(err),\n * );\n *\n * seconds.pipe(timeout(900))\n * .subscribe(\n *     value => console.log(value),\n *     err => console.log(err),\n * );\n *\n * // NOTE: The values will never be this precise,\n * // intervals created with `interval` or `setInterval`\n * // are non-deterministic.\n *\n * // {value: 0, interval: 1000}\n * // {value: 1, interval: 1000}\n * // {value: 2, interval: 1000}\n * ```\n *\n * @param {SchedulerLike} [scheduler] Scheduler used to get the current time.\n * @return {Observable<{ interval: number, value: T }>} Observable that emit infomation about value and interval\n * @method timeInterval\n */\nexport declare function timeInterval<T>(scheduler?: SchedulerLike): OperatorFunction<T, TimeInterval<T>>;\n/**\n * @deprecated exposed API, use as interface only.\n */\nexport declare class TimeInterval<T> {\n    value: T;\n    interval: number;\n    constructor(value: T, interval: number);\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/timeout.d.ts"
    ],
    "content": "import { MonoTypeOperatorFunction, SchedulerLike } from '../types';\n/**\n *\n * Errors if Observable does not emit a value in given time span.\n *\n * <span class=\"informal\">Timeouts on Observable that doesn't emit values fast enough.</span>\n *\n * ![](timeout.png)\n *\n * `timeout` operator accepts as an argument either a number or a Date.\n *\n * If number was provided, it returns an Observable that behaves like a source\n * Observable, unless there is a period of time where there is no value emitted.\n * So if you provide `100` as argument and first value comes after 50ms from\n * the moment of subscription, this value will be simply re-emitted by the resulting\n * Observable. If however after that 100ms passes without a second value being emitted,\n * stream will end with an error and source Observable will be unsubscribed.\n * These checks are performed throughout whole lifecycle of Observable - from the moment\n * it was subscribed to, until it completes or errors itself. Thus every value must be\n * emitted within specified period since previous value.\n *\n * If provided argument was Date, returned Observable behaves differently. It throws\n * if Observable did not complete before provided Date. This means that periods between\n * emission of particular values do not matter in this case. If Observable did not complete\n * before provided Date, source Observable will be unsubscribed. Other than that, resulting\n * stream behaves just as source Observable.\n *\n * `timeout` accepts also a Scheduler as a second parameter. It is used to schedule moment (or moments)\n * when returned Observable will check if source stream emitted value or completed.\n *\n * ## Examples\n * Check if ticks are emitted within certain timespan\n * ```ts\n * import { interval } from 'rxjs';\n * import { timeout } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n *\n * seconds.pipe(timeout(1100))      // Let's use bigger timespan to be safe,\n *                                  // since `interval` might fire a bit later then scheduled.\n * .subscribe(\n *     value => console.log(value), // Will emit numbers just as regular `interval` would.\n *     err => console.log(err),     // Will never be called.\n * );\n *\n * seconds.pipe(timeout(900))\n * .subscribe(\n *     value => console.log(value), // Will never be called.\n *     err => console.log(err),     // Will emit error before even first value is emitted,\n *                                  // since it did not arrive within 900ms period.\n * );\n * ```\n *\n * Use Date to check if Observable completed\n * ```ts\n * import { interval } from 'rxjs';\n * import { timeout } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n *\n * seconds.pipe(\n *   timeout(new Date(\"December 17, 2020 03:24:00\")),\n * )\n * .subscribe(\n *     value => console.log(value), // Will emit values as regular `interval` would\n *                                  // until December 17, 2020 at 03:24:00.\n *     err => console.log(err)      // On December 17, 2020 at 03:24:00 it will emit an error,\n *                                  // since Observable did not complete by then.\n * );\n * ```\n * @see {@link timeoutWith}\n *\n * @param {number|Date} due Number specifying period within which Observable must emit values\n *                          or Date specifying before when Observable should complete\n * @param {SchedulerLike} [scheduler] Scheduler controlling when timeout checks occur.\n * @return {Observable<T>} Observable that mirrors behaviour of source, unless timeout checks fail.\n * @method timeout\n * @owner Observable\n */\nexport declare function timeout<T>(due: number | Date, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/timeoutWith.d.ts"
    ],
    "content": "import { ObservableInput, OperatorFunction, SchedulerLike } from '../types';\nexport declare function timeoutWith<T, R>(due: number | Date, withObservable: ObservableInput<R>, scheduler?: SchedulerLike): OperatorFunction<T, T | R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/timestamp.d.ts"
    ],
    "content": "import { OperatorFunction, SchedulerLike, Timestamp as TimestampInterface } from '../types';\n/**\n * Attaches a timestamp to each item emitted by an observable indicating when it was emitted\n *\n * The `timestamp` operator maps the *source* observable stream to an object of type\n * `{value: T, timestamp: R}`. The properties are generically typed. The `value` property contains the value\n * and type of the *source* observable. The `timestamp` is generated by the schedulers `now` function. By\n * default it uses the *async* scheduler which simply returns `Date.now()` (milliseconds since 1970/01/01\n * 00:00:00:000) and therefore is of type `number`.\n *\n * ![](timestamp.png)\n *\n * ## Example\n *\n * In this example there is a timestamp attached to the documents click event.\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { timestamp } from 'rxjs/operators';\n *\n * const clickWithTimestamp = fromEvent(document, 'click').pipe(\n *   timestamp()\n * );\n *\n * // Emits data of type {value: MouseEvent, timestamp: number}\n * clickWithTimestamp.subscribe(data => {\n *   console.log(data);\n * });\n * ```\n *\n * @param scheduler\n * @return {Observable<Timestamp<any>>|WebSocketSubject<T>|Observable<T>}\n * @method timestamp\n * @owner Observable\n */\nexport declare function timestamp<T>(scheduler?: SchedulerLike): OperatorFunction<T, Timestamp<T>>;\nexport declare class Timestamp<T> implements TimestampInterface<T> {\n    value: T;\n    timestamp: number;\n    constructor(value: T, timestamp: number);\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/toArray.d.ts"
    ],
    "content": "import { OperatorFunction } from '../types';\n/**\n * Collects all source emissions and emits them as an array when the source completes.\n *\n * <span class=\"informal\">Get all values inside an array when the source completes</span>\n *\n * ![](toArray.png)\n *\n * `toArray` will wait until the source Observable completes before emitting\n * the array containing all emissions. When the source Observable errors no\n * array will be emitted.\n *\n *  ## Example\n * ```ts\n * import { interval } from 'rxjs';\n * import { toArray, take } from 'rxjs/operators';\n *\n * const source = interval(1000);\n * const example = source.pipe(\n *   take(10),\n *   toArray()\n * );\n *\n * const subscribe = example.subscribe(val => console.log(val));\n *\n * // output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n *\n * ```\n* @return An array from an observable sequence.\n* @method toArray\n* @owner Observable\n*/\nexport declare function toArray<T>(): OperatorFunction<T, T[]>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/window.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n/**\n * Branch out the source Observable values as a nested Observable whenever\n * `windowBoundaries` emits.\n *\n * <span class=\"informal\">It's like {@link buffer}, but emits a nested Observable\n * instead of an array.</span>\n *\n * ![](window.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping\n * windows. It emits the current window and opens a new one whenever the\n * Observable `windowBoundaries` emits an item. Because each window is an\n * Observable, the output is a higher-order Observable.\n *\n * ## Example\n * In every window of 1 second each, emit at most 2 click events\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { window, mergeAll, map, take } from 'rxjs/operators';\n *\n *  const clicks = fromEvent(document, 'click');\n *  const sec = interval(1000);\n *  const result = clicks.pipe(\n *      window(sec),\n *      map(win => win.pipe(take(2))), // each window has at most 2 emissions\n *      mergeAll(),              // flatten the Observable-of-Observables\n *  );\n *  result.subscribe(x => console.log(x));\n * ```\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link buffer}\n *\n * @param {Observable<any>} windowBoundaries An Observable that completes the\n * previous window and starts a new window.\n * @return {Observable<Observable<T>>} An Observable of windows, which are\n * Observables emitting values of the source Observable.\n * @method window\n * @owner Observable\n */\nexport declare function window<T>(windowBoundaries: Observable<any>): OperatorFunction<T, Observable<T>>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/windowCount.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n/**\n * Branch out the source Observable values as a nested Observable with each\n * nested Observable emitting at most `windowSize` values.\n *\n * <span class=\"informal\">It's like {@link bufferCount}, but emits a nested\n * Observable instead of an array.</span>\n *\n * ![](windowCount.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits windows every `startWindowEvery`\n * items, each containing no more than `windowSize` items. When the source\n * Observable completes or encounters an error, the output Observable emits\n * the current window and propagates the notification from the source\n * Observable. If `startWindowEvery` is not provided, then new windows are\n * started immediately at the start of the source and when each window completes\n * with size `windowSize`.\n *\n * ## Examples\n * Ignore every 3rd click event, starting from the first one\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowCount, map, mergeAll, skip } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n *   windowCount(3),\n *   map(win => win.pipe(skip(1))), // skip first of every 3 clicks\n *   mergeAll()                     // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Ignore every 3rd click event, starting from the third one\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowCount, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n *   windowCount(2, 3),\n *   mergeAll(),              // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link bufferCount}\n *\n * @param {number} windowSize The maximum number of values emitted by each\n * window.\n * @param {number} [startWindowEvery] Interval at which to start a new window.\n * For example if `startWindowEvery` is `2`, then a new window will be started\n * on every other value from the source. A new window is started at the\n * beginning of the source by default.\n * @return {Observable<Observable<T>>} An Observable of windows, which in turn\n * are Observable of values.\n * @method windowCount\n * @owner Observable\n */\nexport declare function windowCount<T>(windowSize: number, startWindowEvery?: number): OperatorFunction<T, Observable<T>>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/windowTime.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { OperatorFunction, SchedulerLike } from '../types';\n/**\n * Branch out the source Observable values as a nested Observable periodically\n * in time.\n *\n * <span class=\"informal\">It's like {@link bufferTime}, but emits a nested\n * Observable instead of an array.</span>\n *\n * ![](windowTime.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable starts a new window periodically, as\n * determined by the `windowCreationInterval` argument. It emits each window\n * after a fixed timespan, specified by the `windowTimeSpan` argument. When the\n * source Observable completes or encounters an error, the output Observable\n * emits the current window and propagates the notification from the source\n * Observable. If `windowCreationInterval` is not provided, the output\n * Observable starts a new window when the previous window of duration\n * `windowTimeSpan` completes. If `maxWindowCount` is provided, each window\n * will emit at most fixed number of values. Window will complete immediately\n * after emitting last value and next one still will open as specified by\n * `windowTimeSpan` and `windowCreationInterval` arguments.\n *\n * ## Examples\n * In every window of 1 second each, emit at most 2 click events\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowTime, map, mergeAll, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n *   windowTime(1000),\n *   map(win => win.pipe(take(2))), // each window has at most 2 emissions\n *   mergeAll(),                    // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Every 5 seconds start a window 1 second long, and emit at most 2 click events per window\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowTime, map, mergeAll, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n *   windowTime(1000, 5000),\n *   map(win => win.pipe(take(2))), // each window has at most 2 emissions\n *   mergeAll(),                    // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Same as example above but with maxWindowCount instead of take\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowTime, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n *   windowTime(1000, 5000, 2), // each window has still at most 2 emissions\n *   mergeAll(),                // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link bufferTime}\n *\n * @param {number} windowTimeSpan The amount of time to fill each window.\n * @param {number} [windowCreationInterval] The interval at which to start new\n * windows.\n * @param {number} [maxWindowSize=Number.POSITIVE_INFINITY] Max number of\n * values each window can emit before completion.\n * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the\n * intervals that determine window boundaries.\n * @return {Observable<Observable<T>>} An observable of windows, which in turn\n * are Observables.\n * @method windowTime\n * @owner Observable\n */\nexport declare function windowTime<T>(windowTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction<T, Observable<T>>;\nexport declare function windowTime<T>(windowTimeSpan: number, windowCreationInterval: number, scheduler?: SchedulerLike): OperatorFunction<T, Observable<T>>;\nexport declare function windowTime<T>(windowTimeSpan: number, windowCreationInterval: number, maxWindowSize: number, scheduler?: SchedulerLike): OperatorFunction<T, Observable<T>>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/windowToggle.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n/**\n * Branch out the source Observable values as a nested Observable starting from\n * an emission from `openings` and ending when the output of `closingSelector`\n * emits.\n *\n * <span class=\"informal\">It's like {@link bufferToggle}, but emits a nested\n * Observable instead of an array.</span>\n *\n * ![](windowToggle.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits windows that contain those items\n * emitted by the source Observable between the time when the `openings`\n * Observable emits an item and when the Observable returned by\n * `closingSelector` emits an item.\n *\n * ## Example\n * Every other second, emit the click events from the next 500ms\n * ```ts\n * import { fromEvent, interval, EMPTY } from 'rxjs';\n * import { windowToggle, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const openings = interval(1000);\n * const result = clicks.pipe(\n *   windowToggle(openings, i => i % 2 ? interval(500) : EMPTY),\n *   mergeAll()\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowWhen}\n * @see {@link bufferToggle}\n *\n * @param {Observable<O>} openings An observable of notifications to start new\n * windows.\n * @param {function(value: O): Observable} closingSelector A function that takes\n * the value emitted by the `openings` observable and returns an Observable,\n * which, when it emits (either `next` or `complete`), signals that the\n * associated window should complete.\n * @return {Observable<Observable<T>>} An observable of windows, which in turn\n * are Observables.\n * @method windowToggle\n * @owner Observable\n */\nexport declare function windowToggle<T, O>(openings: Observable<O>, closingSelector: (openValue: O) => Observable<any>): OperatorFunction<T, Observable<T>>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/windowWhen.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n/**\n * Branch out the source Observable values as a nested Observable using a\n * factory function of closing Observables to determine when to start a new\n * window.\n *\n * <span class=\"informal\">It's like {@link bufferWhen}, but emits a nested\n * Observable instead of an array.</span>\n *\n * ![](windowWhen.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping windows.\n * It emits the current window and opens a new one whenever the Observable\n * produced by the specified `closingSelector` function emits an item. The first\n * window is opened immediately when subscribing to the output Observable.\n *\n * ## Example\n * Emit only the first two clicks events in every window of [1-5] random seconds\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { windowWhen, map, mergeAll, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n *   windowWhen(() => interval(1000 + Math.random() * 4000)),\n *   map(win => win.pipe(take(2))),     // each window has at most 2 emissions\n *   mergeAll()                         // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link bufferWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals (on either `next` or\n * `complete`) when to close the previous window and start a new one.\n * @return {Observable<Observable<T>>} An observable of windows, which in turn\n * are Observables.\n * @method windowWhen\n * @owner Observable\n */\nexport declare function windowWhen<T>(closingSelector: () => Observable<any>): OperatorFunction<T, Observable<T>>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/withLatestFrom.d.ts"
    ],
    "content": "import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nexport declare function withLatestFrom<T, R>(project: (v1: T) => R): OperatorFunction<T, R>;\nexport declare function withLatestFrom<T, O2 extends ObservableInput<any>, R>(source2: O2, project: (v1: T, v2: ObservedValueOf<O2>) => R): OperatorFunction<T, R>;\nexport declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(v2: O2, v3: O3, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R): OperatorFunction<T, R>;\nexport declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(v2: O2, v3: O3, v4: O4, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R): OperatorFunction<T, R>;\nexport declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(v2: O2, v3: O3, v4: O4, v5: O5, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R): OperatorFunction<T, R>;\nexport declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R): OperatorFunction<T, R>;\nexport declare function withLatestFrom<T, O2 extends ObservableInput<any>>(source2: O2): OperatorFunction<T, [T, ObservedValueOf<O2>]>;\nexport declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v2: O2, v3: O3): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>]>;\nexport declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v2: O2, v3: O3, v4: O4): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;\nexport declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v2: O2, v3: O3, v4: O4, v5: O5): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;\nexport declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;\nexport declare function withLatestFrom<T, R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): OperatorFunction<T, R>;\nexport declare function withLatestFrom<T, R>(array: ObservableInput<any>[]): OperatorFunction<T, R>;\nexport declare function withLatestFrom<T, R>(array: ObservableInput<any>[], project: (...values: Array<any>) => R): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/zip.d.ts"
    ],
    "content": "import { ObservableInput, OperatorFunction } from '../types';\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, R>(project: (v1: T) => R): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, T2, R>(v2: ObservableInput<T2>, project: (v1: T, v2: T2) => R): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, T2, T3, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, T2, T3, T4, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, T2, T3, T4, T5, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, T2, T3, T4, T5, T6, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, T2>(v2: ObservableInput<T2>): OperatorFunction<T, [T, T2]>;\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>): OperatorFunction<T, [T, T2, T3]>;\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): OperatorFunction<T, [T, T2, T3, T4]>;\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): OperatorFunction<T, [T, T2, T3, T4, T5]>;\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): OperatorFunction<T, [T, T2, T3, T4, T5, T6]>;\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, R>(...observables: Array<ObservableInput<T> | ((...values: Array<T>) => R)>): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, R>(array: Array<ObservableInput<T>>): OperatorFunction<T, R>;\n/** @deprecated Deprecated in favor of static zip. */\nexport declare function zip<T, TOther, R>(array: Array<ObservableInput<TOther>>, project: (v1: T, ...values: Array<TOther>) => R): OperatorFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/operators/zipAll.d.ts"
    ],
    "content": "import { OperatorFunction, ObservableInput } from '../types';\nexport declare function zipAll<T>(): OperatorFunction<ObservableInput<T>, T[]>;\nexport declare function zipAll<T>(): OperatorFunction<any, T[]>;\nexport declare function zipAll<T, R>(project: (...values: T[]) => R): OperatorFunction<ObservableInput<T>, R>;\nexport declare function zipAll<R>(project: (...values: Array<any>) => R): OperatorFunction<any, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/OuterSubscriber.d.ts"
    ],
    "content": "import { Subscriber } from './Subscriber';\nimport { InnerSubscriber } from './InnerSubscriber';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class OuterSubscriber<T, R> extends Subscriber<T> {\n    notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, R>): void;\n    notifyError(error: any, innerSub: InnerSubscriber<T, R>): void;\n    notifyComplete(innerSub: InnerSubscriber<T, R>): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/ReplaySubject.d.ts"
    ],
    "content": "import { Subject } from './Subject';\nimport { SchedulerLike } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n/**\n * A variant of Subject that \"replays\" or emits old values to new subscribers.\n * It buffers a set number of values and will emit those values immediately to\n * any new subscribers in addition to emitting new values to existing subscribers.\n *\n * @class ReplaySubject<T>\n */\nexport declare class ReplaySubject<T> extends Subject<T> {\n    private scheduler?;\n    private _events;\n    private _bufferSize;\n    private _windowTime;\n    private _infiniteTimeWindow;\n    constructor(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike);\n    private nextInfiniteTimeWindow;\n    private nextTimeWindow;\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _subscribe(subscriber: Subscriber<T>): Subscription;\n    _getNow(): number;\n    private _trimBufferThenGetEvents;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/Rx.d.ts"
    ],
    "content": "export { Subject, AnonymousSubject } from './Subject';\nexport { Observable } from './Observable';\nexport { config } from './config';\nimport 'rxjs-compat/add/observable/bindCallback';\nimport 'rxjs-compat/add/observable/bindNodeCallback';\nimport 'rxjs-compat/add/observable/combineLatest';\nimport 'rxjs-compat/add/observable/concat';\nimport 'rxjs-compat/add/observable/defer';\nimport 'rxjs-compat/add/observable/empty';\nimport 'rxjs-compat/add/observable/forkJoin';\nimport 'rxjs-compat/add/observable/from';\nimport 'rxjs-compat/add/observable/fromEvent';\nimport 'rxjs-compat/add/observable/fromEventPattern';\nimport 'rxjs-compat/add/observable/fromPromise';\nimport 'rxjs-compat/add/observable/generate';\nimport 'rxjs-compat/add/observable/if';\nimport 'rxjs-compat/add/observable/interval';\nimport 'rxjs-compat/add/observable/merge';\nimport 'rxjs-compat/add/observable/race';\nimport 'rxjs-compat/add/observable/never';\nimport 'rxjs-compat/add/observable/of';\nimport 'rxjs-compat/add/observable/onErrorResumeNext';\nimport 'rxjs-compat/add/observable/pairs';\nimport 'rxjs-compat/add/observable/range';\nimport 'rxjs-compat/add/observable/using';\nimport 'rxjs-compat/add/observable/throw';\nimport 'rxjs-compat/add/observable/timer';\nimport 'rxjs-compat/add/observable/zip';\nimport 'rxjs-compat/add/observable/dom/ajax';\nimport 'rxjs-compat/add/observable/dom/webSocket';\nimport 'rxjs-compat/add/operator/buffer';\nimport 'rxjs-compat/add/operator/bufferCount';\nimport 'rxjs-compat/add/operator/bufferTime';\nimport 'rxjs-compat/add/operator/bufferToggle';\nimport 'rxjs-compat/add/operator/bufferWhen';\nimport 'rxjs-compat/add/operator/catch';\nimport 'rxjs-compat/add/operator/combineAll';\nimport 'rxjs-compat/add/operator/combineLatest';\nimport 'rxjs-compat/add/operator/concat';\nimport 'rxjs-compat/add/operator/concatAll';\nimport 'rxjs-compat/add/operator/concatMap';\nimport 'rxjs-compat/add/operator/concatMapTo';\nimport 'rxjs-compat/add/operator/count';\nimport 'rxjs-compat/add/operator/dematerialize';\nimport 'rxjs-compat/add/operator/debounce';\nimport 'rxjs-compat/add/operator/debounceTime';\nimport 'rxjs-compat/add/operator/defaultIfEmpty';\nimport 'rxjs-compat/add/operator/delay';\nimport 'rxjs-compat/add/operator/delayWhen';\nimport 'rxjs-compat/add/operator/distinct';\nimport 'rxjs-compat/add/operator/distinctUntilChanged';\nimport 'rxjs-compat/add/operator/distinctUntilKeyChanged';\nimport 'rxjs-compat/add/operator/do';\nimport 'rxjs-compat/add/operator/exhaust';\nimport 'rxjs-compat/add/operator/exhaustMap';\nimport 'rxjs-compat/add/operator/expand';\nimport 'rxjs-compat/add/operator/elementAt';\nimport 'rxjs-compat/add/operator/filter';\nimport 'rxjs-compat/add/operator/finally';\nimport 'rxjs-compat/add/operator/find';\nimport 'rxjs-compat/add/operator/findIndex';\nimport 'rxjs-compat/add/operator/first';\nimport 'rxjs-compat/add/operator/groupBy';\nimport 'rxjs-compat/add/operator/ignoreElements';\nimport 'rxjs-compat/add/operator/isEmpty';\nimport 'rxjs-compat/add/operator/audit';\nimport 'rxjs-compat/add/operator/auditTime';\nimport 'rxjs-compat/add/operator/last';\nimport 'rxjs-compat/add/operator/let';\nimport 'rxjs-compat/add/operator/every';\nimport 'rxjs-compat/add/operator/map';\nimport 'rxjs-compat/add/operator/mapTo';\nimport 'rxjs-compat/add/operator/materialize';\nimport 'rxjs-compat/add/operator/max';\nimport 'rxjs-compat/add/operator/merge';\nimport 'rxjs-compat/add/operator/mergeAll';\nimport 'rxjs-compat/add/operator/mergeMap';\nimport 'rxjs-compat/add/operator/mergeMapTo';\nimport 'rxjs-compat/add/operator/mergeScan';\nimport 'rxjs-compat/add/operator/min';\nimport 'rxjs-compat/add/operator/multicast';\nimport 'rxjs-compat/add/operator/observeOn';\nimport 'rxjs-compat/add/operator/onErrorResumeNext';\nimport 'rxjs-compat/add/operator/pairwise';\nimport 'rxjs-compat/add/operator/partition';\nimport 'rxjs-compat/add/operator/pluck';\nimport 'rxjs-compat/add/operator/publish';\nimport 'rxjs-compat/add/operator/publishBehavior';\nimport 'rxjs-compat/add/operator/publishReplay';\nimport 'rxjs-compat/add/operator/publishLast';\nimport 'rxjs-compat/add/operator/race';\nimport 'rxjs-compat/add/operator/reduce';\nimport 'rxjs-compat/add/operator/repeat';\nimport 'rxjs-compat/add/operator/repeatWhen';\nimport 'rxjs-compat/add/operator/retry';\nimport 'rxjs-compat/add/operator/retryWhen';\nimport 'rxjs-compat/add/operator/sample';\nimport 'rxjs-compat/add/operator/sampleTime';\nimport 'rxjs-compat/add/operator/scan';\nimport 'rxjs-compat/add/operator/sequenceEqual';\nimport 'rxjs-compat/add/operator/share';\nimport 'rxjs-compat/add/operator/shareReplay';\nimport 'rxjs-compat/add/operator/single';\nimport 'rxjs-compat/add/operator/skip';\nimport 'rxjs-compat/add/operator/skipLast';\nimport 'rxjs-compat/add/operator/skipUntil';\nimport 'rxjs-compat/add/operator/skipWhile';\nimport 'rxjs-compat/add/operator/startWith';\nimport 'rxjs-compat/add/operator/subscribeOn';\nimport 'rxjs-compat/add/operator/switch';\nimport 'rxjs-compat/add/operator/switchMap';\nimport 'rxjs-compat/add/operator/switchMapTo';\nimport 'rxjs-compat/add/operator/take';\nimport 'rxjs-compat/add/operator/takeLast';\nimport 'rxjs-compat/add/operator/takeUntil';\nimport 'rxjs-compat/add/operator/takeWhile';\nimport 'rxjs-compat/add/operator/throttle';\nimport 'rxjs-compat/add/operator/throttleTime';\nimport 'rxjs-compat/add/operator/timeInterval';\nimport 'rxjs-compat/add/operator/timeout';\nimport 'rxjs-compat/add/operator/timeoutWith';\nimport 'rxjs-compat/add/operator/timestamp';\nimport 'rxjs-compat/add/operator/toArray';\nimport 'rxjs-compat/add/operator/toPromise';\nimport 'rxjs-compat/add/operator/window';\nimport 'rxjs-compat/add/operator/windowCount';\nimport 'rxjs-compat/add/operator/windowTime';\nimport 'rxjs-compat/add/operator/windowToggle';\nimport 'rxjs-compat/add/operator/windowWhen';\nimport 'rxjs-compat/add/operator/withLatestFrom';\nimport 'rxjs-compat/add/operator/zip';\nimport 'rxjs-compat/add/operator/zipAll';\nexport { Operator } from './Operator';\nexport { Observer } from './types';\nexport { Subscription } from './Subscription';\nexport { Subscriber } from './Subscriber';\nexport { AsyncSubject } from './AsyncSubject';\nexport { ReplaySubject } from './ReplaySubject';\nexport { BehaviorSubject } from './BehaviorSubject';\nexport { ConnectableObservable } from './observable/ConnectableObservable';\nexport { Notification, NotificationKind } from './Notification';\nexport { EmptyError } from './util/EmptyError';\nexport { ArgumentOutOfRangeError } from './util/ArgumentOutOfRangeError';\nexport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nexport { TimeoutError } from './util/TimeoutError';\nexport { UnsubscriptionError } from './util/UnsubscriptionError';\nexport { TimeInterval } from './operators/timeInterval';\nexport { Timestamp } from './operators/timestamp';\nexport { TestScheduler } from './testing/TestScheduler';\nexport { VirtualTimeScheduler } from './scheduler/VirtualTimeScheduler';\nexport { AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError } from './observable/dom/AjaxObservable';\nexport { pipe } from './util/pipe';\nimport { AsapScheduler } from './scheduler/AsapScheduler';\nimport { AsyncScheduler } from './scheduler/AsyncScheduler';\nimport { QueueScheduler } from './scheduler/QueueScheduler';\nimport { AnimationFrameScheduler } from './scheduler/AnimationFrameScheduler';\nimport * as _operators from './operators/index';\nexport declare const operators: typeof _operators;\n/**\n * @typedef {Object} Rx.Scheduler\n * @property {SchedulerLike} asap Schedules on the micro task queue, which is the same\n * queue used for promises. Basically after the current job, but before the next job.\n * Use this for asynchronous conversions.\n * @property {SchedulerLike} queue Schedules on a queue in the current event frame\n * (trampoline scheduler). Use this for iteration operations.\n * @property {SchedulerLike} animationFrame Schedules work with `requestAnimationFrame`.\n * Use this for synchronizing with the platform's painting.\n * @property {SchedulerLike} async Schedules work with `setInterval`. Use this for\n * time-based operations.\n */\ndeclare let Scheduler: {\n    asap: AsapScheduler;\n    queue: QueueScheduler;\n    animationFrame: AnimationFrameScheduler;\n    async: AsyncScheduler;\n};\n/**\n * @typedef {Object} Rx.Symbol\n * @property {Symbol|string} rxSubscriber A symbol to use as a property name to\n * retrieve an \"Rx safe\" Observer from an object. \"Rx safety\" can be defined as\n * an object that has all of the traits of an Rx Subscriber, including the\n * ability to add and remove subscriptions to the subscription chain and\n * guarantees involving event triggering (can't \"next\" after unsubscription,\n * etc).\n * @property {Symbol|string} observable A symbol to use as a property name to\n * retrieve an Observable as defined by the [ECMAScript \"Observable\" spec](https://github.com/zenparsing/es-observable).\n * @property {Symbol|string} iterator The ES6 symbol to use as a property name\n * to retrieve an iterator from an object.\n */\ndeclare let Symbol: {\n    rxSubscriber: string | symbol;\n    observable: string | symbol;\n    iterator: symbol;\n};\nexport { Scheduler, Symbol };\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduled/scheduleArray.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nexport declare function scheduleArray<T>(input: ArrayLike<T>, scheduler: SchedulerLike): Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduled/scheduled.d.ts"
    ],
    "content": "import { ObservableInput, SchedulerLike, Observable } from 'rxjs';\n/**\n * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions\n * are scheduled on the provided scheduler.\n *\n * @see from\n * @see of\n *\n * @param input The observable, array, promise, iterable, etc you would like to schedule\n * @param scheduler The scheduler to use to schedule the subscription and emissions from\n * the returned observable.\n */\nexport declare function scheduled<T>(input: ObservableInput<T>, scheduler: SchedulerLike): Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduled/scheduleIterable.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nexport declare function scheduleIterable<T>(input: Iterable<T>, scheduler: SchedulerLike): Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduled/scheduleObservable.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { InteropObservable, SchedulerLike } from '../types';\nexport declare function scheduleObservable<T>(input: InteropObservable<T>, scheduler: SchedulerLike): Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduled/schedulePromise.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nexport declare function schedulePromise<T>(input: PromiseLike<T>, scheduler: SchedulerLike): Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/Scheduler.d.ts"
    ],
    "content": "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n *   now(): number;\n *   schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}\n */\nexport declare class Scheduler implements SchedulerLike {\n    private SchedulerAction;\n    /**\n     * Note: the extra arrow function wrapper is to make testing by overriding\n     * Date.now easier.\n     * @nocollapse\n     */\n    static now: () => number;\n    constructor(SchedulerAction: typeof Action, now?: () => number);\n    /**\n     * A getter method that returns a number representing the current time\n     * (at the time this function was called) according to the scheduler's own\n     * internal clock.\n     * @return {number} A number that represents the current time. May or may not\n     * have a relation to wall-clock time. May or may not refer to a time unit\n     * (e.g. milliseconds).\n     */\n    now: () => number;\n    /**\n     * Schedules a function, `work`, for execution. May happen at some point in\n     * the future, according to the `delay` parameter, if specified. May be passed\n     * some context object, `state`, which will be passed to the `work` function.\n     *\n     * The given arguments will be processed an stored as an Action object in a\n     * queue of actions.\n     *\n     * @param {function(state: ?T): ?Subscription} work A function representing a\n     * task, or some unit of work to be executed by the Scheduler.\n     * @param {number} [delay] Time to wait before executing the work, where the\n     * time unit is implicit and defined by the Scheduler itself.\n     * @param {T} [state] Some contextual data that the `work` function uses when\n     * called by the Scheduler.\n     * @return {Subscription} A subscription in order to be able to unsubscribe\n     * the scheduled work.\n     */\n    schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay?: number, state?: T): Subscription;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/Action.d.ts"
    ],
    "content": "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action<T> extends Subscription {\n *   new (scheduler: Scheduler, work: (state?: T) => void);\n *   schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action<T>\n */\nexport declare class Action<T> extends Subscription {\n    constructor(scheduler: Scheduler, work: (this: SchedulerAction<T>, state?: T) => void);\n    /**\n     * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n     * some context object, `state`. May happen at some point in the future,\n     * according to the `delay` parameter, if specified.\n     * @param {T} [state] Some contextual data that the `work` function uses when\n     * called by the Scheduler.\n     * @param {number} [delay] Time to wait before executing the work, where the\n     * time unit is implicit and defined by the Scheduler.\n     * @return {void}\n     */\n    schedule(state?: T, delay?: number): Subscription;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/animationFrame.d.ts"
    ],
    "content": "import { AnimationFrameScheduler } from './AnimationFrameScheduler';\n/**\n *\n * Animation Frame Scheduler\n *\n * <span class=\"informal\">Perform task when `window.requestAnimationFrame` would fire</span>\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html: <div style=\"background: #0ff;\"></div>\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n *   div.style.height = height + \"px\";\n *\n *   this.schedule(height + 1);  // `this` references currently executing Action,\n *                               // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n *\n * @static true\n * @name animationFrame\n * @owner Scheduler\n */\nexport declare const animationFrame: AnimationFrameScheduler;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/AnimationFrameAction.d.ts"
    ],
    "content": "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class AnimationFrameAction<T> extends AsyncAction<T> {\n    protected scheduler: AnimationFrameScheduler;\n    protected work: (this: SchedulerAction<T>, state?: T) => void;\n    constructor(scheduler: AnimationFrameScheduler, work: (this: SchedulerAction<T>, state?: T) => void);\n    protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay?: number): any;\n    protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay?: number): any;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts"
    ],
    "content": "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport declare class AnimationFrameScheduler extends AsyncScheduler {\n    flush(action?: AsyncAction<any>): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/asap.d.ts"
    ],
    "content": "import { AsapScheduler } from './AsapScheduler';\n/**\n *\n * Asap Scheduler\n *\n * <span class=\"informal\">Perform task as fast as it can be performed asynchronously</span>\n *\n * `asap` scheduler behaves the same as {@link asyncScheduler} scheduler when you use it to delay task\n * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing\n * code to end and then it will try to execute given task as fast as possible.\n *\n * `asap` scheduler will do its best to minimize time between end of currently executing code\n * and start of scheduled task. This makes it best candidate for performing so called \"deferring\".\n * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves\n * some (although minimal) unwanted delay.\n *\n * Note that using `asap` scheduler does not necessarily mean that your task will be first to process\n * after currently executing code. In particular, if some task was also scheduled with `asap` before,\n * that task will execute first. That being said, if you need to schedule task asynchronously, but\n * as soon as possible, `asap` scheduler is your best bet.\n *\n * ## Example\n * Compare async and asap scheduler<\n * ```ts\n * import { asapScheduler, asyncScheduler } from 'rxjs';\n *\n * asyncScheduler.schedule(() => console.log('async')); // scheduling 'async' first...\n * asapScheduler.schedule(() => console.log('asap'));\n *\n * // Logs:\n * // \"asap\"\n * // \"async\"\n * // ... but 'asap' goes first!\n * ```\n * @static true\n * @name asap\n * @owner Scheduler\n */\nexport declare const asap: AsapScheduler;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/AsapAction.d.ts"
    ],
    "content": "import { AsyncAction } from './AsyncAction';\nimport { AsapScheduler } from './AsapScheduler';\nimport { SchedulerAction } from '../types';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class AsapAction<T> extends AsyncAction<T> {\n    protected scheduler: AsapScheduler;\n    protected work: (this: SchedulerAction<T>, state?: T) => void;\n    constructor(scheduler: AsapScheduler, work: (this: SchedulerAction<T>, state?: T) => void);\n    protected requestAsyncId(scheduler: AsapScheduler, id?: any, delay?: number): any;\n    protected recycleAsyncId(scheduler: AsapScheduler, id?: any, delay?: number): any;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts"
    ],
    "content": "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport declare class AsapScheduler extends AsyncScheduler {\n    flush(action?: AsyncAction<any>): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/async.d.ts"
    ],
    "content": "import { AsyncScheduler } from './AsyncScheduler';\n/**\n *\n * Async Scheduler\n *\n * <span class=\"informal\">Schedule task as if you used setTimeout(task, duration)</span>\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n *   console.log(state);\n *   this.schedule(state + 1, 1000); // `this` references currently executing Action,\n *                                   // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n *\n * @static true\n * @name async\n * @owner Scheduler\n */\nexport declare const async: AsyncScheduler;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/AsyncAction.d.ts"
    ],
    "content": "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class AsyncAction<T> extends Action<T> {\n    protected scheduler: AsyncScheduler;\n    protected work: (this: SchedulerAction<T>, state?: T) => void;\n    id: any;\n    state: T;\n    delay: number;\n    protected pending: boolean;\n    constructor(scheduler: AsyncScheduler, work: (this: SchedulerAction<T>, state?: T) => void);\n    schedule(state?: T, delay?: number): Subscription;\n    protected requestAsyncId(scheduler: AsyncScheduler, id?: any, delay?: number): any;\n    protected recycleAsyncId(scheduler: AsyncScheduler, id: any, delay?: number): any;\n    /**\n     * Immediately executes this action and the `work` it contains.\n     * @return {any}\n     */\n    execute(state: T, delay: number): any;\n    protected _execute(state: T, delay: number): any;\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _unsubscribe(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts"
    ],
    "content": "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nexport declare class AsyncScheduler extends Scheduler {\n    static delegate?: Scheduler;\n    actions: Array<AsyncAction<any>>;\n    /**\n     * A flag to indicate whether the Scheduler is currently executing a batch of\n     * queued actions.\n     * @type {boolean}\n     * @deprecated internal use only\n     */\n    active: boolean;\n    /**\n     * An internal ID used to track the latest asynchronous task such as those\n     * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n     * others.\n     * @type {any}\n     * @deprecated internal use only\n     */\n    scheduled: any;\n    constructor(SchedulerAction: typeof Action, now?: () => number);\n    schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay?: number, state?: T): Subscription;\n    flush(action: AsyncAction<any>): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/queue.d.ts"
    ],
    "content": "import { QueueScheduler } from './QueueScheduler';\n/**\n *\n * Queue Scheduler\n *\n * <span class=\"informal\">Put every next task on a queue, instead of executing it immediately</span>\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n *   queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n *   console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n *   if (state !== 0) {\n *     console.log('before', state);\n *     this.schedule(state - 1); // `this` references currently executing Action,\n *                               // which we reschedule with new state\n *     console.log('after', state);\n *   }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n *\n * @static true\n * @name queue\n * @owner Scheduler\n */\nexport declare const queue: QueueScheduler;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/QueueAction.d.ts"
    ],
    "content": "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class QueueAction<T> extends AsyncAction<T> {\n    protected scheduler: QueueScheduler;\n    protected work: (this: SchedulerAction<T>, state?: T) => void;\n    constructor(scheduler: QueueScheduler, work: (this: SchedulerAction<T>, state?: T) => void);\n    schedule(state?: T, delay?: number): Subscription;\n    execute(state: T, delay: number): any;\n    protected requestAsyncId(scheduler: QueueScheduler, id?: any, delay?: number): any;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts"
    ],
    "content": "import { AsyncScheduler } from './AsyncScheduler';\nexport declare class QueueScheduler extends AsyncScheduler {\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts"
    ],
    "content": "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { SchedulerAction } from '../types';\nexport declare class VirtualTimeScheduler extends AsyncScheduler {\n    maxFrames: number;\n    protected static frameTimeFactor: number;\n    frame: number;\n    index: number;\n    constructor(SchedulerAction?: typeof AsyncAction, maxFrames?: number);\n    /**\n     * Prompt the Scheduler to execute all of its queued actions, therefore\n     * clearing its queue.\n     * @return {void}\n     */\n    flush(): void;\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @nodoc\n */\nexport declare class VirtualAction<T> extends AsyncAction<T> {\n    protected scheduler: VirtualTimeScheduler;\n    protected work: (this: SchedulerAction<T>, state?: T) => void;\n    protected index: number;\n    protected active: boolean;\n    constructor(scheduler: VirtualTimeScheduler, work: (this: SchedulerAction<T>, state?: T) => void, index?: number);\n    schedule(state?: T, delay?: number): Subscription;\n    protected requestAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay?: number): any;\n    protected recycleAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay?: number): any;\n    protected _execute(state: T, delay: number): any;\n    static sortActions<T>(a: VirtualAction<T>, b: VirtualAction<T>): 1 | 0 | -1;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/Subject.d.ts"
    ],
    "content": "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\n/**\n * @class SubjectSubscriber<T>\n */\nexport declare class SubjectSubscriber<T> extends Subscriber<T> {\n    protected destination: Subject<T>;\n    constructor(destination: Subject<T>);\n}\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n *\n * @class Subject<T>\n */\nexport declare class Subject<T> extends Observable<T> implements SubscriptionLike {\n    observers: Observer<T>[];\n    closed: boolean;\n    isStopped: boolean;\n    hasError: boolean;\n    thrownError: any;\n    constructor();\n    /**@nocollapse\n     * @deprecated use new Subject() instead\n    */\n    static create: Function;\n    lift<R>(operator: Operator<T, R>): Observable<R>;\n    next(value?: T): void;\n    error(err: any): void;\n    complete(): void;\n    unsubscribe(): void;\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _trySubscribe(subscriber: Subscriber<T>): TeardownLogic;\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _subscribe(subscriber: Subscriber<T>): Subscription;\n    /**\n     * Creates a new Observable with this Subject as the source. You can do this\n     * to create customize Observer-side logic of the Subject and conceal it from\n     * code that uses the Observable.\n     * @return {Observable} Observable that the Subject casts to\n     */\n    asObservable(): Observable<T>;\n}\n/**\n * @class AnonymousSubject<T>\n */\nexport declare class AnonymousSubject<T> extends Subject<T> {\n    protected destination?: Observer<T>;\n    constructor(destination?: Observer<T>, source?: Observable<T>);\n    next(value: T): void;\n    error(err: any): void;\n    complete(): void;\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _subscribe(subscriber: Subscriber<T>): Subscription;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/SubjectSubscription.d.ts"
    ],
    "content": "import { Subject } from './Subject';\nimport { Observer } from './types';\nimport { Subscription } from './Subscription';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class SubjectSubscription<T> extends Subscription {\n    subject: Subject<T>;\n    subscriber: Observer<T>;\n    closed: boolean;\n    constructor(subject: Subject<T>, subscriber: Observer<T>);\n    unsubscribe(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/Subscriber.d.ts"
    ],
    "content": "import { Observer, PartialObserver } from './types';\nimport { Subscription } from './Subscription';\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber<T>\n */\nexport declare class Subscriber<T> extends Subscription implements Observer<T> {\n    /**\n     * A static factory for a Subscriber, given a (potentially partial) definition\n     * of an Observer.\n     * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n     * @param {function(e: ?any): void} [error] The `error` callback of an\n     * Observer.\n     * @param {function(): void} [complete] The `complete` callback of an\n     * Observer.\n     * @return {Subscriber<T>} A Subscriber wrapping the (partially defined)\n     * Observer represented by the given arguments.\n     * @nocollapse\n     */\n    static create<T>(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber<T>;\n    /** @internal */ syncErrorValue: any;\n    /** @internal */ syncErrorThrown: boolean;\n    /** @internal */ syncErrorThrowable: boolean;\n    protected isStopped: boolean;\n    protected destination: PartialObserver<any> | Subscriber<any>;\n    /**\n     * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n     * defined Observer or a `next` callback function.\n     * @param {function(e: ?any): void} [error] The `error` callback of an\n     * Observer.\n     * @param {function(): void} [complete] The `complete` callback of an\n     * Observer.\n     */\n    constructor(destinationOrNext?: PartialObserver<any> | ((value: T) => void), error?: (e?: any) => void, complete?: () => void);\n    /**\n     * The {@link Observer} callback to receive notifications of type `next` from\n     * the Observable, with a value. The Observable may call this method 0 or more\n     * times.\n     * @param {T} [value] The `next` value.\n     * @return {void}\n     */\n    next(value?: T): void;\n    /**\n     * The {@link Observer} callback to receive notifications of type `error` from\n     * the Observable, with an attached `Error`. Notifies the Observer that\n     * the Observable has experienced an error condition.\n     * @param {any} [err] The `error` exception.\n     * @return {void}\n     */\n    error(err?: any): void;\n    /**\n     * The {@link Observer} callback to receive a valueless notification of type\n     * `complete` from the Observable. Notifies the Observer that the Observable\n     * has finished sending push-based notifications.\n     * @return {void}\n     */\n    complete(): void;\n    unsubscribe(): void;\n    protected _next(value: T): void;\n    protected _error(err: any): void;\n    protected _complete(): void;\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _unsubscribeAndRecycle(): Subscriber<T>;\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class SafeSubscriber<T> extends Subscriber<T> {\n    private _parentSubscriber;\n    private _context;\n    constructor(_parentSubscriber: Subscriber<T>, observerOrNext?: PartialObserver<T> | ((value: T) => void), error?: (e?: any) => void, complete?: () => void);\n    next(value?: T): void;\n    error(err?: any): void;\n    complete(): void;\n    private __tryOrUnsub;\n    private __tryOrSetError;\n    /** @internal This is an internal implementation detail, do not use. */\n    _unsubscribe(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/Subscription.d.ts"
    ],
    "content": "import { SubscriptionLike, TeardownLogic } from './types';\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport declare class Subscription implements SubscriptionLike {\n    /** @nocollapse */\n    static EMPTY: Subscription;\n    /**\n     * A flag to indicate whether this Subscription has already been unsubscribed.\n     * @type {boolean}\n     */\n    closed: boolean;\n    /** @internal */\n    protected _parentOrParents: Subscription | Subscription[];\n    /** @internal */\n    private _subscriptions;\n    /**\n     * @param {function(): void} [unsubscribe] A function describing how to\n     * perform the disposal of resources when the `unsubscribe` method is called.\n     */\n    constructor(unsubscribe?: () => void);\n    /**\n     * Disposes the resources held by the subscription. May, for instance, cancel\n     * an ongoing Observable execution or cancel any other type of work that\n     * started when the Subscription was created.\n     * @return {void}\n     */\n    unsubscribe(): void;\n    /**\n     * Adds a tear down to be called during the unsubscribe() of this\n     * Subscription. Can also be used to add a child subscription.\n     *\n     * If the tear down being added is a subscription that is already\n     * unsubscribed, is the same reference `add` is being called on, or is\n     * `Subscription.EMPTY`, it will not be added.\n     *\n     * If this subscription is already in an `closed` state, the passed\n     * tear down logic will be executed immediately.\n     *\n     * When a parent subscription is unsubscribed, any child subscriptions that were added to it are also unsubscribed.\n     *\n     * @param {TeardownLogic} teardown The additional logic to execute on\n     * teardown.\n     * @return {Subscription} Returns the Subscription used or created to be\n     * added to the inner subscriptions list. This Subscription can be used with\n     * `remove()` to remove the passed teardown logic from the inner subscriptions\n     * list.\n     */\n    add(teardown: TeardownLogic): Subscription;\n    /**\n     * Removes a Subscription from the internal list of subscriptions that will\n     * unsubscribe during the unsubscribe process of this Subscription.\n     * @param {Subscription} subscription The subscription to remove.\n     * @return {void}\n     */\n    remove(subscription: Subscription): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/symbol/iterator.d.ts"
    ],
    "content": "export declare function getSymbolIterator(): symbol;\nexport declare const iterator: symbol;\n/**\n * @deprecated use {@link iterator} instead\n */\nexport declare const $$iterator: symbol;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/symbol/observable.d.ts"
    ],
    "content": "/** Symbol.observable addition */\ndeclare global {\n    interface SymbolConstructor {\n        readonly observable: symbol;\n    }\n}\n/** Symbol.observable or a string \"@@observable\". Used for interop */\nexport declare const observable: string | symbol;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/symbol/rxSubscriber.d.ts"
    ],
    "content": "/** @deprecated do not use, this is no longer checked by RxJS internals */\nexport declare const rxSubscriber: string | symbol;\n/**\n * @deprecated use rxSubscriber instead\n */\nexport declare const $$rxSubscriber: string | symbol;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/testing/ColdObservable.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { Scheduler } from '../Scheduler';\nimport { TestMessage } from './TestMessage';\nimport { SubscriptionLog } from './SubscriptionLog';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { Subscriber } from '../Subscriber';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class ColdObservable<T> extends Observable<T> implements SubscriptionLoggable {\n    messages: TestMessage[];\n    subscriptions: SubscriptionLog[];\n    scheduler: Scheduler;\n    logSubscribedFrame: () => number;\n    logUnsubscribedFrame: (index: number) => void;\n    constructor(messages: TestMessage[], scheduler: Scheduler);\n    scheduleMessages(subscriber: Subscriber<any>): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/testing/HotObservable.d.ts"
    ],
    "content": "import { Subject } from '../Subject';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Scheduler } from '../Scheduler';\nimport { TestMessage } from './TestMessage';\nimport { SubscriptionLog } from './SubscriptionLog';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport declare class HotObservable<T> extends Subject<T> implements SubscriptionLoggable {\n    messages: TestMessage[];\n    subscriptions: SubscriptionLog[];\n    scheduler: Scheduler;\n    logSubscribedFrame: () => number;\n    logUnsubscribedFrame: (index: number) => void;\n    constructor(messages: TestMessage[], scheduler: Scheduler);\n    /** @deprecated This is an internal implementation detail, do not use. */\n    _subscribe(subscriber: Subscriber<any>): Subscription;\n    setup(): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/testing/SubscriptionLog.d.ts"
    ],
    "content": "export declare class SubscriptionLog {\n    subscribedFrame: number;\n    unsubscribedFrame: number;\n    constructor(subscribedFrame: number, unsubscribedFrame?: number);\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/testing/SubscriptionLoggable.d.ts"
    ],
    "content": "import { Scheduler } from '../Scheduler';\nimport { SubscriptionLog } from './SubscriptionLog';\nexport declare class SubscriptionLoggable {\n    subscriptions: SubscriptionLog[];\n    scheduler: Scheduler;\n    logSubscribedFrame(): number;\n    logUnsubscribedFrame(index: number): void;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/testing/TestMessage.d.ts"
    ],
    "content": "import { Notification } from '../Notification';\nexport interface TestMessage {\n    frame: number;\n    notification: Notification<any>;\n    isGhost?: boolean;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/testing/TestScheduler.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\nimport { ColdObservable } from './ColdObservable';\nimport { HotObservable } from './HotObservable';\nimport { TestMessage } from './TestMessage';\nimport { SubscriptionLog } from './SubscriptionLog';\nimport { VirtualTimeScheduler } from '../scheduler/VirtualTimeScheduler';\nexport interface RunHelpers {\n    cold: typeof TestScheduler.prototype.createColdObservable;\n    hot: typeof TestScheduler.prototype.createHotObservable;\n    flush: typeof TestScheduler.prototype.flush;\n    expectObservable: typeof TestScheduler.prototype.expectObservable;\n    expectSubscriptions: typeof TestScheduler.prototype.expectSubscriptions;\n}\nexport declare type observableToBeFn = (marbles: string, values?: any, errorValue?: any) => void;\nexport declare type subscriptionLogsToBeFn = (marbles: string | string[]) => void;\nexport declare class TestScheduler extends VirtualTimeScheduler {\n    assertDeepEqual: (actual: any, expected: any) => boolean | void;\n    readonly hotObservables: HotObservable<any>[];\n    readonly coldObservables: ColdObservable<any>[];\n    private flushTests;\n    private runMode;\n    constructor(assertDeepEqual: (actual: any, expected: any) => boolean | void);\n    createTime(marbles: string): number;\n    /**\n     * @param marbles A diagram in the marble DSL. Letters map to keys in `values` if provided.\n     * @param values Values to use for the letters in `marbles`. If ommitted, the letters themselves are used.\n     * @param error The error to use for the `#` marble (if present).\n     */\n    createColdObservable<T = string>(marbles: string, values?: {\n        [marble: string]: T;\n    }, error?: any): ColdObservable<T>;\n    /**\n     * @param marbles A diagram in the marble DSL. Letters map to keys in `values` if provided.\n     * @param values Values to use for the letters in `marbles`. If ommitted, the letters themselves are used.\n     * @param error The error to use for the `#` marble (if present).\n     */\n    createHotObservable<T = string>(marbles: string, values?: {\n        [marble: string]: T;\n    }, error?: any): HotObservable<T>;\n    private materializeInnerObservable;\n    expectObservable(observable: Observable<any>, subscriptionMarbles?: string): ({\n        toBe: observableToBeFn;\n    });\n    expectSubscriptions(actualSubscriptionLogs: SubscriptionLog[]): ({\n        toBe: subscriptionLogsToBeFn;\n    });\n    flush(): void;\n    /** @nocollapse */\n    static parseMarblesAsSubscriptions(marbles: string, runMode?: boolean): SubscriptionLog;\n    /** @nocollapse */\n    static parseMarbles(marbles: string, values?: any, errorValue?: any, materializeInnerObservables?: boolean, runMode?: boolean): TestMessage[];\n    run<T>(callback: (helpers: RunHelpers) => T): T;\n}\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/types.d.ts"
    ],
    "content": "import { Observable } from './Observable';\nimport { Subscription } from './Subscription';\n/** OPERATOR INTERFACES */\nexport interface UnaryFunction<T, R> {\n    (source: T): R;\n}\nexport interface OperatorFunction<T, R> extends UnaryFunction<Observable<T>, Observable<R>> {\n}\nexport declare type FactoryOrValue<T> = T | (() => T);\nexport interface MonoTypeOperatorFunction<T> extends OperatorFunction<T, T> {\n}\nexport interface Timestamp<T> {\n    value: T;\n    timestamp: number;\n}\nexport interface TimeInterval<T> {\n    value: T;\n    interval: number;\n}\n/** SUBSCRIPTION INTERFACES */\nexport interface Unsubscribable {\n    unsubscribe(): void;\n}\nexport declare type TeardownLogic = Unsubscribable | Function | void;\nexport interface SubscriptionLike extends Unsubscribable {\n    unsubscribe(): void;\n    readonly closed: boolean;\n}\nexport declare type SubscribableOrPromise<T> = Subscribable<T> | Subscribable<never> | PromiseLike<T> | InteropObservable<T>;\n/** OBSERVABLE INTERFACES */\nexport interface Subscribable<T> {\n    subscribe(observer?: PartialObserver<T>): Unsubscribable;\n    /** @deprecated Use an observer instead of a complete callback */\n    subscribe(next: null | undefined, error: null | undefined, complete: () => void): Unsubscribable;\n    /** @deprecated Use an observer instead of an error callback */\n    subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Unsubscribable;\n    /** @deprecated Use an observer instead of a complete callback */\n    subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Unsubscribable;\n    subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Unsubscribable;\n}\nexport declare type ObservableInput<T> = SubscribableOrPromise<T> | ArrayLike<T> | Iterable<T>;\n/** @deprecated use {@link InteropObservable } */\nexport declare type ObservableLike<T> = InteropObservable<T>;\nexport declare type InteropObservable<T> = {\n    [Symbol.observable]: () => Subscribable<T>;\n};\n/** OBSERVER INTERFACES */\nexport interface NextObserver<T> {\n    closed?: boolean;\n    next: (value: T) => void;\n    error?: (err: any) => void;\n    complete?: () => void;\n}\nexport interface ErrorObserver<T> {\n    closed?: boolean;\n    next?: (value: T) => void;\n    error: (err: any) => void;\n    complete?: () => void;\n}\nexport interface CompletionObserver<T> {\n    closed?: boolean;\n    next?: (value: T) => void;\n    error?: (err: any) => void;\n    complete: () => void;\n}\nexport declare type PartialObserver<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;\nexport interface Observer<T> {\n    closed?: boolean;\n    next: (value: T) => void;\n    error: (err: any) => void;\n    complete: () => void;\n}\n/** SCHEDULER INTERFACES */\nexport interface SchedulerLike {\n    now(): number;\n    schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay?: number, state?: T): Subscription;\n}\nexport interface SchedulerAction<T> extends Subscription {\n    schedule(state?: T, delay?: number): Subscription;\n}\nexport declare type ObservedValueOf<O> = O extends ObservableInput<infer T> ? T : never;\nexport declare type ObservedValuesFromArray<X> = X extends Array<ObservableInput<infer T>> ? T : never;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/applyMixins.d.ts"
    ],
    "content": "export declare function applyMixins(derivedCtor: any, baseCtors: any[]): void;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts"
    ],
    "content": "export interface ArgumentOutOfRangeError extends Error {\n}\nexport interface ArgumentOutOfRangeErrorCtor {\n    new (): ArgumentOutOfRangeError;\n}\n/**\n * An error thrown when an element was queried at a certain index of an\n * Observable, but no such index or position exists in that sequence.\n *\n * @see {@link elementAt}\n * @see {@link take}\n * @see {@link takeLast}\n *\n * @class ArgumentOutOfRangeError\n */\nexport declare const ArgumentOutOfRangeError: ArgumentOutOfRangeErrorCtor;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/canReportError.d.ts"
    ],
    "content": "import { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\n/**\n * Determines whether the ErrorObserver is closed or stopped or has a\n * destination that is closed or stopped - in which case errors will\n * need to be reported via a different mechanism.\n * @param observer the observer\n */\nexport declare function canReportError(observer: Subscriber<any> | Subject<any>): boolean;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/EmptyError.d.ts"
    ],
    "content": "export interface EmptyError extends Error {\n}\nexport interface EmptyErrorCtor {\n    new (): EmptyError;\n}\n/**\n * An error thrown when an Observable or a sequence was queried but has no\n * elements.\n *\n * @see {@link first}\n * @see {@link last}\n * @see {@link single}\n *\n * @class EmptyError\n */\nexport declare const EmptyError: EmptyErrorCtor;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/errorObject.d.ts"
    ],
    "content": "export declare const errorObject: any;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/hostReportError.d.ts"
    ],
    "content": "/**\n * Throws an error on another job so that it's picked up by the runtime's\n * uncaught error handling mechanism.\n * @param err the error to throw\n */\nexport declare function hostReportError(err: any): void;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/identity.d.ts"
    ],
    "content": "export declare function identity<T>(x: T): T;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/Immediate.d.ts"
    ],
    "content": "export declare const Immediate: {\n    setImmediate(cb: () => void): number;\n    clearImmediate(handle: number): void;\n};\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/isArray.d.ts"
    ],
    "content": "export declare const isArray: (arg: any) => arg is any[];\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/isArrayLike.d.ts"
    ],
    "content": "export declare const isArrayLike: <T>(x: any) => x is ArrayLike<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/isDate.d.ts"
    ],
    "content": "export declare function isDate(value: any): value is Date;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/isFunction.d.ts"
    ],
    "content": "export declare function isFunction(x: any): x is Function;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/isInteropObservable.d.ts"
    ],
    "content": "import { InteropObservable } from '../types';\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport declare function isInteropObservable(input: any): input is InteropObservable<any>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/isIterable.d.ts"
    ],
    "content": "/** Identifies an input as being an Iterable */\nexport declare function isIterable(input: any): input is Iterable<any>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/isNumeric.d.ts"
    ],
    "content": "export declare function isNumeric(val: any): val is number | string;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/isObject.d.ts"
    ],
    "content": "export declare function isObject(x: any): x is Object;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/isObservable.d.ts"
    ],
    "content": "import { Observable } from '../Observable';\n/**\n * Tests to see if the object is an RxJS {@link Observable}\n * @param obj the object to test\n */\nexport declare function isObservable<T>(obj: any): obj is Observable<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/isPromise.d.ts"
    ],
    "content": "/**\n * Tests to see if the object is an ES2015 (ES6) Promise\n * @see {@link https://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects}\n * @param value the object to test\n */\nexport declare function isPromise(value: any): value is PromiseLike<any>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/isScheduler.d.ts"
    ],
    "content": "import { SchedulerLike } from '../types';\nexport declare function isScheduler(value: any): value is SchedulerLike;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/noop.d.ts"
    ],
    "content": "export declare function noop(): void;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/not.d.ts"
    ],
    "content": "export declare function not(pred: Function, thisArg: any): Function;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts"
    ],
    "content": "export interface ObjectUnsubscribedError extends Error {\n}\nexport interface ObjectUnsubscribedErrorCtor {\n    new (): ObjectUnsubscribedError;\n}\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport declare const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/pipe.d.ts"
    ],
    "content": "import { UnaryFunction } from '../types';\nexport declare function pipe<T>(): UnaryFunction<T, T>;\nexport declare function pipe<T, A>(fn1: UnaryFunction<T, A>): UnaryFunction<T, A>;\nexport declare function pipe<T, A, B>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>): UnaryFunction<T, B>;\nexport declare function pipe<T, A, B, C>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>): UnaryFunction<T, C>;\nexport declare function pipe<T, A, B, C, D>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>): UnaryFunction<T, D>;\nexport declare function pipe<T, A, B, C, D, E>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>): UnaryFunction<T, E>;\nexport declare function pipe<T, A, B, C, D, E, F>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>): UnaryFunction<T, F>;\nexport declare function pipe<T, A, B, C, D, E, F, G>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>): UnaryFunction<T, G>;\nexport declare function pipe<T, A, B, C, D, E, F, G, H>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>, fn8: UnaryFunction<G, H>): UnaryFunction<T, H>;\nexport declare function pipe<T, A, B, C, D, E, F, G, H, I>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>, fn8: UnaryFunction<G, H>, fn9: UnaryFunction<H, I>): UnaryFunction<T, I>;\nexport declare function pipe<T, A, B, C, D, E, F, G, H, I>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>, fn8: UnaryFunction<G, H>, fn9: UnaryFunction<H, I>, ...fns: UnaryFunction<any, any>[]): UnaryFunction<T, {}>;\n/** @internal */\nexport declare function pipeFromArray<T, R>(fns: Array<UnaryFunction<T, R>>): UnaryFunction<T, R>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/root.d.ts"
    ],
    "content": "declare const _root: any;\nexport { _root as root };\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/subscribeTo.d.ts"
    ],
    "content": "import { ObservableInput } from '../types';\nimport { Subscription } from '../Subscription';\nimport { Subscriber } from '../Subscriber';\nexport declare const subscribeTo: <T>(result: ObservableInput<T>) => (subscriber: Subscriber<T>) => void | Subscription;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/subscribeToArray.d.ts"
    ],
    "content": "import { Subscriber } from '../Subscriber';\n/**\n * Subscribes to an ArrayLike with a subscriber\n * @param array The array or array-like to subscribe to\n */\nexport declare const subscribeToArray: <T>(array: ArrayLike<T>) => (subscriber: Subscriber<T>) => void;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/subscribeToIterable.d.ts"
    ],
    "content": "import { Subscriber } from '../Subscriber';\nexport declare const subscribeToIterable: <T>(iterable: Iterable<T>) => (subscriber: Subscriber<T>) => Subscriber<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/subscribeToObservable.d.ts"
    ],
    "content": "import { Subscriber } from '../Subscriber';\n/**\n * Subscribes to an object that implements Symbol.observable with the given\n * Subscriber.\n * @param obj An object that implements Symbol.observable\n */\nexport declare const subscribeToObservable: <T>(obj: any) => (subscriber: Subscriber<T>) => any;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/subscribeToPromise.d.ts"
    ],
    "content": "import { Subscriber } from '../Subscriber';\nexport declare const subscribeToPromise: <T>(promise: PromiseLike<T>) => (subscriber: Subscriber<T>) => Subscriber<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/subscribeToResult.d.ts"
    ],
    "content": "import { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { Subscriber } from '../Subscriber';\nexport declare function subscribeToResult<T, R>(outerSubscriber: OuterSubscriber<T, R>, result: any, outerValue?: T, outerIndex?: number, destination?: Subscriber<any>): Subscription;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/TimeoutError.d.ts"
    ],
    "content": "export interface TimeoutError extends Error {\n}\nexport interface TimeoutErrorCtor {\n    new (): TimeoutError;\n}\n/**\n * An error thrown when duetime elapses.\n *\n * @see {@link operators/timeout}\n *\n * @class TimeoutError\n */\nexport declare const TimeoutError: TimeoutErrorCtor;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/toSubscriber.d.ts"
    ],
    "content": "import { Subscriber } from '../Subscriber';\nimport { PartialObserver } from '../types';\nexport declare function toSubscriber<T>(nextOrObserver?: PartialObserver<T> | ((value: T) => void), error?: (error: any) => void, complete?: () => void): Subscriber<T>;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/tryCatch.d.ts"
    ],
    "content": "export declare function tryCatch<T extends Function>(fn: T): T;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/internal/util/UnsubscriptionError.d.ts"
    ],
    "content": "export interface UnsubscriptionError extends Error {\n    readonly errors: any[];\n}\nexport interface UnsubscriptionErrorCtor {\n    new (errors: any[]): UnsubscriptionError;\n}\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport declare const UnsubscriptionError: UnsubscriptionErrorCtor;\n"
  },
  {
    "paths": [
      "node_modules/rxjs/Notification.d.ts"
    ],
    "content": "export * from 'rxjs-compat/Notification';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/Observable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/Observable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/ArrayLikeObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/ArrayLikeObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/ArrayObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/ArrayObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/bindCallback.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/bindCallback';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/bindNodeCallback.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/bindNodeCallback';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/BoundCallbackObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/BoundCallbackObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/BoundNodeCallbackObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/BoundNodeCallbackObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/combineLatest.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/combineLatest';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/concat.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/concat';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/ConnectableObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/ConnectableObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/defer.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/defer';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/DeferObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/DeferObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/dom/ajax.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/dom/ajax';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/dom/AjaxObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/dom/AjaxObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/dom/webSocket.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/dom/webSocket';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/dom/WebSocketSubject.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/dom/WebSocketSubject';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/empty.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/empty';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/EmptyObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/EmptyObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/ErrorObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/ErrorObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/forkJoin.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/forkJoin';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/ForkJoinObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/ForkJoinObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/from.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/from';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/fromArray.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/fromArray';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/fromEvent.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/fromEvent';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/FromEventObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/FromEventObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/fromEventPattern.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/fromEventPattern';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/FromEventPatternObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/FromEventPatternObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/fromIterable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/fromIterable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/FromObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/FromObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/fromPromise.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/fromPromise';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/generate.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/generate';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/GenerateObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/GenerateObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/if.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/if';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/IfObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/IfObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/interval.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/interval';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/IntervalObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/IntervalObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/IteratorObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/IteratorObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/merge.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/merge';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/never.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/never';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/NeverObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/NeverObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/of.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/of';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/onErrorResumeNext.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/onErrorResumeNext';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/pairs.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/pairs';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/PairsObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/PairsObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/PromiseObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/PromiseObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/race.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/race';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/range.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/range';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/RangeObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/RangeObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/ScalarObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/ScalarObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/SubscribeOnObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/SubscribeOnObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/throw.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/throw';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/timer.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/timer';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/TimerObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/TimerObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/using.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/using';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/UsingObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/UsingObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/observable/zip.d.ts"
    ],
    "content": "export * from 'rxjs-compat/observable/zip';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/Observer.d.ts"
    ],
    "content": "export * from 'rxjs-compat/Observer';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/Operator.d.ts"
    ],
    "content": "export * from 'rxjs-compat/Operator';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/audit.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/audit';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/auditTime.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/auditTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/buffer.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/buffer';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/bufferCount.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/bufferCount';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/bufferTime.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/bufferTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/bufferToggle.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/bufferToggle';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/bufferWhen.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/bufferWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/catch.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/catch';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/combineAll.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/combineAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/combineLatest.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/combineLatest';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/concat.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/concat';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/concatAll.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/concatAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/concatMap.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/concatMap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/concatMapTo.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/concatMapTo';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/count.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/count';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/debounce.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/debounce';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/debounceTime.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/debounceTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/defaultIfEmpty.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/defaultIfEmpty';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/delay.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/delay';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/delayWhen.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/delayWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/dematerialize.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/dematerialize';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/distinct.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/distinct';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/distinctUntilChanged.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/distinctUntilChanged';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/distinctUntilKeyChanged.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/distinctUntilKeyChanged';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/do.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/do';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/elementAt.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/elementAt';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/every.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/every';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/exhaust.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/exhaust';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/exhaustMap.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/exhaustMap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/expand.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/expand';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/filter.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/filter';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/finally.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/finally';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/find.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/find';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/findIndex.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/findIndex';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/first.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/first';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/groupBy.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/groupBy';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/ignoreElements.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/ignoreElements';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/isEmpty.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/isEmpty';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/last.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/last';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/let.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/let';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/map.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/map';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/mapTo.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/mapTo';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/materialize.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/materialize';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/max.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/max';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/merge.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/merge';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/mergeAll.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/mergeAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/mergeMap.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/mergeMap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/mergeMapTo.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/mergeMapTo';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/mergeScan.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/mergeScan';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/min.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/min';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/multicast.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/multicast';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/observeOn.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/observeOn';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/onErrorResumeNext.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/onErrorResumeNext';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/pairwise.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/pairwise';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/partition.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/partition';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/pluck.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/pluck';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/publish.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/publish';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/publishBehavior.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/publishBehavior';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/publishLast.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/publishLast';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/publishReplay.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/publishReplay';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/race.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/race';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/reduce.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/reduce';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/repeat.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/repeat';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/repeatWhen.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/repeatWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/retry.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/retry';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/retryWhen.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/retryWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/sample.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/sample';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/sampleTime.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/sampleTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/scan.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/scan';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/sequenceEqual.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/sequenceEqual';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/share.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/share';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/shareReplay.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/shareReplay';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/single.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/single';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/skip.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/skip';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/skipLast.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/skipLast';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/skipUntil.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/skipUntil';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/skipWhile.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/skipWhile';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/startWith.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/startWith';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/subscribeOn.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/subscribeOn';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/switch.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/switch';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/switchMap.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/switchMap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/switchMapTo.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/switchMapTo';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/take.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/take';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/takeLast.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/takeLast';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/takeUntil.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/takeUntil';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/takeWhile.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/takeWhile';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/throttle.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/throttle';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/throttleTime.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/throttleTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/timeInterval.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/timeInterval';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/timeout.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/timeout';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/timeoutWith.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/timeoutWith';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/timestamp.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/timestamp';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/toArray.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/toArray';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/toPromise.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/toPromise';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/window.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/window';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/windowCount.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/windowCount';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/windowTime.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/windowTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/windowToggle.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/windowToggle';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/windowWhen.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/windowWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/withLatestFrom.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/withLatestFrom';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/zip.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/zip';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operator/zipAll.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operator/zipAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/audit.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/audit';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/auditTime.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/auditTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/buffer.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/buffer';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/bufferCount.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/bufferCount';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/bufferTime.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/bufferTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/bufferToggle.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/bufferToggle';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/bufferWhen.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/bufferWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/catchError.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/catchError';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/combineAll.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/combineAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/combineLatest.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/combineLatest';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/concat.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/concat';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/concatAll.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/concatAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/concatMap.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/concatMap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/concatMapTo.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/concatMapTo';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/count.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/count';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/debounce.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/debounce';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/debounceTime.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/debounceTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/defaultIfEmpty.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/defaultIfEmpty';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/delay.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/delay';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/delayWhen.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/delayWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/dematerialize.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/dematerialize';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/distinct.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/distinct';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/distinctUntilChanged.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/distinctUntilChanged';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/distinctUntilKeyChanged.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/distinctUntilKeyChanged';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/elementAt.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/elementAt';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/every.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/every';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/exhaust.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/exhaust';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/exhaustMap.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/exhaustMap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/expand.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/expand';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/filter.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/filter';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/finalize.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/finalize';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/find.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/find';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/findIndex.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/findIndex';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/first.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/first';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/groupBy.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/groupBy';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/ignoreElements.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/ignoreElements';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/index.d.ts",
      "node_modules/rxjs/operators/index.d.ts"
    ],
    "content": "export { audit } from '../internal/operators/audit';\nexport { auditTime } from '../internal/operators/auditTime';\nexport { buffer } from '../internal/operators/buffer';\nexport { bufferCount } from '../internal/operators/bufferCount';\nexport { bufferTime } from '../internal/operators/bufferTime';\nexport { bufferToggle } from '../internal/operators/bufferToggle';\nexport { bufferWhen } from '../internal/operators/bufferWhen';\nexport { catchError } from '../internal/operators/catchError';\nexport { combineAll } from '../internal/operators/combineAll';\nexport { combineLatest } from '../internal/operators/combineLatest';\nexport { concat } from '../internal/operators/concat';\nexport { concatAll } from '../internal/operators/concatAll';\nexport { concatMap } from '../internal/operators/concatMap';\nexport { concatMapTo } from '../internal/operators/concatMapTo';\nexport { count } from '../internal/operators/count';\nexport { debounce } from '../internal/operators/debounce';\nexport { debounceTime } from '../internal/operators/debounceTime';\nexport { defaultIfEmpty } from '../internal/operators/defaultIfEmpty';\nexport { delay } from '../internal/operators/delay';\nexport { delayWhen } from '../internal/operators/delayWhen';\nexport { dematerialize } from '../internal/operators/dematerialize';\nexport { distinct } from '../internal/operators/distinct';\nexport { distinctUntilChanged } from '../internal/operators/distinctUntilChanged';\nexport { distinctUntilKeyChanged } from '../internal/operators/distinctUntilKeyChanged';\nexport { elementAt } from '../internal/operators/elementAt';\nexport { endWith } from '../internal/operators/endWith';\nexport { every } from '../internal/operators/every';\nexport { exhaust } from '../internal/operators/exhaust';\nexport { exhaustMap } from '../internal/operators/exhaustMap';\nexport { expand } from '../internal/operators/expand';\nexport { filter } from '../internal/operators/filter';\nexport { finalize } from '../internal/operators/finalize';\nexport { find } from '../internal/operators/find';\nexport { findIndex } from '../internal/operators/findIndex';\nexport { first } from '../internal/operators/first';\nexport { groupBy } from '../internal/operators/groupBy';\nexport { ignoreElements } from '../internal/operators/ignoreElements';\nexport { isEmpty } from '../internal/operators/isEmpty';\nexport { last } from '../internal/operators/last';\nexport { map } from '../internal/operators/map';\nexport { mapTo } from '../internal/operators/mapTo';\nexport { materialize } from '../internal/operators/materialize';\nexport { max } from '../internal/operators/max';\nexport { merge } from '../internal/operators/merge';\nexport { mergeAll } from '../internal/operators/mergeAll';\nexport { mergeMap } from '../internal/operators/mergeMap';\nexport { mergeMap as flatMap } from '../internal/operators/mergeMap';\nexport { mergeMapTo } from '../internal/operators/mergeMapTo';\nexport { mergeScan } from '../internal/operators/mergeScan';\nexport { min } from '../internal/operators/min';\nexport { multicast } from '../internal/operators/multicast';\nexport { observeOn } from '../internal/operators/observeOn';\nexport { onErrorResumeNext } from '../internal/operators/onErrorResumeNext';\nexport { pairwise } from '../internal/operators/pairwise';\nexport { partition } from '../internal/operators/partition';\nexport { pluck } from '../internal/operators/pluck';\nexport { publish } from '../internal/operators/publish';\nexport { publishBehavior } from '../internal/operators/publishBehavior';\nexport { publishLast } from '../internal/operators/publishLast';\nexport { publishReplay } from '../internal/operators/publishReplay';\nexport { race } from '../internal/operators/race';\nexport { reduce } from '../internal/operators/reduce';\nexport { repeat } from '../internal/operators/repeat';\nexport { repeatWhen } from '../internal/operators/repeatWhen';\nexport { retry } from '../internal/operators/retry';\nexport { retryWhen } from '../internal/operators/retryWhen';\nexport { refCount } from '../internal/operators/refCount';\nexport { sample } from '../internal/operators/sample';\nexport { sampleTime } from '../internal/operators/sampleTime';\nexport { scan } from '../internal/operators/scan';\nexport { sequenceEqual } from '../internal/operators/sequenceEqual';\nexport { share } from '../internal/operators/share';\nexport { shareReplay } from '../internal/operators/shareReplay';\nexport { single } from '../internal/operators/single';\nexport { skip } from '../internal/operators/skip';\nexport { skipLast } from '../internal/operators/skipLast';\nexport { skipUntil } from '../internal/operators/skipUntil';\nexport { skipWhile } from '../internal/operators/skipWhile';\nexport { startWith } from '../internal/operators/startWith';\nexport { subscribeOn } from '../internal/operators/subscribeOn';\nexport { switchAll } from '../internal/operators/switchAll';\nexport { switchMap } from '../internal/operators/switchMap';\nexport { switchMapTo } from '../internal/operators/switchMapTo';\nexport { take } from '../internal/operators/take';\nexport { takeLast } from '../internal/operators/takeLast';\nexport { takeUntil } from '../internal/operators/takeUntil';\nexport { takeWhile } from '../internal/operators/takeWhile';\nexport { tap } from '../internal/operators/tap';\nexport { throttle } from '../internal/operators/throttle';\nexport { throttleTime } from '../internal/operators/throttleTime';\nexport { throwIfEmpty } from '../internal/operators/throwIfEmpty';\nexport { timeInterval } from '../internal/operators/timeInterval';\nexport { timeout } from '../internal/operators/timeout';\nexport { timeoutWith } from '../internal/operators/timeoutWith';\nexport { timestamp } from '../internal/operators/timestamp';\nexport { toArray } from '../internal/operators/toArray';\nexport { window } from '../internal/operators/window';\nexport { windowCount } from '../internal/operators/windowCount';\nexport { windowTime } from '../internal/operators/windowTime';\nexport { windowToggle } from '../internal/operators/windowToggle';\nexport { windowWhen } from '../internal/operators/windowWhen';\nexport { withLatestFrom } from '../internal/operators/withLatestFrom';\nexport { zip } from '../internal/operators/zip';\nexport { zipAll } from '../internal/operators/zipAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/isEmpty.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/isEmpty';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/last.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/last';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/map.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/map';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/mapTo.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/mapTo';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/materialize.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/materialize';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/max.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/max';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/merge.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/merge';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/mergeAll.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/mergeAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/mergeMap.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/mergeMap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/mergeMapTo.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/mergeMapTo';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/mergeScan.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/mergeScan';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/min.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/min';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/multicast.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/multicast';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/observeOn.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/observeOn';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/onErrorResumeNext.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/onErrorResumeNext';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/pairwise.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/pairwise';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/partition.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/partition';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/pluck.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/pluck';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/publish.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/publish';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/publishBehavior.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/publishBehavior';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/publishLast.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/publishLast';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/publishReplay.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/publishReplay';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/race.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/race';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/reduce.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/reduce';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/refCount.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/refCount';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/repeat.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/repeat';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/repeatWhen.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/repeatWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/retry.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/retry';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/retryWhen.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/retryWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/sample.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/sample';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/sampleTime.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/sampleTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/scan.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/scan';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/sequenceEqual.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/sequenceEqual';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/share.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/share';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/shareReplay.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/shareReplay';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/single.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/single';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/skip.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/skip';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/skipLast.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/skipLast';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/skipUntil.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/skipUntil';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/skipWhile.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/skipWhile';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/startWith.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/startWith';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/subscribeOn.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/subscribeOn';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/switchAll.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/switchAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/switchMap.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/switchMap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/switchMapTo.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/switchMapTo';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/take.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/take';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/takeLast.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/takeLast';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/takeUntil.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/takeUntil';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/takeWhile.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/takeWhile';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/tap.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/tap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/throttle.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/throttle';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/throttleTime.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/throttleTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/throwIfEmpty.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/throwIfEmpty';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/timeInterval.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/timeInterval';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/timeout.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/timeout';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/timeoutWith.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/timeoutWith';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/timestamp.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/timestamp';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/toArray.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/toArray';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/window.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/window';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/windowCount.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/windowCount';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/windowTime.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/windowTime';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/windowToggle.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/windowToggle';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/windowWhen.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/windowWhen';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/withLatestFrom.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/withLatestFrom';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/zip.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/zip';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/operators/zipAll.d.ts"
    ],
    "content": "export * from 'rxjs-compat/operators/zipAll';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/OuterSubscriber.d.ts"
    ],
    "content": "export * from 'rxjs-compat/OuterSubscriber';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/ReplaySubject.d.ts"
    ],
    "content": "export * from 'rxjs-compat/ReplaySubject';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/Rx.d.ts"
    ],
    "content": "export * from 'rxjs-compat';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/Scheduler.d.ts"
    ],
    "content": "export * from 'rxjs-compat/Scheduler';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/scheduler/animationFrame.d.ts"
    ],
    "content": "export * from 'rxjs-compat/scheduler/animationFrame';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/scheduler/asap.d.ts"
    ],
    "content": "export * from 'rxjs-compat/scheduler/asap';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/scheduler/async.d.ts"
    ],
    "content": "export * from 'rxjs-compat/scheduler/async';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/scheduler/queue.d.ts"
    ],
    "content": "export * from 'rxjs-compat/scheduler/queue';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/Subject.d.ts"
    ],
    "content": "export * from 'rxjs-compat/Subject';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/SubjectSubscription.d.ts"
    ],
    "content": "export * from 'rxjs-compat/SubjectSubscription';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/Subscriber.d.ts"
    ],
    "content": "export * from 'rxjs-compat/Subscriber';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/Subscription.d.ts"
    ],
    "content": "export * from 'rxjs-compat/Subscription';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/symbol/iterator.d.ts"
    ],
    "content": "export * from 'rxjs-compat/symbol/iterator';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/symbol/observable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/symbol/observable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/symbol/rxSubscriber.d.ts"
    ],
    "content": "export * from 'rxjs-compat/symbol/rxSubscriber';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/testing/index.d.ts",
      "node_modules/rxjs/testing/index.d.ts"
    ],
    "content": "export { TestScheduler } from '../internal/testing/TestScheduler';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/applyMixins.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/applyMixins';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/ArgumentOutOfRangeError.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/ArgumentOutOfRangeError';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/EmptyError.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/EmptyError';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/errorObject.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/errorObject';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/hostReportError.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/hostReportError';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/identity.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/identity';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/Immediate.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/Immediate';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/isArray.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/isArray';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/isArrayLike.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/isArrayLike';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/isDate.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/isDate';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/isFunction.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/isFunction';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/isIterable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/isIterable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/isNumeric.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/isNumeric';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/isObject.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/isObject';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/isObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/isObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/isPromise.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/isPromise';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/isScheduler.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/isScheduler';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/noop.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/noop';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/not.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/not';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/ObjectUnsubscribedError.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/ObjectUnsubscribedError';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/pipe.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/pipe';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/root.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/root';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/subscribeTo.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/subscribeTo';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/subscribeToArray.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/subscribeToArray';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/subscribeToIterable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/subscribeToIterable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/subscribeToObservable.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/subscribeToObservable';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/subscribeToPromise.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/subscribeToPromise';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/subscribeToResult.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/subscribeToResult';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/TimeoutError.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/TimeoutError';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/toSubscriber.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/toSubscriber';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/tryCatch.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/tryCatch';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/util/UnsubscriptionError.d.ts"
    ],
    "content": "export * from 'rxjs-compat/util/UnsubscriptionError';\n"
  },
  {
    "paths": [
      "node_modules/rxjs/webSocket/index.d.ts",
      "node_modules/rxjs/webSocket/index.d.ts"
    ],
    "content": "export { webSocket as webSocket } from '../internal/observable/dom/webSocket';\nexport { WebSocketSubject, WebSocketSubjectConfig } from '../internal/observable/dom/WebSocketSubject';\n"
  }
]