/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import {Observable} from 'rxjs/Observable'; import {ActivatedRouteSnapshot, RouterStateSnapshot} from './router_state'; /** * An interface a class can implement to be a guard deciding if a route can be activated. */ export interface CanActivate { canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable|boolean; } /** * An interface a class can implement to be a guard deciding if a route can be deactivated. */ export interface CanDeactivate { canDeactivate(component: T, route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable|boolean; } export interface Resolve { resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable|any; }