import { InjectionToken } from '@angular/core'; import { Observable } from 'rxjs'; import { NgxPermission } from '../model/permission.model'; import { ValidationFn } from '../model/permissions-router-data.model'; import { NgxPermissionsStore } from '../store/permissions.store'; import * as i0 from "@angular/core"; export interface NgxPermissionsObject { [name: string]: NgxPermission; } export declare const USE_PERMISSIONS_STORE: InjectionToken; export declare class NgxPermissionsService { private isolate; private permissionsStore; private permissionsSource; permissions$: Observable; constructor(isolate: boolean, permissionsStore: NgxPermissionsStore); /** * Remove all permissions from permissions source */ flushPermissions(): void; hasPermission(permission: string | string[]): Promise; loadPermissions(permissions: string[], validationFunction?: ValidationFn): void; addPermission(permission: string | string[], validationFunction?: ValidationFn): void; removePermission(permissionName: string): void; getPermission(name: string): NgxPermission | undefined; getPermissions(): NgxPermissionsObject; private reducePermission; private hasArrayPermission; private hasPermissionValidationFunction; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }