import { EventEmitter } from 'events'; import { ConversationMessage, ChatSession, MessageMetadata, UserFeedback, MessageIntent, IntentType, NamedEntity, SentimentAnalysis, SessionOutcome } from '../types/memory'; import { MemoryManager } from './memory-manager'; export interface ConversationContext { sessionId: string; projectPath?: string; userId?: string; workingDirectory: string; activeFiles: string[]; recentCommands: string[]; contextWindow: number; } export interface MessageAnalysis { intent: MessageIntent; entities: NamedEntity[]; sentiment: SentimentAnalysis; complexity: number; topics: string[]; codeElements: string[]; requiresFollowup: boolean; suggestedActions: string[]; } export interface ConversationSummary { sessionId: string; messageCount: number; duration: number; mainTopics: string[]; outcomes: SessionOutcome[]; satisfaction: number; codeGenerated: number; issuesResolved: number; learningAchieved: boolean; keyInsights: string[]; } export declare class ConversationMemory extends EventEmitter { private logger; private memoryManager; private currentSession?; private messageBuffer; private intentClassifier; private entityExtractor; private sentimentAnalyzer; private topicExtractor; constructor(memoryManager: MemoryManager); startSession(context: ConversationContext): Promise; endSession(summary?: string): Promise; createSessionBranch(reason: string, context: string): Promise; addMessage(role: 'user' | 'assistant' | 'system' | 'tool', content: string, metadata?: Partial): Promise; addUserFeedback(messageId: string, feedback: UserFeedback): Promise; getConversationContext(limit?: number): Promise; getRelevantHistory(intent: IntentType, context: string, limit?: number): Promise; getSimilarConversations(content: string, limit?: number): Promise; private analyzeMessage; private updateSessionFromMessage; private generateConversationSummary; private flushMessageBuffer; private shouldContinueSession; private shouldFlushImmediately; private getContextualMessages; private extractCodeElements; private calculateComplexity; private requiresFollowup; private generateSuggestedActions; private detectOutcome; private learnFromFeedback; private calculateSessionSatisfaction; private extractKeyInsights; private countCodeLines; private estimateTokens; private generateSessionId; private generateMessageId; private getGitBranch; private getGitCommit; } //# sourceMappingURL=conversation-memory.d.ts.map