import type { ManagedSession, SessionStatus } from "../core/types.js"; export interface RenderSession { id: string; title: string; cwd: string; additionalCwds: string[]; workspaceCwd?: string; repoCount: number; group: string; status: SessionStatus; displayStatus: "running" | "waiting" | "idle" | "error" | "stopped"; symbol: string; selected: boolean; error?: string; sessionFile?: string; enabledMcpServers: string[]; skillCount?: number; kind: "main" | "subagent"; depth: number; parentId?: string; agentName?: string; taskPreview?: string; resultSummary?: string; worktreePath?: string; worktreeBranch?: string; worktreeBaseBranch?: string; worktreeOwnedByHub?: boolean; } export interface StatusCounts { running: number; waiting: number; idle: number; error: number; stopped: number; } export interface RenderGroup { name: string; statusCounts: StatusCounts; sessions: RenderSession[]; } export interface RenderSummary { total: number; visibleTotal: number; statusCounts: StatusCounts; } export interface RenderModel { width: number; height?: number; empty: boolean; noMatches: boolean; showPreview: boolean; compactFooter: boolean; groups: RenderGroup[]; summary: RenderSummary; selected?: RenderSession; footer: string; filter?: string; preview: string; detailsExpanded: boolean; } export interface BuildRenderModelInput { sessions: ManagedSession[]; selectedId?: string; width: number; height?: number; filter?: string; filterEditing?: boolean; preview?: string; detailsExpanded?: boolean; selectedSkillCount?: number; } export declare function buildRenderModel(input: BuildRenderModelInput): RenderModel; export declare function retainSelectionAfterRefresh(previous: ManagedSession[], next: ManagedSession[], selectedId: string | undefined): string | undefined;