import type React from "react";
import type { ReactNode } from "react";
import type { Select } from "../../unstyledPrimitives";
import type { OverlaySeparator } from "../OverlaySeparator";
export type SelectPrimitiveRootProps = React.ComponentPropsWithoutRef<typeof Select.Root>;
export type SelectPrimitiveTriggerProps = React.ComponentPropsWithoutRef<typeof Select.Trigger>;
export type SelectPrimitiveValueProps = React.ComponentPropsWithoutRef<typeof Select.Value>;
export type SelectPrimitivePortalProps = React.ComponentPropsWithoutRef<typeof Select.Portal>;
export type SelectPrimitivePositionerProps = React.ComponentPropsWithoutRef<typeof Select.Positioner>;
export type SelectPrimitivePopupProps = React.ComponentPropsWithoutRef<typeof Select.Popup>;
export type SelectPrimitiveListProps = React.ComponentPropsWithoutRef<typeof Select.List>;
export type SelectPrimitiveItemProps = React.ComponentPropsWithoutRef<typeof Select.Item>;
export type SelectPrimitiveItemTextProps = React.ComponentPropsWithoutRef<typeof Select.ItemText>;
export type SelectPrimitiveItemIndicatorProps = React.ComponentPropsWithoutRef<typeof Select.ItemIndicator>;
export type SelectPrimitiveGroupProps = React.ComponentPropsWithoutRef<typeof Select.Group>;
export type SelectPrimitiveGroupLabelProps = React.ComponentPropsWithoutRef<typeof Select.GroupLabel>;
export type SelectPrimitiveSeparatorProps = React.ComponentPropsWithoutRef<typeof OverlaySeparator>;
/**
 * Context-free, presentational trigger surface (field button + chevron). Render
 * it via Base UI's `Select.Trigger` (or any trigger's `render` prop) so the
 * field chrome can be reused outside a `Select.Root` — e.g. a bottom sheet.
 */
export interface SelectPrimitiveFieldTriggerProps extends React.ComponentPropsWithRef<"button"> {
    /** The value/placeholder display element rendered before the chevron. */
    readonly valueSlot?: ReactNode;
}
/**
 * Presentational value text (the `.value` styling) for triggers rendered
 * outside a `Select.Root`, where `SelectPrimitive.Value` can't be used.
 */
export type SelectPrimitiveValueTextProps = React.ComponentPropsWithRef<"span">;
