import { DropdownItem, ItemsMap } from './types';
export interface DownshiftProps {
    itemsMap: ItemsMap;
    value: string | string[] | undefined;
    defaultValue: string | string[] | undefined;
    onValueChange: ((value: string) => void) | ((value: string[]) => void) | undefined;
    open: boolean | undefined;
    onOpenChange: ((isOpen: boolean) => void) | undefined;
    defaultOpen: boolean | undefined;
    multiple: boolean | undefined;
    id: string;
    labelId: string;
}
/**
 * This hook abstract the complexity of using downshift with both single and multiple selection.
 */
export declare const useDropdown: ({ itemsMap, defaultValue, value, onValueChange, open, onOpenChange, defaultOpen, multiple, id, labelId, }: DownshiftProps) => {
    /** There is a Downshift bug in React 19, it duplicates some selectedItems */
    selectedItems: DropdownItem[];
    activeIndex: number;
    getDropdownProps: <Options>(options?: import('downshift').UseMultipleSelectionGetDropdownPropsOptions & Options, extraOptions?: import('downshift').GetPropsCommonOptions) => Omit<import('downshift').Overwrite<import('downshift').UseMultipleSelectionGetDropdownReturnValue, Options>, "preventKeyAction">;
    getSelectedItemProps: <Options>(options: import('downshift').UseMultipleSelectionGetSelectedItemPropsOptions<DropdownItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseMultipleSelectionGetSelectedItemReturnValue, Options>, "index" | "selectedItem">;
    reset: () => void;
    addSelectedItem: (item: DropdownItem) => void;
    removeSelectedItem: (item: DropdownItem) => void;
    setSelectedItems: (items: DropdownItem[]) => void;
    setActiveIndex: (index: number) => void;
    highlightedIndex: number;
    selectedItem: DropdownItem | null;
    isOpen: boolean;
    inputValue: string;
    getToggleButtonProps: <Options>(options?: import('downshift').UseSelectGetToggleButtonPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseSelectGetToggleButtonReturnValue, Options>;
    getLabelProps: <Options>(options?: import('downshift').UseSelectGetLabelPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseSelectGetLabelPropsReturnValue, Options>;
    getMenuProps: <Options>(options?: import('downshift').UseSelectGetMenuPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseSelectGetMenuReturnValue, Options>;
    getItemProps: <Options>(options: import('downshift').UseSelectGetItemPropsOptions<DropdownItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseSelectGetItemPropsReturnValue, Options>, "item" | "index">;
    openMenu: () => void;
    closeMenu: () => void;
    toggleMenu: () => void;
    selectItem: (item: DropdownItem | null) => void;
    setHighlightedIndex: (index: number) => void;
};
