import React, { type ElementType, type Ref } from 'react'; import { type ByComparator } from '../../hooks/use-by-comparator.js'; import { type AnchorProps } from '../../internal/floating.js'; import type { EnsureArray, Props } from '../../types.js'; import { type HasDisplayName, type PropsForFeatures, type RefProp } from '../../utils/render.js'; import { type _internal_ComponentLabel } from '../label/label.js'; declare let DEFAULT_COMBOBOX_TAG: React.ExoticComponent<{ children?: React.ReactNode; }>; type ComboboxRenderPropArg = { open: boolean; disabled: boolean; invalid: boolean; activeIndex: number | null; activeOption: TActive | null; value: TValue; }; export type ComboboxProps = Props>, 'value' | 'defaultValue' | 'multiple' | 'onChange' | 'by', { value?: TMultiple extends true ? EnsureArray : TValue; defaultValue?: TMultiple extends true ? EnsureArray> : NoInfer; onChange?: (value: TMultiple extends true ? EnsureArray : TValue | null) => void; by?: ByComparator>[number] : NoInfer>; /** @deprecated The `` is now nullable default */ nullable?: boolean; multiple?: TMultiple; disabled?: boolean; invalid?: boolean; form?: string; name?: string; immediate?: boolean; virtual?: { options: TMultiple extends true ? EnsureArray> : NoInfer[]; disabled?: (value: TMultiple extends true ? EnsureArray>[number] : NoInfer) => boolean; } | null; onClose?: () => void; __demoMode?: boolean; }>; declare function ComboboxFn(props: ComboboxProps, ref: Ref): React.JSX.Element; declare let DEFAULT_INPUT_TAG: "input"; type InputRenderPropArg = { open: boolean; disabled: boolean; invalid: boolean; hover: boolean; focus: boolean; autofocus: boolean; }; type InputPropsWeControl = 'aria-activedescendant' | 'aria-autocomplete' | 'aria-controls' | 'aria-expanded' | 'aria-labelledby' | 'disabled' | 'role'; export type ComboboxInputProps = Props string; onChange?: (event: React.ChangeEvent) => void; autoFocus?: boolean; }>; declare function InputFn[0]['value']>(props: ComboboxInputProps, ref: Ref): React.ReactElement> | null; declare let DEFAULT_BUTTON_TAG: "button"; type ButtonRenderPropArg = { open: boolean; active: boolean; disabled: boolean; invalid: boolean; value: any; focus: boolean; hover: boolean; }; type ButtonPropsWeControl = 'aria-controls' | 'aria-expanded' | 'aria-haspopup' | 'aria-labelledby' | 'disabled' | 'tabIndex'; export type ComboboxButtonProps = Props; declare function ButtonFn(props: ComboboxButtonProps, ref: Ref): React.ReactElement> | null; declare let DEFAULT_OPTIONS_TAG: "div"; type OptionsRenderPropArg = { open: boolean; option: any; }; type OptionsPropsWeControl = 'aria-labelledby' | 'aria-multiselectable' | 'role' | 'tabIndex'; declare let OptionsRenderFeatures: number; export type ComboboxOptionsProps = Props & { hold?: boolean; anchor?: AnchorProps; portal?: boolean; modal?: boolean; transition?: boolean; }>; declare function OptionsFn(props: ComboboxOptionsProps, ref: Ref): React.JSX.Element; declare let DEFAULT_OPTION_TAG: "div"; type OptionRenderPropArg = { focus: boolean; /** @deprecated use `focus` instead */ active: boolean; selected: boolean; disabled: boolean; }; type OptionPropsWeControl = 'role' | 'tabIndex' | 'aria-disabled' | 'aria-selected'; export type ComboboxOptionProps = Props; declare function OptionFn[0]['value']>(props: ComboboxOptionProps, ref: Ref): React.ReactElement> | null; export interface _internal_ComponentCombobox extends HasDisplayName { (props: ComboboxProps & RefProp): React.JSX.Element; } export interface _internal_ComponentComboboxButton extends HasDisplayName { (props: ComboboxButtonProps & RefProp): React.JSX.Element; } export interface _internal_ComponentComboboxInput extends HasDisplayName { (props: ComboboxInputProps & RefProp): React.JSX.Element; } export interface _internal_ComponentComboboxLabel extends _internal_ComponentLabel { } export interface _internal_ComponentComboboxOptions extends HasDisplayName { (props: ComboboxOptionsProps & RefProp): React.JSX.Element; } export interface _internal_ComponentComboboxOption extends HasDisplayName { [0]['value']>(props: ComboboxOptionProps & RefProp): React.JSX.Element; } declare let ComboboxRoot: _internal_ComponentCombobox; export declare let ComboboxButton: _internal_ComponentComboboxButton; export declare let ComboboxInput: _internal_ComponentComboboxInput; /** @deprecated use `