import { RAGEngine } from "../engine"; import { ConversationConfig } from "./context-manager"; import { ChatMessage, SearchResult, ConversationContext } from "../types"; export interface ChatbotConfig { ragEngine: RAGEngine; llmConfig: { apiKey: string; modelName: string; temperature?: number; maxTokens?: number; baseURL?: string; }; conversationConfig?: Partial; defaultPromptTemplate?: string; retrievalConfig?: { topK: number; minScore: number; searchMethod: "hybrid" | "vector" | "keyword"; }; languageDetection?: boolean; } export interface ChatResponse { message: ChatMessage; sources: SearchResult[]; conversationId: string; metadata: { retrievalTime: number; generationTime: number; totalTokens?: number; model: string; template: string; }; } export interface ChatRequest { message: string; conversationId?: string; systemPrompt?: string; promptTemplate?: string; retrievalOptions?: { topK?: number; minScore?: number; searchMethod?: "hybrid" | "vector" | "keyword"; }; userContext?: Record; } export declare class RAGChatbot { private ragEngine; private contextManager; private promptManager; private config; constructor(config: ChatbotConfig); chat(request: ChatRequest): Promise; private retrieveDocuments; private generateResponse; private callLLM; private detectLanguage; getConversation(conversationId: string): ConversationContext | null; clearConversation(conversationId: string): boolean; getConversationHistory(conversationId: string, lastN?: number): ChatMessage[]; streamChat(request: ChatRequest): AsyncGenerator<{ type: "retrieval" | "generation" | "complete"; data: any; }>; private generateConversationId; private generateMessageId; updateConfig(updates: Partial): void; addPromptTemplate(template: { id: string; name: string; template: string; variables: string[]; description?: string; language?: string; }): void; getStats(): { conversations: number; totalMessages: number; ragEngineStats: any; promptTemplates: number; }; summarizeConversation(conversationId: string): Promise; suggestFollowUpQuestions(conversationId: string): Promise; } //# sourceMappingURL=chatbot.d.ts.map