import { KeycloakService } from 'keycloak-angular'; import { NGXLogger } from 'ngx-logger'; import { Observable } from 'rxjs'; import { PermissionContext, PermissionRequest } from '../models'; import { PermissionApiService } from './permission-api.service'; import * as i0 from "@angular/core"; export declare class PermissionService { private readonly keyCloakService; private readonly logger; private readonly permissionApiService; private readonly QUEUE_COLLECTION_PERIOD_MS; private _cachedResolvedPermissions; private _pendingPermissions; private _permissionRequestsByKey; private _permissionRequestQueue; private _permissionQueueSubscription; private _clearCacheSubscription; constructor(keyCloakService: KeycloakService, logger: NGXLogger, permissionApiService: PermissionApiService); requestPermission(permissionRequest: PermissionRequest, context?: PermissionContext): Observable; /** * Invalidates cached and in-flight permission results for the provided resource, so that * subsequent permission requests are re-evaluated by the backend. Call this after an action * that can change the outcome of permission checks (e.g. changing a task assignment). * * @param resource the resource type to invalidate, e.g. * `com.ritense.valtimo.operaton.domain.OperatonTask` * @param identifier when provided, only permissions requested with a context for this specific * resource instance (or without an instance context) are invalidated; otherwise all permissions * for the resource are invalidated */ invalidateResource(resource: string, identifier?: string): void; private permissionRequestMatchesResource; private queuePermission; private openQueueSubscription; private cacheResolvedPermissions; private openClearCacheSubscription; private emptyQueue; private clearCache; private clearPending; private clearPermissionRequests; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }