import { DatabaseManager, MessagesDAO } from '../database'; import { Thread, Message, FileChange, CreateThreadInput, ListThreadsInput, UpdateThreadInput } from '../types'; export declare class ThreadManager { private dbManager; private threadsDAO; private messagesDAO; private fileChangesDAO; private gitIntegration; private embeddingService; private claudeContextPath; constructor(dbManager: DatabaseManager); get messagesDAOInstance(): MessagesDAO; private updateClaudeMd; createThread(input: CreateThreadInput): Promise<{ thread: Thread; message: string; launchCommand: string; }>; private formatCreateMessage; private formatCombinedSwitchMessage; getThread(id: string, includeMessages?: boolean, includeFileChanges?: boolean, messageLimit?: number): Promise<{ thread: Thread | null; messages?: Message[]; fileChanges?: FileChange[]; }>; listThreads(input: ListThreadsInput): Promise<{ threads: Thread[]; total: number; currentThreadId?: string; message: string; }>; private formatListThreadsMessage; findThreadsByPrefix(prefix: string): Thread[]; updateThread(id: string, updates: UpdateThreadInput): Promise<{ success: boolean; thread?: Thread; message: string; }>; deleteThread(id: string): Promise<{ success: boolean; message: string; }>; switchThread(id: string, options?: { forceIsolate?: boolean; }): Promise<{ success: boolean; thread?: Thread; messages?: Message[]; message: string; launchCommand?: string; }>; getCurrentThread(includeMessages?: boolean, includeFileChanges?: boolean, messageLimit?: number): Promise<{ thread?: Thread; messages?: Message[]; fileChanges?: FileChange[]; message?: string; }>; addMessageToThread(threadId: string, role: 'user' | 'assistant' | 'system', content: string, metadata?: Record): Promise; trackFileChange(threadId: string, filePath: string, changeType?: 'added' | 'modified' | 'deleted', linesAdded?: number, linesDeleted?: number, gitCommit?: string): Promise; }