import React from 'react';
import type { SelectProps } from '../select';
import type { InputProps } from '../input';
export interface optionProps {
    value?: string | number;
    label?: React.ReactNode;
    disabled?: boolean;
    children?: optionProps[];
}
export interface ShowSearchType {
    filter?: (inputValue: string, path: CascaderOptionType[], names: any) => boolean;
    render?: (inputValue: string, path: CascaderOptionType[], prefixCls: string | undefined, names: any) => React.ReactNode;
    sort?: (a: CascaderOptionType[], b: CascaderOptionType[], inputValue: string, names: any) => number;
    matchInputWidth?: boolean;
    limit?: number | false;
}
export declare type CascaderValueType = (string | number)[];
export declare type MutiCascaderValueType = (string | number)[][];
export interface CascaderOptionType {
    value?: string | number;
    label?: React.ReactNode;
    disabled?: boolean;
    isLeaf?: boolean;
    loading?: boolean;
    children?: CascaderOptionType[];
    [key: string]: any;
}
export interface CascaderProps {
    /** 可选项数据源 */
    options?: optionProps[];
    /** 下拉菜单每一列的宽度 */
    dropdownMenuColumnWidth?: number;
    /** 下拉菜单每一列的样式 */
    dropdownMenuColumnStyle?: React.CSSProperties;
    /** 选择完成后的回调 */
    onChange?: (value: unknown, selectedOptions?: CascaderOptionType | MutiCascaderValueType) => void;
    /** search时输入框改变时回调 */
    onInputChange?: (val: string) => void;
    /** 输入框占位文本 */
    placeholder?: string;
    /** loadData触发方式 */
    expandTrigger?: string;
    /** 自定义样式 */
    className?: string;
    /** 控制覆层显示 */
    popupVisible?: boolean;
    /** 控制覆层的回调 */
    onPopupVisibleChange?: (popupVisible: boolean) => void;
    /** 自定义选择筐后续Icon */
    suffixIcon?: React.ReactNode;
    /** 指定选中项 */
    value?: any;
    /** 默认的选中项 */
    defaultValue?: any;
    /** 输入框的值 */
    inputValue?: any;
    /** 自动获取焦点 */
    autoFocus?: boolean;
    /** 允许清除数据 */
    allowClear?: boolean;
    /** 是否开启多选 */
    multiple?: boolean;
    /** 多选情况下是否折叠选中项目 */
    collapse?: boolean | number;
    /** 禁用 */
    disabled?: boolean;
    /** 用于动态加载选项，无法与 showSearch 一起使用 */
    loadData?: (selectedOptions: any) => void;
    /** 展开时回调 */
    onExpand?: (selectOptions: CascaderOptionType[]) => void;
    showSearch?: boolean | ShowSearchType;
    /** 控制输入框是否只读 */
    readOnly?: boolean;
    /** 当此项为 true 时，点选每级菜单选项值都会发生变化 */
    changeOnSelect?: boolean;
    notFoundContent?: React.ReactNode;
    flattenOptions?: any;
    hasChecked?: boolean;
    /** 选择器浮层挂载点，默认挂载到 body 上 */
    getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
    /** 选择后展示的渲染函数 */
    displayRender?: (label: string[], selectedOptions?: CascaderOptionType[]) => React.ReactNode;
    /** 输入框大小 */
    size?: InputProps['size'];
    /** 自由扩展下拉菜单 */
    dropdownRender?: (menus: React.ReactNode) => React.ReactNode;
    /** 下拉滚动加载 */
    scrollInfinite?: (e: React.UIEvent<HTMLDivElement>, index: number) => void;
    /** 是否还有更多下拉内容 */
    infiniteHasMore?: boolean;
    /** 定义下拉菜单默认底部的内容 */
    dropdownFooterContent?: React.ReactNode;
    /** 自定义 options 中 label name children 的字段 */
    fieldNames?: Partial<FilledFieldNamesType>;
    /** 最多显示多少个 tag（仅在多选时生效) */
    maxTagCount?: number;
    /** 最大显示的 tag 文本长度(仅在多选时生效）*/
    maxTagTextLength?: number;
    /** 自定义 tag 内容 render	 */
    tagRender?: SelectProps['tagRender'];
    /** 当内容显示不全时显示title	 */
    showPickerTitle?: boolean;
    pickerTitle?: string;
    style?: React.CSSProperties;
    scrollEventDelegation?: boolean;
    onPopupScroll?: (e: React.UIEvent<HTMLDivElement>, currentNode: HTMLDivElement, currentIndex: number) => void;
}
export interface FilledFieldNamesType {
    value: string | number;
    label: string;
    children: string;
}
declare const Cascader: React.FC<CascaderProps>;
export default Cascader;
