export declare abstract class BaseTreeControl implements TreeControl { dataNodes: T[]; expansionModel: SelectionModel; getChildren: (dataNode: T) => (Observable | T[] | undefined | null); getLevel: (dataNode: T) => number; isExpandable: (dataNode: T) => boolean; collapse(dataNode: T): void; collapseAll(): void; collapseDescendants(dataNode: T): void; expand(dataNode: T): void; abstract expandAll(): void; expandDescendants(dataNode: T): void; abstract getDescendants(dataNode: T): T[]; isExpanded(dataNode: T): boolean; toggle(dataNode: T): void; toggleDescendants(dataNode: T): void; } export declare const CDK_TREE_NODE_OUTLET_NODE: InjectionToken<{}>; export declare class CdkNestedTreeNode extends CdkTreeNode implements AfterContentInit, OnDestroy { protected _children: T[]; protected _differs: IterableDiffers; protected _elementRef: ElementRef; protected _tree: CdkTree; nodeOutlet: QueryList; constructor(_elementRef: ElementRef, _tree: CdkTree, _differs: IterableDiffers); protected _clear(): void; ngAfterContentInit(): void; ngOnDestroy(): void; protected updateChildrenNodes(children?: T[]): void; static ɵdir: i0.ɵɵDirectiveDefWithMeta, "cdk-nested-tree-node", ["cdkNestedTreeNode"], {}, {}, ["nodeOutlet"]>; static ɵfac: i0.ɵɵFactoryDef>; } export declare class CdkTree implements AfterContentChecked, CollectionViewer, OnDestroy, OnInit { _nodeDefs: QueryList>; _nodeOutlet: CdkTreeNodeOutlet; get dataSource(): DataSource | Observable | T[]; set dataSource(dataSource: DataSource | Observable | T[]); trackBy: TrackByFunction; treeControl: TreeControl; viewChange: BehaviorSubject<{ start: number; end: number; }>; constructor(_differs: IterableDiffers, _changeDetectorRef: ChangeDetectorRef); _getNodeDef(data: T, i: number): CdkTreeNodeDef; insertNode(nodeData: T, index: number, viewContainer?: ViewContainerRef, parentData?: T): void; ngAfterContentChecked(): void; ngOnDestroy(): void; ngOnInit(): void; renderNodeChanges(data: T[] | ReadonlyArray, dataDiffer?: IterableDiffer, viewContainer?: ViewContainerRef, parentData?: T): void; static ɵcmp: i0.ɵɵComponentDefWithMeta, "cdk-tree", ["cdkTree"], { "dataSource": "dataSource"; "treeControl": "treeControl"; "trackBy": "trackBy"; }, {}, ["_nodeDefs"]>; static ɵfac: i0.ɵɵFactoryDef>; } export declare class CdkTreeModule { static ɵinj: i0.ɵɵInjectorDef; static ɵmod: i0.ɵɵNgModuleDefWithMeta; } export declare class CdkTreeNode implements FocusableOption, OnDestroy { protected _data: T; _dataChanges: Subject; protected _destroyed: Subject; protected _elementRef: ElementRef; protected _tree: CdkTree; get data(): T; set data(value: T); get isExpanded(): boolean; get level(): number; role: 'treeitem' | 'group'; constructor(_elementRef: ElementRef, _tree: CdkTree); protected _setRoleFromChildren(children: T[]): void; protected _setRoleFromData(): void; focus(): void; ngOnDestroy(): void; static mostRecentTreeNode: CdkTreeNode | null; static ɵdir: i0.ɵɵDirectiveDefWithMeta, "cdk-tree-node", ["cdkTreeNode"], { "role": "role"; }, {}, never>; static ɵfac: i0.ɵɵFactoryDef>; } export declare class CdkTreeNodeDef { template: TemplateRef; when: (index: number, nodeData: T) => boolean; constructor(template: TemplateRef); static ɵdir: i0.ɵɵDirectiveDefWithMeta, "[cdkTreeNodeDef]", never, { "when": "cdkTreeNodeDefWhen"; }, {}, never>; static ɵfac: i0.ɵɵFactoryDef>; } export declare class CdkTreeNodeOutlet { _node?: any; viewContainer: ViewContainerRef; constructor(viewContainer: ViewContainerRef, _node?: any); static ɵdir: i0.ɵɵDirectiveDefWithMeta; static ɵfac: i0.ɵɵFactoryDef; } export declare class CdkTreeNodeOutletContext { $implicit: T; count?: number; index?: number; level: number; constructor(data: T); } export declare class CdkTreeNodePadding implements OnDestroy { _indent: number; _level: number; get indent(): number | string; set indent(indent: number | string); indentUnits: string; get level(): number; set level(value: number); constructor(_treeNode: CdkTreeNode, _tree: CdkTree, _renderer: Renderer2, _element: ElementRef, _dir: Directionality); _paddingIndent(): string | null; _setPadding(forceChange?: boolean): void; ngOnDestroy(): void; static ngAcceptInputType_level: NumberInput; static ɵdir: i0.ɵɵDirectiveDefWithMeta, "[cdkTreeNodePadding]", never, { "level": "cdkTreeNodePadding"; "indent": "cdkTreeNodePaddingIndent"; }, {}, never>; static ɵfac: i0.ɵɵFactoryDef>; } export declare class CdkTreeNodeToggle { protected _recursive: boolean; protected _tree: CdkTree; protected _treeNode: CdkTreeNode; get recursive(): boolean; set recursive(value: boolean); constructor(_tree: CdkTree, _treeNode: CdkTreeNode); _toggle(event: Event): void; static ngAcceptInputType_recursive: BooleanInput; static ɵdir: i0.ɵɵDirectiveDefWithMeta, "[cdkTreeNodeToggle]", never, { "recursive": "cdkTreeNodeToggleRecursive"; }, {}, never>; static ɵfac: i0.ɵɵFactoryDef>; } export declare class FlatTreeControl extends BaseTreeControl { getLevel: (dataNode: T) => number; isExpandable: (dataNode: T) => boolean; constructor(getLevel: (dataNode: T) => number, isExpandable: (dataNode: T) => boolean); expandAll(): void; getDescendants(dataNode: T): T[]; } export declare function getTreeControlFunctionsMissingError(): Error; export declare function getTreeControlMissingError(): Error; export declare function getTreeMissingMatchingNodeDefError(): Error; export declare function getTreeMultipleDefaultNodeDefsError(): Error; export declare function getTreeNoValidDataSourceError(): Error; export declare class NestedTreeControl extends BaseTreeControl { getChildren: (dataNode: T) => (Observable | T[] | undefined | null); constructor(getChildren: (dataNode: T) => (Observable | T[] | undefined | null)); protected _getDescendants(descendants: T[], dataNode: T): void; expandAll(): void; getDescendants(dataNode: T): T[]; } export interface TreeControl { dataNodes: T[]; expansionModel: SelectionModel; readonly getChildren: (dataNode: T) => Observable | T[] | undefined | null; readonly getLevel: (dataNode: T) => number; readonly isExpandable: (dataNode: T) => boolean; collapse(dataNode: T): void; collapseAll(): void; collapseDescendants(dataNode: T): void; expand(dataNode: T): void; expandAll(): void; expandDescendants(dataNode: T): void; getDescendants(dataNode: T): any[]; isExpanded(dataNode: T): boolean; toggle(dataNode: T): void; toggleDescendants(dataNode: T): void; }