import type { AgentBoxState, WidgetConnectionState, WidgetHealSummary, WidgetJob, WidgetSelectionSnapshot, WidgetSyncSummary } from "../plugin/shared/contracts.js"; export interface PreviewBridgeStatus { running: boolean; port: number; clients: { id: string; file: string; editor: string; connectedAt: string; }[]; } export interface PreviewWidgetStatusPayload { connected: boolean; port: number | null; clients: PreviewBridgeStatus["clients"]; bridge: PreviewBridgeStatus; connection: WidgetConnectionState | null; selection: WidgetSelectionSnapshot | null; jobs: WidgetJob[]; agents: AgentBoxState[]; sync: WidgetSyncSummary | null; heal: WidgetHealSummary | null; counts: { jobs: { total: number; running: number; completed: number; failed: number; disconnected: number; }; agents: { total: number; idle: number; busy: number; done: number; error: number; }; }; updatedAt: number; } type BridgeStatusLike = Pick; export declare class PreviewWidgetStateCache { private connection; private selection; private jobs; private agents; private sync; private heal; private updatedAt; updateConnection(connection: WidgetConnectionState): void; updateSelection(selection: WidgetSelectionSnapshot): void; upsertJob(job: WidgetJob): void; upsertAgent(agent: AgentBoxState): void; mergeSync(sync: WidgetSyncSummary): void; updateHeal(heal: WidgetHealSummary): void; /** Transition running jobs → disconnected and busy agents → error on plugin disconnect. */ markDisconnected(): void; snapshot(bridge: BridgeStatusLike): PreviewWidgetStatusPayload; getJobs(): WidgetJob[]; getSelection(): WidgetSelectionSnapshot | null; getAgents(): AgentBoxState[]; getConnection(): WidgetConnectionState | null; getSync(): WidgetSyncSummary | null; getHeal(): WidgetHealSummary | null; private touch; } export {};