import { t as DisclosureStore } from "./disclosure-store-DsqFEX-x.js";
import { a as PopoverStoreState, n as PopoverStoreFunctions, r as PopoverStoreOptions } from "./popover-store-BJQhU0yZ.js";
import { i as CompositeStoreOptions, n as CompositeStoreFunctions, o as CompositeStoreState } from "./composite-store-9jZQUYDt.js";
import { t as TagStore } from "./tag-store-D4y-cpQi.js";
import { BivariantCallback, PickRequired } from "@ariakit/utils";
import { Store } from "@ariakit/react-store";
import * as Core from "@ariakit/components/combobox/combobox-store";
//#region src/combobox/combobox-store.d.ts
declare function useComboboxStoreOptions<T extends Core.ComboboxStoreOptions>(props: T): {
  id: string | undefined;
} & T;
declare function useComboboxStoreProps<T extends Core.ComboboxStore>(store: T, update: () => void, props: ComboboxStoreProps): T & {
  disclosure: DisclosureStore | null | undefined;
} & {
  tag: TagStore | null | undefined;
};
/**
 * Creates a combobox store to control the state of
 * [Combobox](https://ariakit.com/components/combobox) components.
 * @see https://ariakit.com/components/combobox
 * @example
 * ```jsx
 * const combobox = useComboboxStore();
 *
 * <ComboboxProvider store={combobox}>
 *   <Combobox />
 *   <ComboboxPopover>
 *     <ComboboxItem value="Apple" />
 *     <ComboboxItem value="Banana" />
 *     <ComboboxItem value="Orange" />
 *   </ComboboxPopover>
 * </ComboboxProvider>
 * ```
 */
declare function useComboboxStore<T extends ComboboxStoreSelectedValue = ComboboxStoreSelectedValue>(props: PickRequired<ComboboxStoreProps<T>, "selectedValue" | "defaultSelectedValue">): ComboboxStore<T>;
declare function useComboboxStore(props?: ComboboxStoreProps): ComboboxStore;
type ComboboxStoreSelectedValue = Core.ComboboxStoreSelectedValue;
interface ComboboxStoreItem extends Core.ComboboxStoreItem {}
interface ComboboxStoreState<T extends ComboboxStoreSelectedValue = ComboboxStoreSelectedValue> extends Core.ComboboxStoreState<T>, CompositeStoreState<ComboboxStoreItem>, PopoverStoreState {}
interface ComboboxStoreFunctions<T extends ComboboxStoreSelectedValue = ComboboxStoreSelectedValue> extends Pick<ComboboxStoreOptions<T>, "tag">, Omit<Core.ComboboxStoreFunctions<T>, "tag" | "disclosure">, CompositeStoreFunctions<ComboboxStoreItem>, PopoverStoreFunctions {}
interface ComboboxStoreOptions<T extends ComboboxStoreSelectedValue = ComboboxStoreSelectedValue> extends Omit<Core.ComboboxStoreOptions<T>, "tag" | "disclosure">, CompositeStoreOptions<ComboboxStoreItem>, PopoverStoreOptions {
  /**
   * A callback that gets called when the
   * [`inputValue`](https://ariakit.com/reference/combobox-provider#inputvalue)
   * state changes.
   *
   * Live examples:
   * - [Combobox with integrated
   *   filter](https://ariakit.com/examples/combobox-filtering-integrated)
   * - [ComboboxGroup](https://ariakit.com/examples/combobox-group)
   * - [Combobox with links](https://ariakit.com/examples/combobox-links)
   * - [Multi-selectable
   *   Combobox](https://ariakit.com/examples/combobox-multiple)
   * - [Menu with Combobox](https://ariakit.com/examples/menu-combobox)
   * - [Select with Combobox](https://ariakit.com/examples/select-combobox)
   */
  setInputValue?: (value: ComboboxStoreState<T>["inputValue"]) => void;
  /**
   * A callback that gets called when the
   * [`inputValue`](https://ariakit.com/reference/combobox-provider#inputvalue)
   * state changes.
   * @deprecated Use
   * [`setInputValue`](https://ariakit.com/reference/combobox-provider#setinputvalue)
   * instead.
   */
  setValue?: (value: ComboboxStoreState<T>["value"]) => void;
  /**
   * A callback that's invoked when the
   * [`selectedValue`](https://ariakit.com/reference/combobox-provider#selectedvalue)
   * state changes, typically when the user selects an item. This can be used to
   * implement behavior like `onSelect` or `onItemSelect`.
   *
   * Live examples:
   * - [Multi-selectable
   *   Combobox](https://ariakit.com/examples/combobox-multiple)
   */
  setSelectedValue?: BivariantCallback<(value: ComboboxStoreState<T>["selectedValue"]) => void>;
  /**
   * A reference to a [tag store](https://ariakit.com/apis/use-tag-store). It's
   * automatically set when rendering a combobox within a tag list.
   */
  tag?: TagStore | null;
}
interface ComboboxStoreProps<T extends ComboboxStoreSelectedValue = ComboboxStoreSelectedValue> extends ComboboxStoreOptions<T>, Omit<Core.ComboboxStoreProps<T>, "tag" | "disclosure"> {}
interface ComboboxStore<T extends ComboboxStoreSelectedValue = ComboboxStoreSelectedValue> extends ComboboxStoreFunctions<T>, Omit<Store<Core.ComboboxStore<T>>, "tag" | "disclosure"> {}
//#endregion
export { ComboboxStoreProps as a, useComboboxStore as c, ComboboxStoreOptions as i, useComboboxStoreOptions as l, ComboboxStoreFunctions as n, ComboboxStoreSelectedValue as o, ComboboxStoreItem as r, ComboboxStoreState as s, ComboboxStore as t, useComboboxStoreProps as u };
//# sourceMappingURL=combobox-store-FilGAecN.d.ts.map