import React from 'react'; import type { FleetEntry } from '../app.js'; export interface LiveActivityStripProps { /** Per-subagent state from the FleetEntry table. */ entries: Record; /** Re-renders every tick so elapsed timers stay live; otherwise the * bar freezes between FleetEntry updates (which can be 30s+ apart * if a subagent is parked in one tool). */ nowTick: number; /** Optional cap on rows so a 20-subagent fleet doesn't push the * input off-screen. Default 4 — matches the status bar's 4th line. */ maxRows?: number | undefined; } /** * Build the fixed-height set of strip rows. ALWAYS returns exactly * `maxRows` strings, each already truncated to `width` columns (no wrap). * * This is the inline-mode contract every bottom live region in the TUI * must honor (see live-tail-fixed-height.test.ts): a region whose height * or visual-row count changes between renders scrolls the screen on every * update, and in inline mode each scroll strands the changed rows into * native scrollback — the "● Security Scanner …" line re-stamped dozens of * times per second when a fleet is busy. Constant height + hard truncation * keeps Ink's log-update clear-and-rewrite in lockstep with what's drawn, * so nothing leaks. The leading "● " bullet is rendered by the component * (colored), so these strings exclude it and are truncated to `width - 2`. */ export declare function activityStripRows(entries: Record, now: number, maxRows: number, width: number): string[]; /** * Compact strip that sits directly above the input area, one line per * running subagent. Renders at a CONSTANT height (`maxRows`) with every * row hard-truncated to the terminal width, so it can never bleed into * native scrollback in inline mode (see `activityStripRows`). * * Renders nothing only when the fleet table is completely empty (e.g. * after /clear), so the input sits flush against history during solo work. */ export declare const LiveActivityStrip: React.MemoExoticComponent<({ entries, nowTick, maxRows, }: LiveActivityStripProps) => React.ReactElement | null>; //# sourceMappingURL=live-activity-strip.d.ts.map