/** * Session and conversation history management */ import type { Session, Message, SessionMetadata, Configuration, ToolCall, SessionInfo, CompactionResult, CompactionConfig } from '../types/index.js'; /** * Create a new session */ export declare function createSession(workingDirectory: string, currentModel: string, isContinuation?: boolean): Session; /** * Load session from history */ export declare function loadSession(workingDirectory: string, currentModel: string, config: Configuration): Promise; /** * Add a user message to session */ export declare function addUserMessage(session: Session, content: string): Message; /** * Add an assistant message to session */ export declare function addAssistantMessage(session: Session, content: string, model: string, metadata?: { tokensUsed?: number; streamingDuration?: number; toolCalls?: ToolCall[]; }): Message; /** * Save message to history file */ export declare function saveMessage(workingDirectory: string, message: Message): Promise; /** * Save session messages to history */ export declare function saveSession(session: Session, config: Configuration): Promise; /** * Clear session history */ export declare function clearHistory(workingDirectory: string): Promise; /** * Get recent messages (for display) */ export declare function getRecentMessages(session: Session, count?: number): Message[]; /** * Get conversation messages for API (without metadata) */ export declare function getConversationForAPI(session: Session): Array<{ role: string; content: string; }>; /** * Update session model */ export declare function updateSessionModel(session: Session, modelId: string): Session; /** * Get session statistics */ export declare function getSessionStats(session: Session): SessionMetadata; /** * Check if session has messages */ export declare function hasMessages(session: Session): boolean; /** * Get last user message */ export declare function getLastUserMessage(session: Session): Message | null; /** * Get last assistant message */ export declare function getLastAssistantMessage(session: Session): Message | null; /** * Create a new session with multi-session support * Automatically creates session metadata and history file */ export declare function createNewSession(workingDirectory: string, currentModel: string): Promise; /** * Load current session from metadata */ export declare function loadCurrentSession(workingDirectory: string): Promise; /** * Register a new session in metadata */ export declare function registerSession(workingDirectory: string, sessionInfo: SessionInfo): Promise; /** * Save session to session-specific history file */ export declare function saveSessionToHistory(session: Session): Promise; /** * Clear conversation history (reset messages to empty array) */ export declare function clearConversationHistory(session: Session): Promise; /** * Migrate from legacy single-file format to multi-session */ export declare function migrateToMultiSession(workingDirectory: string): Promise; /** * Estimate token count for conversation */ export declare function estimateConversationTokensLocal(messages: Message[]): number; /** * Compact conversation using AI summarization */ export declare function compactConversation(session: Session, config: CompactionConfig, apiKey: string): Promise; //# sourceMappingURL=session.d.ts.map