import { CanActivate, ExecutionContext } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
import { Repository } from 'typeorm';
import { ClsService } from 'nestjs-cls';
import { RedisService } from '../../redis/redis.service';
import { RolePermissionEntity, AccessLevel } from '../../entities/role-permission.entity';
export interface PermissionRequirement {
    module: string;
    accessLevel: AccessLevel;
}
export declare class PermissionGuard implements CanActivate {
    private readonly reflector;
    private readonly redisService;
    private readonly rolePermRepo;
    private readonly cls;
    private static readonly CACHE_TTL;
    private static readonly CACHE_PREFIX;
    constructor(reflector: Reflector, redisService: RedisService, rolePermRepo: Repository<RolePermissionEntity>, cls: ClsService);
    canActivate(context: ExecutionContext): Promise<boolean>;
    private getRolePermissions;
}
