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<UseComboboxProps<SelectItem>, "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<HTMLDivElement>;
    getToggleButtonProps: <Options>(options?: import('downshift').UseComboboxGetToggleButtonPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseComboboxGetToggleButtonPropsReturnValue, Options>;
    getLabelProps: <Options>(options?: import('downshift').UseComboboxGetLabelPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseComboboxGetLabelPropsReturnValue, Options>;
    getMenuProps: <Options>(options?: import('downshift').UseComboboxGetMenuPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseComboboxGetMenuPropsReturnValue, Options>;
    getInputProps: <Options>(options?: import('downshift').UseComboboxGetInputPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseComboboxGetInputPropsReturnValue, Options>;
    getItemProps: <Options>(options: import('downshift').UseComboboxGetItemPropsOptions<SelectItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseComboboxGetItemPropsReturnValue, Options>, "item" | "index">;
    highlightedIndex: number;
    isOpen: boolean;
    items: SelectItem[];
    sectionsMeta: SectionMeta[];
    closeMenu: () => void;
    openMenu: () => void;
};
