import { PermissionCheckResult, CheckOptions } from "./types"; import { IUserRepository } from "./repositories/IUserRepository"; import { IRoleRepository } from "./repositories/IRoleRepository"; import { IPolicyRepository } from "./repositories/IPolicyRepository"; /** * Scalable Permission Engine that uses repositories for data access * This version doesn't store data - it fetches from your database via repositories */ export declare class PermissionEngineV2 { private userRepository; private roleRepository; private policyRepository; constructor(userRepository: IUserRepository, roleRepository: IRoleRepository, policyRepository: IPolicyRepository); /** * Checks if a user has permission (async, stateless) */ checkPermission(userId: string, resource: string, action: string, options?: CheckOptions): Promise; /** * Checks if a user has all specified permissions */ checkAllPermissions(userId: string, checks: Array<{ resource: string; action: string; }>, options?: CheckOptions): Promise; /** * Checks if a user has any of the specified permissions */ checkAnyPermission(userId: string, checks: Array<{ resource: string; action: string; }>, options?: CheckOptions): Promise; /** * Gets all permissions for a user (from roles and direct permissions) */ private getUserPermissions; /** * Gets all permissions for a role, including inherited permissions */ private getRolePermissions; /** * Evaluates policies for a resource/action */ private evaluatePolicies; /** * Checks if a permission matches a resource and action */ private permissionMatches; /** * Checks if permission conditions match the context */ private conditionsMatch; } //# sourceMappingURL=PermissionEngineV2.d.ts.map