import * as React from 'react'; import { PopperProps } from '../_utils/usePopper'; import { AvailableVirtualListProps } from '../virtual-list'; export declare const SelectSizes: ["large", "middle", "small"]; export declare type SelectSize = typeof SelectSizes[number]; export declare const BorderTypes: ["none", "underline", "bordered"]; export declare type BorderType = typeof BorderTypes[number]; export declare const Modes: ["multiple", "single"]; export declare type Mode = typeof Modes[number]; export interface AbstractSelectProps extends PopperProps { prefixCls?: string; className?: string; size?: SelectSize; borderType?: BorderType; notFoundContent?: React.ReactNode | null; showSearch?: boolean; showArrow?: boolean; defaultOpen?: boolean; allowClear?: boolean; disabled?: boolean; style?: React.CSSProperties; placeholder?: string | React.ReactNode; dropdownClassName?: string; dropdownStyle?: React.CSSProperties; getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement; dropdownRender?: (menu: React.ReactElement) => React.ReactElement; id?: string; children?: React.ReactNode; options?: OptionsType[]; clearIcon?: React.ReactNode; searchIcon?: React.ReactNode; suffixIcon?: React.ReactNode; maxTagCount?: number; listHeight?: number; labelInValue?: boolean; maxTagPlaceholder?: React.ReactNode | ((omittedValues: LabeledValue[]) => React.ReactNode); filterOption?: boolean | ((inputValue: string, option?: OptionsType) => boolean); optionFilterProp?: string; optionLabelProp?: string; virtualListProps?: AvailableVirtualListProps | boolean; } export interface LabeledValue { key?: string; label?: React.ReactNode; } export interface OptionsType { value?: string; label?: React.ReactNode; } export declare type SelectValue = string | string[] | number | number[] | LabeledValue | LabeledValue[] | null | undefined; export interface ISelectProps extends AbstractSelectProps { value?: T; defaultValue?: T; mode?: Mode; autoFocus?: boolean; status?: 'error'; onChange?: (value?: T, option?: React.ReactElement | React.ReactElement[]) => void; onSelect?: (value?: T extends (infer I)[] ? I : T, option?: React.ReactElement) => void; onDeselect?: (value?: T extends (infer I)[] ? I : T, option?: React.ReactElement) => void; onBlur?: (value?: T) => void; onFocus?: () => void; onSearch?: (value?: string) => void; onClear?: () => void; onDropdownVisibleChange?: (value?: T) => void; tagRender?: (props: TagProps) => void; } export interface TagProps { value?: string; label?: React.ReactNode; disabled: boolean; size: SelectSize; onClose: () => void; }