import { ReactElement, RefObject } from 'react';
import { TreeSelectFieldValue } from '../types';
import { MultiSelectFieldChipProps } from '../../../../components/MultiSelectField/types';
/**
 * Props for the TreeSelectFieldInput component.
 * @property {string} [id] - HTML id attribute for the input element
 * @property {string} [placeholder] - Placeholder text displayed when no options are selected
 * @property {"small" | "medium" | "large"} [size] - Size variant of the input
 * @property {boolean} [disabled] - Disables the input entirely
 * @property {boolean} [readOnly] - Cannot be modified but remains interactive
 * @property {boolean} [error] - Shows error styling on the input when true
 * @property {boolean} [single] - When true, renders single-select text display instead of chips
 * @property {boolean} [singleRow] - When true, restricts chip display to a single row
 * @property {number} [maxChips] - Maximum number of chips to display before showing +N indicator
 * @property {string | ReactElement} [prefix] - Content to display before the input area
 * @property {string | ReactElement} [suffix] - Content to display after the input area
 * @property {TreeSelectFieldValue[]} selectedOptions - Array of currently selected options
 * @property {(option: TreeSelectFieldValue) => void} onRemoveOption - Callback fired when a chip is removed
 * @property {(value: TreeSelectFieldValue) => MultiSelectFieldChipProps} [getChipProps] - Callback to customize chip props per selected option
 * @property {RefObject<HTMLInputElement>} [inputRef] - Ref for the input element
 * @property {RefObject<HTMLDivElement>} [inputWrapperRef] - Ref for the input wrapper div element
 * @property {string} [searchValue] - Current search input value
 * @property {(e: React.ChangeEvent<HTMLInputElement>) => void} [onSearchChange] - Callback fired when search input changes
 * @property {(e: React.KeyboardEvent) => void} [onInputKeyDown] - Callback fired on key down in the search input
 * @property {() => void} [onWrapperClick] - Callback fired when the input wrapper is clicked
 * @property {boolean} [isOpen] - Whether the dropdown is currently open
 * @property {boolean} [disableSearch] - When true, hides the search input
 * @property {Record<string, unknown>} [comboboxProps] - Additional ARIA props for the combobox input role
 */
export type TreeSelectFieldInputProps = {
    id?: string;
    placeholder?: string;
    size?: "small" | "medium" | "large";
    disabled?: boolean;
    readOnly?: boolean;
    error?: boolean;
    single?: boolean;
    singleRow?: boolean;
    maxChips?: number;
    prefix?: string | ReactElement;
    suffix?: string | ReactElement;
    selectedOptions: TreeSelectFieldValue[];
    onRemoveOption: (option: TreeSelectFieldValue) => void;
    getChipProps?: (value: TreeSelectFieldValue) => MultiSelectFieldChipProps;
    inputRef?: RefObject<HTMLInputElement>;
    inputWrapperRef?: RefObject<HTMLDivElement>;
    searchValue?: string;
    onSearchChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
    onInputKeyDown?: (e: React.KeyboardEvent) => void;
    onWrapperClick?: () => void;
    isOpen?: boolean;
    ariaControls?: string;
    disableSearch?: boolean;
    comboboxProps?: Record<string, unknown>;
};
/**
 * Internal input component for the TreeSelectField that renders the trigger area
 * with chips, search input, single-select text, and the toggle button.
 *
 * Features:
 * - Chip display for selected options in multi-select mode with remove functionality
 * - Single-row chip overflow detection with +N hidden chip indicator
 * - Text input for filtering tree options when search is enabled
 * - Plain text display for single-select mode
 * - Chevron toggle button to open/close the dropdown
 * - Optional prefix and suffix content slots
 * - Supports small, medium, and large size variants
 * - Error state styling
 * - Disabled and read-only state styling
 * - Accessible combobox role with aria-expanded and aria-haspopup
 *
 * @example
 * <TreeSelectFieldInput
 *   placeholder="Select categories..."
 *   size="medium"
 *   selectedOptions={[{ id: 1, label: "Category A" }]}
 *   onRemoveOption={(option) => handleRemove(option)}
 *   isOpen={isOpen}
 *   onWrapperClick={() => setIsOpen(true)}
 * />
 */
export declare const TreeSelectFieldInput: {
    ({ id, placeholder, size, disabled, readOnly, error, single, singleRow, maxChips, prefix, suffix, selectedOptions, onRemoveOption, getChipProps, inputRef, inputWrapperRef, searchValue, onSearchChange, onInputKeyDown, onWrapperClick, isOpen, ariaControls, disableSearch, comboboxProps, }: TreeSelectFieldInputProps): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
