import { User } from '../models/po/user.entity'; import { Role } from '../models/po/role.entity'; import { Permission } from '../models/po/permission.entity'; import { Ability, InferSubjects } from '@casl/ability'; import { SessionCredential } from "../models/dto/sessioncredential.dto"; export declare enum Operation { Manage = "manage", Create = "create", Read = "read", Update = "update", Delete = "delete" } declare type RolePrivileges = typeof Role | typeof Permission | Role | Permission | 'all'; export declare type RolePrivilegeAbility = Ability<[Operation, RolePrivileges]>; declare type UserPrivileges = InferSubjects | 'all'; export declare type UserPrivilegeAbility = Ability<[Operation, UserPrivileges]>; export declare class CaslAbilityFactory { createRoleChecker(credential: SessionCredential): Ability<[Operation, RolePrivileges], import("@casl/ability").MongoQuery>>; createUserChecker(credential: SessionCredential): Ability<[Operation, UserPrivileges], import("@casl/ability").MongoQuery>>; } export {};