import { type ReactNode } from 'react';
import type { PlaceholderProps } from '../placeholders/Placeholder';
export type ContentStateErrorProps = {
    /**
     * Название ошибки
     */
    title?: string;
    /**
     * Изображение ошибки
     * @default '' присваивается в ConfigProvider imagesMap.defaultErrorImgSrc
     * @example <ConfigProvider imagesMap={{ defaultErrorImgSrc: '<img-path>' }} />
     */
    imgSrc?: string;
    /**
     * Alt атрибут для изображения
     */
    imgAlt: string;
    /**
     * Список ошибок для отображения
     */
    errorList: string[];
    /**
     * Элементы кнопок для дальнейших действий
     */
    actions?: ReactNode;
    /**
     * Функция для повторного действия
     */
    onRetry: () => void;
};
export type ContentStateProps = {
    /**
     * Флаг состояния загрузки
     */
    isLoading?: boolean;
    /**
     * Элемент для отображения состояния загрузки
     */
    loadingContent?: ReactNode;
    /**
     * Title для отображения при состоянии загрузки
     */
    loadingTitle?: string;
    /**
     * Флаг состояния ошибки
     */
    isError?: boolean;
    /**
     * Параметры для отображения состояния ошибки
     */
    errorState?: Omit<ContentStateErrorProps, 'imgAlt'> & {
        imgAlt?: string;
    };
    /**
     * Флаг для отображения custom состояния ошибки
     */
    isCustom?: boolean;
    /**
     * Параметры для отображения custom состояния ошибки
     */
    customState?: PlaceholderProps;
    /**
     * Задает общий размер компонента Placeholder
     */
    placeholderSize?: PlaceholderProps['size'];
    /**
     * Элементы для отображения состояния "Успех"
     */
    children: ReactNode;
    /**
     * Отключает плавное (отложенное) отображение состояния загрузки.
     *
     * По умолчанию компонент:
     * — не показывает лоадер, если загрузка длится менее 200 мс,
     * — и гарантирует видимость лоадера не менее 500 мс.
     *
     * Установка этого флага принудительно включает "мгновенное" отображение:
     * лоадер показывается и скрывается сразу при изменении `isLoading`.
     */
    isSmoothLoading?: boolean;
    /**
     * Класс применяемый для loading placeholder
     */
    loadingPlaceholderClassname?: string;
};
