import { type Entity } from "../Entity.js";
import { type System, type SystemContext } from "../System.js";
import { type World } from "../World.js";
export declare class HierarchySystem implements System {
    readonly name = "HierarchySystem";
    readonly phase = "update";
    readonly priority = -100;
    update(world: World, _context: SystemContext): void;
    setParent(world: World, child: Entity, parent: Entity | null): void;
    addChild(world: World, parent: Entity, child: Entity): void;
    removeFromParent(world: World, entity: Entity): void;
    getParent(world: World, entity: Entity): Entity | null;
    getChildren(world: World, entity: Entity): readonly Entity[];
    getDepth(world: World, entity: Entity): number;
    forEachDescendant(world: World, entity: Entity, callback: (descendant: Entity, depth: number) => void): void;
    isAncestorOf(world: World, ancestor: Entity, descendant: Entity): boolean;
    isDescendantOf(world: World, descendant: Entity, ancestor: Entity): boolean;
    setSiblingIndex(world: World, entity: Entity, index: number): void;
    detachChildren(world: World, entity: Entity): Entity[];
    validateHierarchy(world: World): boolean;
    detectCycles(world: World): Entity[];
    private updateDescendantDepths;
    private refreshChildSiblings;
}
//# sourceMappingURL=HierarchySystem.d.ts.map