import { DatabaseManager } from '../database/manager.js';
import { ChatMessage } from '../shared/types.js';
import { SessionPersistenceOptions, SessionRestoreOptions, SessionState, SessionHistoryEntry } from './session-state.js';

declare class SessionStateManager {
    #private;
    constructor(databaseManager?: DatabaseManager, options?: SessionPersistenceOptions);
    restoreSessionState(sessionId: string, options?: SessionRestoreOptions): Promise<SessionState>;
    persistSessionState(sessionId: string): Promise<void>;
    addMessageToSession(sessionId: string, message: ChatMessage): Promise<void>;
    updateSessionTitle(sessionId: string, title: string): Promise<void>;
    getSessionHistory(_sessionId: string): Promise<SessionHistoryEntry[]>;
    deactivateSession(sessionId: string): Promise<void>;
    getActiveSessionIds(): string[];
    getActiveSessionState(sessionId: string): SessionState | undefined;
    cleanupInactiveSessions(maxAge?: number): Promise<void>;
}

export { SessionStateManager };
