import { type ClassValue } from "clsx";
import { Difficulty, DateFormatVariant } from "../types/index.js";
export declare function cn(...inputs: ClassValue[]): string;
/**
 * Returns Tailwind classes for styling label badges
 * Only difficulty:Easy/Medium/Hard get special colors; all others use hash-based palette
 */
export declare const getLabelColor: (label: string) => string;
/**
 * Returns Tailwind classes for styling difficulty badges
 * @deprecated Use getLabelColor with difficulty: prefixed labels instead
 */
export declare const getDifficultyColor: (difficulty: Difficulty) => string;
/**
 * Formats a timestamp string to a localized date string
 * @param timestamp - ISO timestamp string
 * @param variant - 'date' (date only), 'datetime' (default, with time), 'detailed' (with seconds)
 */
export declare const formatDate: (timestamp: string, variant?: DateFormatVariant) => string;
/**
 * Formats a timestamp to relative time (e.g., "5m ago", "2h ago")
 * Falls back to formatDate for timestamps older than 7 days
 */
export declare const formatRelativeTime: (timestamp: string) => string;
/**
 * Gets the display name for a model ID from config
 */
export declare const getModelName: (modelId: string) => string;
/**
 * Returns a short, stable suffix for a TestCaseRun id, suitable for embedding
 * in an auto-generated run name. Run ids are shaped
 * `report-<timestamp>-<random>` (file adapter) or arbitrary keys (OpenSearch),
 * so we take the trailing 6 characters which gives a recognizable yet compact
 * label without exposing the full id. Falls back to the full id for very short
 * ids (e.g. legacy data).
 */
export declare const getRunShortId: (runId: string) => string;
/**
 * Resolves the display name for a TestCaseRun.
 *
 * Prefers the persisted `name` field (set from the run config dialog or
 * auto-generated server-side). Falls back to `Run <short-id>` for older
 * runs that pre-date the field, so every row in the runs list has a
 * recognizable label instead of a raw id slice.
 */
export declare const getRunDisplayName: (run: {
    id: string;
    name?: string;
}) => string;
/**
 * Computes a single "overall score" percentage to display next to a run in
 * a list, from whatever metrics that run happens to carry.
 *
 * Why this is non-trivial:
 *   - Only the *RCA Default* system evaluator emits a metric named `accuracy`.
 *     Other system evaluators (Factuality, Tool Use, Reasoning, Safety) and
 *     any custom evaluator emit completely different metric names like
 *     `tool_selection_accuracy`, `reasoning_coherence`, `bias_detection`, etc.
 *   - The runs list used to hardcode `run.metrics?.accuracy ?? 0`, which made
 *     every non-RCA run display `0%` even when the judge had passed it.
 *
 * The fix is to take the **arithmetic mean of all populated numeric metrics**
 * on the run. This works for any evaluator without having to look up its
 * `scoringConfig`, gives a reasonable summary number, and degrades to `null`
 * (rendered as `—`) when no metrics are present — the only honest answer
 * for runs whose judge call hasn't completed or which were never scored.
 *
 * Returns `null` when there are no numeric metrics; otherwise an integer
 * percentage rounded to the nearest whole number.
 */
export declare const getRunOverallScore: (metrics: Record<string, number | undefined> | undefined | null) => number | null;
/**
 * Returns theme-aware Tailwind classes for pass rate badges
 * Light mode: More saturated backgrounds with darker text for better visibility
 * Dark mode: Lighter text on dark backgrounds
 */
export declare const getPassRateColor: (passRate: number) => string;
/**
 * Returns theme-aware Tailwind classes for status indicators
 * Used for success/error/warning/info states
 * Light mode: More saturated backgrounds (100 shade) for better visibility
 * Dark mode: Semi-transparent darker backgrounds with lighter text
 */
export declare const getStatusColor: (status: "success" | "error" | "warning" | "info" | "neutral") => string;
/**
 * Returns theme-aware text color classes for metrics
 * Used for displaying metric values in stats cards
 * Light mode: Darker colors for WCAG AA compliance (4.5:1 contrast ratio)
 * Dark mode: Lighter colors for visibility on dark backgrounds
 */
export declare const getMetricTextColor: (type: "primary" | "success" | "error" | "warning" | "info" | "secondary") => string;
/**
 * Truncates text to a specified length with ellipsis
 */
export declare const truncate: (text: string, length: number) => string;
//# sourceMappingURL=utils.d.ts.map