import { InjectionToken } from '@angular/core'; import { Observable } from 'rxjs'; import { ValidationFn } from '../model/permissions-router-data.model'; import { NgxRole } from '../model/role.model'; import { NgxRolesStore } from '../store/roles.store'; import { NgxPermissionsService } from './permissions.service'; import * as i0 from "@angular/core"; export declare const USE_ROLES_STORE: InjectionToken; export interface NgxRolesObject { [name: string]: NgxRole; } export declare class NgxRolesService { private isolate; private rolesStore; private permissionsService; private rolesSource; roles$: Observable; constructor(isolate: boolean, rolesStore: NgxRolesStore, permissionsService: NgxPermissionsService); addRole(name: string, validationFunction: ValidationFn | string[]): void; addRoleWithPermissions(name: string, permissions: string[]): void; addRoles(rolesObj: { [name: string]: ValidationFn | string[]; }): void; addRolesWithPermissions(rolesObj: { [name: string]: string[]; }): void; flushRoles(): void; flushRolesAndPermissions(): void; removeRole(roleName: string): void; getRoles(): NgxRolesObject; getRole(name: string): NgxRole | undefined; hasOnlyRoles(names: string | string[]): Promise; private hasRoleKey; private hasRolePermission; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }