import type React from "react";
import type { ComboboxContent } from "src/primitives/Combobox";
import type { DropdownPassthroughProps } from "./dropdown.types";
export type { DropdownPassthroughProps };
export interface SelectComboboxProps {
    /** Name attribute forwarded to the underlying input. */
    name?: string;
    /** ID for the combobox input, forwarded from the field wrapper. */
    id: string;
    /** Base-UI items array for filtering (derived from options). */
    effectiveItems?: string[] | {
        label: string;
        items: string[];
    }[];
    /** Returns the display label for a given value string. */
    labelForValue: (val: string) => string;
    /** Returns the ReactNode for rendering a value (dropdown rows). */
    renderOption: (val: string) => React.ReactNode;
    /** Returns the ReactNode for rendering the selected value in the trigger. */
    renderTrigger: (val: string) => React.ReactNode;
    /** Whether the search input is visible. */
    isSearchable: boolean;
    /** Whether options are loaded asynchronously. */
    isAsync: boolean;
    /** Whether new options can be created by typing. */
    isCreatable: boolean;
    /** Custom filter function used when isCreatable=true. */
    creatableFilter: (v: string, q: string, fn?: (v: string) => string) => boolean;
    /** Whether the component is in controlled mode. */
    isControlled: boolean;
    /** Controlled value (only when isControlled=true). */
    valueProp?: string;
    /** Default value for uncontrolled mode. */
    defaultValue?: string;
    /** The currently selected value string. */
    currentValue: string;
    /** Called by the combobox when the selected value changes. */
    handleValueChange: (next: string | null) => void;
    /** Called when the search input value changes (async/creatable). */
    handleInputValueChange: (value: string) => void;
    /** Called when the clear button is clicked. */
    handleClear: () => void;
    /** Callback when the dropdown opens or closes. */
    onOpenChange?: (open: boolean) => void;
    /** Whether the component is disabled. */
    isDisabled: boolean;
    /** Whether the first matching item is highlighted automatically. */
    autoHighlight: boolean;
    /** Whether the field is required. */
    required: boolean;
    /** Whether to show a clear button when a value is selected. */
    isClearable: boolean;
    /** Whether the clear button is currently visible. */
    showClearButton: boolean;
    /** Tailwind size classes for the trigger container. */
    sizeConfig: {
        chips: string;
        input: string;
        chip: string;
        icon: string;
    };
    /** Error string (non-empty triggers error styling). */
    error: string;
    /** Placeholder text for the input. */
    placeholder: string;
    /** aria-describedby value for the input. */
    ariaDescribedBy?: string;
    /** data-testid prefix for the component tree. */
    testIdPrefix?: string;
    /** Additional CSS class names for the input/trigger. */
    inputClassName?: string;
    /** Props forwarded to ComboboxContent. */
    contentProps?: Omit<React.ComponentProps<typeof ComboboxContent>, "anchor" | "children">;
    /** Dropdown state props passed through to MultiSelectDropdown. */
    dropdownProps: DropdownPassthroughProps;
    /** Children rendered inside the dropdown (overrides options). */
    children?: React.ReactNode;
}
