import type { StyleValue } from 'vue'; export interface SelectProps { modelValue?: string | number | boolean | object | any[]; disabled?: boolean; customStyle?: StyleValue; theme?: 'dark' | 'light'; placeholder?: string; size?: 's' | 'm' | 'l'; clearable?: boolean; multiple?: boolean; } export interface SelectEmits { (e: 'update:modelValue', value: any): void; (e: 'change', value: any): void; (e: 'blur', event: FocusEvent): void; (e: 'focus', event: FocusEvent): void; } export interface OptionProps { value: string | number | boolean | object; label?: string | number | boolean | object; disabled?: boolean; } export interface OptionData { label: string | number | boolean | object; value: string | number | boolean | object; disabled?: boolean; ref?: any; } export interface SelectProvideData { selectedValue: any; optionObj: Map; optionDataList: OptionData[]; onOptionCreated: (optionData: OptionData) => void; onOptionDestroyed: (value: any) => void; onOptionSelected: (optionData: OptionData) => void; }