import { t as ComboboxStore } from "../combobox-store-FilGAecN.js";
import { n as CompositeHoverOptions } from "../composite-hover-Bkdtn8T1.js";
import { n as CompositeItemOptions } from "../composite-item-HW-_P3KK.js";
import { Props } from "@ariakit/react-utils";
import { ElementType, MouseEvent } from "react";
import { BooleanOrCallback } from "@ariakit/utils";
//#region src/combobox/combobox-item.d.ts
declare const TagName = "div";
type TagName = typeof TagName;
/**
 * Returns props to create a `ComboboxItem` component.
 * @see https://ariakit.com/components/combobox
 * @example
 * ```jsx
 * const store = useComboboxStore();
 * const props = useComboboxItem({ store, value: "value" });
 * <Role {...props} />
 * ```
 */
declare const useComboboxItem: import("@ariakit/react-utils").Hook<"div", ComboboxItemOptions<"div">>;
/**
 * Renders a combobox item inside
 * [`ComboboxList`](https://ariakit.com/reference/combobox-list) or
 * [`ComboboxPopover`](https://ariakit.com/reference/combobox-popover)
 * components.
 *
 * By default, the [`value`](https://ariakit.com/reference/combobox-item#value)
 * prop will be rendered as the children, but this can be overriden.
 * @see https://ariakit.com/components/combobox
 * @example
 * ```jsx {4-6}
 * <ComboboxProvider>
 *   <Combobox />
 *   <ComboboxPopover>
 *     <ComboboxItem value="Apple" />
 *     <ComboboxItem value="Banana" />
 *     <ComboboxItem value="Orange" />
 *   </ComboboxPopover>
 * </ComboboxProvider>
 * ```
 */
declare const ComboboxItem: (props: ComboboxItemProps) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
interface ComboboxItemOptions<T extends ElementType = TagName> extends CompositeItemOptions<T>, CompositeHoverOptions<T> {
  /**
   * Object returned by the
   * [`useComboboxStore`](https://ariakit.com/reference/use-combobox-store)
   * hook. If not provided, the closest
   * [`ComboboxList`](https://ariakit.com/reference/combobox-list) or
   * [`ComboboxPopover`](https://ariakit.com/reference/combobox-popover)
   * components' context will be used.
   *
   * Live examples:
   * - [Navigation Menubar](https://ariakit.com/examples/menubar-navigation)
   */
  store?: ComboboxStore;
  /**
   * The value of the item. This will be rendered as the children by default.
   * - If
   *   [`setValueOnClick`](https://ariakit.com/reference/combobox-item#setvalueonclick)
   *   is set to `true`, this will be the value of the combobox input when the
   *   user clicks on this item.
   * - If
   *   [`selectValueOnClick`](https://ariakit.com/reference/combobox-item#selectvalueonclick)
   *   is set to `true`, this will be the value of the
   *   [`selectedValue`](https://ariakit.com/reference/combobox-provider#selectedvalue)
   *   state.
   * - If the
   *   [`autoComplete`](https://ariakit.com/reference/combobox#autocomplete)
   *   prop on the [`Combobox`](https://ariakit.com/reference/combobox)
   *   component is set to `both` or `inline`, this will be the value of the
   *   combobox input when the combobox loses focus.
   *
   * Live examples:
   * - [Animated Combobox](https://ariakit.com/examples/combobox-animated)
   * - [ComboboxCancel](https://ariakit.com/examples/combobox-cancel)
   * - [ComboboxDisclosure](https://ariakit.com/examples/combobox-disclosure)
   * - [Combobox filtering](https://ariakit.com/examples/combobox-filtering)
   * - [ComboboxGroup](https://ariakit.com/examples/combobox-group)
   * - [Textarea with inline
   *   Combobox](https://ariakit.com/examples/combobox-textarea)
   */
  value?: string;
  /**
   * Whether to hide the combobox when this item is clicked. By default, the
   * combobox will be hidden when the user clicks on an item with a
   * [`value`](https://ariakit.com/reference/combobox-item#value) prop, unless
   * the combobox is
   * [multi-selectable](https://ariakit.com/examples/combobox-multiple).
   *
   * Live examples:
   * - [Combobox with links](https://ariakit.com/examples/combobox-links)
   * - [Submenu with
   *   Combobox](https://ariakit.com/examples/menu-nested-combobox)
   * - [Command Menu](https://ariakit.com/examples/dialog-combobox-command-menu)
   * - [Command Menu with
   *   Tabs](https://ariakit.com/examples/dialog-combobox-tab-command-menu)
   */
  hideOnClick?: BooleanOrCallback<MouseEvent<HTMLElement>>;
  /**
   * Whether to set the combobox
   * [`inputValue`](https://ariakit.com/reference/combobox-provider#inputvalue)
   * state using this item's
   * [`value`](https://ariakit.com/reference/combobox-item#value) when the item
   * is clicked. The default is `true`, unless
   * [`ComboboxSelect`](https://ariakit.com/reference/combobox-select) is
   * rendered or the combobox is
   * [multi-selectable](https://ariakit.com/examples/combobox-multiple).
   *
   * Live examples:
   * - [Menu with Combobox](https://ariakit.com/examples/menu-combobox)
   * - [Submenu with
   *   Combobox](https://ariakit.com/examples/menu-nested-combobox)
   */
  setValueOnClick?: BooleanOrCallback<MouseEvent<HTMLElement>>;
  /**
   * Whether to set the
   * [`selectedValue`](https://ariakit.com/reference/combobox-provider#selectedvalue)
   * state using this item's
   * [`value`](https://ariakit.com/reference/combobox-item#value) when the item
   * is clicked. If a callback is provided, it will only be invoked if the item
   * has a value.
   *
   * Live examples:
   * - [Submenu with
   *   Combobox](https://ariakit.com/examples/menu-nested-combobox)
   * @default true
   */
  selectValueOnClick?: BooleanOrCallback<MouseEvent<HTMLElement>>;
  /**
   * Whether to reset the combobox input value when this item is selected or
   * unselected by click. This prop is set to `true` by default when
   * [`ComboboxSelect`](https://ariakit.com/reference/combobox-select) is
   * rendered, or when the combobox supports multiple selections, that is, when
   * the
   * [`selectedValue`](https://ariakit.com/reference/combobox-provider#selectedvalue)
   * or
   * [`defaultSelectedValue`](https://ariakit.com/reference/combobox-provider#defaultselectedvalue)
   * props are arrays.
   */
  resetValueOnSelect?: BooleanOrCallback<MouseEvent<HTMLElement>>;
  /**
   * Defaults to `false`, or `true` when the item is used with a
   * [`ComboboxSelect`](https://ariakit.com/reference/combobox-select).
   */
  focusOnHover?: CompositeHoverOptions["focusOnHover"];
}
type ComboboxItemProps<T extends ElementType = TagName> = Props<T, ComboboxItemOptions<T>>;
//#endregion
export { ComboboxItem, ComboboxItemOptions, ComboboxItemProps, useComboboxItem };
//# sourceMappingURL=combobox-item.d.ts.map