import { InitModelOf, LookupBox, LookupResult, LookupRow, ObjectOrChildModel, Tree, TreeBoxLayout, TreeBoxModel, TreeModel, TreeNode, TreeNodesCheckedEvent, TreeNodeUncheckOptions, Widget } from '../../../index';
export declare class TreeBox<TValue> extends LookupBox<TValue> implements TreeBoxModel<TValue> {
    tree: Tree;
    protected _populating: boolean;
    constructor();
    protected _init(model: InitModelOf<this>): void;
    protected _initStructure(value: TValue[]): void;
    protected _render(): void;
    protected _createFieldContainerLayout(): TreeBoxLayout;
    protected _renderStructure(): void;
    protected _onTreeNodesChecked(event: TreeNodesCheckedEvent): void;
    protected _syncTreeToValue(): void;
    protected _valueChanged(): void;
    protected _syncValueToTree(newValue: TValue[]): void;
    uncheckAll(options: TreeNodeUncheckOptions): void;
    protected _lookupByAllDone(result: LookupResult<TValue>): void;
    protected _populateTree(result: LookupResult<TValue>): void;
    protected _populateTreeRecursive(parentKey: TValue, nodesArray: TreeNode[], lookupRows: LookupRow<TValue>[]): void;
    /**
     * Returns a lookup row for each node currently checked.
     */
    getCheckedLookupRows(): LookupRow<TValue>[];
    protected _createNode(lookupRow: LookupRow<TValue>): TreeBoxTreeNode<TValue>;
    protected _prepareWidgetProperty(propertyName: string, models: ObjectOrChildModel<Widget>): Widget;
    protected _prepareWidgetProperty(propertyName: string, models: ObjectOrChildModel<Widget>[]): Widget[];
    protected _createDefaultTreeBoxTree(): Tree;
    protected _createDefaultTreeBoxTreeModel(): TreeModel;
    getDelegateScrollable(): Widget;
}
export type TreeBoxTreeNode<TValue> = TreeNode & {
    lookupRow: LookupRow<TValue>;
    active?: boolean;
};
//# sourceMappingURL=TreeBox.d.ts.map