import { Component, Ref } from 'vue'; import { ChatMessage } from './messages'; import { SendMessageResponse } from './webhook'; export interface ChatOptions { webhookUrl: string; webhookConfig?: { method?: 'GET' | 'POST'; headers?: Record; }; target?: string | Element; mode?: 'window' | 'fullscreen'; showWindowCloseButton?: boolean; showWelcomeScreen?: boolean; loadPreviousSession?: boolean; sessionId?: string; chatInputKey?: string; chatSessionKey?: string; defaultLanguage?: 'en'; initialMessages?: string[]; messageHistory?: ChatMessage[]; metadata?: Record; i18n: Record; theme?: {}; messageComponents?: Record; disabled?: Ref; allowFileUploads?: Ref | boolean; allowedFilesMimeTypes?: Ref | string; enableStreaming?: boolean; beforeMessageSent?: (message: string) => void | Promise; afterMessageSent?: (message: string, response?: SendMessageResponse) => void | Promise; enableMessageActions?: boolean; }