import type { SelectEmitFn } from './defaults'; declare const useSelect: (props: ExtractPropTypes<{ allowCreate: BooleanConstructor; autocomplete: { type: PropType<"none" | "inline" | "both" | "list">; default: string; }; automaticDropdown: BooleanConstructor; clearable: BooleanConstructor; clearIcon: { type: PropType; default: DefineComponent; }; effect: { type: PropType<"dark" | "light">; default: string; }; collapseTags: { type: BooleanConstructor; }; defaultFirstOption: BooleanConstructor; disabled: { type: BooleanConstructor; default: undefined; }; estimatedOptionHeight: { type: NumberConstructor; default: undefined; }; filterable: BooleanConstructor; filterMethod: FunctionConstructor; height: { type: NumberConstructor; default: number; }; itemHeight: { type: NumberConstructor; default: number; }; id: StringConstructor; loading: BooleanConstructor; loadingText: { type: StringConstructor; default: string; }; labelKey: { type: StringConstructor; default: string; }; modelValue: { type: PropType; default: undefined; }; multiple: BooleanConstructor; multipleLimit: { type: NumberConstructor; default: number; }; name: StringConstructor; noDataText: { type: StringConstructor; default: string; }; noMatchText: { type: StringConstructor; default: string; }; remoteMethod: FunctionConstructor; reserveKeyword: { type: BooleanConstructor; default: boolean; }; options: { type: PropType[]>; default: () => never[]; }; placeholder: { type: StringConstructor; default: string; }; popperAppendToBody: { type: BooleanConstructor; default: undefined; }; teleported: { readonly type: BooleanConstructor; readonly default: true; }; popperClass: { type: StringConstructor; default: string; }; popperOptions: { type: PropType>; default: () => Partial; }; remote: BooleanConstructor; size: { type: PropType<"default" | "small" | "large">; validator: (val: string) => val is "" | "default" | "small" | "large"; }; valueKey: { type: StringConstructor; default: string; }; scrollbarAlwaysOn: { type: BooleanConstructor; default: boolean; }; selectable: { type: PropType<(node: any) => boolean>; }; text: { type: StringConstructor; }; textField: { type: StringConstructor; }; label: { type: StringConstructor; }; field: { type: StringConstructor; }; tips: { type: StringConstructor; }; span: { type: PropType; }; required: { type: BooleanConstructor; }; }>, emit: SelectEmitFn) => { collapseTagSize: any; currentPlaceholder: any; expanded: any; emptyText: any; popupHeight: any; debounce: any; filteredOptions: any; iconComponent: any; iconReverse: any; inputWrapperStyle: any; popperSize: any; dropdownMenuVisible: any; hasModelValue: any; shouldShowPlaceholder: any; selectDisabled: any; selectSize: Ref<"default" | "small" | "large">; showClearBtn: any; states: any; tagMaxWidth: any; ns: { namespace: any; b: (blockSuffix?: string) => string; e: (element?: string | undefined) => string; m: (modifier?: string | undefined) => string; be: (blockSuffix?: string | undefined, element?: string | undefined) => string; em: (element?: string | undefined, modifier?: string | undefined) => string; bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string; bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string; is: { (name: string, state: boolean | undefined): string; (name: string): string; }; cssVar: (object: Record) => Record; cssVarName: (name: string) => string; cssVarBlock: (object: Record) => Record; cssVarBlockName: (name: string) => string; }; nsInput: { namespace: any; b: (blockSuffix?: string) => string; e: (element?: string | undefined) => string; m: (modifier?: string | undefined) => string; be: (blockSuffix?: string | undefined, element?: string | undefined) => string; em: (element?: string | undefined, modifier?: string | undefined) => string; bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string; bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string; is: { (name: string, state: boolean | undefined): string; (name: string): string; }; cssVar: (object: Record) => Record; cssVarName: (name: string) => string; cssVarBlock: (object: Record) => Record; cssVarBlockName: (name: string) => string; }; calculatorRef: any; inputRef: any; dropdownRef: any; tooltipRef: any; selectRef: any; selectionRef: any; popperRef: any; deleteTag: (event: MouseEvent, tag: Record) => any; getLabel: (item: unknown) => any; getValue: (item: unknown) => any; handleClear: () => any; handleClickOutside: () => any; handleDel: (e: KeyboardEvent) => void; handleEsc: () => void; handleFocus: (event: FocusEvent) => void; handleMenuEnter: () => any; handleResize: () => any; toggleMenu: () => any; onInput: (event: Event) => any; onKeyboardNavigate: (direction: 'forward' | 'backward', hoveringIndex?: number) => any; onKeyboardSelect: () => any; handleSelect: (option: Record, idx: number, byClick?: boolean) => void; onHover: (idx: number) => void; onUpdateInputValue: (val: string) => void; handleCompositionStart: (event: CompositionEvent) => void; handleCompositionEnd: (event: CompositionEvent) => void; update: { (val: string | number, label: string, option?: Record): void; (val: (string | number)[], label: string[], option?: Record[]): void; }; handleCompositionUpdate: (event: CompositionEvent) => void; }; export default useSelect;