import React from 'react'; import { AutoCompletePropOnChange } from './types'; type GetItemGroupKey = (item: ITEM) => string | number | undefined; type GetGroupKey = (item: GROUP) => string | number | undefined; type UseAutoCompleteProps = { getItemGroupKey?: GetItemGroupKey | undefined; getGroupKey?: GetGroupKey; groups?: GROUP[]; items: ITEM[]; dropdownRef: React.MutableRefObject; disabled?: boolean; getItemLabel: (item: ITEM) => string; getItemKey: (item: ITEM) => string | number; searchFunction?: (item: ITEM, searchValue: string) => boolean; onFocus?: React.FocusEventHandler; onBlur?: React.FocusEventHandler; searchValue?: string; onChange?: AutoCompletePropOnChange<'text'>; isLoading?: boolean; dropdownOpen?: boolean; onDropdownOpen?: (isOpen: boolean) => void; ignoreOutsideClicksRefs?: ReadonlyArray>; }; type OptionProps = { index: number; item: ITEM; keyPrefix: number; }; type GetOptionPropsResult = { onClick: (e: React.MouseEvent) => void; onMouseEnter: (e: React.MouseEvent) => void; active: boolean; hovered: boolean; key: string | number; }; export declare function useAutoComplete(params: UseAutoCompleteProps): { isOpen: boolean; visibleItems: import("../../utils/getGroups").GetGroupsResult; getOptionProps: ({ index, item, }: OptionProps) => GetOptionPropsResult; handleInputFocus: (e: React.FocusEvent) => void; inputRef: React.RefObject; getKeyProps: (rest?: import("../../hooks/useKeysDeprecated").KeyProps) => import("../../hooks/useKeysDeprecated").KeyProps; hasItems: boolean; optionsRefs: React.RefObject[]; handleChange: AutoCompletePropOnChange<"text">; highlightedIndex: number; handleInputBlur: (e: React.FocusEvent) => void; }; export {};