import type { PropType } from 'vue';
import type { LoadFunction } from 'element-plus/es/components/tree/src/tree.type';
import type { ExternalParam, MaybeArray, UnknownObject } from '../types/index';
import type { ITreeSelectProps } from './index';
type TreeKeys = Array<keyof typeof treeSelectProps>;
type SelectKeys = Array<Exclude<keyof ITreeSelectProps, TreeKeys[number] | 'data' | 'config' | 'onlySelectLeaf' | 'checkStrictly'>>;
export declare const treeKeys: TreeKeys;
export declare const treeSelectProps: {
    modelValue: PropType<MaybeArray<string | number | boolean | UnknownObject>>;
    onlySelectLeaf: BooleanConstructor;
    checkStrictly: BooleanConstructor;
    checkOnClickNode: BooleanConstructor;
    currentNodeKey: PropType<string | number>;
    renderContent: FunctionConstructor;
    draggable: BooleanConstructor;
    lazy: BooleanConstructor;
    load: PropType<LoadFunction>;
    emptyText: StringConstructor;
    renderAfterExpand: BooleanConstructor;
    expandOnClickNode: BooleanConstructor;
    defaultExpandAll: BooleanConstructor;
    autoExpandParent: BooleanConstructor;
    allowDrag: FunctionConstructor;
    allowDrop: FunctionConstructor;
    accordion: BooleanConstructor;
    indent: NumberConstructor;
    icon: PropType<string | import("vue").Component>;
    name: StringConstructor;
    id: StringConstructor;
    autocomplete: StringConstructor;
    automaticDropdown: BooleanConstructor;
    size: PropType<import("element-plus").ComponentSize>;
    disabled: BooleanConstructor;
    clearable: BooleanConstructor;
    filterable: BooleanConstructor;
    allowCreate: BooleanConstructor;
    loading: BooleanConstructor;
    remote: BooleanConstructor;
    loadingText: StringConstructor;
    noMatchText: StringConstructor;
    noDataText: StringConstructor;
    remoteMethod: FunctionConstructor;
    multiple: BooleanConstructor;
    multipleLimit: {
        type: NumberConstructor;
        default: number;
    };
    placeholder: StringConstructor;
    defaultFirstOption: BooleanConstructor;
    reserveKeyword: BooleanConstructor;
    valueKey: StringConstructor;
    collapseTags: BooleanConstructor;
    teleported: {
        type: BooleanConstructor;
        default: boolean;
    };
    clearIcon: PropType<string | import("vue").Component>;
    fitInputWidth: BooleanConstructor;
    suffixIcon: PropType<string | import("vue").Component>;
    tagType: {
        type: PropType<"success" | "info" | "warning" | "danger">;
        default: string;
    };
    effect: {
        type: PropType<"light" | "dark" | string>;
        default: string;
    };
    collapseTagsTooltip: BooleanConstructor;
    persistent: {
        type: BooleanConstructor;
        default: boolean;
    };
    validateEvent: {
        type: BooleanConstructor;
        default: boolean;
    };
    data: {
        type: PropType<import("..").SelectDataItem[]>;
        default: () => never[];
    };
    config: {
        type: PropType<import("..").SelectConfig>;
        default: () => {};
    };
};
export declare const treeSelectEmits: {
    clear: () => boolean;
    'remove-tag': (value: string) => boolean;
    'visible-change': (state: boolean) => boolean;
    'node-click': (item?: ExternalParam, node?: unknown, self?: unknown) => boolean;
    'check-change': (item?: ExternalParam, node?: unknown, self?: unknown) => boolean;
    'update:modelValue': (value?: Array<unknown> | string | number | boolean | object) => value is string | number | boolean | object | any[] | unknown[];
};
export declare const selectKeys: SelectKeys;
export {};
