import type { TodoItem } from '@wrongstack/core/agent'; import type React from 'react'; import type { FleetEntry } from '../app-state.js'; export interface FleetPanelProps { /** Per-subagent state, keyed by subagentId. */ entries: Record; /** Fleet-wide accumulated cost (from FleetUsageAggregator). */ totalCost: number; /** Optional roster for resolving role ids to display names. */ roster?: Record | undefined; /** Live leader todo board, rendered as a compact mission queue. */ todos?: readonly TodoItem[] | undefined; /** 1s clock tick so activity meters and elapsed labels stay live. */ nowTick?: number | undefined; /** When set, LEADER remains visible with a collab-session badge. */ collabSession?: { sessionId: string | null; bugCount: number; planCount: number; evalCount: number; } | null; /** Optional column width cap (when rendered beside a sidebar). */ maxWidth?: number | undefined; } type SwarmColor = 'blue' | 'cyan' | 'green' | 'gray' | 'red' | 'yellow'; export interface SwarmCell { id: string; index: string; name: string; meter: string; activity: string; metrics: string; statusIcon: string; statusLabel: string; elapsed: string; color: SwarmColor; dim?: boolean | undefined; } export interface SwarmGrid { columns: number; tileWidth: number; overflow: number; rows: SwarmCell[][]; } export interface TodoPreviewRow { id: string; marker: string; text: string; color: SwarmColor; dim?: boolean | undefined; } export declare function truncToWidth(text: string, width: number): string; export declare function activityText(entry: FleetEntry, now: number): string; export declare function swarmMeter(entry: FleetEntry, now: number, width?: number): string; export declare function swarmColumnCount(width: number): number; export declare function selectSwarmEntries(entries: Record, _now: number, opts?: { includeLeader?: boolean | undefined; }): FleetEntry[]; export declare function buildSwarmGrid(entries: Record, now: number, width: number, opts?: { includeLeader?: boolean | undefined; maxRows?: number | undefined; roster?: Record | undefined; }): SwarmGrid; export declare function buildTodoPreviewRows(todos: readonly TodoItem[] | undefined, width: number, maxRows?: number): TodoPreviewRow[]; /** * Always-visible mission-control view for active subagents. The detailed F3 * monitor owns transcripts and drill-down; this panel stays compact and makes * the fleet's current shape readable at a glance. */ export declare function FleetPanel({ entries, totalCost, roster, todos, nowTick, collabSession, maxWidth, }: FleetPanelProps): React.ReactElement | null; export {}; //# sourceMappingURL=fleet-panel.d.ts.map