import { type Component } from "@caupulican/pi-tui"; import type { LaneRecord } from "../../../core/autonomy/lane-tracker.ts"; import type { GoalState } from "../../../core/goals/goal-state.ts"; import type { KeybindingsManager } from "../../../core/keybindings.ts"; import type { TaskStepsState } from "../../../core/tasks/task-state.ts"; import { type OrchestrationPanelModel } from "../../../core/tools/orchestration-panel.ts"; import { type ActivityLaneItem } from "./activity-lane.ts"; /** * On-demand work inspector behind the compact activity lane. One canonical snapshot * exposes goal, requirements, plan, workers, and background tools without duplicating * lifecycle state. The viewport is scrollable; the same key that opens it closes it. */ export interface AgentsOverlaySnapshot { goalState?: GoalState; taskState?: TaskStepsState; laneRecords: readonly LaneRecord[]; items: readonly ActivityLaneItem[]; } export interface AgentsOverlayOptions { keybindings: KeybindingsManager; snapshot: () => AgentsOverlaySnapshot; requestRender: () => void; onClose: () => void; /** Injectable clock for tests. */ now?: () => number; /** Terminal row budget used by the scrollable inspector. */ viewportRows?: () => number; } export declare function formatElapsed(ms: number): string; export declare function buildAgentsPanelModel(snapshot: AgentsOverlaySnapshot, nowMs: number): OrchestrationPanelModel; /** Complete, bounded projection for the interactive work inspector. */ export declare function buildWorkPanelModel(snapshot: AgentsOverlaySnapshot, nowMs: number): OrchestrationPanelModel; export declare class AgentsOverlay implements Component { private readonly options; private mounted; private elapsedRedrawEnabled; private elapsedRedrawTimer; private scrollTop; private lastPageRows; private lastMaxScroll; constructor(options: AgentsOverlayOptions); mount(): void; private scheduleElapsedRedraw; private setElapsedRedrawEnabled; handleInput(data: string): void; render(width: number): string[]; invalidate(): void; private scrollBy; private scrollTo; dispose(): void; } //# sourceMappingURL=agents-overlay.d.ts.map