import { AjaxCall, AjaxError, BaseDoEntity, EventHandler, InitModelOf, ObjectModel, Permission, PermissionCollection, PermissionCollectionModel, PermissionCollectionType, PermissionLevel, PermissionModel, PropertyEventEmitter, SomeRequired, UiNotificationEvent } from '../index'; export declare class AccessControl extends PropertyEventEmitter implements AccessControlModel { self: AccessControl; model: AccessControlModel; initModel: SomeRequired; permissionsUrl: string; protected _permissionCollection: PermissionCollection; protected _permissionUpdateEventHandler: EventHandler; protected _reloadTimeoutId: number; protected _call: AjaxCall; constructor(); init(model: InitModelOf): void; bootstrap(): JQuery.Promise; destroy(): void; protected _subscribeForNotifications(): JQuery.Promise; protected _unsubscribeFromNotifications(): void; protected _onPermissionUpdateNotify(event: UiNotificationEvent): void; protected _load(): JQuery.Promise; protected _loadPermissionCollection(): JQuery.Promise; /** * Check `permission` against the current {@link PermissionCollection}. * Quick check is executed synchronously while non-quick check is executed asynchronously. */ check(permission: Permission, quick: true): boolean; check(permission: Permission, quick?: false): JQuery.Promise; check(permission: Permission, quick?: boolean): boolean | JQuery.Promise; /** * Returns the granted {@link PermissionLevel} for a given permission instance `permission`. * - {@link Permission.Level.UNDEFINED} if `permission` is `null` or in general 'not an {@link Permission}' * - {@link Permission.Level.NONE} if no level at all is granted to `permission` * - {@link PermissionLevel} if the level can be determined exactly. * - {@link Permission.Level.UNDEFINED} if there are multiple granted permission levels possible and there is not enough data in the `permission` contained to determine the result closer. */ getGrantedPermissionLevel(permission: Permission): PermissionLevel; } export interface AccessControlModel extends ObjectModel { /** * URL pointing to a json resource that provides information about permissions (see {@link PermissionCollectionModel}). */ permissionsUrl?: string; } export declare class PermissionUpdateMessageDo extends BaseDoEntity { reloadDelayWindow: number; } export declare class PermissionDo extends BaseDoEntity implements PermissionModel { id: string; objectType: string; level: PermissionLevel; } export declare class PermissionCollectionDo extends BaseDoEntity implements PermissionCollectionModel { permissions: Record; type: PermissionCollectionType; } //# sourceMappingURL=AccessControl.d.ts.map