/**
 * Session Tree
 *
 * 会话树结构管理
 * 追踪会话之间的父子关系和分叉历史
 */
import { SessionNode, SessionNodeStatus, SessionNodeSummary, ForkState, SerializedForkState } from './forkTypes';
/**
 * 会话树
 */
export declare class SessionTree {
    private nodes;
    private rootSessionId;
    constructor();
    /**
     * 创建根节点
     */
    createRoot(sessionId: string, branchName?: string): SessionNode;
    /**
     * 添加分叉节点
     */
    addFork(parentSessionId: string, childSessionId: string, checkpointId: string, branchName: string, hypothesis?: string): SessionNode;
    /**
     * 获取节点
     */
    getNode(sessionId: string): SessionNode | undefined;
    /**
     * 更新节点状态
     */
    updateStatus(sessionId: string, status: SessionNodeStatus): void;
    /**
     * 更新节点摘要
     */
    updateSummary(sessionId: string, summary: SessionNodeSummary): void;
    /**
     * 删除节点（及其所有子节点）
     */
    removeNode(sessionId: string, recursive?: boolean): string[];
    /**
     * 获取根节点
     */
    getRoot(): SessionNode | undefined;
    /**
     * 获取父节点
     */
    getParent(sessionId: string): SessionNode | undefined;
    /**
     * 获取子节点
     */
    getChildren(sessionId: string): SessionNode[];
    /**
     * 获取所有祖先节点（从父到根）
     */
    getAncestors(sessionId: string): SessionNode[];
    /**
     * 获取所有后代节点（深度优先）
     */
    getDescendants(sessionId: string): SessionNode[];
    /**
     * 获取兄弟节点
     */
    getSiblings(sessionId: string): SessionNode[];
    /**
     * 获取所有叶子节点
     */
    getLeaves(): SessionNode[];
    /**
     * 获取指定状态的节点
     */
    getNodesByStatus(status: SessionNodeStatus): SessionNode[];
    /**
     * 获取指定深度的节点
     */
    getNodesByDepth(depth: number): SessionNode[];
    /**
     * 获取树的最大深度
     */
    getMaxDepth(): number;
    /**
     * 获取活跃分叉数量
     */
    getActiveForkCount(): number;
    /**
     * 获取节点总数
     */
    getNodeCount(): number;
    /**
     * 检查是否为根节点
     */
    isRoot(sessionId: string): boolean;
    /**
     * 检查是否为叶子节点
     */
    isLeaf(sessionId: string): boolean;
    /**
     * 检查两个节点是否有共同祖先
     */
    haveCommonAncestor(sessionId1: string, sessionId2: string): boolean;
    /**
     * 找到两个节点的最近共同祖先
     */
    findLowestCommonAncestor(sessionId1: string, sessionId2: string): SessionNode | undefined;
    /**
     * 获取从根到节点的路径
     */
    getPathFromRoot(sessionId: string): SessionNode[];
    /**
     * 获取两个节点之间的路径
     */
    getPathBetween(sessionId1: string, sessionId2: string): SessionNode[];
    /**
     * 获取分叉状态
     */
    getForkState(): ForkState;
    /**
     * 序列化为 JSON
     */
    serialize(): SerializedForkState;
    /**
     * 从序列化数据恢复
     */
    static deserialize(data: SerializedForkState): SessionTree;
    /**
     * 生成树形可视化字符串
     */
    toTreeString(): string;
    /**
     * 构建树形字符串（递归）
     */
    private buildTreeString;
    /**
     * 获取状态图标
     */
    private getStatusIcon;
}
/**
 * 创建会话树
 */
export declare function createSessionTree(): SessionTree;
export default SessionTree;
//# sourceMappingURL=sessionTree.d.ts.map