import { FindManyOptions, FindOneOptions, Repository } from 'typeorm';
import { NestAuthRole } from '../entities/role.entity';
import { TenantService } from '../../tenant';
export declare class RoleService {
    private roleRepository;
    private tenantService;
    constructor(roleRepository: Repository<NestAuthRole>, tenantService: TenantService);
    createRole(name: string, guard: string, tenantId?: string | null, isSystem?: boolean, permissionIds?: string | string[]): Promise<NestAuthRole>;
    getRoleById(id: string, options?: FindOneOptions<NestAuthRole>): Promise<NestAuthRole>;
    getRoleByName(name: string, guard?: string, tenantId?: string, options?: FindOneOptions<NestAuthRole>): Promise<NestAuthRole>;
    getSystemRoles(options?: FindManyOptions<NestAuthRole>): Promise<NestAuthRole[]>;
    getRoles(params?: {
        guard?: string;
        tenantId?: string;
        onlyTenantRoles?: boolean;
        onlySystemRoles?: boolean;
    }, options?: FindManyOptions<NestAuthRole>): Promise<NestAuthRole[]>;
    updateRole(id: string, data: Partial<NestAuthRole>): Promise<NestAuthRole>;
    updateRolePermissions(id: string, permissionIds: string | string[]): Promise<NestAuthRole>;
    deleteRole(id: string): Promise<void>;
}
//# sourceMappingURL=role.service.d.ts.map