text: var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
      else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
      return c > 3 && r && Object.defineProperty(target, key, r), r;
  };
  var __metadata = (this && this.__metadata) || function (k, v) {
      if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  };
  var lang_1 = require('angular2/src/core/facade/lang');
  /**
   * The `RouteConfig` decorator defines routes for a given component.
   *
   * It takes an array of {@link RouteDefinition}s.
   */
  var RouteConfig = (function () {
      function RouteConfig(configs) {
          this.configs = configs;
      }
      RouteConfig = __decorate([
          lang_1.CONST(), 
          __metadata('design:paramtypes', [Array])
      ], RouteConfig);
      return RouteConfig;
  })();
  exports.RouteConfig = RouteConfig;
  /**
   * `Route` is a type of {@link RouteDefinition} used to route a path to a component.
   *
   * It has the following properties:
   * - `path` is a string that uses the route matcher DSL.
   * - `component` a component type.
   * - `as` is an optional `CamelCase` string representing the name of the route.
   * - `data` is an optional property of any type representing arbitrary route metadata for the given
   * route. It is injectable via the {@link ROUTE_DATA} token.
   *
   * ## Example
   * ```
   * import {RouteConfig} from 'angular2/router';
   *
   * @RouteConfig([
   *   {path: '/home', component: HomeCmp, as: 'HomeCmp' }
   * ])
   * class MyApp {}
   * ```
   */
  var Route = (function () {
      function Route(_a) {
          var path = _a.path, component = _a.component, as = _a.as, data = _a.data;
          this.path = path;
          this.component = component;
          this.as = as;
          this.loader = null;
          this.redirectTo = null;
          this.data = data;
      }
      Route = __decorate([
          lang_1.CONST(), 
          __metadata('design:paramtypes', [Object])
      ], Route);
      return Route;
  })();
  exports.Route = Route;
  /**
   * `AuxRoute` is a type of {@link RouteDefinition} used to define an auxiliary route.
   *
   * It takes an object with the following properties:
   * - `path` is a string that uses the route matcher DSL.
   * - `component` a component type.
   * - `as` is an optional `CamelCase` string representing the name of the route.
   * - `data` is an optional property of any type representing arbitrary route metadata for the given
   * route. It is injectable via the {@link ROUTE_DATA} token.
   *
   * ## Example
   * ```
   * import {RouteConfig, AuxRoute} from 'angular2/router';
   *
   * @RouteConfig([
   *   new AuxRoute({path: '/home', component: HomeCmp})
   * ])
   * class MyApp {}
   * ```
   */
  var AuxRoute = (function () {
      function AuxRoute(_a) {
          var path = _a.path, component = _a.component, as = _a.as;
          this.data = null;
          // added next two properties to work around https://github.com/Microsoft/TypeScript/issues/4107
          this.loader = null;
          this.redirectTo = null;
          this.path = path;
          this.component = component;
          this.as = as;
      }
      AuxRoute = __decorate([
          lang_1.CONST(), 
          __metadata('design:paramtypes', [Object])
      ], AuxRoute);
      return AuxRoute;
  })();
  exports.AuxRoute = AuxRoute;
  /**
   * `AsyncRoute` is a type of {@link RouteDefinition} used to route a path to an asynchronously
   * loaded component.
   *
   * It has the following properties:
   * - `path` is a string that uses the route matcher DSL.
   * - `loader` is a function that returns a promise that resolves to a component.
   * - `as` is an optional `CamelCase` string representing the name of the route.
   * - `data` is an optional property of any type representing arbitrary route metadata for the given
   * route. It is injectable via the {@link ROUTE_DATA} token.
   *
   * ## Example
   * ```
   * import {RouteConfig} from 'angular2/router';
   *
   * @RouteConfig([
   *   {path: '/home', loader: () => Promise.resolve(MyLoadedCmp), as: 'MyLoadedCmp'}
   * ])
   * class MyApp {}
   * ```
   */
  var AsyncRoute = (function () {
      function AsyncRoute(_a) {
          var path = _a.path, loader = _a.loader, as = _a.as, data = _a.data;
          this.path = path;
          this.loader = loader;
          this.as = as;
          this.data = data;
      }
      AsyncRoute = __decorate([
          lang_1.CONST(), 
          __metadata('design:paramtypes', [Object])
      ], AsyncRoute);
      return AsyncRoute;
  })();
  exports.AsyncRoute = AsyncRoute;
  /**
   * `Redirect` is a type of {@link RouteDefinition} used to route a path to an asynchronously loaded
   * component.
   *
   * It has the following properties:
   * - `path` is a string that uses the route matcher DSL.
   * - `redirectTo` is a string representing the new URL to be matched against.
   *
   * ## Example
   * ```
   * import {RouteConfig} from 'angular2/router';
   *
   * @RouteConfig([
   *   {path: '/', redirectTo: '/home'},
   *   {path: '/home', component: HomeCmp}
   * ])
   * class MyApp {}
   * ```
   */
  var Redirect = (function () {
      function Redirect(_a) {
          var path = _a.path, redirectTo = _a.redirectTo;
          this.as = null;
          // added next property to work around https://github.com/Microsoft/TypeScript/issues/4107
          this.loader = null;
          this.data = null;
          this.path = path;
          this.redirectTo = redirectTo;
      }
      Redirect = __decorate([
          lang_1.CONST(), 
          __metadata('design:paramtypes', [Object])
      ], Redirect);
      return Redirect;
  })();
  exports.Redirect = Redirect;
  //# sourceMappingURL=route_config_impl.js.map