/**
 * Parallel Execution Live UI — real-time DAG status renderer
 *
 * Renders a compact, non-intrusive terminal panel showing:
 * - Running / done / failed / blocked nodes with role colors
 * - Progress bar and ETA with confidence
 * - Safety / approval policy chip
 * - Ensemble quorum gauge (when applicable)
 * - Blocker and completion panels
 *
 * Three view modes:
 *   cockpit — full 4-section dashboard (default)
 *   compact — single-line cursor-refresh status
 *   table   — append-only timestamped rows for CI logs
 */
import type { RunState } from "../contracts/orchestration.js";
import { type RunViewModel } from "../util/run-view-model.js";
export type ParallelViewMode = "cockpit" | "table" | "compact";
export interface ParallelLiveUIOptions {
    runId: string;
    approvalPolicy?: string;
    workerCount?: number;
    ensembleEnabled?: boolean;
    refreshMs?: number;
    onFrame?: (frame: string) => void;
    goalTitle?: string;
    mode?: "watch" | "no-watch" | "chat-handoff";
    workerLabels?: Record<string, string>;
    statePath?: string;
    useAlternateScreen?: boolean;
    view?: ParallelViewMode;
}
export declare function renderParallelCockpit(vm: RunViewModel, options: Pick<ParallelLiveUIOptions, "approvalPolicy" | "workerCount" | "ensembleEnabled" | "mode" | "goalTitle" | "statePath" | "view">): string;
/** @deprecated Use renderParallelCockpit instead */
export declare function renderParallelStatusLine(vm: RunViewModel, options: Pick<ParallelLiveUIOptions, "approvalPolicy" | "workerCount" | "ensembleEnabled" | "mode" | "goalTitle" | "statePath">): string;
export declare function renderParallelFrame(state: RunState, options: Omit<ParallelLiveUIOptions, "refreshMs" | "onFrame">): string;
export declare function renderCompactParallelFrame(state: RunState, options: Omit<ParallelLiveUIOptions, "refreshMs" | "onFrame">): string;
export declare class ParallelLiveRenderer {
    private timer;
    private stopped;
    private lastFrame;
    private lastFrameHash;
    private readonly refreshMs;
    private readonly options;
    private readonly useAlternateScreen;
    constructor(options: ParallelLiveUIOptions);
    start(stateProvider: () => RunState | undefined): void;
    stop(): void;
    renderOnce(state: RunState): string;
    private renderNow;
}
