import { InjectionToken } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, CanActivateChild, RouterStateSnapshot } from '@angular/router';
import { Observable } from 'rxjs';
import { FeatureGateService } from './feature-gate.service';
import { SilentlyNavigateService } from './silently-navigate.service';
export declare type GetCurrentCluster = (route: ActivatedRouteSnapshot) => string;
export declare const DEFAULT_ERROR_GUARD_URL = "feature-guard-error";
export declare const GET_CURRENT_CLUSTER: InjectionToken<GetCurrentCluster>;
/**
 * ```ts
 * data: {
 *  path: 'home',
 *  canActivate: [ FeatureGuard ],
 *  data: { featureName: 'ace3', guard_url: 'xxx', logTitle: 'devops'  }
 * }
 * ```
 */
export declare class FeatureGuard implements CanActivate, CanActivateChild {
    private readonly featureGate;
    private readonly silentlyNavigate;
    private readonly getCluster;
    constructor(featureGate: FeatureGateService, silentlyNavigate: SilentlyNavigateService, _getCluster: any);
    canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>;
    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>;
}
