import { EleBasicSelectInstance, EleProTableInstance } from '../ele-app/plus';
import { SingleValue, SelectValue, SelectedItem } from '../ele-basic-select/types';
import { DataKey, DataItem } from '../ele-data-table/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;
    valueKey: {
        type: StringConstructor;
        default: string;
    };
    labelKey: {
        type: StringConstructor;
        default: string;
    };
    initValue: import('vue').PropType<DataItem | DataItem[]>;
    cacheData: import('vue').PropType<DataItem[]>;
    tableProps: {
        type: import('vue').PropType<import('../ele-app/plus').EleProTableProps>;
        required: boolean;
    };
    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>;
    responsive: {
        type: BooleanConstructor;
        default: null;
    };
}, {
    selectRef: import('vue').Ref<EleBasicSelectInstance>;
    tableRef: import('vue').Ref<EleProTableInstance>;
    selectVisible: import('vue').Ref<boolean>;
    selectedItems: import('vue').Ref<{
        label: string;
        value: SingleValue;
        hide?: boolean | undefined;
        index?: number | undefined;
    }[]>;
    selectedLabel: import('vue').ComputedRef<string>;
    currentRowKey: import('vue').ComputedRef<DataKey | undefined>;
    selectedRowKeys: import('vue').ComputedRef<DataKey[] | undefined>;
    selectPopperClass: import('vue').ComputedRef<string>;
    updatePopover: () => void;
    updateSelectedItems: (force?: boolean) => void;
    focusSearchInput: () => void;
    updateVisible: (visible: boolean) => void;
    handleSelectRemove: (item: SelectedItem) => void;
    handleSelectClear: () => void;
    handleSelectFocus: (e: FocusEvent) => void;
    handleSelectBlur: (e: FocusEvent) => void;
    handleSelectFilter: (keywords: string) => void;
    updateSelectedRowKeys: (rowKeys: DataKey[]) => void;
    updateCurrentRowKey: (rowKey?: DataKey) => void;
    handleTableCurrentChange: (row?: DataItem | null) => void;
    handleTableSelectionChange: () => void;
    handleTableRowClick: (row: DataItem) => void;
    handleTableSelect: (selection: DataItem[]) => void;
    handleTableSelectAll: (selection: DataItem[]) => void;
    handleTableDone: () => 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;
    select: (_item: DataItem | DataItem[]) => boolean;
    filterChange: (_value: string) => 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;
    valueKey: {
        type: StringConstructor;
        default: string;
    };
    labelKey: {
        type: StringConstructor;
        default: string;
    };
    initValue: import('vue').PropType<DataItem | DataItem[]>;
    cacheData: import('vue').PropType<DataItem[]>;
    tableProps: {
        type: import('vue').PropType<import('../ele-app/plus').EleProTableProps>;
        required: boolean;
    };
    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>;
    responsive: {
        type: BooleanConstructor;
        default: null;
    };
}>> & {
    "onUpdate:modelValue"?: ((_value: SelectValue) => any) | undefined;
    onChange?: ((_value: SelectValue) => any) | undefined;
    onFocus?: ((_e: FocusEvent) => any) | undefined;
    onBlur?: ((_e: FocusEvent) => any) | undefined;
    onSelect?: ((_item: DataItem | DataItem[]) => any) | undefined;
    onClear?: (() => any) | undefined;
    onVisibleChange?: ((_visible: boolean) => any) | undefined;
    onRemoveTag?: ((_value: SingleValue) => any) | undefined;
    onFilterChange?: ((_value: string) => any) | undefined;
}, {
    valueKey: string;
    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;
    responsive: boolean;
    labelKey: string;
}, {}>;
export default _default;
