export abstract class MultiModalModel { /** * starts the model */ abstract start(): Promise; /** * stops the model */ abstract stop(): Promise; public abstract chat(optionsArg: { systemMessage: string, userMessage: string, messageHistory: { role: 'assistant' | 'user'; content: string; }[] }): Promise<{ role: 'assistant'; message: string; }> /** * Defines a streaming interface for chat interactions. * The implementation will vary based on the specific AI model. * @param input */ public abstract chatStream(input: ReadableStream): Promise>; }