import { EventEmitter } from 'events';
export interface Session {
    id: string;
    protocolVersion: string;
    clientInfo: {
        name: string;
        version: string;
    };
    capabilities: any;
    createdAt: string;
    lastActivity: string;
    initialized: boolean;
    currentTasks: Map<string, TaskState>;
    eventHistory: SSEEvent[];
    connectionStatus: 'active' | 'disconnected' | 'reconnecting';
}
export interface TaskState {
    id: string;
    type: string;
    status: 'pending' | 'running' | 'completed' | 'failed';
    progress: number;
    startTime: string;
    lastUpdate: string;
    result?: any;
    error?: string;
    checkpoints: TaskCheckpoint[];
}
export interface TaskCheckpoint {
    id: string;
    timestamp: string;
    progress: number;
    phase: string;
    data: any;
}
export interface SSEEvent {
    id: string;
    type: string;
    data: any;
    timestamp: string;
    sessionId: string;
}
export interface ReconnectionResult {
    success: boolean;
    missedEvents: SSEEvent[];
    currentTasks: TaskState[];
    resumeInstructions: string[];
}
export declare class SessionManager extends EventEmitter {
    private sessions;
    private eventHistory;
    private taskStates;
    private maxEventHistory;
    private sessionTimeout;
    private cleanupInterval;
    constructor();
    /**
     * 创建新会话
     */
    createSession(sessionId: string, initParams: any): Session;
    /**
     * 获取会话
     */
    getSession(sessionId: string): Session | null;
    /**
     * 更新会话活动时间
     */
    updateSessionActivity(sessionId: string): void;
    /**
     * 标记会话已初始化
     */
    markSessionInitialized(sessionId: string): void;
    /**
     * 检查会话是否有效
     */
    isValidSession(sessionId: string): boolean;
    /**
     * 记录SSE事件
     */
    recordEvent(sessionId: string, event: Omit<SSEEvent, 'timestamp' | 'sessionId'>): void;
    /**
     * 处理断线重连
     */
    handleReconnection(sessionId: string, lastEventId?: string): ReconnectionResult;
    /**
     * 获取丢失的事件
     */
    private getMissedEvents;
    /**
     * 创建任务状态
     */
    createTask(sessionId: string, taskId: string, taskType: string): TaskState;
    /**
     * 更新任务进度
     */
    updateTaskProgress(taskId: string, progress: number, phase: string, data?: any): void;
    /**
     * 完成任务
     */
    completeTask(taskId: string, result: any): void;
    /**
     * 任务失败
     */
    failTask(taskId: string, error: string): void;
    /**
     * 生成恢复指令
     */
    private generateResumeInstructions;
    /**
     * 清理过期会话
     */
    private cleanupExpiredSessions;
    /**
     * 启动清理定时器
     */
    private startCleanupTimer;
    /**
     * 停止会话管理器
     */
    stop(): void;
    /**
     * 获取会话统计信息
     */
    getStats(): {
        totalSessions: number;
        activeSessions: number;
        totalTasks: number;
        runningTasks: number;
        totalEvents: number;
    };
}
//# sourceMappingURL=session-manager.d.ts.map