/**
 * Dashboard Metrics Aggregation Utilities
 *
 * Provides functions to aggregate benchmark run data for dashboard visualization.
 */
import { Benchmark, EvaluationReport } from '../types/index.js';
/**
 * A single data point for the trend chart, representing metrics at a point in time
 */
export interface TrendDataPoint {
    date: string;
    agentKey: string;
    agentName: string;
    avgCostUsd: number;
    avgDurationMs: number;
    avgTokens: number;
    passRate: number;
    runCount: number;
}
/**
 * Aggregated metrics for a benchmark × agent combination
 */
export interface BenchmarkAgentMetrics {
    benchmarkId: string;
    benchmarkName: string;
    agentKey: string;
    agentName: string;
    runCount: number;
    avgLatencyMs: number;
    avgCostUsd: number;
    avgTokens: number;
    avgPassRate: number;
    lastRunDate: string;
}
/**
 * Filter configuration for dashboard
 */
export interface DashboardFilter {
    benchmarkId?: string;
    agentKey?: string;
}
/**
 * Time range options for filtering
 */
export type TimeRange = '7d' | '30d' | 'all';
/**
 * Calculate the date cutoff for a given time range
 */
export declare function getDateCutoff(timeRange: TimeRange): Date | null;
/**
 * Get display name for an agent key
 */
export declare function getAgentDisplayName(agentKey: string): string;
/**
 * Aggregate metrics by date and agent for trend chart.
 * Groups runs by date and agent, calculating average metrics for each group.
 */
export declare function aggregateMetricsByDate(benchmarks: Benchmark[], reports: EvaluationReport[], metricsMap: Map<string, {
    costUsd: number;
    durationMs: number;
    tokens: number;
}>, filters?: DashboardFilter, timeRange?: TimeRange): TrendDataPoint[];
/**
 * Aggregate metrics by benchmark × agent combination for the metrics table.
 * Creates one row per unique benchmark-agent pair.
 */
export declare function aggregateMetricsByBenchmarkAgent(benchmarks: Benchmark[], reports: EvaluationReport[], metricsMap: Map<string, {
    costUsd: number;
    durationMs: number;
    tokens: number;
}>): BenchmarkAgentMetrics[];
/**
 * Get unique agent keys from benchmarks for chart legend/filtering
 */
export declare function getUniqueAgents(benchmarks: Benchmark[]): Array<{
    key: string;
    name: string;
}>;
/**
 * Color palette for agents (matches existing chart patterns)
 */
export declare const AGENT_COLORS: Record<string, string>;
/**
 * Get color for an agent key
 */
export declare function getAgentColor(agentKey: string): string;
//# sourceMappingURL=dashboardMetrics.d.ts.map