import { type Placement } from '@floating-ui/vue'; import type { FormChildProps } from '../../../composables/useFormChild'; export interface ISelectItem { label: string; sublabel?: string; value: any; disabled?: boolean; } export interface FmSelectProps extends FormChildProps { /** Will return array if multiselect is enabled, else just the selected value */ modelValue: any; items: ISelectItem[]; multiselect?: boolean; placement?: Placement; placeholder?: string; showValidBorder?: boolean; maxHeight?: number; width?: number | undefined; menuId?: string; /** * Shift the dropdown if it's going out of the screen or no enough space */ shiftMenu?: boolean; /** * Hide chips when multiselect is enabled (Only for multiselect) */ hideChips?: boolean; /** * The element ids to exclude from click window behavior. */ elementIdsUseForDismissAwayEventExclusion?: string[]; menuZIndex?: number; searchable?: boolean; searchTarget?: 'label' | 'value'; searchDebounce?: number; onSearch?: (search: string) => Promise; /** * Keep the order of selected items based on selection order instead of items order (Only for multiselect) */ keepSelectionOrder?: boolean; /** * Show clear button to clear selected value (Only for single select) */ clearable?: boolean; } declare const _default: __VLS_WithTemplateSlots, { label: string; labelMark: string; labelInfo: string; disabled: undefined; focused: boolean; rules: () => never[]; helperText: string; helperState: string; multiselect: boolean; placement: string; showValidBorder: boolean; maxHeight: number; width: undefined; menuId: string; searchTarget: string; searchDebounce: number; keepSelectionOrder: boolean; clearable: boolean; }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { "update:modelValue": (value: any) => void; "dropdown-changed": (value: boolean) => void; "chip-clicked": (value: any) => void; }, string, import("vue").PublicProps, Readonly, { label: string; labelMark: string; labelInfo: string; disabled: undefined; focused: boolean; rules: () => never[]; helperText: string; helperState: string; multiselect: boolean; placement: string; showValidBorder: boolean; maxHeight: number; width: undefined; menuId: string; searchTarget: string; searchDebounce: number; keepSelectionOrder: boolean; clearable: boolean; }>>> & { "onUpdate:modelValue"?: ((value: any) => any) | undefined; "onChip-clicked"?: ((value: any) => any) | undefined; "onDropdown-changed"?: ((value: boolean) => any) | undefined; }, { label: string; disabled: boolean; labelMark: "required" | "optional" | "none"; labelInfo: string; focused: boolean; rules: import("../../..").ValidationRule[]; helperText: string; helperState: "error" | "none" | "success" | "warning"; placement: Placement; width: number; maxHeight: number; showValidBorder: boolean; multiselect: boolean; menuId: string; searchTarget: "label" | "value"; searchDebounce: number; keepSelectionOrder: boolean; clearable: boolean; }, {}>, { label?(_: {}): any; prepend?(_: {}): any; default?(_: {}): any; "menu-wrapper"?(_: { maxHeight: number; width: string; handleItemChange: (isSelected: boolean, item: ISelectItem) => number; }): any; "prepend-menu"?(_: {}): any; "append-menu"?(_: {}): any; "helper-text"?(_: {}): any; }>; export default _default; type __VLS_NonUndefinedable = T extends undefined ? never : T; type __VLS_TypePropsToRuntimeProps = { [K in keyof T]-?: {} extends Pick ? { type: import('vue').PropType<__VLS_NonUndefinedable>; } : { type: import('vue').PropType; required: true; }; }; type __VLS_WithDefaults = { [K in keyof Pick]: K extends keyof D ? __VLS_Prettify : P[K]; }; type __VLS_Prettify = { [K in keyof T]: T[K]; } & {}; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };