/** * ACE-TUI Layout Manager * * Screen zone management with dynamic resize handling. * Arttime-inspired: defined zones for each UI element. */ import { type ColorLevel } from "./renderer.js"; export interface Zone { x: number; y: number; width: number; height: number; } export interface LayoutZones { tabBar: Zone; main: Zone; statusBar: Zone; inputLine: Zone; } export interface StatusBarState { taskState: "idle" | "running" | "blocked" | "overdue"; provider: string; model: string; tokensIn: number; tokensOut: number; startTime: number; taskName?: string; agentName?: string; } export interface TabInfo { id: string; label: string; type: "dashboard" | "agent" | "chat" | "logs"; hasActivity: boolean; agentRole?: string; } export interface DashboardControlItem { key: string; label: string; value: string; } export interface DashboardControlState { focused: boolean; selectedIndex: number; items: DashboardControlItem[]; } export declare class LayoutManager { private zones; private cols; private rows; private colorLevel; private tabs; private activeTab; constructor(colorLevel?: ColorLevel); /** Recalculate zones on terminal resize */ handleResize(): void; private computeZones; getZones(): LayoutZones; getMainZone(): Zone; getCols(): number; getRows(): number; setTabs(tabs: TabInfo[]): void; setActiveTab(index: number): void; getActiveTab(): number; renderTabBar(): void; renderStatusBar(state: StatusBarState): void; renderInputLine(buffer: string, cursorPos: number, mode: string, prompt?: string): void; renderDashboard(data: DashboardData, controls?: DashboardControlState): void; private renderStatusPanel; private renderControlStrip; private renderTasksPanel; private renderActivityLog; renderChatView(messages: ChatMessage[]): void; /** Render streaming text at the bottom of chat */ renderStreamChunk(text: string, line: number): void; renderAgentView(agentName: string, output: string[], thinking?: string): void; private agentColor; private wrapText; private wrapInputText; /** Full screen initialization */ initScreen(): void; /** Full screen teardown */ destroyScreen(): void; /** Full redraw (arttime: called on resume from suspend) */ fullRedraw(): void; } export interface DashboardData { phase: string; provider: string; model: string; activeAgents: number; totalAgents: number; startTime: number; tokensIn: number; tokensOut: number; tokensPerSec: number; tasks: TaskItem[]; events: ActivityEvent[]; } export interface TaskItem { title: string; done: boolean; priority?: string; } export interface ActivityEvent { timestamp: number; agent: string; message: string; } export interface ChatMessage { role: "user" | "assistant" | "system"; content: string; timestamp?: number; tokens?: number; } //# sourceMappingURL=layout.d.ts.map