import { AdminCreatePermissionDto, AdminUpdatePermissionDto } from '../dto/admin-permission.dto';
import { PermissionService } from '../../permission/services/permission.service';
import { RoleService } from '../../role/services/role.service';
import { Repository } from 'typeorm';
import { NestAuthRole } from '../../role/entities/role.entity';
export declare class AdminPermissionsController {
    private readonly permissionService;
    private readonly roleService;
    private roleRepository;
    constructor(permissionService: PermissionService, roleService: RoleService, roleRepository: Repository<NestAuthRole>);
    listPermissions(search?: string, category?: string, guard?: string, limit?: string): Promise<{
        data: {
            id: string;
            name: string;
            guard: string;
            description: string;
            category: string;
            metadata: Record<string, any>;
            createdAt: Date;
            updatedAt: Date;
        }[];
    }>;
    getGuards(): Promise<{
        data: string[];
    }>;
    searchPermissions(query: string, guard?: string, limit?: string): Promise<{
        data: {
            id: string;
            name: string;
            guard: string;
            description: string;
            category: string;
            metadata: Record<string, any>;
            createdAt: Date;
            updatedAt: Date;
        }[];
    }>;
    getCategories(): Promise<{
        data: string[];
    }>;
    createPermission(dto: AdminCreatePermissionDto): Promise<{
        permission: {
            id: string;
            name: string;
            guard: string;
            description: string;
            category: string;
            metadata: Record<string, any>;
            createdAt: Date;
            updatedAt: Date;
        };
    }>;
    getPermission(id: string): Promise<{
        permission: {
            id: string;
            name: string;
            guard: string;
            description: string;
            category: string;
            metadata: Record<string, any>;
            createdAt: Date;
            updatedAt: Date;
        };
    }>;
    updatePermission(id: string, dto: AdminUpdatePermissionDto): Promise<{
        permission: {
            id: string;
            name: string;
            guard: string;
            description: string;
            category: string;
            metadata: Record<string, any>;
            createdAt: Date;
            updatedAt: Date;
        };
    }>;
    private updatePermissionInRoles;
    deletePermission(id: string): Promise<{
        message: string;
    }>;
    private toSafePermission;
}
//# sourceMappingURL=admin-permissions.controller.d.ts.map