/** * @license * Copyright 2026 Steven Roussey * SPDX-License-Identifier: Apache-2.0 */ import React from "react"; import type { RunTaskCounts } from "../model/runCensus"; import type { RunState } from "../model/runRowModel"; import { deriveRunState, runStatusBarModel } from "../model/runRowModel"; export { deriveRunState, runStatusBarModel }; export type { RunState }; /** * The run's footer: how much of the graph has landed, what it spent, and how * long it has been going. Ruled off from the rows because it reports on the run * rather than on any task, and an unruled line directly under the last row * reads as one more task. * * The clock sits hard right, on its own, because it is the one field that * changes every second: leaving it in the flow would shove the counts and the * spend sideways each tick, and a number nobody can hold still is a number * nobody reads. */ export declare function RunStatusBar({ usageLine, counts, state, elapsedMs, hiddenRows, }: { readonly usageLine: string; readonly counts: RunTaskCounts; readonly state: RunState; readonly elapsedMs: number | undefined; /** Sibling rows the viewport is holding back; reported so nothing is hidden silently. */ readonly hiddenRows?: number; }): React.ReactElement | null;