import type { MetricStatus } from '../store/reducers/tenants/types'; import type { ProgressStatus } from './progress'; export interface MetricWithUsage { usage?: number; used?: number; limit?: number; } export interface DiagnosticsCardMetric { title?: string; value?: number; capacity?: number; formatValues?: (value?: number, total?: number) => string; percents?: boolean; withOverflow?: boolean; } export interface MetricCardResult { metrics: DiagnosticsCardMetric[]; status: MetricStatus; } export interface MetricStats { used?: number; limit?: number; } export interface MetricAggregates { totalUsed: number; totalLimit: number; usagePercent: number; status: ProgressStatus; } export declare function getMetricPercentPrecision(usagePercent: number): 0 | 1; /** * Generic function to create DiagnosticsCardMetric array and determine status */ export declare const createDiagnosticsCardMetric: (items: T[] | undefined, mapFunction: (item: T) => DiagnosticsCardMetric) => MetricCardResult; /** * Get the highest severity status from an array of statuses */ export declare const getHighestSeverityStatus: (statuses: MetricStatus[]) => MetricStatus; /** * Calculate metric aggregates (sum of used/limit values) and determine status * This replaces the repetitive calculation logic from MetricsTabs.tsx */ export declare const calculateMetricAggregates: (items?: T[]) => MetricAggregates;