import type { OrchestratorTree, NodeKind, NodeStatus, UsageSnapshot, NodeMetrics } from "../orchestrator-tree.js"; export interface NodeViewModel { id: string; label: string; kind: NodeKind; parentId: string | null; children: string[]; status: NodeStatus; depth: number; startedAt: number; endedAt?: number; usage: UsageSnapshot; model?: string; provider?: string; compression?: { calls: number; tokensSaved: number; }; metrics: NodeMetrics; iteration?: number; tailBuffer: string[]; unreadWarnings: number; firstTurnPreview?: string; lastTurnPreview?: string; promptPreview?: string; outcomePreview?: string; } export interface TreeViewModel { /** Active root node IDs, in insertion order. */ roots: string[]; /** All projected nodes keyed by ID (reaches all descendants of active roots). */ nodes: Map; } /** Build a fresh TreeViewModel snapshot from the live model. */ export declare function buildViewModel(tree: OrchestratorTree): TreeViewModel;