type SimpleData = { id: string; name: string; children?: SimpleData[]; }; export declare class SimpleTree { root: SimpleNode; constructor(data: T[]); get data(): T[]; create(args: { parentId: string | null; index: number; data: T; }): null | undefined; move(args: { id: string; parentId: string | null; index: number; }): void; update(args: { id: string; changes: Partial; }): void; drop(args: { id: string; }): void; find(id: string, node?: SimpleNode): SimpleNode | null; } declare class SimpleNode { data: T; parent: SimpleNode | null; id: string; children?: SimpleNode[]; constructor(data: T, parent: SimpleNode | null); hasParent(): this is this & { parent: SimpleNode; }; get childIndex(): number; addChild(data: T, index: number): void; removeChild(index: number): void; update(changes: Partial): void; drop(): void; } export {};