import { ForwardRefExoticComponent, RefAttributes, ReactNode } from 'react'; import { SelectTriggerProps, Select as SelectPrimitive } from '@base-ui/react/select'; type SelectPropsBase = Omit, 'open' | 'defaultOpen' | 'onOpenChange' | 'value' | 'defaultValue' | 'onValueChange' | 'multiple'> & { open?: boolean; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; }; type SelectPropsSingle = SelectPropsBase & { multiple?: false; value?: string; defaultValue?: string; onValueChange?: (value: string) => void; }; type SelectPropsMultiple = SelectPropsBase & { multiple: true; value?: string[]; defaultValue?: string[]; onValueChange?: (value: string[]) => void; }; declare function Select(props: SelectPropsSingle): ReactNode; declare function Select(props: SelectPropsMultiple): ReactNode; declare function SelectGroup({ className, ...props }: SelectPrimitive.Group.Props): ReactNode; declare function SelectValue({ icon, ...props }: SelectPrimitive.Value.Props & { icon?: ReactNode; }): ReactNode; declare const SelectTrigger: ForwardRefExoticComponent & RefAttributes>; declare function SelectContent({ className, children, position: _position, align, alignOffset, side, sideOffset, ...props }: SelectPrimitive.Popup.Props & { position?: 'popper' | 'item-aligned'; align?: SelectPrimitive.Positioner.Props['align']; alignOffset?: SelectPrimitive.Positioner.Props['alignOffset']; side?: SelectPrimitive.Positioner.Props['side']; sideOffset?: SelectPrimitive.Positioner.Props['sideOffset']; }): ReactNode; declare function SelectLabel({ className, ...props }: SelectPrimitive.GroupLabel.Props): ReactNode; declare function SelectItem({ className, children, icon, suffix, ...props }: SelectPrimitive.Item.Props & { icon?: ReactNode; suffix?: ReactNode; }): ReactNode; declare function SelectSeparator({ className, ...props }: SelectPrimitive.Separator.Props): ReactNode; declare function SelectScrollUpButton({ className, ...props }: SelectPrimitive.ScrollUpArrow.Props): ReactNode; declare function SelectScrollDownButton({ className, ...props }: SelectPrimitive.ScrollDownArrow.Props): ReactNode; export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };