export interface ShareContent { title: string; message?: string; url?: string; image?: string; tags?: string[]; } export interface SocialShareModalLabels { headerTitle?: string; templateSectionTitle?: string; previewSectionTitle?: string; shareSectionTitle?: string; statsSectionTitle?: string; shareDescription?: string; generateBannerText?: string; generatingText?: string; backToTemplatesText?: string; copyLinkSuccessMessage?: string; shareSuccessMessage?: string; shareErrorMessage?: string; progressLabel?: string; itemLabel?: string; bannerStat1Label?: string; bannerStat1Icon?: string; bannerStat1Value?: string; bannerStat2Label?: string; bannerStat2Icon?: string; bannerStat2Value?: string; bannerStat3Label?: string; bannerStat3Icon?: string; bannerStat3Value?: string; bannerStat4Label?: string; bannerStat4Icon?: string; bannerStat4Value?: string; } export type TrackerType = 'reading' | 'pomodoro' | 'skill' | 'habit' | 'fitness' | 'custom'; export interface ProgressItem { id: string; title: string; subtitle?: string; category: string; progress: number; total: number; coverUri?: string; color: string; startDate?: string | Date; completedDate?: string | Date | null; caption?: string; metadata?: Record; } export interface ProgressSession { id: string; itemId: string; value: number; duration: number; date: string | Date; notes?: string; metadata?: Record; } export interface UserProfile { id: string; name: string; avatar?: string; level: number; points: number; title?: string; } export interface ProgressStats { progressThisWeek: number; progressThisMonth: number; itemsCompletedThisMonth: number; itemsCompletedThisMonthList: ProgressItem[]; itemsInProgressThisMonth: ProgressItem[]; topItemThisWeek: ProgressItem | null; totalItems: number; totalProgressEver: number; avgProgressPerDay: number; goalPercentage: number; currentStreak: number; totalPoints: number; progressLabel: string; itemLabel: string; } export interface GraphData { days: Array<{ date: Date; value: number; intensity: number; isToday: boolean; }>; totalDays: number; activeDays: number; totalValue: number; maxValueInDay: number; currentStreak: number; valueLabel?: string; } export interface Book extends ProgressItem { author: string; totalPages: number; currentPage: number; } export interface ReadingSession extends ProgressSession { bookId: string; startPage: number; endPage: number; } export interface ReadingStats extends ProgressStats { pagesThisWeek: number; pagesThisMonth: number; booksCompletedThisMonth: number; booksCompletedThisMonthList: Book[]; booksReadThisMonth: Book[]; topBookThisWeek: Book | null; totalBooks: number; totalPagesEver: number; avgPagesPerDay: number; } export interface BannerTemplate { id: string; name: string; colors: string[]; accentColors: string[]; overlayColor: string; style: string; } export interface SocialBannerModalProps { visible: boolean; onClose: () => void; darkMode?: boolean; trackerType?: TrackerType; items?: ProgressItem[]; sessions?: ProgressSession[]; books?: Book[]; readingSessions?: ReadingSession[]; profile?: UserProfile; onShareComplete?: (platform: string, success: boolean) => void; bannerTitle?: string; bannerFooter?: string; textLabels?: SocialShareModalLabels; } export interface ShareButtonsProps { content: ShareContent; platforms?: SocialPlatform[]; buttonStyle?: 'primary' | 'secondary' | 'outline'; size?: 'small' | 'medium' | 'large'; darkMode?: boolean; onShare?: (platform: string) => void; } export interface BannerGeneratorProps { trackerType?: TrackerType; data: ProgressStats | ReadingStats; profile?: UserProfile; template?: BannerTemplate; layoutType?: 'stats' | 'graph'; graphData?: GraphData; onBannerGenerated?: (imageUri: string) => void; bannerTitle?: string; bannerFooter?: string; statLabels?: SocialShareModalLabels; } export type SocialPlatform = 'facebook' | 'instagram' | 'twitter' | 'linkedin' | 'whatsapp' | 'telegram' | 'copy-link' | 'more'; export type ShareButtonStyle = 'primary' | 'secondary' | 'outline'; export type ShareButtonSize = 'small' | 'medium' | 'large'; export type LayoutType = 'stats' | 'graph'; export interface ShareConfig { enableAnalytics?: boolean; defaultTemplate?: string; customBranding?: { appName: string; appIcon: string; appUrl: string; }; socialLinks?: { facebook?: string; twitter?: string; instagram?: string; linkedin?: string; }; } export interface ShareAnalytics { platform: string; contentType: string; timestamp: Date; success: boolean; errorMessage?: string; }