import type { ClassValue, Option, OptionValue, SchemaClassName, ThemeProps } from 'jamis-core';
import type { CSSProperties } from 'react';
import type { OptionsProps, PopOverPosition, TooltipObject } from '../../types';
import type { RenderMenuParams } from './types';
export interface SelectCompProps extends Omit<OptionsProps, 'onChange'>, ThemeProps {
    popoverClassName?: SchemaClassName;
    inputWrapClassName?: SchemaClassName;
    inputClassName?: SchemaClassName;
    arrowClassName?: SchemaClassName;
    showInvalidMatch?: boolean;
    creatable?: boolean;
    createBtnLabel?: string;
    multiple?: boolean;
    valuesNoWrap?: boolean;
    valueField?: string;
    labelField?: string;
    searchable?: boolean;
    /**
     * 开启搜索后, 搜索的字段名集合
     */
    searchFields?: string[];
    options: Array<Option>;
    value: OptionValue | OptionValue[];
    loadOptions?: Function;
    searchPromptText?: string;
    loadingPlaceholder?: string;
    spinnerClassName?: string;
    noResultsText?: string;
    clearable?: boolean;
    clearAllText?: string;
    clearValueText?: string;
    placeholder?: string;
    inline?: boolean;
    disabled?: boolean;
    popOverContainer?: any;
    popOverContainerSelector?: string;
    overlayPlacement?: PopOverPosition;
    checkAll?: boolean;
    checkAllLabel?: string;
    checkAllBySearch?: boolean;
    defaultCheckAll?: boolean;
    simpleValue?: boolean;
    defaultOpen?: boolean;
    /**
     * 边框模式，全边框或者没边框。
     */
    borderMode?: 'full' | 'half' | 'none';
    /**
     * 是否隐藏已选项
     */
    hideSelected?: boolean;
    /**
     * 标签的最大展示数量，超出数量后以收纳浮层的方式展示，仅在多选模式开启后生效
     */
    maxTagCount?: number;
    /**
     * 收纳标签的Popover配置
     */
    overflowTagPopover?: TooltipObject;
    /**
     * 是否在选中值后自动清空搜索条件, 用于多选场景, 默认为true
     */
    autoClearSearchValue?: boolean;
    valueWrapClassName?: SchemaClassName;
    valueWrapStyle?: React.CSSProperties;
    optionClassName?: ClassValue;
    valueClassName?: SchemaClassName;
    valueLabelClassName?: SchemaClassName;
    arrowIcon?: string;
    /**
     * 当前选中高亮的item */
    highlightedIndex?: number;
    /** 在启用了虚拟列表时, 单项的高度 */
    itemHeight?: number;
    /** 是否平铺开 */
    tiled?: boolean;
    /** 顶部描述信息 */
    topDescInfo?: string | JSX.Element;
    /**
     * 元素`.cxd-Select-menu`的样式类
     */
    menuClassName?: SchemaClassName;
    /**
     * 虚拟列表的高度, 必须是数值类型
     */
    virtualListHeight?: CSSProperties['height'];
    /**
     * 虚拟列表的样式类
     */
    virtualListClassName?: SchemaClassName;
    /** 虚拟列表的宽度, 必须是数值类型 */
    virtualListWidth?: CSSProperties['width'];
    virtualListStyle?: CSSProperties;
    /** `.cxd-Select-wrap`元素的样式类 */
    wrapClassName?: SchemaClassName;
    /** 多选搜索时, 是否可以通过删除键删除选中项 */
    isBackspaceDelete?: Boolean;
    /** 搜索延迟 */
    searchDelay?: boolean | number;
    /** 是否启用移动端样式支持, 默认是自适应, 可通过设置true或者false来指定 */
    mobileUI?: boolean;
    /**
     * 渲染菜单项自定义函数
     */
    renderMenu?: (option: Option, props: RenderMenuParams) => JSX.Element;
    onChange: (value: void | string | Option | Array<Option>, changedOption?: {
        /** popover 是否打开 */
        isOpen?: boolean;
    }) => void;
    /**
     * 比较搜索条件是否一致, 用于当组件内的搜索条件和父组件不一致的场景
     */
    checkInputValue?: (inputValue: string) => boolean;
    /**
     * 下拉弹窗变化通知函数
     */
    onChangeIsOpen?: (isOpen: boolean) => void;
    onClose?: () => void;
}
