// 消息类型枚举 export enum MessageType { TEXT = "text", IMAGE = "image", VIDEO = "video", MULTI_VIDEO = "multi_video", FILE = "file", CODE = "code", SUGGESTION = "suggestion", THINKING = "thinking", } // 消息角色 export enum MessageRole { USER = "user", ASSISTANT = "assistant", SYSTEM = "system", } // 附件类型 export interface Attachment { id: string; name: string; type: "image" | "file" | "video"; url: string; size?: number; mimeType?: string; thumbnail?: string; uploading?: boolean; // 标记附件是否正在上传中 } // 推荐选项 export interface Suggestion { id: string; text: string; icon?: string; systemPrompt?: string; } // 视频信息 export interface VideoInfo { id: string; url: string; poster?: string; title?: string; duration?: number; } // 消息内容 export interface MessageContent { type: MessageType; text?: string; images?: Attachment[]; videos?: VideoInfo[]; files?: Attachment[]; suggestions?: Suggestion[]; codeLanguage?: string; } // 消息反馈 export interface MessageFeedback { liked?: boolean; disliked?: boolean; copied?: boolean; } // 单条消息 export interface Message { id: string; role: MessageRole; content: MessageContent; timestamp: number; feedback?: MessageFeedback; isStreaming?: boolean; isError?: boolean; isEnd?: boolean; isBreak?: boolean; errorMessage?: string; messageId: string; } // 对话设置 export interface ConversationSettings { model: string; temperature: number; maxTokens: number; systemPrompt: string; enableMemory: boolean; memoryLength: number; } // 对话 export interface Conversation { id: string; title: string; messages: Message[]; createdAt: number; updatedAt: number; pinned?: boolean; archived?: boolean; settings?: ConversationSettings; } // 输入框状态 export interface InputState { text: string; attachments: Attachment[]; isDeepSearch: boolean; isWebSearch: boolean; } // 应用设置 export interface AppSettings { // 外观设置 theme: "light" | "dark" | "system"; language: string; fontSize: "small" | "medium" | "large"; // 对话设置 sendOnEnter: boolean; showTimestamp: boolean; compactMode: boolean; // AI 默认设置 defaultModel: string; defaultTemperature: number; defaultMaxTokens: number; defaultSystemPrompt: string; // 功能设置 enableSound: boolean; enableNotification: boolean; autoSaveInterval: number; // 隐私设置 saveHistory: boolean; shareAnalytics: boolean; } // AI 模型配置 export interface AIModel { id: string; name: string; description: string; maxTokens: number; provider: string; icon?: string; } // 用户信息 export interface UserInfo { id: string; username?: string; nickname?: string; email?: string; avatar?: string; [key: string]: unknown; }