import { ExpressionRunParam } from '@oinone/kunlun-expression';
import { ViewType } from '@oinone/kunlun-meta';
import { ReturnPromise } from '@oinone/kunlun-shared';
import { OioTreeNode } from '@oinone/kunlun-vue-ui-common';
import { TreeNodeResponseBody } from '../../service';
import { TreeData, TreeNodeMetadata } from '../../typing';
import { AbstractTreeWidget } from './AbstractTreeWidget';
/**
 * 标准树组件
 */
export declare abstract class AbstractTreeElementWidget<V extends TreeData = TreeData> extends AbstractTreeWidget<V> {
    protected rootNode: OioTreeNode<V> | undefined;
    protected searchRootNode: OioTreeNode<V> | undefined;
    protected searchValue: string | undefined;
    protected selectedKeys: string[] | undefined;
    protected expandedKeys: string[] | undefined;
    protected loadedKeys: string[] | undefined;
    protected get expandLevel(): string | undefined;
    protected checkedKeys: string[] | undefined;
    protected showContent: boolean;
    protected contentViewType: ViewType | undefined;
    protected get searchPlaceHolder(): any;
    get checkable(): boolean | undefined;
    get autoExpandParent(): boolean | undefined;
    get showIcon(): boolean | undefined;
    get checkAll(): boolean | undefined;
    get checkAllLabel(): any;
    get searchRemote(): any;
    get viewModel(): string | undefined;
    get width(): string | undefined;
    initialize(props: any): this;
    protected runtimeInitialed(): void;
    protected generatorRootNode(metadata: TreeNodeMetadata): OioTreeNode<V>;
    onUpdateSelectedKeys(val: string[]): void;
    onUpdateExpandedKeys(val: string[]): void;
    onUpdateLoadedKeys(val: string[]): void;
    onUpdateSearchValue(val: string): void;
    protected onSearch(keywords: string): Promise<void>;
    onCheckedAll(checkedAll: boolean): ReturnPromise<void>;
    protected onNodeCheckedAll(): ReturnPromise<void>;
    protected onNodeUncheckedAll(): ReturnPromise<void>;
    protected loadExpandLevel(node: OioTreeNode<V>, metadataList: TreeNodeMetadata[]): Promise<void>;
    /**
     * 加载指定展开层级
     * @param node
     */
    loadExpandLevelData(node: OioTreeNode<V>, metadataList: TreeNodeMetadata[]): Promise<{
        nodes: OioTreeNode<V>[];
        expandedKeys: string[];
    }>;
    loadExpandLevelDataAfterProcess(node: OioTreeNode<V>, nodes: OioTreeNode<V>[], expandedKeys: string[]): {
        nodes: OioTreeNode<V>[];
        expandedKeys: string[];
    };
    /**
     * 修复展开层级的 loaded、isLeaf、expandedKeys 数据
     * @param node
     */
    fixExpandLevelNodes(nodes: OioTreeNode<V>[], expandedKeys: string[]): void;
    fetchExpandEndLevel(metadataList: TreeNodeMetadata[], options?: {
        expressionParameters?: ExpressionRunParam;
    }): Promise<TreeNodeResponseBody[]>;
    protected generatorExpressionParameters(): ExpressionRunParam;
    protected onClearSearch(): ReturnPromise<void>;
    protected mountedProcess(): Promise<void>;
    protected refreshProcess(): Promise<void>;
    protected refreshProcessAfterProperties(): void;
    /**
     * 加载全部节点
     */
    loadAllData(): Promise<TreeNodeResponseBody[]>;
    fetchAll(): Promise<TreeNodeResponseBody[]>;
}
