import type { AgentProgress } from "../task"; import type { EventBus } from "../utils/event-bus"; export interface ObservableSession { id: string; kind: "main" | "subagent"; label: string; agent?: string; description?: string; status: "active" | "completed" | "failed" | "aborted"; sessionFile?: string; lastUpdate: number; /** Latest progress snapshot from the subagent executor */ progress?: AgentProgress; } export declare class SessionObserverRegistry { #private; /** Add a change listener. Returns unsubscribe function. */ onChange(cb: () => void): () => void; setMainSession(sessionFile?: string): void; getSessions(): ObservableSession[]; getActiveSubagentCount(): number; /** Clear all tracked sessions (e.g. on session switch). Keeps EventBus subscriptions and listeners. */ resetSessions(): void; dispose(): void; subscribeToEventBus(eventBus: EventBus): void; }