export type AnimalCardVariant = 'media' | 'row' | 'compact'; export type AnimalCardStatusColor = 'success' | 'warning' | 'medium' | 'danger'; export interface AnimalCardFavorite { active: boolean; ariaLabel: string; /** Muestra un spinner en el botón mientras el toggle está en vuelo. */ loading?: boolean; } export interface AnimalCardAction { token: string; label: string; icon?: string; routerLink?: string; color?: string; fill?: 'solid' | 'outline' | 'clear'; } export interface AnimalCardMetadata { token: string; variant: AnimalCardVariant; imageUrl?: string; imageAlt?: string; name: string; speciesLabel?: string; ageLabel?: string; sizeLabel?: string; regionLabel?: string; organizationName?: string; organizationHandle?: string; organizationLogoUrl?: string; organizationVerified?: boolean; statusLabel?: string; statusColor?: AnimalCardStatusColor; favorite?: AnimalCardFavorite; primaryAction?: AnimalCardAction; secondaryActions?: AnimalCardAction[]; } export interface AnimalCardPrimaryActionEvent { token: string; actionToken: string; } export interface AnimalCardFavoriteToggleEvent { token: string; active: boolean; } export interface AnimalCardSecondaryActionEvent { token: string; actionToken: string; }