import { IdType } from '../types'; import { Attachment } from './AttachmentModel'; import { InternalMessageType, Message } from './MessageModel'; export type MessageSentParams = { /** User's message content */ content: Message['content']; /** User's message attachments */ attachments: Attachment[]; /** User's message */ message: M; /** Assistant's message */ assistantMessage: M; /** Thread history */ history: M[]; /** Active tool type */ toolType: string | undefined; /** Thread AI model */ aiModel: string | undefined; /** * Pass a part of the received text from the chat (suitable if you are receiving the answer in streaming mode). * Will be added to the current message. */ pushChunk: (chunk: string) => void; /** Update text message */ setText: (text: string) => void; /** Assistant's response answer is complete. */ onFinish: () => void; /** Set awaiting status */ setStatus: (status: string) => void; /** Options for managing reasoning. */ reasoning: { /** Push part of text to the previous text */ pushChunk: (reasoning: string) => void; /** Replace full text */ setFull: (reasoning: string) => void; /** * Set the time spent on reasoning. * This will lock automatic time managment. To unlock, call the unlock method. */ setTimeSec: (timeSec: number) => void; /** * Set current reasoning header. * This will lock automatic headers. To unlock, call the unlock method. */ setTitle: (title: string) => void; /** * Set current reasoning header. * This will lock automatic headers. To unlock, call the unlock method. */ setViewType: (viewType: 'stream' | 'headlines' | 'headersStream') => void; /** * Unlock auto managment for locked options (after calling the setHeader, setTimeSec, etc.) */ unlockAutoManagement: (options?: ('headers' | 'time' | 'viewType')[]) => void; }; actions: { /** set your thread id */ updateThreadId: (newId: IdType) => void; /** set your thread title */ updateThreadTitle: (newTitle: string) => void; /** set your user's message id */ updateUserMessageId: (newId: IdType) => void; /** set your assistant's message id */ updateAssistantMessageId: (newId: IdType) => void; updateCurrentTextIndex: () => void; }; };