import { PolymorphicRef } from '@cloud-ru/ds-card'; import { PromoTagProps } from '@cloud-ru/ds-promo-tag'; import { ComponentPropsWithoutRef, ElementType, JSXElementConstructor, ReactElement } from 'react'; import { FavoriteProps, VisibilityStrategy } from '../../types.js'; type BaseCardServiceSmallProps = { /** Заголовок карточки */ title: string; /** * Эмблема: объект с иконкой-компонентом. * Принимает `{ icon: JSXElementConstructor }` или произвольный ReactElement. */ emblem: { icon: JSXElementConstructor<{ className?: string; size?: number; }>; } | ReactElement; /** Настройки обрезки заголовка */ truncate?: { /** Максимальное количество строк */ title?: number; }; /** Выбранное состояние */ checked?: boolean; /** Неактивное состояние */ disabled?: boolean; /** Рамка вокруг карточки */ outline?: boolean; /** * Промо-тег (бейдж). Тип — `PromoTagProps` из `@cloud-ru/ds-promo-tag`. */ promoBadge?: PromoTagProps; /** Настройки кнопки «Избранное» */ favorite?: FavoriteProps; /** * Формат отображения кнопки «Избранное»: всегда или при наведении и фокусе * @default 'hover' */ actionsVisibility?: VisibilityStrategy; /** CSS-класс корневого элемента */ className?: string; /** Support prop для тестов */ 'data-test-id'?: string; }; export type CardServiceSmallProps = BaseCardServiceSmallProps & { /** Полиморфный элемент: `'div'`, `'a'`, `{Link}` и т.д. */ as?: T; /** Ref на реальный DOM-элемент / инстанс */ innerRef?: PolymorphicRef; } & Omit, keyof BaseCardServiceSmallProps | 'as' | 'ref'>; export declare function CardServiceSmall({ title, emblem, truncate, checked, disabled, outline, promoBadge, favorite, actionsVisibility, className, as, innerRef, 'data-test-id': dataTestId, ...rest }: CardServiceSmallProps): ReactElement | null; export {};