import { ConfigService } from './config.service';
import { Permission } from '../interfaces/permission.interface';
import { Repository } from 'typeorm';
import { PermissionEntity } from '../models/permission.entity';
import { UserPermissionEntity } from '../models/user-permission.entity';
import { RouterPermissionEntity } from '../models/router-permission.entity';
import 'reflect-metadata';
import { AuditService } from './audit.service';
interface PermissionOptions {
    strategy?: 'AND' | 'OR';
}
export declare class PermissionService {
    private readonly configService;
    private readonly permissionRepository;
    private readonly userPermissionRepository;
    private readonly routerPermissionRepository;
    private readonly auditService;
    private permissionCache;
    constructor(configService: ConfigService, permissionRepository: Repository<PermissionEntity>, userPermissionRepository: Repository<UserPermissionEntity>, routerPermissionRepository: Repository<RouterPermissionEntity>, auditService: AuditService);
    getUserPermissions(userId: string): Promise<Permission[]>;
    checkRoutePermission(route: string, method: string, userId: string): Promise<boolean>;
    validateUserPermissions(userId: string, requiredPermissions: string[], options?: PermissionOptions): Promise<boolean>;
    getPermissions(): Promise<PermissionEntity[]>;
}
export {};
