import * as React from "react"; import { Select as SelectPrimitive } from "@base-ui/react/select"; export type SelectRootProps = React.ComponentPropsWithoutRef; export type SelectGroupProps = SelectPrimitive.Group.Props; export type SelectValueProps = SelectPrimitive.Value.Props; export type SelectTriggerProps = SelectPrimitive.Trigger.Props & { size?: "sm" | "default" | "lg"; }; export type SelectContentProps = SelectPrimitive.Popup.Props & Pick; export type SelectLabelProps = SelectPrimitive.GroupLabel.Props; export type SelectItemProps = SelectPrimitive.Item.Props & { showIndicator?: boolean; }; export type SelectSeparatorProps = SelectPrimitive.Separator.Props; export type SelectScrollUpButtonProps = React.ComponentProps; export type SelectScrollDownButtonProps = React.ComponentProps; export type SelectOption = { label: React.ReactNode; value: string; disabled?: boolean; description?: React.ReactNode; keywords?: string[]; }; export type SelectOptionGroup = { label?: React.ReactNode; options: SelectOption[]; }; export type SelectProps = Omit & { value?: string | null; defaultValue?: string | null; onValueChange?: (value: string | undefined) => void; options?: SelectOption[]; groups?: SelectOptionGroup[]; placeholder?: string; searchPlaceholder?: string; emptyLabel?: React.ReactNode; emptyMessage?: React.ReactNode; clearLabel?: string; size?: "sm" | "default" | "lg"; clearable?: boolean; searchable?: boolean; loading?: boolean; loadingLabel?: React.ReactNode; disabled?: boolean; showSelectedDescription?: boolean; triggerClassName?: string; contentClassName?: string; itemClassName?: string; searchClassName?: string; renderOption?: (option: SelectOption, state: { selected: boolean; }) => React.ReactNode; showSelectedIndicator?: boolean; invalid?: boolean; onSearchChange?: (value: string) => void; }; declare function Select({ value, defaultValue, onValueChange, options, groups, placeholder, searchPlaceholder, emptyLabel, emptyMessage, clearLabel, size, clearable, searchable, loading, loadingLabel, disabled, showSelectedDescription, triggerClassName, contentClassName, itemClassName, searchClassName, renderOption, showSelectedIndicator, invalid, children, onOpenChange, onSearchChange, ...props }: SelectProps): React.JSX.Element; declare function SelectGroup({ className, ...props }: SelectGroupProps): React.JSX.Element; declare function SelectValue({ className, ...props }: SelectValueProps): React.JSX.Element; declare function SelectTrigger({ className, size, children, ...props }: SelectTriggerProps): React.JSX.Element; declare function SelectContent({ className, children, side, sideOffset, align, alignOffset, alignItemWithTrigger, ...props }: SelectContentProps): React.JSX.Element; declare function SelectLabel({ className, ...props }: SelectLabelProps): React.JSX.Element; declare function SelectItem({ className, children, showIndicator, ...props }: SelectItemProps): React.JSX.Element; declare function SelectSeparator({ className, ...props }: SelectSeparatorProps): React.JSX.Element; declare function SelectScrollUpButton({ className, ...props }: SelectScrollUpButtonProps): React.JSX.Element; declare function SelectScrollDownButton({ className, ...props }: SelectScrollDownButtonProps): React.JSX.Element; export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };