import { UseComboboxProps } from 'downshift'; import { SelectFieldGroupByValue, SelectFieldOption, SelectFieldPinnedOptions } from '../types'; import { SectionMeta, SelectItem } from '../../../../internal/types/selectFieldInternalTypes'; export type { SectionMeta }; export type UseComboOptions = { options: SelectFieldOption[]; pinned?: SelectFieldPinnedOptions; groupToString?: (groupValue: SelectFieldGroupByValue) => string; groupSorter?: (a: SelectFieldGroupByValue, b: SelectFieldGroupByValue) => number; selectedOption: SelectFieldOption | null; onSelectedOptionChange: (option: SelectFieldOption | null) => void; displayAs: "popover" | "dialog"; disableHighlightOnOpen?: boolean; disabled: boolean; virtualize?: boolean; onScrollToHighlight?: (index: number) => void; } & Pick, "onInputValueChange" | "onIsOpenChange">; /** * The purpose of useCombo is to provide an abstraction over the downshift combobox hook. */ export declare const useCombo: ({ options, pinned, groupToString, groupSorter, selectedOption, onSelectedOptionChange, onInputValueChange, onIsOpenChange, displayAs, disableHighlightOnOpen, disabled, virtualize, onScrollToHighlight, }: UseComboOptions) => { inputValue: string; wrapperDivRef: import('react').RefObject; getToggleButtonProps: (options?: import('downshift').UseComboboxGetToggleButtonPropsOptions & Options) => import('downshift').Overwrite; getLabelProps: (options?: import('downshift').UseComboboxGetLabelPropsOptions & Options) => import('downshift').Overwrite; getMenuProps: (options?: import('downshift').UseComboboxGetMenuPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite; getInputProps: (options?: import('downshift').UseComboboxGetInputPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite; getItemProps: (options: import('downshift').UseComboboxGetItemPropsOptions & Options) => Omit, "item" | "index">; highlightedIndex: number; isOpen: boolean; items: SelectItem[]; sectionsMeta: SectionMeta[]; closeMenu: () => void; openMenu: () => void; };