import { s as SelectStoreValue, t as SelectStore } from "../select-store-C8tHSVWh.js";
import { ReactNode } from "react";
import { PickRequired, ToPrimitive } from "@ariakit/utils";
//#region src/select/select-value.d.ts
type Value = SelectStoreValue;
/**
 * Renders the current
 * [`value`](https://ariakit.com/reference/use-select-store#value) state in the
 * [select store](https://ariakit.com/reference/use-select-store).
 *
 * As a value component, it doesn't render any DOM elements and therefore
 * doesn't accept HTML props. It can optionally accept a
 * [`fallback`](https://ariakit.com/reference/select-value#fallback) prop to use
 * as a default value if the store's value is an empty string or empty array.
 *
 * The store's
 * [`value`](https://ariakit.com/reference/use-select-store#value) is
 * otherwise rendered as-is.
 *
 * Additionally, it takes a
 * [`children`](https://ariakit.com/reference/select-value#children) function
 * that gets called with the current value as an argument. This is handy for
 * rendering the value in a custom way.
 * @deprecated Use
 * [`ComboboxSelectedValue`](https://ariakit.com/reference/combobox-selected-value)
 * instead.
 * @see https://ariakit.com/components/select
 * @example
 * ```jsx {3}
 * <SelectProvider>
 *   <Select>
 *     <SelectValue fallback="Select a value" />
 *     <SelectArrow />
 *   </Select>
 *   <SelectPopover>
 *     <SelectItem value="Apple" />
 *     <SelectItem value="Banana" />
 *     <SelectItem value="Orange" />
 *   </SelectPopover>
 * </SelectProvider>
 * ```
 * @example
 * ```jsx {1-3,7}
 * function renderValue(value) {
 *   // render custom JSX
 * }
 *
 * <SelectProvider>
 *   <Select>
 *     <SelectValue>{renderValue}</SelectValue>
 *     <SelectArrow />
 *   </Select>
 *   <SelectPopover>
 *     <SelectItem value="Apple" />
 *     <SelectItem value="Banana" />
 *     <SelectItem value="Orange" />
 *   </SelectPopover>
 * </SelectProvider>
 * ```
 */
declare function SelectValue<T extends Value = Value>(props: PickRequired<SelectValueProps<T>, "fallback">): T;
/** @deprecated Use `ComboboxSelectedValue` instead. */
declare function SelectValue(props?: SelectValueProps): Value;
/** @deprecated Use `ComboboxSelectedValueProps` instead. */
interface SelectValueProps<T extends Value = Value> {
  /**
   * Object returned by the
   * [`useSelectStore`](https://ariakit.com/reference/use-select-store) hook. If
   * not provided, the parent
   * [`SelectList`](https://ariakit.com/reference/select-list) or
   * [`SelectPopover`](https://ariakit.com/reference/select-popover) components'
   * context will be used.
   */
  store?: SelectStore<T>;
  /**
   * The value to use as a default if the store's value is an empty string or
   * empty array.
   *
   * The store's
   * [`value`](https://ariakit.com/reference/use-select-store#value) is
   * otherwise rendered as-is.
   * @default ""
   */
  fallback?: T;
  /**
   * A function that gets called with the current value as an argument. This is
   * handy for rendering the value in a custom way.
   */
  children?: (value: ToPrimitive<T>) => ReactNode;
}
//#endregion
export { SelectValue, SelectValueProps };
//# sourceMappingURL=select-value.d.ts.map