import { CanActivate, ExecutionContext } from '@nestjs/common'; import { Reflector } from '@nestjs/core'; import * as casbin from 'casbin'; import { AuthResource, AuthUser, BatchApproval } from './types'; import { AuthZModuleOptions } from './interfaces/authz-module-options.interface'; export declare class AuthZGuard implements CanActivate { protected readonly reflector: Reflector; protected enforcer: casbin.Enforcer; protected options: AuthZModuleOptions; constructor(reflector: Reflector, enforcer: casbin.Enforcer, options: AuthZModuleOptions); canActivate(context: ExecutionContext): Promise; enforce(user: AuthUser, resource: AuthResource | AuthResource[], action: string, batchApprovalPolicy?: BatchApproval): Promise; static asyncSome(array: T[], callback: (value: T, index: number, a: T[]) => Promise): Promise; static asyncEvery(array: T[], callback: (value: T, index: number, a: T[]) => Promise): Promise; }