import type { CardOverviewVariant, OverviewMetric, SafetyScoreLevel } from './card-overview-types'; export interface CardOverviewCollapseGeometry { active: boolean; expandedHeight: number; offset: number; visibleHeight: number; } /** * Choose the column count for the metric grid. * * Cells that all fit across one row stay on one row: a full row is already * balanced, so there is nothing to distribute. * * Once the width forces a wrap, prefer equal rows — the widest column count * that divides the total exactly. Eight cells therefore step 8 → 4+4 → 2+2+2+2 * as the width narrows, never trading an equal split for a shorter grid. * * Totals with no equal split available fall back to the fewest rows that fit, * spread as evenly as possible, which leaves one short final row: five cells at * a four-cell width are 3+2, seven are 4+3. * * Width is the only ceiling. There is deliberately no column cap: a wide card * showing six cells that each clear `minCellWidth` renders all six across. */ export declare function resolveOverviewGridColumns(options: { cellCount: number; availableWidth: number; minCellWidth: number; }): number; export declare function resolveCardOverviewCollapseGeometry(options: { variant: CardOverviewVariant; progress: number; expandedHeight: number; compactHeight: number; }): CardOverviewCollapseGeometry; export declare function resolveSafetyScoreLevel(value: string | number): SafetyScoreLevel | undefined; export declare function resolveOverviewRovingIndex(metrics: readonly OverviewMetric[], focusedIndex: number): number; export declare function findNextOverviewMetricIndex(metrics: readonly OverviewMetric[], from: number, step: -1 | 1): number; //# sourceMappingURL=card-overview-controller.d.ts.map