import type { RunNodeView, RunView } from '../../workflows/v3/ops-projection.js'; export declare const V3_POLL_MS = 2000; export declare const V3_NODE_LABEL: Record; export declare const V3_DECISION_LABEL: Record; export declare const V3_GRAPH: { readonly nodeWidth: 168; readonly plainHeight: 48; readonly loopHeight: 70; readonly columnGap: 226; readonly verticalGap: 30; readonly padding: 26; readonly maxDots: 8; }; export declare function isTerminalRunStatus(status: RunView['runStatus'] | undefined): boolean; export declare function v3RunIdFromHash(hash?: string): string | null; export declare function trunc(s: string, n: number): string; export declare function nodeHeight(node: RunNodeView): number; export declare function graphNodes(view: RunView): RunNodeView[]; export interface V3GraphNodeLayout { node: RunNodeView; x: number; y: number; width: number; height: number; } export interface V3GraphEdgeLayout { fromId: string; toId: string; x1: number; y1: number; x2: number; y2: number; mx: number; live: boolean; } export interface V3GraphLayout { width: number; height: number; nodes: V3GraphNodeLayout[]; edges: V3GraphEdgeLayout[]; } export declare function buildGraphLayout(view: RunView): V3GraphLayout; export declare function computeDepth(nodes: RunNodeView[]): Map; export declare function loopInstances(view: RunView | null | undefined, loopId: string): RunNodeView[]; export declare function resolveLoopTerminalNode(instances: RunNodeView[], pinnedId: string | null, pinned: boolean): RunNodeView | null; export interface V3LoopRound { iteration: number; instances: RunNodeView[]; } export declare function loopRounds(instances: RunNodeView[]): V3LoopRound[]; export declare function loopBudget(node: RunNodeView): number | undefined; export interface V3MiniDagNodeLayout { templateId: string; node: RunNodeView | undefined; x: number; y: number; width: number; height: number; } export interface V3MiniDagEdgeLayout { fromId: string; toId: string; x1: number; y1: number; x2: number; y2: number; mx: number; live: boolean; } export interface V3MiniDagLayout { width: number; height: number; nodes: V3MiniDagNodeLayout[]; edges: V3MiniDagEdgeLayout[]; } export declare function buildRoundMiniDagLayout(template: Array<{ id: string; depends: string[]; }>, instanceByBodyId: Map): V3MiniDagLayout; //# sourceMappingURL=v3-model.d.ts.map