import type { DId } from '../../utils/types'; export type TreeNodeStatus = 'INDETERMINATE' | 'CHECKED' | 'UNCHECKED'; export declare const INDETERMINATE: TreeNodeStatus, CHECKED: TreeNodeStatus, UNCHECKED: TreeNodeStatus; export interface TreeOrigin { disabled?: boolean; children?: TreeOrigin[]; } export declare abstract class AbstractTreeNode { origin: T; private _parent; constructor(origin: T); get parent(): AbstractTreeNode | null; get root(): AbstractTreeNode; get isLeaf(): boolean; get id(): ID; get status(): TreeNodeStatus; get checked(): boolean; get unchecked(): boolean; get indeterminate(): boolean; get disabled(): boolean; get enabled(): boolean; updateStatus(checked: ID | null | Set, onlySelf?: boolean): void; protected _setParent(parent: AbstractTreeNode): void; protected _updateAncestors(checked: ID | null | Set, onlySelf: boolean): void; abstract children?: AbstractTreeNode[]; protected abstract _id: ID; protected abstract _status: TreeNodeStatus; protected abstract _disabled: boolean; protected abstract _calculateStatus(checked: ID | null | Set): void; }