export type FeedbackVote = "upvote" | "downvote"; export type ChatMessage> = | ChatMessageComponent | ChatMessageText; export interface ChatMessageComponent> extends ChatMessageBase { type: "component"; key: string; arguments: T; } export interface ChatMessageText extends ChatMessageBase { type?: "text"; text: string; } interface ChatMessageBase { id: string; transparent?: boolean; sender: "user" | "bot"; files?: File[]; canReceiveFeedback?: boolean; feedback?: FeedbackVote | null; feedbackSubmitting?: boolean; }