lib/types.ts (8 lines of code) (raw):
// Define the interface for conversation history items
export interface HistoryItem {
// Role can be either "user" or "model"
role: "user" | "model";
// Parts can contain text and/or images
parts: HistoryPart[];
}
// Define the interface for history parts
export interface HistoryPart {
// Text content (optional)
text?: string;
// Image content as data URL (optional)
// Format: data:image/png;base64,... or data:image/jpeg;base64,...
image?: string;
}
// Note: When sending to the Gemini API:
// 1. User messages can contain both text and images (as inlineData)
// 2. Model messages should only contain text parts
// 3. Images in history are stored as data URLs in our app, but converted to base64 for the API