import { ModuleRef } from "@nestjs/core";
import { CRUDService } from '../services/crud.service';
import { EntityManager } from 'typeorm';
import { PermissionMetadataRepository } from '../repository/permission-metadata.repository';
import { RoleMetadataRepository } from '../repository/role-metadata.repository';
import { CreateRoleMetadataDto } from '../dtos/create-role-metadata.dto';
import { RoleMetadata } from '../entities/role-metadata.entity';
export declare class RoleMetadataService extends CRUDService<RoleMetadata> {
    readonly entityManager: EntityManager;
    readonly repo: RoleMetadataRepository;
    readonly permissionRepository: PermissionMetadataRepository;
    readonly moduleRef: ModuleRef;
    private readonly logger;
    constructor(entityManager: EntityManager, repo: RoleMetadataRepository, permissionRepository: PermissionMetadataRepository, moduleRef: ModuleRef);
    findRoleByName(roleName: string): Promise<RoleMetadata>;
    createRolesIfNotExists(roles: CreateRoleMetadataDto[]): Promise<void>;
    addAllPermissionsToRole(roleName: string): Promise<RoleMetadata>;
    addPermissionsToRole(roleName: string, permissionNames: string[]): Promise<RoleMetadata>;
    addPermissionToRole(roleName: string, permissionName: string[]): Promise<RoleMetadata>;
    private _addPermissionsToRole;
    removePermissionsFromRole(roleName: string, permissionNames: string[]): Promise<RoleMetadata>;
    private preloadPermissionByName;
}
//# sourceMappingURL=role-metadata.service.d.ts.map