export interface TrendInfo { type: 'up' | 'down' | 'neutral'; value: number; text?: string; period?: string; } export interface DataCardItem { id?: string | number; title: string; value: string | number; icon?: any; iconColor?: string; iconBgColor?: string; valueColor?: string; titleColor?: string; cardBgColor?: string; cardBgGradient?: string; suffix?: string; prefix?: string; trend?: TrendInfo; description?: string; link?: string; extra?: any; } export interface TopDataCardsProps { data: DataCardItem[]; columns?: number; gap?: number; height?: number; borderRadius?: number; showShadow?: boolean; hoverEffect?: boolean; animation?: boolean; theme?: 'light' | 'dark' | 'colorful'; themeColors?: { primary?: string; secondary?: string; success?: string; warning?: string; danger?: string; info?: string; }; cardStyle?: any; responsive?: boolean; } export interface TopDataCardsEvents { cardClick: (item: DataCardItem, index: number) => void; cardHover: (item: DataCardItem, index: number) => void; }