interface SessionData {
    thoughtHistory: ThoughtData[];
    branches: Record<string, ThoughtData[]>;
    createdAt: Date;
    lastAccessedAt: Date;
}
interface ThoughtData {
    thought: string;
    thoughtNumber: number;
    totalThoughts: number;
    isRevision?: boolean;
    revisesThought?: number;
    branchFromThought?: number;
    branchId?: string;
    needsMoreThoughts?: boolean;
    nextThoughtNeeded: boolean;
}
export interface SessionManager {
    createSession(sessionId: string): void;
    getSession(sessionId: string): SessionData | null;
    clearSession(sessionId: string): void;
    cleanupExpiredSessions(): void;
    addThought(sessionId: string, thought: ThoughtData): void;
    addBranch(sessionId: string, branchId: string, thought: ThoughtData): void;
    getThoughtHistory(sessionId: string): ThoughtData[];
    getBranches(sessionId: string): Record<string, ThoughtData[]>;
}
export declare class InMemorySessionManager implements SessionManager {
    private sessions;
    private readonly SESSION_TIMEOUT_MS;
    private cleanupInterval;
    constructor();
    createSession(sessionId: string): void;
    getSession(sessionId: string): SessionData | null;
    clearSession(sessionId: string): void;
    cleanupExpiredSessions(): void;
    addThought(sessionId: string, thought: ThoughtData): void;
    addBranch(sessionId: string, branchId: string, thought: ThoughtData): void;
    getThoughtHistory(sessionId: string): ThoughtData[];
    getBranches(sessionId: string): Record<string, ThoughtData[]>;
    destroy(): void;
    getSessionCount(): number;
    getSessionInfo(): Array<{
        sessionId: string;
        thoughtCount: number;
        branchCount: number;
        lastAccessed: Date;
    }>;
}
export declare const sessionManager: InMemorySessionManager;
export {};
