import { CSSProperties, VNode } from 'vue'; import { ScrollbarProps } from '../scrollbar'; import { MountElement } from '../utils'; export interface Option { label?: string; value?: string | number; disabled?: boolean; [propName: string]: any; } export interface FieldNames { label?: string; value?: string; options?: string; } export type SelectValue = string | number; export interface LabeledValue { label: unknown; value: SelectValue; key?: string | number; originLabel?: unknown; } export type SelectPlacement = 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight'; export type SelectMode = 'multiple' | 'tags'; export type SelectMenuNode = () => VNode[]; export interface DropdownRenderParams { menuNode: SelectMenuNode; } export interface TagRenderParams { label: unknown; value?: SelectValue; disabled: boolean; closable: boolean; onClose: (e?: MouseEvent) => void; option: Option; } export interface Props { value?: SelectValue | LabeledValue | (SelectValue | LabeledValue)[]; defaultValue?: SelectValue | LabeledValue | (SelectValue | LabeledValue)[]; open?: boolean; searchValue?: string; options?: Option[]; fieldNames?: FieldNames; mode?: SelectMode; labelInValue?: boolean; optionLabelProp?: string; width?: string | number; height?: number; size?: 'small' | 'middle' | 'large'; placeholder?: string; bordered?: boolean; status?: 'error' | 'warning'; disabled?: boolean; loading?: boolean; allowClear?: boolean; clearIcon?: VNode | (() => VNode); suffixIcon?: VNode | (() => VNode); showArrow?: boolean; menuItemSelectedIcon?: VNode | (() => VNode); showSearch?: boolean; optionFilterProp?: string; filterOption?: boolean | ((inputValue: string, option: Option) => boolean); filterSort?: (optionA: Option, optionB: Option) => number; maxTagCount?: number | 'responsive'; maxTagPlaceholder?: string | VNode | ((omittedValues: Option[]) => VNode); maxTagTextLength?: number; tagRender?: (params: TagRenderParams) => VNode; removeIcon?: VNode | (() => VNode); tokenSeparators?: string[]; autoClearSearchValue?: boolean; autofocus?: boolean; defaultOpen?: boolean; defaultActiveFirstOption?: boolean; firstActiveValue?: SelectValue | SelectValue[]; dropdownRender?: (params: DropdownRenderParams) => VNode; notFoundContent?: string | VNode | null; maxDisplay?: number; listHeight?: number; virtual?: boolean; listItemHeight?: number; scrollbarProps?: ScrollbarProps; placement?: SelectPlacement; flip?: boolean; to?: string | MountElement | false; popupClassName?: string; dropdownMenuStyle?: CSSProperties; dropdownMatchSelectWidth?: boolean | number; zIndex?: number; id?: string; } export interface SelectSlots { default?: () => VNode[]; option?: (props: Option) => VNode[]; optionLabel?: (option: Option) => VNode[]; placeholder?: () => VNode[]; suffixIcon?: () => VNode[]; clearIcon?: (props: { clear: (e?: MouseEvent) => void; }) => VNode[]; menuItemSelectedIcon?: (props: { isSelected: boolean; }) => VNode[]; notFoundContent?: () => VNode[]; dropdownRender?: (props: DropdownRenderParams) => VNode[]; tagRender?: (params: TagRenderParams) => VNode[]; maxTagPlaceholder?: (params: { omittedValues: Option[]; }) => VNode[]; removeIcon?: () => VNode[]; } declare const _default: __VLS_WithTemplateSlots void; blur: () => void | undefined; scrollTo: (arg: number | { index?: number; top?: number; }) => void; }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, { search: (...args: any[]) => void; select: (...args: any[]) => void; focus: (...args: any[]) => void; blur: (...args: any[]) => void; change: (...args: any[]) => void; mouseenter: (...args: any[]) => void; mouseleave: (...args: any[]) => void; clear: (...args: any[]) => void; "update:value": (...args: any[]) => void; openChange: (...args: any[]) => void; dropdownVisibleChange: (...args: any[]) => void; "update:open": (...args: any[]) => void; deselect: (...args: any[]) => void; popupScroll: (...args: any[]) => void; inputKeyDown: (...args: any[]) => void; "update:searchValue": (...args: any[]) => void; }, string, import('vue').PublicProps, Readonly & Readonly<{ onSearch?: ((...args: any[]) => any) | undefined; onSelect?: ((...args: any[]) => any) | undefined; onFocus?: ((...args: any[]) => any) | undefined; onBlur?: ((...args: any[]) => any) | undefined; onChange?: ((...args: any[]) => any) | undefined; onMouseenter?: ((...args: any[]) => any) | undefined; onMouseleave?: ((...args: any[]) => any) | undefined; onClear?: ((...args: any[]) => any) | undefined; "onUpdate:value"?: ((...args: any[]) => any) | undefined; onOpenChange?: ((...args: any[]) => any) | undefined; onDropdownVisibleChange?: ((...args: any[]) => any) | undefined; "onUpdate:open"?: ((...args: any[]) => any) | undefined; onDeselect?: ((...args: any[]) => any) | undefined; onPopupScroll?: ((...args: any[]) => any) | undefined; onInputKeyDown?: ((...args: any[]) => any) | undefined; "onUpdate:searchValue"?: ((...args: any[]) => any) | undefined; }>, { size: "small" | "middle" | "large"; value: SelectValue | LabeledValue | (SelectValue | LabeledValue)[]; width: string | number; height: number; placement: SelectPlacement; flip: boolean; bordered: boolean; mode: SelectMode; placeholder: string; to: string | MountElement | false; zIndex: number; open: boolean; disabled: boolean; allowClear: boolean; autofocus: boolean; defaultActiveFirstOption: boolean; defaultOpen: boolean; popupClassName: string; dropdownMatchSelectWidth: boolean | number; dropdownMenuStyle: CSSProperties; options: Option[]; status: "error" | "warning"; filterOption: boolean | ((inputValue: string, option: Option) => boolean); clearIcon: VNode | (() => VNode); id: string; loading: boolean; defaultValue: SelectValue | LabeledValue | (SelectValue | LabeledValue)[]; searchValue: string; fieldNames: FieldNames; labelInValue: boolean; optionLabelProp: string; suffixIcon: VNode | (() => VNode); showArrow: boolean; menuItemSelectedIcon: VNode | (() => VNode); showSearch: boolean; optionFilterProp: string; filterSort: (optionA: Option, optionB: Option) => number; maxTagCount: number | "responsive"; maxTagPlaceholder: string | VNode | ((omittedValues: Option[]) => VNode); maxTagTextLength: number; tagRender: (params: TagRenderParams) => VNode; removeIcon: VNode | (() => VNode); tokenSeparators: string[]; autoClearSearchValue: boolean; firstActiveValue: SelectValue | SelectValue[]; dropdownRender: (params: DropdownRenderParams) => VNode; notFoundContent: string | VNode | null; maxDisplay: number; listHeight: number; virtual: boolean; listItemHeight: number; scrollbarProps: ScrollbarProps; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, any, any>, any>; export default _default; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };