/** * ACE-TUI Tab Manager * * Manages tabbed views for dashboard, agent outputs, chat sessions, and logs. * Each tab is an isolated view with its own state — arttime hermetic isolation pattern. */ import type { ChatMessage, ActivityEvent } from "./layout.js"; export type TabType = "dashboard" | "agent" | "chat" | "logs"; export interface Tab { id: string; label: string; type: TabType; hasActivity: boolean; closeable: boolean; agentRole?: string; chatMessages?: ChatMessage[]; agentOutput?: string[]; agentThinking?: string; logEntries?: ActivityEvent[]; scrollOffset?: number; } export declare class TabManager { private tabs; private activeIndex; private nextId; constructor(); /** Get all tabs */ getTabs(): Tab[]; /** Get active tab */ getActiveTab(): Tab; /** Get active tab index */ getActiveIndex(): number; /** Switch to tab by index */ switchTo(index: number): void; /** Switch to next tab */ nextTab(): void; /** Switch to previous tab */ prevTab(): void; /** Find tab by agent role */ findAgentTab(role: string): number; /** Create and return an agent tab */ createAgentTab(role: string): Tab; /** Create a new chat tab */ createChatTab(): Tab; /** Create a logs tab */ createLogTab(): Tab; /** Close the active tab (if closeable) */ closeActive(): boolean; /** Close a specific tab by id */ closeTab(id: string): boolean; /** Append output to an agent tab */ appendAgentOutput(role: string, text: string): void; /** Set agent thinking text */ setAgentThinking(role: string, text: string | undefined): void; /** Add a message to a chat tab */ addChatMessage(tabId: string, message: ChatMessage): void; /** Get chat messages for active tab */ getActiveChatMessages(): ChatMessage[]; /** Add a log entry to all log tabs */ addLogEntry(entry: ActivityEvent): void; /** Get tab info for layout rendering */ getTabInfos(): Array<{ id: string; label: string; type: TabType; hasActivity: boolean; agentRole?: string; }>; } //# sourceMappingURL=tabs.d.ts.map