import React from 'react';
import { type CardProps } from './Card';
import { type BadgeVariant } from '../Badge/Badge';
export interface SummaryCardImage {
    src: string;
    alt: string;
    /**
     * Enable lazy loading for this specific image
     * @default true
     */
    lazy?: boolean;
}
export interface SummaryCardProps extends Omit<CardProps, 'children'> {
    /**
     * Single image or array of 1-3 images.
     * Single image will be displayed large, 3 images in a grid.
     */
    images?: string | SummaryCardImage | Array<string | SummaryCardImage>;
    /**
     * Main title using heading3 typography.
     */
    title?: string;
    /**
     * Subtitle using bodySmall typography.
     */
    subtitle?: string;
    /**
     * Badge content (e.g., rating like "9.2").
     */
    badge?: string | number;
    /**
     * Badge variant.
     * @default 'default'
     */
    badgeVariant?: BadgeVariant;
    /**
     * Description text using bodySmall with secondary color.
     */
    description?: string;
    /**
     * Button text. If provided, button will be displayed.
     */
    buttonText?: string;
    /**
     * Button click handler.
     */
    onButtonClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
    /**
     * Button disabled state.
     */
    buttonDisabled?: boolean;
    /**
     * Loading state - shows skeleton UI
     * @default false
     */
    loading?: boolean;
    /**
     * Number of skeleton images to show during loading
     * @default 1 for single, 3 for grid
     */
    loadingImageCount?: number;
    /**
     * Error state - shows error message
     * @default false
     */
    error?: boolean;
    /**
     * Custom error title
     * @default 'Failed to load'
     */
    errorTitle?: string;
    /**
     * Custom error message
     */
    errorMessage?: string;
    /**
     * Error retry handler - shows retry button when provided
     */
    onErrorRetry?: () => void;
    /**
     * Empty state title
     * @default 'No content'
     */
    emptyTitle?: string;
    /**
     * Empty state message
     */
    emptyMessage?: string;
    /**
     * Enable lazy loading for all images
     * @default true
     */
    imageLazy?: boolean;
    /**
     * Callback when a single image loads successfully
     */
    onImageLoad?: (event: React.SyntheticEvent<HTMLImageElement>) => void;
    /**
     * Callback when a single image fails to load
     */
    onImageError?: (event: React.SyntheticEvent<HTMLImageElement>) => void;
    /**
     * Callback when a grid image loads successfully (includes index)
     */
    onImagesLoad?: (index: number, event: React.SyntheticEvent<HTMLImageElement>) => void;
    /**
     * Callback when a grid image fails to load (includes index)
     */
    onImagesError?: (index: number, event: React.SyntheticEvent<HTMLImageElement>) => void;
}
/**
 * SummaryCard component for displaying entity information with images.
 *
 * Features:
 * - Flexible image layout (single large or 3-image grid)
 * - Optional header with title, subtitle, and badge
 * - Optional description text
 * - Optional action button
 * - All sections conditionally rendered
 * - Composition pattern wrapping Card component
 *
 * @example
 * ```tsx
 * // Restaurant card with single image
 * <SummaryCard
 *   images="restaurant.jpg"
 *   title="Little Nona's"
 *   subtitle="1427 Via Campania"
 *   badge="9.2"
 *   description="A tiny, brick-walled trattoria tucked down a side street..."
 *   buttonText="Add to order"
 *   onButtonClick={() => console.log('clicked')}
 * />
 *
 * // Card with 3 images
 * <SummaryCard
 *   images={[
 *     { src: 'img1.jpg', alt: 'Restaurant exterior' },
 *     { src: 'img2.jpg', alt: 'Pizza' },
 *     { src: 'img3.jpg', alt: 'Pasta' },
 *   ]}
 *   title="Little Nona's"
 *   badge="9.2"
 *   badgeVariant="filled"
 * />
 * ```
 */
export declare const SummaryCard: React.ForwardRefExoticComponent<SummaryCardProps & React.RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=SummaryCard.d.ts.map