import type { ButtonHTMLAttributes, DetailedHTMLProps, Dispatch, KeyboardEvent, RefObject, SetStateAction } from 'react';
type TriggerProps = {
ref: RefObject;
} & Pick, HTMLButtonElement>, 'onKeyDown' | 'onClick' | 'tabIndex' | 'role' | 'aria-haspopup' | 'aria-expanded'>;
type Response = Readonly<{
/**
* An object used as a property of an HTML element that controls
* the activation and deactivation of ListBox.
*/
triggerProps: TriggerProps;
/**
* An array of objects used as properties of HTML elements
* that function as menu items in ListBox.
*/
itemProps: {
/**
* This function controls the behavior of the list box menu
* when a key is pressed while the menu item is focused.
*/
onKeyDown: (e: KeyboardEvent) => void;
/**
* Set to `-1` to disable the browser's native focus logic.
*/
tabIndex: -1;
/**
* Set `menuitem` to comply with WAI-ARIA guidelines.
*/
role: 'menuitem';
/**
* RefObject to be applied to each menu item, used to control the focus handling.
*/
ref: RefObject;
}[];
/**
* A Boolean value indicating whether or not ListBox is active.
* The application developer uses this value to set whether or not to display the menu.
*/
active: boolean;
/**
* It is used by application developers to control the activation
* and deactivation of menus in their programs.
*/
setActive: Dispatch>;
}>;
export declare function useListBox(itemCount: number): Response;
export {};