import type { ReviewStats } from '../../../../modules/statistics-insights/entities/stats/projectStats.js';
import type { CategoryLevels } from '../../../../modules/statistics-insights/entities/insight/developerInsight.js';
import type { InsightCategory } from '../../../../modules/statistics-insights/entities/insight/insightCategory.js';
import type { InsightTrend } from '../../../../modules/statistics-insights/entities/insight/insightTrend.js';
import type { DeveloperTitle } from '../../../../modules/statistics-insights/entities/insight/developerTitle.js';
export declare const MINIMUM_REVIEWS_THRESHOLD = 5;
export interface DeveloperMetrics {
    averageScore: number;
    averageBlocking: number;
    averageWarnings: number;
    averageDuration: number;
    averageCodeVolume: number;
    codeVolumeScoreCorrelation: number;
}
export interface TeamMetrics {
    averageScore: number;
    averageBlocking: number;
    averageWarnings: number;
    averageDuration: number;
    averageCodeVolume: number;
}
export declare const ABSOLUTE_BENCHMARKS: TeamMetrics;
export declare function average(values: number[]): number;
export declare function averageOfScores(reviews: ReviewStats[]): number;
export declare function averageCodeVolume(reviews: ReviewStats[]): number;
export declare function clampLevel(level: number): number;
export declare function normalizeHigherIsBetter(value: number, teamAverage: number, maxValue: number): number;
export declare function normalizeLowerIsBetter(value: number, teamAverage: number): number;
export declare function trendToScore(trend: InsightTrend): number;
export declare function invertTrend(trend: InsightTrend): InsightTrend;
export declare function computeTrendForMetric(reviews: ReviewStats[], extractor: (review: ReviewStats) => number): InsightTrend;
export declare function computeCodeVolumeTrend(reviews: ReviewStats[]): InsightTrend;
export declare function identifyStrengths(categoryLevels: CategoryLevels): InsightCategory[];
export declare function identifyWeaknesses(categoryLevels: CategoryLevels): InsightCategory[];
export declare function identifyTopPriority(categoryLevels: CategoryLevels): InsightCategory | null;
export declare function computeTitle(categoryLevels: CategoryLevels): DeveloperTitle;
export declare function computeOverallLevel(categoryLevels: CategoryLevels): number;
export declare function computeDeveloperMetrics(reviews: ReviewStats[]): DeveloperMetrics;
export declare function computeTeamMetrics(reviewsByDeveloper: Map<string, ReviewStats[]>): TeamMetrics;
export declare function computeCategoryLevels(reviews: ReviewStats[], metrics: DeveloperMetrics, teamMetrics: TeamMetrics): CategoryLevels;
//# sourceMappingURL=insightLevelComputation.service.d.ts.map