import React from 'react';
import type { SyntheticEvent } from 'react';
import { type BadgeProps } from '../../primitives/Badge';
import type { Feature } from './types';
export interface LocationCardProps {
    /**
     * Thumbnail image URL.
     */
    image: string;
    /**
     * Location name/title.
     */
    title: string;
    /**
     * Optional subtitle/description.
     */
    subtitle?: string;
    /**
     * Configurable feature list (e.g., rating, price).
     */
    features?: Feature[];
    /**
     * Whether this card is currently selected.
     * @default false
     */
    selected?: boolean;
    /**
     * Click handler.
     */
    onClick?: () => void;
    /**
     * Additional class name.
     */
    className?: string;
    /**
     * Loading state - shows skeleton UI
     * @default false
     */
    loading?: boolean;
    /**
     * Error state - shows error message
     * @default false
     */
    error?: boolean;
    /**
     * Custom error title
     * @default 'Failed to load'
     */
    errorTitle?: string;
    /**
     * Custom error message
     */
    errorMessage?: string;
    /**
     * Retry callback for error state
     */
    onErrorRetry?: () => void;
    /**
     * Empty state title
     * @default 'No location'
     */
    emptyTitle?: string;
    /**
     * Empty state message
     */
    emptyMessage?: string;
    /**
     * Enable lazy loading for thumbnail image
     * @default true
     */
    imageLazy?: boolean;
    /**
     * Callback when thumbnail image loads
     */
    onImageLoad?: (event: SyntheticEvent<HTMLImageElement>) => void;
    /**
     * Callback when thumbnail image fails to load
     */
    onImageError?: (event: SyntheticEvent<HTMLImageElement>) => void;
    /**
     * Badge content (text or number)
     */
    badge?: string | number;
    /**
     * Badge position
     * @default 'top-right'
     */
    badgePosition?: 'top-left' | 'top-right';
    /**
     * Badge variant style
     */
    badgeVariant?: BadgeProps['variant'];
    /**
     * Number of lines for title (1-3)
     * @default 1
     */
    titleLines?: 1 | 2 | 3;
    /**
     * Number of lines for subtitle (1-3)
     * @default 1
     */
    subtitleLines?: 1 | 2 | 3;
    /**
     * Optional test ID for testing purposes
     */
    'data-testid'?: string;
}
/**
 * LocationCard component - Display location with thumbnail, title, and features.
 *
 * Features:
 * - Shows location thumbnail image
 * - Displays location name and optional subtitle
 * - Shows configurable features (rating, price, etc.)
 * - Clickable for selection with keyboard support
 * - Loading, error, and empty states
 * - Native lazy loading with callbacks
 * - Badge support for indicators
 * - Multi-line text support
 *
 * @example
 * ```tsx
 * <LocationCard
 *   image="https://example.com/location.jpg"
 *   title="Central Park"
 *   subtitle="New York, NY"
 *   features={[
 *     { icon: 'star', text: '4.8' },
 *     { text: 'Free' }
 *   ]}
 *   onClick={() => console.log('Selected')}
 *   loading={isLoading}
 *   badge="Popular"
 *   badgeVariant="success"
 * />
 * ```
 */
export declare const LocationCard: React.FC<LocationCardProps>;
//# sourceMappingURL=LocationCard.d.ts.map