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<void>;
export declare function registerThreadSwitcher(pi: ExtensionAPI): void;
