import type React from 'react'; import type { FleetEntry } from '../app-state.js'; export declare function fleetStatusVisual(status: FleetEntry['status']): { glyph: string; color: string; }; export declare function liveSessionGlyph(status: string): string; export declare function liveSessionColor(status: string): string; export declare function fmtRelative(iso: string | undefined, now?: number): string; export declare function fmtShortDuration(ms: number): string; /** * Shared "empty state" row used by every routed F-twin sidebar panel and the * persistent cards. Replaces the patchwork of `◇ scanning for links…`, * `{glyphs.dividerDot} no X`, etc. with one consistent look: * * · no sessions * * The leading `·` (dividerDot) is the muted accent, the message is in * `theme.textMuted`, and the row honors the rail's body width. Callers * only supply the noun (and an optional active-verb form for "scanning" * style progress states). Keep the language lower-case to read as a * quiet signal rather than a banner. */ export declare function EmptyState({ message, innerWidth, variant, }: { message: string; innerWidth: number; /** `idle` is the standard "no X" / "no data yet" hint. `scanning` is * for live-discovery states (e.g. probing connections) where the dot * pulses in the accent color so a glance down the rail reads as * "actively working". */ variant?: 'idle' | 'scanning' | undefined; }): React.ReactElement; export declare function SidebarWorklistRow({ icon, iconColor, label, labelColor, innerWidth, dim, strikethrough, }: { icon: string; iconColor: string; label: string; labelColor: string; innerWidth: number; dim?: boolean | undefined; strikethrough?: boolean | undefined; }): React.ReactElement; //# sourceMappingURL=sidebar-panels-shared.d.ts.map