import { RoleRepository } from './repositories/role.repository';
import { RoleHierarchyRepository } from './repositories/role-hierarchy.repository';
import { type UpdateRoleHierarchyDto } from './dto/update-role-hierarchy.dto';
export interface RoleHierarchyNode {
    id: string;
    name: string;
    is_system: boolean;
    parent_role_id: string | null;
}
export declare class RoleHierarchyService {
    private readonly roleRepo;
    private readonly hierarchyRepo;
    constructor(roleRepo: RoleRepository, hierarchyRepo: RoleHierarchyRepository);
    setParent(roleId: string, parentRoleId: string | null): Promise<void>;
    ensureRoot(roleId: string): Promise<void>;
    detach(roleId: string): Promise<void>;
    getParentRoleId(roleId: string): Promise<string | null>;
    getAncestorRoleIds(roleId: string): Promise<string[]>;
    get(): Promise<RoleHierarchyNode[]>;
    replace(dto: UpdateRoleHierarchyDto): Promise<{
        message: string;
    }>;
}
