///
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;