import type { LocaleProps, Option, Options, SchemaClassName, SchemaRenderFn, ThemeProps } from 'jamis-core';
import type { SchemaObject, SchemaTpl } from '../../types';
export * from './Select.types';
export * from './UserSelect.types';
export * from './UserTabSelect.types';
export interface RenderMenuParams {
    index?: number;
    checked?: boolean;
    multiple?: boolean;
    checkAll?: boolean;
    title?: string;
    inputValue?: string;
    searchable?: boolean;
    [key: string]: any;
}
export interface RenderMenuProps extends RenderMenuParams {
    render: SchemaRenderFn;
    data: Record<string, any>;
    menuTpl: SchemaTpl | SchemaObject;
}
export interface ItemRenderStates {
    index: number;
    multiple?: boolean;
    /** 搜索时匹配到的高亮的文本 */
    highlightTxt?: string;
    checked: boolean;
    onChange: () => void;
    disabled?: boolean;
    className?: SchemaClassName;
}
export interface BaseSelectionProps extends ThemeProps, LocaleProps {
    className?: SchemaClassName;
    clearable?: boolean;
    disabled?: boolean;
    inline?: boolean;
    itemClassName?: SchemaClassName;
    valueField?: string;
    labelField?: string;
    itemRender: (option: Option, states: ItemRenderStates) => JSX.Element;
    labelClassName?: SchemaClassName;
    multiple?: boolean;
    onChange?: (value: Array<any> | any) => void | boolean | Promise<boolean>;
    onClick?: (e: React.MouseEvent) => void;
    onDeferLoad?: (option: Option) => void;
    onLeftDeferLoad?: (option: Option, leftOptions: Option) => void;
    option2value?: (option: Option) => any;
    options: Options;
    placeholder?: string;
    placeholderRender?: (props: any) => JSX.Element | null;
    value?: any | Array<any>;
}
