import { DataItem } from '@douyinfe/semi-foundation/lib/es/autoComplete/foundation'; import { ValidateStatus } from '../_base/baseComponent'; import { Position } from '../tooltip'; import '@douyinfe/semi-foundation/lib/es/autoComplete/autoComplete.css'; import { Motion } from '../_base/base'; import { AriaAttributes } from '../AriaAttributes'; import { CombineProps, type RemoveIndexSignature, VueJsxNode } from '../interface'; import { CSSProperties } from 'vue'; /** * AutoComplete is an enhanced Input (candidates suggest that users can choose or not), * and the Select positioning that supports Search is still a selector. * 1. When you click to expand, Select will clear all input values, but AutoComplete will not * 2. AutoComplete's renderSelectedItem only supports simple string returns, while Select's renderSelectedItem can return VueJsxNode * 3. Select props.value supports incoming object, but autoComplete only supports string (because the value needs to be displayed in Input) */ export interface BaseDataItem extends RemoveIndexSignature { label?: VueJsxNode; } export type AutoCompleteItems = BaseDataItem | string | number; export interface AutoCompleteProps { 'aria-describedby'?: AriaAttributes['aria-describedby']; 'aria-errormessage'?: AriaAttributes['aria-errormessage']; 'aria-invalid'?: AriaAttributes['aria-invalid']; 'aria-label'?: AriaAttributes['aria-label']; 'aria-labelledby'?: AriaAttributes['aria-labelledby']; 'aria-required'?: AriaAttributes['aria-required']; autoAdjustOverflow?: boolean; autoFocus?: boolean; className?: string; children?: VueJsxNode | undefined; data?: T[]; disabled?: boolean; defaultOpen?: boolean; defaultValue?: any; defaultActiveFirstOption?: boolean; dropdownMatchSelectWidth?: boolean; dropdownClassName?: string; dropdownStyle?: CSSProperties; emptyContent?: () => VueJsxNode; getPopupContainer?: () => HTMLElement; insetLabel?: VueJsxNode; insetLabelId?: string; id?: string; loading?: boolean; motion?: Motion; maxHeight?: string | number; mouseEnterDelay?: number; mouseLeaveDelay?: number; onFocus?: (e: FocusEvent) => void; onBlur?: (e: FocusEvent) => void; onChange?: (value: string | number) => void; onSearch?: (inputValue: string) => void; onSelect?: (value: T) => void; onClear?: () => void; onChangeWithObject?: boolean; onSelectWithObject?: boolean; onDropdownVisibleChange?: (visible: boolean) => void; onKeyDown?: (e: KeyboardEvent) => void; prefix?: VueJsxNode; placeholder?: string; position?: Position; renderItem?: (option: T) => VueJsxNode; renderSelectedItem?: (option: T) => string; size?: 'small' | 'default' | 'large'; style?: CSSProperties; suffix?: VueJsxNode; showClear?: boolean; triggerRender?: (props?: any) => VueJsxNode; stopPropagation?: boolean | string; value?: string | number; validateStatus?: ValidateStatus; zIndex?: number; } declare function AutoCompleteFunc(): import("vue").DefineComponent>>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; declare const vuePropsType: CombineProps>; export { AutoCompleteFunc, vuePropsType }; declare const _default: import("vue").DefineComponent>>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; export default _default;