import { type Dispatch, type SetStateAction } from 'react'; /** * Capitalize a short UI label. */ export declare const capitalize: (value: string) => string; export declare const formatContentTitle: (parts: string[]) => string; export declare const hasJsonValue: (value: unknown) => boolean; /** * Truncate a string to fit a column, appending an ellipsis when clipped. */ export declare const truncate: (str: string, max: number) => string; /** * Format an ISO timestamp into the short `MMM d HH:mm` form used in panel * row tables (e.g. `Apr 28 18:56`). Returns `-` when the input is missing * or unparseable. */ export declare const formatStartedShort: (iso: string | undefined) => string; /** * Compute the index of the first visible row for a windowed list. Keeps * the selected row centred when possible and clamps so the window never * runs off the end of the array. */ export declare const computeWindowStart: (selectedIndex: number, total: number, visibleRows: number) => number; export declare const cycleValue: (values: readonly T[], current: T, direction: 1 | -1) => T; export declare const clampIndex: (index: number, count: number) => number; export declare const useListSelection: (count: number, initialIndex?: number | (() => number)) => { selectedIndex: number; setSelectedIndex: Dispatch>; selectPrevious: () => void; selectNext: () => void; };