import { ActiveRecord, Pagination } from '@oinone/kunlun-engine';
import { Condition } from '@oinone/kunlun-request';
import { CallChaining, ReturnPromise } from '@oinone/kunlun-shared';
import { OioTreeNode } from '@oinone/kunlun-vue-ui-antd';
import { BaseElementWidget } from '../../basic';
import { TreeNodeResponseBody } from '../../service';
import { CardCascaderItemData, TreeData, TreeNodeMetadata } from '../../typing';
declare type ResponseBody = {
    label?: string;
    metadata: TreeNodeMetadata;
    value: ActiveRecord;
    isLeaf: boolean;
};
/**
 * <h3>抽象树基类</h3>
 * <p>
 *  该组件作为Tree数据结构的基本抽象，仅用于定义数据获取，数据回填，数据结构处理等功能，与具体展示组件无关
 * </p>
 */
export declare abstract class AbstractTreeWidget<V extends TreeData = TreeData> extends BaseElementWidget {
    protected defaultPagination: Pagination;
    protected treeDefinition: TreeNodeMetadata | undefined;
    protected mountedCallChaining: CallChaining | undefined;
    protected parentRefreshCallChaining: CallChaining | undefined;
    protected currentRefreshCallChaining: CallChaining | undefined;
    protected get refreshCallChaining(): CallChaining | undefined;
    initialize(props: any): this;
    get allInvisible(): boolean;
    get invisible(): boolean;
    protected childrenInvisibleProcess(): boolean;
    protected getTreeMetadataList(): TreeNodeMetadata[];
    protected loadIdempotentKey: Record<string, string>;
    /**
     * 加载指定节点的子节点（展开时懒加载）
     * @param node
     */
    loadData(node: OioTreeNode<V>): Promise<ResponseBody[]>;
    /**
     * 加载指定节点的更多子节点
     * @param node
     */
    loadMoreData(node: OioTreeNode<V>): Promise<ResponseBody[]>;
    onSelected(node: OioTreeNode<V>, selected: boolean): ReturnPromise<void>;
    protected onNodeSelected(node: OioTreeNode<V>): ReturnPromise<void>;
    protected onNodeUnselected(node: OioTreeNode<V>): ReturnPromise<void>;
    onChecked(node: OioTreeNode<V>, checked: boolean): ReturnPromise<void>;
    protected onNodeChecked(node: OioTreeNode<V>): ReturnPromise<void>;
    protected onNodeUnchecked(node: OioTreeNode<V>): ReturnPromise<void>;
    protected get enableSearch(): boolean | undefined;
    /**
     * @deprecated
     */
    get isSkipRefreshSelf(): boolean;
    fetchData(node: OioTreeNode<V>, disableSelfReferences?: boolean): Promise<ResponseBody[]>;
    fillChildren(node: OioTreeNode<V>, results: ResponseBody[]): void;
    generatorKey(metadataKey: string, data: ActiveRecord): string;
    protected generatorNewTreeNode(parent: OioTreeNode<V>, key: string, title: string | undefined, metadata: TreeNodeMetadata | undefined, data: ActiveRecord): OioTreeNode<V>;
    protected isLeafPredict(node: TreeNodeMetadata | undefined): boolean;
    protected convertTreeByTreeSearchResponseBody(list: TreeNodeResponseBody[]): {
        nodes: OioTreeNode<V>[];
        expandedKeys: string[];
    };
    protected computeNodeTitle(val: V): string;
    /**
     * 加载状态调用函数
     * @param node
     * @param fn
     * @param args
     * @protected
     */
    loadNode<R>(node: OioTreeNode<V>, fn: (...args: any[]) => R, ...args: any[]): Promise<R>;
    executeExpression<T>(activeRecord: ActiveRecord, expression: string, errorValue?: T): T | string | undefined;
    protected abstract mountedProcess(): ReturnPromise<void>;
    protected abstract refreshProcess(): ReturnPromise<void>;
    protected $$beforeMount(): void;
    protected $$mounted(): void;
    protected $$unmounted(): void;
    /**
     * 选中节点（搜索）
     * @param node 选中节点
     */
    protected onSelectedForSearch(node: OioTreeNode<V>): Promise<boolean>;
    /**
     * 选中节点（查询）
     * @param node 选中节点
     * @protected
     */
    protected onSelectedForQuery(node: OioTreeNode<CardCascaderItemData>): Promise<boolean>;
    /**
     * 移除选中
     * @protected
     */
    protected onUnselected(): Promise<void>;
    protected setRuntimeFilter(filter: string | Condition | undefined): void;
}
export {};
