import { ActiveRecord, ActiveRecords, RuntimeRelationField } from '@oinone/kunlun-engine';
import { CascaderItem, OioTreeNode } from '@oinone/kunlun-vue-ui-common';
import { FormComplexFieldProps } from '../../basic';
import { TreeNodeResponseBody } from '../../service';
import { TreeData, TreeNodeMetadata } from '../../typing';
import { AbstractTreeFieldWidget } from '../tree-select';
declare type CascaderItemType = CascaderItem<OioTreeNode<TreeData>>;
export declare class FormCascaderFieldWidget<Value = ActiveRecords, Field extends RuntimeRelationField = RuntimeRelationField, Props extends FormComplexFieldProps<Field> = FormComplexFieldProps<Field>> extends AbstractTreeFieldWidget<TreeData, Value, Field, Props> {
    protected selectedValue: string[] | string[][] | undefined;
    protected selectedLabels: string[] | string[][] | undefined;
    initialize(props: any): this;
    protected get changeOnSelect(): boolean;
    protected get labelsSeparator(): string | undefined;
    protected get showPath(): boolean;
    /**
     * @see CascaderCheckedStrategy
     */
    protected get multipleCheckedStrategy(): string | undefined;
    protected onSelectedChange(selectedValue: string[] | string[][], selectedOptions: CascaderItemType[] | CascaderItemType[][]): void;
    protected getSelectedNodes(selectedValue: string[] | string[][], selectedOptions: CascaderItemType[] | CascaderItemType[][]): OioTreeNode<TreeData>[] | undefined;
    protected validatorSelectedValue(selectedValue: string[] | string[][], selectedNodes: OioTreeNode<TreeData>[]): boolean | string[] | string[][];
    protected fetchBackfillData(currentValues: ActiveRecord[], metadataList: TreeNodeMetadata[]): Promise<TreeNodeResponseBody[] | undefined>;
    protected backfillDataProcess({ selectedNodes }: {
        selectedNodes: any;
    }): void;
    protected clearBackfillDataProcess(): void;
    protected collectionSelectedValues(selectedNode: OioTreeNode<TreeData> | undefined): string[];
    protected collectionSelectedLabels(selectedNode: OioTreeNode<TreeData> | undefined): string[];
}
export {};
