import { ForkOptions, ForkConfig, ForkResult, MergeOptions, MergeResult, ComparisonResult, SessionNode, SessionNodeSummary } from './forkTypes';
import { SessionTree } from './sessionTree';
import { CheckpointManager } from '../state/checkpointManager';
import { SubAgentContext } from '../types';
/**
 * 分叉管理器配置
 */
export interface ForkManagerConfig extends ForkConfig {
    /** 状态持久化目录 */
    stateDir?: string;
}
/**
 * 分叉管理器
 */
export declare class ForkManager {
    private config;
    private checkpointManager;
    private mergeRegistry;
    private sessionTrees;
    private sessionContexts;
    private stateDir;
    constructor(checkpointManager: CheckpointManager, config?: Partial<ForkManagerConfig>);
    /**
     * 检查是否启用
     */
    isEnabled(): boolean;
    /**
     * 更新配置
     */
    updateConfig(config: Partial<ForkManagerConfig>): void;
    /**
     * 获取配置
     */
    getConfig(): ForkManagerConfig;
    /**
     * 初始化会话树（为根会话创建）
     */
    initializeSession(sessionId: string, branchName?: string): SessionTree;
    /**
     * 获取会话树
     */
    getSessionTree(rootSessionId: string): SessionTree | undefined;
    /**
     * 注册会话上下文
     */
    registerContext(sessionId: string, context: SubAgentContext): void;
    /**
     * 获取会话上下文
     */
    getContext(sessionId: string): SubAgentContext | undefined;
    /**
     * 从检查点创建分叉
     */
    fork(parentSessionId: string, options: ForkOptions): Promise<ForkResult>;
    /**
     * 复制检查点到分叉会话
     */
    private copyCheckpointToFork;
    /**
     * 列出会话的所有分叉
     */
    listForks(sessionId: string): SessionNode[];
    /**
     * 列出所有分叉（包括嵌套）
     */
    listAllForks(sessionId: string): SessionNode[];
    /**
     * 获取会话节点信息
     */
    getSessionNode(sessionId: string): SessionNode | undefined;
    /**
     * 比较两个或多个会话的分析结果
     */
    compare(sessionIds: string[]): Promise<ComparisonResult>;
    /**
     * 收集结果中的所有发现
     */
    private collectFindings;
    /**
     * 找出共同发现
     */
    private findCommonFindings;
    /**
     * 找出各会话独有的发现
     */
    private findUniqueFindings;
    /**
     * 找出冲突发现（同一问题不同结论）
     */
    private findConflictingFindings;
    /**
     * 获取发现的唯一键
     */
    private getFindingKey;
    /**
     * 确定冲突类型
     */
    private determineConflictType;
    /**
     * 生成摘要比较
     */
    private generateSummaryComparison;
    /**
     * 计算质量评分
     */
    private calculateQualityScore;
    /**
     * 推荐最佳会话
     */
    private recommendBestSession;
    /**
     * 合并分叉到父会话
     */
    merge(options: MergeOptions): Promise<MergeResult>;
    /**
     * 标记会话完成
     */
    markCompleted(sessionId: string, summary: SessionNodeSummary): void;
    /**
     * 放弃分叉
     */
    abandonFork(sessionId: string): boolean;
    /**
     * 保存状态到磁盘
     */
    saveState(rootSessionId: string): Promise<void>;
    /**
     * 加载状态
     */
    loadState(rootSessionId: string): Promise<SessionTree | null>;
    /**
     * 清除会话状态
     */
    clearState(rootSessionId: string): Promise<void>;
    /**
     * 查找根会话 ID
     */
    private findRootSessionId;
    /**
     * 确保目录存在
     */
    private ensureDirectory;
    /**
     * 获取会话树可视化
     */
    getTreeVisualization(rootSessionId: string): string;
}
/**
 * 获取全局 Fork Manager
 */
export declare function getForkManager(): ForkManager | null;
/**
 * 设置全局 Fork Manager
 */
export declare function setForkManager(manager: ForkManager): void;
/**
 * 创建 Fork Manager
 */
export declare function createForkManager(checkpointManager: CheckpointManager, config?: Partial<ForkManagerConfig>): ForkManager;
export default ForkManager;
//# sourceMappingURL=forkManager.d.ts.map