import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';
import { UserService } from '../../user/services/user.service';
import { RedirectService } from '../../routing/redirect-service/redirect.service';
import { ConfigurationService } from '../../configuration/configuration.service';
import { Access, RoleAccess, View } from '../../../commons/schema';
import { LoggerService } from '../../logger/services/logger.service';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
interface RoleConstraint {
    processIdentifier: string;
    roleIdentifier?: string;
    roleName?: string;
}
export declare class RoleGuardService implements CanActivate {
    protected _redirectService: RedirectService;
    protected _userService: UserService;
    protected _configService: ConfigurationService;
    protected _log: LoggerService;
    private readonly _loginUrl;
    constructor(_redirectService: RedirectService, _userService: UserService, _configService: ConfigurationService, _log: LoggerService);
    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree;
    canAccessView(view: View, url: string): boolean;
    protected parseRoleConstraints(roleConstrains: Access['role'] | Access['bannedRole'], viewUrl: string): Array<RoleConstraint>;
    /**
     * @deprecated in 5.0.0
     */
    protected parseStringRoleConstraints(roleConstrains: string | Array<string>): Array<RoleConstraint>;
    protected parseObjectRoleConstrains(roleConstrains: RoleAccess | Array<RoleAccess>): Array<RoleConstraint>;
    private decideAccessByRole;
    static ɵfac: i0.ɵɵFactoryDeclaration<RoleGuardService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<RoleGuardService>;
}
export {};
