import { PropType } from 'vue';
import { TriggerProps } from '../trigger';
import { CascaderOption, CascaderOptionInfo } from './interface';
import { Data } from '../_utils/types';
import { VirtualListProps } from '../_components/virtual-list-v2/interface';
declare const _default: import("vue").DefineComponent<{
    pathMode: {
        type: BooleanConstructor;
        default: boolean;
    };
    multiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    modelValue: {
        type: PropType<string | number | Record<string, any> | (string | number | Record<string, any> | (string | number | Record<string, any>)[])[] | undefined>;
    };
    defaultValue: {
        type: PropType<string | number | Record<string, any> | (string | number | Record<string, any> | (string | number | Record<string, any>)[])[] | undefined>;
        default: (props: Data) => "" | never[] | undefined;
    };
    options: {
        type: PropType<CascaderOption[]>;
        default: () => never[];
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    error: {
        type: BooleanConstructor;
        default: boolean;
    };
    size: {
        type: PropType<"mini" | "small" | "medium" | "large">;
    };
    allowSearch: {
        type: BooleanConstructor;
        default: (props: Data) => boolean;
    };
    allowClear: {
        type: BooleanConstructor;
        default: boolean;
    };
    inputValue: {
        type: StringConstructor;
        default: undefined;
    };
    defaultInputValue: {
        type: StringConstructor;
        default: string;
    };
    popupVisible: {
        type: BooleanConstructor;
        default: undefined;
    };
    expandTrigger: {
        type: PropType<"hover" | "click">;
        default: string;
    };
    defaultPopupVisible: {
        type: BooleanConstructor;
        default: boolean;
    };
    placeholder: StringConstructor;
    filterOption: {
        type: PropType<(inputValue: string, option: CascaderOption) => boolean>;
    };
    popupContainer: {
        type: PropType<string | HTMLElement>;
    };
    maxTagCount: {
        type: NumberConstructor;
        default: number;
    };
    formatLabel: {
        type: PropType<(options: CascaderOption[]) => string>;
    };
    triggerProps: {
        type: PropType<TriggerProps>;
    };
    checkStrictly: {
        type: BooleanConstructor;
        default: boolean;
    };
    loadMore: {
        type: PropType<(option: CascaderOption, done: (children?: CascaderOption[] | undefined) => void) => void>;
    };
    loading: {
        type: BooleanConstructor;
        default: boolean;
    };
    searchOptionOnlyLabel: {
        type: BooleanConstructor;
        default: boolean;
    };
    searchDelay: {
        type: NumberConstructor;
        default: number;
    };
    fieldNames: {
        type: PropType<import("../_utils/types").FieldString<CascaderOption>>;
    };
    valueKey: {
        type: StringConstructor;
        default: string;
    };
    fallback: {
        type: PropType<boolean | ((value: string | number | Record<string, unknown> | (string | number | Record<string, unknown>)[]) => string)>;
        default: boolean;
    };
    expandChild: {
        type: BooleanConstructor;
        default: boolean;
    };
    virtualListProps: {
        type: PropType<VirtualListProps>;
    };
    tagNowrap: {
        type: BooleanConstructor;
        default: boolean;
    };
}, {
    optionInfos: import("vue").Ref<{
        [x: string]: any;
        raw: {
            [x: string]: unknown;
        };
        key: string;
        valueKey: string;
        level: number;
        index: number;
        value: string | number;
        label: string;
        disabled: boolean;
        selectionDisabled: boolean;
        isLeaf: boolean;
        parent?: any | undefined;
        children?: any[] | undefined;
        path: any[];
        pathValue: any[];
        totalLeafOptions?: number | undefined;
        render?: import("vue").RenderFunction | undefined;
        tagProps?: {
            color?: string | undefined;
            size?: "small" | "medium" | "large" | undefined;
            visible?: boolean | undefined;
            defaultVisible?: boolean | undefined;
            loading?: boolean | undefined;
            closable?: boolean | undefined;
            checkable?: boolean | undefined;
            checked?: boolean | undefined;
            defaultChecked?: boolean | undefined;
        } | undefined;
    }[]>;
    filteredLeafOptions: import("vue").ComputedRef<CascaderOptionInfo[]>;
    selectedPath: import("vue").Ref<string[]>;
    activeKey: import("vue").Ref<string | undefined>;
    displayColumns: import("vue").ComputedRef<CascaderOptionInfo[][]>;
    computedInputValue: import("vue").ComputedRef<string>;
    computedPopupVisible: import("vue").ComputedRef<boolean>;
    handleClear: (e: MouseEvent) => void;
    selectViewValue: import("vue").ComputedRef<any[]>;
    handleInputValueChange: (value: string, reason: string) => void;
    showSearchPanel: import("vue").ComputedRef<boolean>;
    handlePopupVisibleChange: (visible: boolean) => void;
    handleFocus: (e: FocusEvent) => void;
    handleBlur: (e: FocusEvent) => void;
    handleRemove: (key: string) => void;
    mergedDisabled: import("vue").ComputedRef<boolean>;
    handleKeyDown: (event: KeyboardEvent) => void;
    totalLevel: import("vue").Ref<number>;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    'update:modelValue': (value: string | number | Record<string, any> | (string | number | Record<string, any> | (string | number | Record<string, any>)[])[] | undefined) => true;
    'update:popupVisible': (visible: boolean) => true;
    change: (value: string | number | Record<string, any> | (string | number | Record<string, any> | (string | number | Record<string, any>)[])[] | undefined) => true;
    inputValueChange: (value: string) => true;
    clear: () => true;
    search: (value: string) => true;
    popupVisibleChange: (visible: boolean) => true;
    focus: (ev: FocusEvent) => true;
    blur: (ev: FocusEvent) => true;
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
    pathMode?: unknown;
    multiple?: unknown;
    modelValue?: unknown;
    defaultValue?: unknown;
    options?: unknown;
    disabled?: unknown;
    error?: unknown;
    size?: unknown;
    allowSearch?: unknown;
    allowClear?: unknown;
    inputValue?: unknown;
    defaultInputValue?: unknown;
    popupVisible?: unknown;
    expandTrigger?: unknown;
    defaultPopupVisible?: unknown;
    placeholder?: unknown;
    filterOption?: unknown;
    popupContainer?: unknown;
    maxTagCount?: unknown;
    formatLabel?: unknown;
    triggerProps?: unknown;
    checkStrictly?: unknown;
    loadMore?: unknown;
    loading?: unknown;
    searchOptionOnlyLabel?: unknown;
    searchDelay?: unknown;
    fieldNames?: unknown;
    valueKey?: unknown;
    fallback?: unknown;
    expandChild?: unknown;
    virtualListProps?: unknown;
    tagNowrap?: unknown;
} & {
    disabled: boolean;
    defaultPopupVisible: boolean;
    multiple: boolean;
    error: boolean;
    allowClear: boolean;
    defaultValue: string | number | Record<string, any> | (string | number | Record<string, any> | (string | number | Record<string, any>)[])[] | undefined;
    loading: boolean;
    allowSearch: boolean;
    maxTagCount: number;
    tagNowrap: boolean;
    defaultInputValue: string;
    options: CascaderOption[];
    valueKey: string;
    checkStrictly: boolean;
    pathMode: boolean;
    expandTrigger: "hover" | "click";
    searchOptionOnlyLabel: boolean;
    searchDelay: number;
    fallback: boolean | ((value: string | number | Record<string, unknown> | (string | number | Record<string, unknown>)[]) => string);
    expandChild: boolean;
} & {
    size?: "mini" | "small" | "medium" | "large" | undefined;
    popupVisible?: boolean | undefined;
    popupContainer?: string | HTMLElement | undefined;
    placeholder?: string | undefined;
    inputValue?: string | undefined;
    modelValue?: string | number | Record<string, any> | (string | number | Record<string, any> | (string | number | Record<string, any>)[])[] | undefined;
    formatLabel?: ((options: CascaderOption[]) => string) | undefined;
    fieldNames?: import("../_utils/types").FieldString<CascaderOption> | undefined;
    filterOption?: ((inputValue: string, option: CascaderOption) => boolean) | undefined;
    triggerProps?: TriggerProps | undefined;
    virtualListProps?: VirtualListProps | undefined;
    loadMore?: ((option: CascaderOption, done: (children?: CascaderOption[] | undefined) => void) => void) | undefined;
}> & {
    "onUpdate:popupVisible"?: ((visible: boolean) => any) | undefined;
    onPopupVisibleChange?: ((visible: boolean) => any) | undefined;
    onFocus?: ((ev: FocusEvent) => any) | undefined;
    onBlur?: ((ev: FocusEvent) => any) | undefined;
    onChange?: ((value: string | number | Record<string, any> | (string | number | Record<string, any> | (string | number | Record<string, any>)[])[] | undefined) => any) | undefined;
    onClear?: (() => any) | undefined;
    onInputValueChange?: ((value: string) => any) | undefined;
    "onUpdate:modelValue"?: ((value: string | number | Record<string, any> | (string | number | Record<string, any> | (string | number | Record<string, any>)[])[] | undefined) => any) | undefined;
    onSearch?: ((value: string) => any) | undefined;
}, {
    disabled: boolean;
    popupVisible: boolean;
    defaultPopupVisible: boolean;
    multiple: boolean;
    error: boolean;
    allowClear: boolean;
    inputValue: string;
    defaultValue: string | number | Record<string, any> | (string | number | Record<string, any> | (string | number | Record<string, any>)[])[] | undefined;
    loading: boolean;
    allowSearch: boolean;
    maxTagCount: number;
    tagNowrap: boolean;
    defaultInputValue: string;
    options: CascaderOption[];
    valueKey: string;
    checkStrictly: boolean;
    pathMode: boolean;
    expandTrigger: "hover" | "click";
    searchOptionOnlyLabel: boolean;
    searchDelay: number;
    fallback: boolean | ((value: string | number | Record<string, unknown> | (string | number | Record<string, unknown>)[]) => string);
    expandChild: boolean;
}>;
export default _default;
