/** * Subagent observability overlay. * * F2 toggles a live tree of running subagents (current tool, token spend, * elapsed). Until WS6 ships the Task tool + global subagent registry this * overlay subscribes to a no-op registry that emits an empty snapshot. Once * WS6 lands, `setRegistry()` will receive a real registry and the overlay * begins rendering rows. */ import { formatElapsed } from "../format-elapsed.js"; import type { Component } from "../tui.js"; export { formatElapsed }; export interface SubagentSnapshot { id: string; name: string; currentTool?: string; tokensIn: number; tokensOut: number; elapsedMs: number; status: "running" | "done" | "error" | "queued"; depth?: number; } export interface SubagentRegistry { /** Read current snapshot of every active subagent. WS6 wires this. */ list(): SubagentSnapshot[]; /** Subscribe to changes. Returns an unsubscribe function. */ subscribe(listener: () => void): () => void; } /** Empty registry used until WS6 lands the Task tool. */ export declare const NULL_SUBAGENT_REGISTRY: SubagentRegistry; export interface SubagentOverlayTheme { border: (text: string) => string; header: (text: string) => string; row: (text: string) => string; muted: (text: string) => string; accent: (text: string) => string; error: (text: string) => string; } export interface SubagentOverlayOptions { registry?: SubagentRegistry; theme?: SubagentOverlayTheme; maxRows?: number; } export declare class SubagentOverlay implements Component { private registry; private theme; private maxRows; private unsubscribe?; private redraw?; constructor(options?: SubagentOverlayOptions); /** Wire a new registry (e.g. when WS6 lands and registers the real one). */ setRegistry(registry: SubagentRegistry): void; /** Bind a redraw callback so registry events trigger a TUI re-render. */ bindRedraw(redraw: () => void): void; dispose(): void; invalidate(): void; render(width: number): string[]; private formatRow; private statusBadge; private layoutRow; private truncateVisible; private padRight; } //# sourceMappingURL=SubagentOverlay.d.ts.map