/// import { type AutocompleteProps } from '../Autocomplete'; export type AsyncAutocompleteProps = Omit, 'inputValue' | 'loading' | 'disabled' | 'fullWidth' | 'error' | 'required' | 'success' | 'options'> & { /** * Если `true`, будет показан индикатор загрузки */ isLoading?: boolean; /** * Если `true`, компонент будет не доступен для взаимодействия */ isDisabled?: boolean; /** * Если `true`, компонент растянется на всю ширину */ isFullWidth?: boolean; /** * Если `true`, компонент будет отображаться в состоянии ошибки */ isError?: boolean; /** * Если `true`, компонент будет помечен как обязательный */ isRequired?: boolean; /** * Если `true`, компонент будет отображаться в состоянии успеха */ isSuccess?: boolean; /** * Задержка для fetchOptions * @default 300 */ fetchDelayMs?: number; /** * Функция для асинхронной загрузки опций на основе поискового запроса * При возникновении ошибки запроса данных, компонент сам ее обработает. * Для обработки ошибок вручную используйте параметр `onDataLoadError` * * @param search - Строка поиска, введенная пользователем. На основе этой * строки функция должна вернуть подходящие опции. * @param signal - Объект `AbortSignal`, который позволяет отменить запрос, * если пользователь изменил поисковый запрос или закрыл компонент. * * @returns Promise Промис, который разрешается массивом опций * (`TOptions[]`). Эти опции будут отображены в выпадающем списке. * * @example * ```typescript * const fetchOptions = async (search: string, signal: AbortSignal) => { * const response = await fetch(`/api/search?query=${search}`, { signal }); * const data = await response.json(); * return data.results; * }; * * * ``` */ fetchOptions: (search: string, signal?: AbortSignal) => Promise; /** * Минимальное количество символов для выполнения запроса * @default 0 */ minSymbolsToFetch?: number; /** * Функция для обработки ошибок загрузки данных */ onDataLoadError?: (error: Error) => void; }; export declare const AsyncAutocomplete: (props: Omit, "disabled" | "loading" | "required" | "error" | "success" | "fullWidth" | "options" | "inputValue"> & { /** * Если `true`, будет показан индикатор загрузки */ isLoading?: boolean | undefined; /** * Если `true`, компонент будет не доступен для взаимодействия */ isDisabled?: boolean | undefined; /** * Если `true`, компонент растянется на всю ширину */ isFullWidth?: boolean | undefined; /** * Если `true`, компонент будет отображаться в состоянии ошибки */ isError?: boolean | undefined; /** * Если `true`, компонент будет помечен как обязательный */ isRequired?: boolean | undefined; /** * Если `true`, компонент будет отображаться в состоянии успеха */ isSuccess?: boolean | undefined; /** * Задержка для fetchOptions * @default 300 */ fetchDelayMs?: number | undefined; /** * Функция для асинхронной загрузки опций на основе поискового запроса * При возникновении ошибки запроса данных, компонент сам ее обработает. * Для обработки ошибок вручную используйте параметр `onDataLoadError` * * @param search - Строка поиска, введенная пользователем. На основе этой * строки функция должна вернуть подходящие опции. * @param signal - Объект `AbortSignal`, который позволяет отменить запрос, * если пользователь изменил поисковый запрос или закрыл компонент. * * @returns Promise Промис, который разрешается массивом опций * (`TOptions[]`). Эти опции будут отображены в выпадающем списке. * * @example * ```typescript * const fetchOptions = async (search: string, signal: AbortSignal) => { * const response = await fetch(`/api/search?query=${search}`, { signal }); * const data = await response.json(); * return data.results; * }; * * * ``` */ fetchOptions: (search: string, signal?: AbortSignal) => Promise; /** * Минимальное количество символов для выполнения запроса * @default 0 */ minSymbolsToFetch?: number | undefined; /** * Функция для обработки ошибок загрузки данных */ onDataLoadError?: ((error: Error) => void) | undefined; } & import("react").RefAttributes) => import("react").ReactElement> | null;