export type FleetLifecycle = "idle" | "busy" | "paused" | "review" | "offline" | "ambiguous" | "done" | "failed" | "cancelled"; export interface FleetAgentRecord { readonly id: string; readonly handle: string; readonly role: string; readonly model: string; readonly state: FleetLifecycle; readonly spend: number | null; readonly lastActivity: string; readonly mode: "main" | "rpc" | "json"; readonly generation?: string; readonly conversation?: readonly string[]; readonly details?: FleetWorkerDetails; } export interface FleetWorkerDetails { readonly attemptState: string; readonly tierDegraded: boolean; readonly peerPending: number; readonly waitReason: string | null; readonly waitCorrelation: string | null; readonly silentStall: boolean; readonly noProgressStall: boolean; readonly blockers: readonly string[]; readonly awaitingReportReview?: boolean; } export interface FleetProjectionSource { snapshot(): readonly FleetAgentRecord[]; subscribe(listener: () => void): () => void; } export interface FleetListStyle { readonly accent: (value: string) => string; readonly muted: (value: string) => string; readonly dim: (value: string) => string; readonly success: (value: string) => string; readonly warning: (value: string) => string; readonly error: (value: string) => string; readonly bold: (value: string) => string; } export interface FleetListPresentation { readonly style?: FleetListStyle; readonly now?: () => number; } export interface FleetVisibilityOptions { readonly now?: number; readonly cancelledRetentionMs?: number; } export declare function projectVisibleFleet(main: FleetAgentRecord | undefined, workers: readonly FleetAgentRecord[], options?: FleetVisibilityOptions): readonly FleetAgentRecord[]; export declare function adjacentFleetRecord(records: readonly FleetAgentRecord[], recordId: string, delta: -1 | 1): FleetAgentRecord | undefined; export declare class MutableFleetProjectionSource implements FleetProjectionSource { #private; constructor(initial: readonly FleetAgentRecord[]); snapshot(): readonly FleetAgentRecord[]; update(records: readonly FleetAgentRecord[]): void; subscribe(listener: () => void): () => void; } export declare class FleetListModel { #private; constructor(source: FleetProjectionSource, invalidate: () => void, presentation?: FleetListPresentation); get invalidations(): number; get selected(): FleetAgentRecord | undefined; get open(): boolean; focus(): void; close(): void; move(delta: -1 | 1): void; select(recordId: string): boolean; render(width?: number): string[]; dispose(): void; } export type FleetInputAction = { readonly consume: false; } | { readonly consume: true; readonly action: "focus" | "move" | "detail" | "close"; }; export declare function handleFleetInput(options: { readonly data: string; readonly editorText: string; readonly list: FleetListModel; readonly detailOpen?: boolean; }): FleetInputAction; export declare function renderFleetDetail(record: FleetAgentRecord): string[]; export declare function canSteerFleetRecord(record: FleetAgentRecord, currentGeneration: string | undefined): boolean; export type FleetControlStatus = "idle" | "composing" | "requested" | "observed" | "indeterminate"; interface FleetDetailSections { readonly header: readonly string[]; readonly transcript: readonly string[]; readonly footer: readonly string[]; } export declare class FleetDetailController { #private; constructor(options: { readonly record: FleetAgentRecord; readonly resolve: (recordId: string) => FleetAgentRecord | undefined; readonly steer: (recordId: string, generation: string, message: string) => Promise; readonly cancel: (recordId: string, generation: string) => Promise; readonly move?: (recordId: string, delta: -1 | 1) => FleetAgentRecord | undefined; readonly onSelectionChange?: (record: FleetAgentRecord) => void; }); get status(): FleetControlStatus; get currentRecord(): FleetAgentRecord | undefined; render(): string[]; renderSections(): FleetDetailSections; handleInput(data: string): { readonly close: boolean; readonly consumed: boolean; }; } export declare function handleFleetDetailOverlayInput(options: { readonly data: string; readonly controller: FleetDetailController; readonly close: () => void; readonly invalidate: () => void; }): void; export declare function renderFleetDetailOverlay(controller: FleetDetailController, width: number): string[]; export {}; //# sourceMappingURL=fleet-view.d.ts.map