import { ActiveRecord, ActiveRecords, RuntimeRelationField } from '@oinone/kunlun-engine';
import { OioTreeNode } from '@oinone/kunlun-vue-ui-common';
import { FormComplexFieldProps } from '../../basic';
import { TreeNodeResponseBody } from '../../service';
import { TreeData, TreeNodeMetadata } from '../../typing';
import { AbstractTreeFieldWidget, BackfillDataParameters } from '../tree-select';
export declare class FormTreeFieldWidget<Value = ActiveRecords, Field extends RuntimeRelationField = RuntimeRelationField, Props extends FormComplexFieldProps<Field> = FormComplexFieldProps<Field>> extends AbstractTreeFieldWidget<TreeData, Value, Field, Props> {
    protected selectedValue: OioTreeNode<TreeData> | OioTreeNode<TreeData>[] | undefined;
    initialize(props: any): this;
    protected get onlySelectedLeaf(): boolean;
    protected get checkable(): boolean;
    protected get checkStrictly(): boolean;
    protected onSelected(node: OioTreeNode<TreeData>, selected: boolean): Promise<void>;
    protected onChecked(node: OioTreeNode<TreeData>, selected: boolean): Promise<void>;
    protected nodeCheckedAll(node: OioTreeNode<TreeData>): boolean;
    protected get nodeCheckedAllLabel(): string | undefined;
    protected get nodeUncheckedAllLabel(): string | undefined;
    onNodeCheckedAll(node: OioTreeNode<TreeData>, selected: boolean): void;
    protected getCurrentSelectedValue(): OioTreeNode<TreeData>[];
    protected collectionSelectedNodes(selectedNode: OioTreeNode<TreeData>): OioTreeNode<TreeData>[];
    protected collectionSelectedAllNodes(selectedNode: OioTreeNode<TreeData>): OioTreeNode<TreeData>[];
    protected collectionSelectedNodesFilter(node: OioTreeNode<TreeData>, model: string): boolean;
    protected $collectionSelectedNodes(selectedNodes: OioTreeNode<TreeData>[], targetSelectedNodes: OioTreeNode<TreeData>[], filter: (value: OioTreeNode<TreeData>) => boolean): void;
    protected onSelectedValueChange(currentSelectedValue: OioTreeNode<TreeData>[], targetSelectedValues: OioTreeNode<TreeData>[], selected: boolean): void;
    protected generatorNewTreeNode(parent: OioTreeNode<TreeData>, key: string, title: string | undefined, metadata: TreeNodeMetadata, data: ActiveRecord): OioTreeNode<TreeData>;
    /**
     * 获取回填数据
     * @protected
     */
    protected fetchBackfillData(currentValues: ActiveRecord[], metadataList: TreeNodeMetadata[]): Promise<TreeNodeResponseBody[] | undefined>;
    protected backfillDataProcess({ selectedNodes }: BackfillDataParameters): void;
    protected backfillDataByValue(): Promise<boolean>;
    protected clearBackfillDataProcess(): Promise<void>;
    protected convertBackfillData(currentValues: ActiveRecord[], metadataList: TreeNodeMetadata[], list: TreeNodeResponseBody[], customCreateNodeCallback?: (node: OioTreeNode<TreeData>, value: TreeData | undefined) => void, customUpdateNodeCallback?: (node: OioTreeNode<TreeData>, value: TreeData) => void): BackfillDataParameters | undefined;
    protected generatorTreeNodeAfterProperties(node: OioTreeNode<TreeData>): void;
    protected setSelectedValue(selectedValue: OioTreeNode<TreeData> | OioTreeNode<TreeData>[] | undefined): void;
    protected $onSelectedChange(selectedNodes: OioTreeNode<TreeData>[] | null | undefined): void;
}
