import { Observable } from 'rxjs'; import { ReadonlyReactiveMap } from './reactive-map'; export type ReactiveTreeNodeType = { id: string; parentId?: string | null; }; export declare class ReactiveTree { private readonly sortCompareFn?; readonly rootNodes$: Observable; private readonly _nodesMap; private readonly _rootNodeIdsSet; private readonly _childNodeIdsMap; private readonly _orphanNodesMap; constructor(sortCompareFn?: ((first: TNode, second: TNode) => number) | undefined); get nodesMap(): ReadonlyReactiveMap; getParent(nodeId: string): TNode | null; getParent$(nodeId: string): Observable; recursivelyGetAllParents$(nodeId: string): Observable; recursivelyGetAllParents(nodeId: string): TNode[]; recursivelyGetAllChildIds(nodeId: string): string[]; getChildren$(nodeId: string): Observable; getChildren(nodeId: string): TNode[]; getSiblings$(nodeId: string): Observable; getNodeSiblingIndex$(nodeId: string): Observable; getLevel(nodeId: string): number; setNodes(...nodesToAdd: TNode[]): void; deleteNodes(...nodeIds: string[]): void; deleteChildrenOfNode(nodeId: string): void; clear(): void; private getNodeById; private getNodesById$; private getNodesById; }