import { Thread, ThreadInterface, ThreadMessage, MessageInterface, ThreadAssistantInfo, } from '../../types' import { BaseExtension, ExtensionTypeEnum } from '../extension' /** * Conversational extension. Persists and retrieves conversations. * @abstract * @extends BaseExtension */ export abstract class ConversationalExtension extends BaseExtension implements ThreadInterface, MessageInterface { /** * Conversation extension type. */ type(): ExtensionTypeEnum | undefined { return ExtensionTypeEnum.Conversational } abstract listThreads(): Promise abstract createThread(thread: Partial): Promise abstract modifyThread(thread: Thread): Promise abstract deleteThread(threadId: string): Promise abstract createMessage(message: Partial): Promise abstract deleteMessage(threadId: string, messageId: string): Promise abstract listMessages(threadId: string): Promise abstract getThreadAssistant(threadId: string): Promise abstract createThreadAssistant( threadId: string, assistant: ThreadAssistantInfo ): Promise abstract modifyThreadAssistant( threadId: string, assistant: ThreadAssistantInfo ): Promise abstract modifyMessage(message: ThreadMessage): Promise }