interface ChatMessage { id: string; message: string; subText?: string; options?: string[] | null; type: MessageTypes; roomId: string; tags?: string[]; replyTo?: string; referenceId?: string; from?: string | null; to: string; status?: ChatStatus[]; metadata?: Metadata[]; private: boolean; createdAt: string; updatedAt: string; readStatus?: boolean; } interface Metadata { key: string; value: string; } interface ChatStatus { chatId?: string | null; createdAt?: string | null; status?: string | null; updatedAt?: string | null; userId?: string | null; } interface ChatTextMessage extends ChatMessage { type: 'text'; } declare const MessageTypes: { readonly TEXT: "text"; readonly IMAGE: "image"; readonly PDF: "pdf"; readonly FILE: "file"; readonly VIDEO: "video"; readonly QUESTION: "question"; readonly APPOINTMENT: "appointment"; }; type MessageTypes = (typeof MessageTypes)[keyof typeof MessageTypes]; export { type ChatMessage, type ChatStatus, type ChatTextMessage, MessageTypes, type Metadata };