import type { PickRequired, ToPrimitive } from "@ariakit/core/utils/types";
import type { ReactNode } from "react";
import type { SelectStore, SelectStoreValue } from "./select-store.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`](https://ariakit.com/reference/use-select-store#value) is
* `undefined`.
*
* 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.
* @see https://ariakit.com/components/select
* @example
* ```jsx {3}
*
*
*
*
*
*
*
*
* ```
* @example
* ```jsx {1-3,7}
* function renderValue(value) {
* // render custom JSX
* }
*
*
*
*
*
*
*
*
*
* ```
*/
export declare function SelectValue(props: PickRequired, "fallback">): T;
export declare function SelectValue(props?: SelectValueProps): Value;
export interface SelectValueProps {
/**
* 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;
/**
* The value to use as a default if the store's
* [`value`](https://ariakit.com/reference/use-select-store#value) is
* `undefined`.
* @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) => ReactNode;
}
export {};