import { HTMLAttributes, Ref } from 'react'; import { SelectSize, SelectVariant } from './types'; export interface SelectProps extends HTMLAttributes { /** * Whether the select is disabled. * Prevents interaction and applies a disabled style. */ disabled?: boolean; /** * If true, the select cannot be changed but remains focusable. */ readOnly?: boolean; /** * Visual style variant for the select control. */ variant?: SelectVariant; /** * Visual size of the select control. */ size?: SelectSize; /** * The currently selected value (controlled). */ value?: V | undefined; /** * The default selected value (uncontrolled). */ defaultValue?: V | undefined; /** * Callback fired when an option is selected. * * @param value - The selected option value */ onSelectValue?(value: V | undefined): void; /** * Ref to the trigger button element. */ ref?: Ref; /** * Controls the open state of the Select dropdown. * * When provided, the Select becomes a controlled component * and relies on this value to determine whether the listbox * is open or closed. */ open?: boolean; /** * Callback fired when the open state changes. * * Called with the next open state (`true` or `false`) * whenever the Select is opened or closed by user interaction. * * Useful for synchronizing the Select state with external logic. */ onOpenChange?(open: boolean): void; /** * Sets the initial open state of the Select when used * in uncontrolled mode. * * Applied only on the first render and ignored afterward. */ defaultOpen?: boolean; /** * Enables type-based matching for typeahead navigation. * * When enabled, option matching respects the value type. * * @default true */ typeMatchEnabled?: boolean; } /** A Select is a UI component that provides a dropdown menu of options from which users can choose one. It is commonly used for forms and filtering, offering a list of predefined values in a compact, accessible manner */ export declare const Select: ({ className, disabled, readOnly, children, variant, size, value, defaultValue, onSelectValue, open: _open, defaultOpen, typeMatchEnabled, onOpenChange, ref, ...props }: SelectProps) => import("react/jsx-runtime").JSX.Element;