import type { Command } from "../Command";
interface ParentLike<TNode> {
    readonly children: TNode[];
    addChild(child: TNode): unknown;
    removeChild(child: TNode): boolean;
}
interface ChildLike<TNode> {
    parent: ParentLike<TNode> | null;
    markWorldDirty?(): void;
}
export declare class ReparentNodeCommand<TNode extends ChildLike<TNode>> implements Command {
    private readonly node;
    private readonly newParent;
    readonly name = "Reparent Node";
    private readonly oldParent;
    private readonly oldIndex;
    private readonly newIndex;
    constructor(node: TNode, newParent: ParentLike<TNode>, newIndex?: number);
    execute(): void;
    undo(): void;
    private move;
}
export {};
//# sourceMappingURL=ReparentNodeCommand.d.ts.map