docs: function Router(rootComponentType, urlSerializer, rootContexts, location, injector, loader, compiler, config) {
          var _this = this;
          this.rootComponentType = rootComponentType;
          this.urlSerializer = urlSerializer;
          this.rootContexts = rootContexts;
          this.location = location;
          this.config = config;
          this.navigations = new rxjs__WEBPACK_IMPORTED_MODULE_2__["BehaviorSubject"](null);
          this.navigationId = 0;
          this.isNgZoneEnabled = false;
          this.events = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"]();
          /**
           * Error handler that is invoked when a navigation errors.
           *
           * See `ErrorHandler` for more information.
           */
          this.errorHandler = defaultErrorHandler;
          /**
           * Malformed uri error handler is invoked when `Router.parseUrl(url)` throws an
           * error due to containing an invalid character. The most common case would be a `%` sign
           * that's not encoded and is not part of a percent encoded sequence.
           */
          this.malformedUriErrorHandler = defaultMalformedUriErrorHandler;
          /**
           * Indicates if at least one navigation happened.
           */
          this.navigated = false;
          this.lastSuccessfulId = -1;
          /**
           * Used by RouterModule. This allows us to
           * pause the navigation either before preactivation or after it.
           * @internal
           */
          this.hooks = {
              beforePreactivation: defaultRouterHook,
              afterPreactivation: defaultRouterHook
          };
          /**
           * Extracts and merges URLs. Used for AngularJS to Angular migrations.
           */
          this.urlHandlingStrategy = new DefaultUrlHandlingStrategy();
          this.routeReuseStrategy = new DefaultRouteReuseStrategy();
          /**
           * Define what the router should do if it receives a navigation request to the current URL.
           * By default, the router will ignore this navigation. However, this prevents features such
           * as a "refresh" button. Use this option to configure the behavior when navigating to the
           * current URL. Default is 'ignore'.
           */
          this.onSameUrlNavigation = 'ignore';
          /**
           * Defines how the router merges params, data and resolved data from parent to child
           * routes. Available options are:
           *
           * - `'emptyOnly'`, the default, only inherits parent params for path-less or component-less
           *   routes.
           * - `'always'`, enables unconditional inheritance of parent params.
           */
          this.paramsInheritanceStrategy = 'emptyOnly';
          /**
           * Defines when the router updates the browser URL. The default behavior is to update after
           * successful navigation. However, some applications may prefer a mode where the URL gets
           * updated at the beginning of navigation. The most common use case would be updating the
           * URL early so if navigation fails, you can show an error message with the URL that failed.
           * Available options are:
           *
           * - `'deferred'`, the default, updates the browser URL after navigation has finished.
           * - `'eager'`, updates browser URL at the beginning of navigation.
           */
          this.urlUpdateStrategy = 'deferred';
          /**
           * See {@link RouterModule} for more information.
           */
          this.relativeLinkResolution = 'legacy';
          var onLoadStart = function (r) { return _this.triggerEvent(new RouteConfigLoadStart(r)); };
          var onLoadEnd = function (r) { return _this.triggerEvent(new RouteConfigLoadEnd(r)); };
          this.ngModule = injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModuleRef"]);
          this.console = injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵConsole"]);
          var ngZone = injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"]);
          this.isNgZoneEnabled = ngZone instanceof _angular_core__WEBPACK_IMPORTED_MODULE_1__["NgZone"];
          this.resetConfig(config);
          this.currentUrlTree = createEmptyUrlTree();
          this.rawUrlTree = this.currentUrlTree;
          this.configLoader = new RouterConfigLoader(loader, compiler, onLoadStart, onLoadEnd);
          this.routerState = createEmptyState(this.currentUrlTree, this.rootComponentType);
          this.processNavigations();
      }