import * as React from 'react';
import { AutocompleteValue, TextFieldFilteredProps } from '../../../models/Autocomplete';
import { IconId } from '../../icon';
export type AutocompleteInputProps<T extends string, Multiple extends boolean | undefined, Value = AutocompleteValue<T, Multiple>> = {
    /**
     * The variant of the Autocomplete
     */
    variant?: 'default' | 'text';
    /**
     * The value handled by this Autocomplete component. If multiple=true, it should be an array of ids.
     * If multiple=false (by default) it should be a string.
     */
    value: Value;
    /**
     * If has filtered options in dropdown
     */
    hasFilteredOptions: boolean;
    /**
     * Whether the autocomplete is disabled or not.
     */
    disabled?: boolean;
    /**
     * Whether this component is working in multiple mode or single mode. By default it is single mode.
     * See `value` prop description for more info.
     */
    multiple?: Multiple;
    /**
     * Properties to be pass through inner TextField component.
     */
    textFieldProps?: TextFieldFilteredProps;
    /**
     * Use this function to render the desired text for each id. Leave it empty if the id is also the label.
     */
    renderLabel: (id: T) => string;
    /**
     * Maximum length for allowFreeText value
     */
    maxValueLength?: number;
    /**
     * If input can add more values.
     */
    canAddValues: boolean;
    /**
     * Custom text to be shown when number of values reaches maxValues.
     */
    maxValuesText?: string;
    /**
     * Disables clear button at the end of the component when field is dirty.
     */
    disableClear?: boolean;
    isOpenPopover: boolean;
    /**
     * start icon in input
     */
    startIconId?: IconId;
    /**
     * Ref to the outer HTMLDivElement
     */
    containerRef?: React.RefObject<HTMLDivElement | null>;
    inputRef?: React.RefObject<HTMLInputElement | null>;
    inputValue: string;
    setInputValue: (value: string) => void;
    placeholder: string;
    size: 'S' | 'XS';
    onClosePopover: () => void;
    onOpenPopover: () => void;
    onSearchValueChange: (event: React.SyntheticEvent, searchValue: string) => void;
    onPressEnter: (event: React.SyntheticEvent, inputValue: string) => void;
    onRemoveValue: (event: React.SyntheticEvent, value: Value) => void;
};
/**
 * Powered TextField Input.
 */
declare const AutocompleteInput: <T extends string, Multiple extends boolean | undefined = undefined, Value = AutocompleteValue<T, Multiple>>({ variant, value, multiple, textFieldProps, hasFilteredOptions, disabled, renderLabel, maxValueLength, canAddValues, maxValuesText, disableClear, containerRef, inputRef, onClosePopover, onOpenPopover, isOpenPopover, inputValue, setInputValue, placeholder, startIconId, size, onSearchValueChange, onPressEnter, onRemoveValue }: AutocompleteInputProps<T, Multiple, Value>) => import("react/jsx-runtime").JSX.Element;
export default AutocompleteInput;
