import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent"; import { type OrchestratorTree } from "../orchestrator-tree.js"; export interface OpenDashboardOptions { /** * Inject a detached tree (transcript replay). Defaults to the live * singleton. Injected trees are NEVER memoized into the module-level * treeRef — a replay must not pollute the live dashboard entry points. */ tree?: OrchestratorTree; /** Read-only mode: cancel (`x`) disabled; footer marks the replay. */ readOnly?: boolean; } /** Open the dashboard overlay. Shared by /forge:threads, /forge:dashboard, * the status bar Enter action, and transcript replay (injected tree). * Returns the overlay's lifetime promise so callers (replay re-entry loop) * can await close; existing fire-and-forget call sites ignore it. */ export declare function openDashboardTui(ctx: ExtensionContext, opts?: OpenDashboardOptions): Promise; export declare function registerThreadSwitcher(pi: ExtensionAPI): void;