import type { BaseFieldPreviewProps, IRequestConfig } from "../../../types";
import { ICnCascaderSelectItem } from './cn-cascader-select-item';
import type { ReactNode } from 'react';
export interface CnCascaderSelectProps extends BaseFieldPreviewProps {
    /**
     * 数据源
     */
    dataSource?: ICnCascaderSelectItem[];
    /**
     * 是否禁用
     */
    disabled?: boolean;
    /**
     * 是否只读
     */
    readOnly?: boolean;
    /**
     * 是否可清空
     */
    hasClear?: boolean;
    /**
     * 默认值
     */
    defaultValue?: any;
    /**
     * 受控值
     */
    value?: any;
    /**
     * 是否多选
     */
    multiple?: boolean;
    /**
     * 是否可搜索
     */
    showSearch?: boolean;
    /**
     * 占位文案
     */
    placeholder?: string;
    /**
     * 选中项展示的分隔符
     */
    separator?: string;
    /**
     * 选择提示文案
     */
    rootTipText?: string | ReactNode;
    /**
     * 尺寸
     */
    size?: 'small' | 'medium' | 'large';
    /**
     * 自定义类名
     */
    className?: string;
    /**
     * 抽屉容器类名
     */
    drawerClassName?: string;
    /**
     * 数据变更的回调
     */
    onChange?: (value?: string | string[], detail?: ICnCascaderSelectItem | ICnCascaderSelectItem[]) => void;
    /**
     * 点击子项异步加载数据
     */
    loadData?: (detail: ICnCascaderSelectItem) => Promise<void>;
    /**
     * 点击节点事件
     */
    onSelect?: (val: string | number, detail: ICnCascaderSelectItem) => void;
    /**
     * 自定义选中项的渲染事件
     */
    renderContent?: (selectedList?: ICnCascaderSelectItem[], separator?: string) => string | ReactNode;
    /**
     * 内部变量，是否在 CnFilter quick 模式下使用
     * @ignore 内部使用
     */
    insideFilter?: boolean;
    /**
     * 用于标定是否存在于 Form 内(解决样式边距问题)
     * @ignore 内部使用
     */
    insideForm?: boolean;
    /**
     * 是否返回数组类型
     */
    isArrayValue?: boolean;
    /**
     * 请求配置
     */
    requestConfig?: IRequestConfig;
}
