import type { SelectionId } from "./Selection";
export interface HierarchyLikeNode {
    readonly id?: SelectionId;
    readonly name?: string;
    readonly visible?: boolean;
    readonly children?: readonly HierarchyLikeNode[];
}
export interface HierarchyNodeDescriptor {
    readonly id: SelectionId;
    readonly name: string;
    readonly visible: boolean;
    readonly selected: boolean;
    readonly depth: number;
    readonly childCount: number;
    readonly children: readonly HierarchyNodeDescriptor[];
}
export declare class HierarchyModel {
    describe(root: HierarchyLikeNode, selectedIds?: ReadonlySet<SelectionId>): HierarchyNodeDescriptor;
    flatten(root: HierarchyLikeNode, selectedIds?: ReadonlySet<SelectionId>): readonly HierarchyNodeDescriptor[];
}
//# sourceMappingURL=HierarchyModel.d.ts.map