import { ElTreeV2Instance } from '../ele-app/el';
import { EleBasicSelectInstance } from '../ele-app/plus';
import { SelectValue, SingleValue, SelectedItem } from '../ele-basic-select/types';
import { DataItem } from './types';

declare const _default: import('vue').DefineComponent<{
    modelValue: {
        type: import('vue').PropType<SelectValue>;
        default: () => null;
    };
    multiple: BooleanConstructor;
    disabled: BooleanConstructor;
    size: import('vue').PropType<import('../ele-app/el').ElInputProps["size"]>;
    clearable: BooleanConstructor;
    placeholder: StringConstructor;
    cacheData: import('vue').PropType<import('../ele-app/el').ElTreeV2Props["data"]>;
    treeProps: {
        type: import('vue').PropType<import('../ele-app/el').ElTreeV2Props>;
        required: boolean;
    };
    showCheckedStrategy: import('vue').PropType<import('./types').ShowCheckedStrategy>;
    checkedValueStrategy: BooleanConstructor;
    maxTagCount: NumberConstructor;
    maxTagTextLength: NumberConstructor;
    tagType: {
        type: import('vue').PropType<import('../ele-app/el').ElTagProps["type"]>;
        default: string;
    };
    automaticDropdown: BooleanConstructor;
    filterable: BooleanConstructor;
    teleported: {
        type: BooleanConstructor;
        default: boolean;
    };
    persistent: {
        type: BooleanConstructor;
        default: boolean;
    };
    placement: {
        type: import('vue').PropType<import('../ele-app/plus').EleTooltipProps["placement"]>;
        default: string;
    };
    transition: {
        type: StringConstructor;
        default: string;
    };
    popperOptions: import('vue').PropType<import('../ele-app/plus').EleTooltipProps["popperOptions"]>;
    popperClass: StringConstructor;
    popperWidth: (StringConstructor | NumberConstructor)[];
    selectStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
    inputStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
    selectTagsStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
}, {
    selectRef: import('vue').Ref<EleBasicSelectInstance>;
    treeRef: import('vue').Ref<ElTreeV2Instance>;
    selectVisible: import('vue').Ref<boolean>;
    selectedItems: import('vue').Ref<{
        label: string;
        value: SingleValue;
        hide?: boolean | undefined;
        index?: number | undefined;
    }[]>;
    selectedLabel: import('vue').ComputedRef<string>;
    selectPopperClass: import('vue').ComputedRef<string>;
    treeOptions: import('vue').ComputedRef<Required<import('element-plus/es/components/tree-v2/src/types').TreeOptionProps>>;
    updatePopover: () => void;
    treeFilter: (keywords: string, item: DataItem) => any;
    updateVisible: (visible: boolean) => void;
    handleSelectFilter: (keywords: string) => void;
    handleSelectRemove: (item: SelectedItem) => void;
    handleSelectClear: () => void;
    handleSelectFocus: (e: FocusEvent) => void;
    handleSelectBlur: (e: FocusEvent) => void;
    handleTreeClick: (item: DataItem, _node: any, e: MouseEvent) => void;
    handleTreeCheck: () => void;
    handleTreeExpand: () => void;
    handleTreeCollapse: () => void;
}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    'update:modelValue': (_value: SelectValue) => boolean;
    change: (_value: SelectValue) => boolean;
    visibleChange: (_visible: boolean) => boolean;
    removeTag: (_value: SingleValue) => boolean;
    clear: () => boolean;
    focus: (_e: FocusEvent) => boolean;
    blur: (_e: FocusEvent) => boolean;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    modelValue: {
        type: import('vue').PropType<SelectValue>;
        default: () => null;
    };
    multiple: BooleanConstructor;
    disabled: BooleanConstructor;
    size: import('vue').PropType<import('../ele-app/el').ElInputProps["size"]>;
    clearable: BooleanConstructor;
    placeholder: StringConstructor;
    cacheData: import('vue').PropType<import('../ele-app/el').ElTreeV2Props["data"]>;
    treeProps: {
        type: import('vue').PropType<import('../ele-app/el').ElTreeV2Props>;
        required: boolean;
    };
    showCheckedStrategy: import('vue').PropType<import('./types').ShowCheckedStrategy>;
    checkedValueStrategy: BooleanConstructor;
    maxTagCount: NumberConstructor;
    maxTagTextLength: NumberConstructor;
    tagType: {
        type: import('vue').PropType<import('../ele-app/el').ElTagProps["type"]>;
        default: string;
    };
    automaticDropdown: BooleanConstructor;
    filterable: BooleanConstructor;
    teleported: {
        type: BooleanConstructor;
        default: boolean;
    };
    persistent: {
        type: BooleanConstructor;
        default: boolean;
    };
    placement: {
        type: import('vue').PropType<import('../ele-app/plus').EleTooltipProps["placement"]>;
        default: string;
    };
    transition: {
        type: StringConstructor;
        default: string;
    };
    popperOptions: import('vue').PropType<import('../ele-app/plus').EleTooltipProps["popperOptions"]>;
    popperClass: StringConstructor;
    popperWidth: (StringConstructor | NumberConstructor)[];
    selectStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
    inputStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
    selectTagsStyle: import('vue').PropType<import('../ele-app/types').StyleValue>;
}>> & {
    "onUpdate:modelValue"?: ((_value: SelectValue) => any) | undefined;
    onChange?: ((_value: SelectValue) => any) | undefined;
    onFocus?: ((_e: FocusEvent) => any) | undefined;
    onBlur?: ((_e: FocusEvent) => any) | undefined;
    onClear?: (() => any) | undefined;
    onVisibleChange?: ((_visible: boolean) => any) | undefined;
    onRemoveTag?: ((_value: SingleValue) => any) | undefined;
}, {
    modelValue: SelectValue;
    placement: import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, import('element-plus').Placement, unknown> | undefined;
    teleported: boolean;
    clearable: boolean;
    disabled: boolean;
    filterable: boolean;
    tagType: import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "success" | "warning" | "info" | "primary" | "danger", unknown> | undefined;
    persistent: boolean;
    transition: string;
    multiple: boolean;
    automaticDropdown: boolean;
    checkedValueStrategy: boolean;
}, {}>;
export default _default;
