import type React from 'react'; /** * Head-truncate a chip's free-text payload (branch, path, project name) with a * trailing ellipsis so one long value can't blow out the line width. */ export declare function truncateChip(text: string, max: number): string; /** * Recover the visible plain text of a rendered chip by walking its React * element tree (string/number leaves only). */ export declare function nodeText(node: React.ReactNode): string; export declare function planChipFit(widths: number[], budget: number, sepCost?: number): number; export interface TokenDisplayTotals { input: number; output: number; } export declare function tokenDisplayTotals(usage: { input: number; output: number; cacheRead?: number | undefined; cacheWrite?: number | undefined; } | undefined, currentRequest: { input: number; cacheRead: number; cacheWrite?: number | undefined; } | undefined, estimatedInput?: number | undefined): TokenDisplayTotals; export declare function hasTokenDisplay(tokens: TokenDisplayTotals): boolean; export declare function stateChip(state: 'idle' | 'running' | 'streaming' | 'aborting', fleetRunning: number, thinkingWord?: string | undefined): { label: string; color: string; }; export declare function renderProgress(ratio: number, width: number): string; export declare function contextBarColor(ratio: number): string; export declare function renderMeter(ratio: number, width: number): string; /** * Block-style meter for the sidebar — a solid fill (`█`) plus an empty track * (`░`). Returned as two segments so the caller can color the fill (e.g. by * context pressure via {@link contextBarColor}) independently of the dim track. * Width-safe: `filled.length + empty.length === max(1, width)` always holds. */ export declare function blockMeter(ratio: number, width: number): { filled: string; empty: string; }; /** * Render a 0..1 ratio history as a compact sparkline (oldest → newest, the * latest sample is the last character). Each value maps onto one of the eight * block levels, so a flat history renders as a flat line and spikes pop as * peaks. Only the trailing `width` samples are drawn; a width of 0 (or an * empty history) renders nothing. */ export declare function sparkline(values: readonly number[], width: number): string; /** * A morphing dial glyph that fills like a loading ring as the ratio rises: * `○` (idle) → `◔` → `◑` → `◕` → `●` (saturated). Non-bar replacement for * block meters in the sidebar SYSTEM card. Same glyph family as the * session-status dots (● ◉ ◐ ○) already used elsewhere in the TUI. */ export declare function dialGlyph(ratio: number): string; export declare function fmtTok(n: number): string; export declare function fmtMemory(bytes: number): string; export declare function fmtElapsed(ms: number): string; export declare function fmtDebugBytes(n: number): string; //# sourceMappingURL=status-bar-format.d.ts.map