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