import type { DialogProps } from '../Dialog';
import type { TextFieldProps } from '../TextField';
import { type TreeListData, type TreeListProps } from '../Tree';
export type TreeLikeAutocompleteValue = string[];
export type TreeLikeListAutocompleteData = Omit<TreeListData, 'label' | 'children'> & {
    /**
     * Подпись или иное содержимое элемента
     */
    label: string;
    children?: TreeLikeListAutocompleteData[];
};
export type TreeLikeAutocompleteTreeProps = Pick<TreeListProps, 'disabledItems' | 'renderItem'>;
export type TreeLikeAutocompleteProps = {
    /**
     * Выбранное значения
     */
    value?: TreeLikeAutocompleteValue;
    /**
     * Опции, которые необходимо отобразить в виде дерева.
     */
    options: TreeLikeListAutocompleteData[];
    /**
     * Если true, при выборе родителя будет возможность выбора дочерних элементов
     * @default true
     */
    isConfirmChildrenSelection?: boolean;
    /**
     * Если true, поля будут недоступны для взаимодействия
     */
    isDisabled?: boolean;
    /**
     * Если true, поля будут подсвечены, как содержащие ошибку
     */
    isError?: boolean;
    /**
     * Флаг загрузки options
     * Если true, вместо дерева options будет отображен лоадер
     */
    isLoading?: boolean;
    /**
     * Флаг ошибки загрузки options
     * Если true, вместо дерева options будет отображен плейсхолдер с ошибкой
     */
    isLoadingError?: boolean;
    /**
     * Текст ошибки при загрузке данных
     */
    loadingErrorMsg?: string;
    /**
     * Предназначен для конфигурации всплывающего окна
     */
    dialogProps: Omit<DialogProps, 'open' | 'onClose'>;
    /**
     * Предназначен для конфигурации дерева опций
     */
    treeProps?: TreeLikeAutocompleteTreeProps;
    /**
     * Функция обработки нажатия на кнопку "Повторить запрос"
     */
    onRetry?: () => void;
    /**
     * Функция для поиска элементов по дереву, если не определено, то будет использован встроенный поиск
     */
    filterOptions?: (node: TreeListData, searchValue: string) => boolean;
    /**
     * Функция, которая запускается при выборе item
     */
    onChange?: (newValue: TreeLikeAutocompleteValue | undefined) => void;
} & Omit<TextFieldProps, 'autoComplete' | 'defaultValue' | 'select' | 'error' | 'disabled' | 'multiline' | 'rows' | 'maxRows' | 'minRows' | 'SelectProps' | 'endAdornment' | 'onChange'>;
