import { i as CompositeStoreOptions, n as CompositeStoreFunctions, r as CompositeStoreItem, s as CompositeStoreState } from "../composite-store-C5m2qUBo.js";
import { a as PopoverStoreState, n as PopoverStoreFunctions, r as PopoverStoreOptions } from "../popover-store-D7hAv3_R.js";
import { ComboboxStore } from "../combobox/combobox-store.js";
import { Store, StoreOptions, StoreProps } from "@ariakit/store";
import { PickRequired, SetState } from "@ariakit/utils";
//#region src/select/select-store.d.ts
type MutableValue<T extends SelectStoreValue = SelectStoreValue> = T extends string ? string : T;
/** @deprecated Use `createComboboxStore` instead. */
declare function createSelectStore<T extends SelectStoreValue = SelectStoreValue>(props: PickRequired<SelectStoreProps<T>, "value" | "defaultValue">): SelectStore<T>;
/** @deprecated Use `createComboboxStore` instead. */
declare function createSelectStore(props?: SelectStoreProps): SelectStore;
/** @deprecated Use `ComboboxStoreSelectedValue` instead. */
type SelectStoreValue = string | readonly string[];
/** @deprecated Use `ComboboxStoreItem` instead. */
interface SelectStoreItem extends CompositeStoreItem {
  value?: string;
}
/** @deprecated Use `ComboboxStoreState` instead. */
interface SelectStoreState<T extends SelectStoreValue = SelectStoreValue> extends CompositeStoreState<SelectStoreItem>, PopoverStoreState {
  /** @default true */
  virtualFocus: CompositeStoreState<SelectStoreItem>["virtualFocus"];
  /** @default null */
  activeId: CompositeStoreState<SelectStoreItem>["activeId"];
  /** @default "vertical" */
  orientation: CompositeStoreState<SelectStoreItem>["orientation"];
  /** @default "bottom-start" */
  placement: PopoverStoreState["placement"];
  /**
   * The select value.
   */
  value: MutableValue<T>;
  /**
   * Whether the select
   * [`value`](https://ariakit.com/reference/select-provider#value) should be
   * set when the active item changes by moving (which usually happens when
   * moving to an item using the keyboard).
   * @default false
   */
  setValueOnMove: boolean;
  /**
   * The select label element.
   */
  labelElement: HTMLElement | null;
  /**
   * The select button element.
   */
  selectElement: HTMLElement | null;
  /**
   * The select list element.
   */
  listElement: HTMLElement | null;
}
/** @deprecated Use `ComboboxStoreFunctions` instead. */
interface SelectStoreFunctions<T extends SelectStoreValue = SelectStoreValue> extends Pick<SelectStoreOptions<T>, "combobox">, CompositeStoreFunctions<SelectStoreItem>, PopoverStoreFunctions {
  /**
   * Sets the [`value`](https://ariakit.com/reference/select-provider#value)
   * state.
   * @example
   * store.setValue("Apple");
   * store.setValue(["Apple", "Banana"]);
   * store.setValue((value) => value === "Apple" ? "Banana" : "Apple"));
   */
  setValue: SetState<SelectStoreState<T>["value"]>;
  /**
   * Sets the `labelElement` state.
   */
  setLabelElement: SetState<SelectStoreState<T>["labelElement"]>;
  /**
   * Sets the `selectElement` state.
   */
  setSelectElement: SetState<SelectStoreState<T>["selectElement"]>;
  /**
   * Sets the `listElement` state.
   */
  setListElement: SetState<SelectStoreState<T>["listElement"]>;
}
/** @deprecated Use `ComboboxStoreOptions` instead. */
interface SelectStoreOptions<T extends SelectStoreValue = SelectStoreValue> extends StoreOptions<SelectStoreState<T>, "virtualFocus" | "activeId" | "orientation" | "placement" | "value" | "setValueOnMove">, CompositeStoreOptions<SelectStoreItem>, PopoverStoreOptions {
  /**
   * A reference to a combobox store. This is used when combining the combobox
   * with a select (e.g., select with a search input). The stores will share the
   * same state.
   */
  combobox?: ComboboxStore | null;
  /**
   * The default value. If not set, the first non-disabled item will be used.
   */
  defaultValue?: SelectStoreState<T>["value"];
}
/** @deprecated Use `ComboboxStoreProps` instead. */
interface SelectStoreProps<T extends SelectStoreValue = SelectStoreValue> extends SelectStoreOptions<T>, StoreProps<SelectStoreState<T>> {}
/** @deprecated Use `ComboboxStore` instead. */
interface SelectStore<T extends SelectStoreValue = SelectStoreValue> extends SelectStoreFunctions<T>, Store<SelectStoreState<T>> {}
//#endregion
export { SelectStore, SelectStoreFunctions, SelectStoreItem, SelectStoreOptions, SelectStoreProps, SelectStoreState, SelectStoreValue, createSelectStore };
//# sourceMappingURL=select-store.d.ts.map