import { AutoEncoder, AutoEncoderPatchType } from '@simonbackx/simple-encoding'; import { AccessRight } from './AccessRight.js'; import { PermissionLevel } from './PermissionLevel.js'; import { PermissionRoleDetailed } from './PermissionRole.js'; import { PermissionsResourceType } from './PermissionsResourceType.js'; type ResourceLike = { accessRights: AccessRight[]; level: PermissionLevel; isEmpty: boolean; resourceName?: string; }; /** * More granular access rights to specific things in the system */ export declare class ResourcePermissions extends AutoEncoder { /** * This is a cache so we can display the role description without fetching all resources */ resourceName: string; /** * Setting it to full gives all possible permissions for the resource * Read/Write depends on resource */ level: PermissionLevel; /** * More granular permissions related to this resource */ accessRights: AccessRight[]; getDiffName(): string; hasAccess(level: PermissionLevel): boolean; hasAccessRight(right: AccessRight): boolean; createInsertPatch(type: PermissionsResourceType, resourceId: string, roleOrPermissions: PermissionRoleDetailed): AutoEncoderPatchType; createInsertPatch(type: PermissionsResourceType, resourceId: string, roleOrPermissions: import('./Permissions.js').Permissions): AutoEncoderPatchType; merge(other: ResourcePermissions): ResourcePermissions; removeAccessRights(rights: AccessRight[]): void; get isEmpty(): boolean; static getMapDescription(map: Map>): string[]; } export {}; //# sourceMappingURL=ResourcePermissions.d.ts.map