import { type InjectionKey, type Ref } from 'vue'; import { type DefaultProps } from '../config'; import { type OptionKeys } from '../../use'; export interface SelectProps { modelValue?: any; multiple?: boolean; multipleLimit?: number; filterable?: boolean; filterPlaceholder?: string; filterMethod?: (query: string) => void; filterValue?: string; showToolbar?: boolean; options?: any[]; optionKeys?: OptionKeys; valueKey?: string; filterLoading?: boolean; } export declare const defaultSelectProps: DefaultProps; export interface SelectSlots { default?(): any; bottom?(): any; option?(props: { disabled: boolean; selected: boolean; label?: string | number; value: any; }): any; 'option-label'?(props: { disabled: boolean; selected: boolean; label?: string | number; value: any; }): any; } export interface SelectEmits { (e: 'update:modelValue', value: any): void; (e: 'change', value: any): void; (e: 'select', value: any): void; (e: 'update:filterValue', value: string): void; } export interface SelectExpose { scrollTop: () => void; } export interface SelectMember { el: HTMLElement | null; isSelected: any; value: any; disabled: boolean; } export interface SelectContext { innerValue: any; toggle: (value: any) => void; multiple: Ref; multipleLimit: Ref; addMember: (member: SelectMember) => void; removeMember: (member: SelectMember) => void; getEnabledValue: () => any[]; members: SelectMember[]; } export declare const selectContextKey: InjectionKey; export interface SelectOptionProps { label?: string | number; value?: any; disabled?: boolean; plain?: boolean; } export declare const defaultSelectOptionProps: DefaultProps; export interface SelectOptionSlots { default?(props: { disabled: boolean; selected: boolean; label?: string | number; value: any; }): any; label?(props: { disabled: boolean; selected: boolean; label?: string | number; value: any; }): any; } export interface SelectOptionEmits { (e: 'click', event: MouseEvent): void; } export interface SelectOptionExpose { } export interface SelectOptionGroupProps { label?: string | number; disabled?: boolean; } export declare const defaultSelectOptionGroupProps: DefaultProps; export interface SelectOptionGroupSlots { default?(props: Record): any; } export interface SelectOptionGroupEmits { } export interface SelectOptionGroupExpose { } export interface SelectOptionGroupContext { disabled?: boolean; } export declare const selectOptionGroupContextKey: InjectionKey;