import React from 'react'; type GetItemGroupKey = (item: ITEM) => string | number | undefined; type GetGroupKey = (item: GROUP) => string | number | undefined; type OnChangeProp = (props: { value: ITEM | null; e: React.SyntheticEvent; }) => void; type UseAutoCompleteProps = { getItemGroupKey?: GetItemGroupKey | undefined; getGroupKey?: GetGroupKey; groups?: GROUP[]; items: ITEM[]; dropdownRef: React.MutableRefObject; controlRef: 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: OnChangeProp; isLoading?: boolean; dropdownOpen?: boolean; onDropdownOpen?: (isOpen: boolean) => void; ignoreOutsideClicksRefs?: ReadonlyArray>; }; type OptionProps = { index: number; item: ITEM; keyPrefix: number; }; type GetOptionPropsResult = { onClick: (e: React.SyntheticEvent) => void; onMouseEnter: (e: React.SyntheticEvent) => 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; handleInputBlur: (e: React.FocusEvent) => void; inputRef: React.RefObject; getKeyProps: (rest?: import("../../hooks/useKeysDeprecated").KeyProps) => import("../../hooks/useKeysDeprecated").KeyProps; hasItems: boolean; optionsRefs: React.RefObject[]; }; export {};