File size: 2,516 Bytes
6fe3275
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ade3003
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101

export interface BentoCardData {
  id: string;
  title: string;
  summary: string;
  type: 'stat' | 'concept' | 'quote' | 'insight' | 'process';
  colSpan: number; // 1 to 4
  rowSpan: number; // 1 to 2
  detailPrompt: string; // The prompt to send to Gemini to get more details
  mermaid?: string; // Mermaid JS diagram definition
  expandedContent?: string;
  isLoadingDetails?: boolean;
  rating?: number;
  feedback?: string;
}

export interface ChatMessage {
  id: string;
  role: 'user' | 'model' | 'system';
  text: string;
  timestamp: number;
}

export type ModelType = 'gemini-flash-latest' | 'gemini-3-pro-preview';

export interface AppSettings {
  apiKey: string;
  model: ModelType;
  theme: 'light' | 'dark';
  layoutMode: 'auto' | 'grid' | 'list';
  useThinking: boolean;
}

export interface ProcessingStatus {
  state: 'idle' | 'reading' | 'analyzing' | 'generating' | 'complete' | 'error';
  message?: string;
}

// Blog View Types
export interface BlogSection {
  id: string;
  title: string;
  content: string; // Markdown
  visualizationType?: 'mermaid' | 'chart' | 'equation' | 'none';
  visualizationData?: string;
  chartData?: ChartData;
  marginNotes?: MarginNote[];
  technicalTerms?: TechnicalTerm[];
  collapsibleSections?: CollapsibleContent[];
  isLoading?: boolean;
  error?: string;
}

// Structure plan from paper analysis
export interface SectionPlan {
  id: string;
  title: string;
  sectionType: 'intro' | 'background' | 'methodology' | 'results' | 'analysis' | 'applications' | 'conclusion' | 'custom';
  focusPoints: string[]; // Key points to cover
  suggestedVisualization: 'mermaid' | 'chart' | 'equation' | 'none';
  visualizationHint?: string; // What to visualize
  estimatedLength: 'short' | 'medium' | 'long';
}

export interface PaperStructure {
  paperTitle: string;
  paperAbstract: string;
  mainContribution: string;
  sections: SectionPlan[];
  keyTerms: string[]; // Important terms across the paper
}

export interface MarginNote {
  id: string;
  text: string;
  icon?: 'info' | 'warning' | 'tip' | 'note';
}

export interface TechnicalTerm {
  term: string;
  definition: string;
}

export interface CollapsibleContent {
  id: string;
  title: string;
  content: string;
}

// Chart Types
export interface ChartData {
  type: 'bar' | 'line' | 'pie' | 'scatter' | 'area';
  title: string;
  data: Array<{ label: string; value: number; [key: string]: any }>;
  xAxis?: string;
  yAxis?: string;
  colors?: string[];
}

export type ViewMode = 'grid' | 'blog';