import { type ReactNode } from 'react'; type RequiredKeys = { [TKey in keyof T]-?: {} extends Pick ? never : TKey; }[keyof T]; export type InfiniteDataListProps> = { data?: TDataItem[]; /** * Поле, используемое в качестве ключа списка */ keyId: RequiredKeys; /** * Название класса, применяется к корневому компоненту */ className?: string; /** * Используется для отображения placeholder при отсутствии данных в таблице */ noDataPlaceholder?: ReactNode; /** * Сообщение, отображаемое при достижении конца списка */ endOfScrollMsg?: string; /** * Текст ошибки */ errorMsg?: string; /** * Если true, показывается анимация загрузки */ isLoading?: boolean; /** * Флаг состояния ошибки */ isError?: boolean; /** * Флаг достижения конца списка */ isEndReached?: boolean; /** * Содержание карточки */ itemContent: (dataItem: TDataItem, { index, className }: { index: number; className: string; }) => ReactNode; /** * Функция обработки нажатия на кнопку "Повторить запрос" */ onRetry: () => void; /** * Обработчик подгрузки данных */ onEndReached?: () => void; /** * Контент отображаемый вверху списка */ header?: ReactNode; }; export declare const InfiniteDataList: >({ data, keyId, className, itemContent, noDataPlaceholder, endOfScrollMsg, errorMsg, isLoading, isError, isEndReached, onRetry, onEndReached, header, }: InfiniteDataListProps) => JSX.Element; export {};