/**
 * Overall weighted rollup across the six dimension scores.
 *
 * Produces the headline number + letter the customer sees first
 * (dashboard banner, CLI summary line), the rating-tier letter
 * derived from that score via the uniform thresholds in
 * `thresholds.ts`, and a cross-dimension `topActions[]` list
 * sorted by weighted score-impact so the customer sees the
 * single best move across all dimensions.
 *
 * Dimension weights (sum to 1.0):
 *   Testing                25%
 *   Quality                20%
 *   Security               20%
 *   Developer Experience   15%
 *   Documentation          10%
 *   Maintainability        10%
 *
 * Cross-dimension `topActions[]` ranks each dimension's
 * top-action by its weighted contribution to the overall score
 * (`upliftIfFixed * dimensionWeight`). Customers reading the
 * health report's top-of-document recommendation see the single
 * fix that lifts the overall number most — regardless of which
 * dimension it lives in.
 */
import type { DimensionScore } from '../analyzers/types';
import type { Rating, TopAction } from './result';
export type DimensionId = 'testing' | 'quality' | 'documentation' | 'security' | 'maintainability' | 'developerExperience';
export declare const DIMENSION_WEIGHTS: Record<DimensionId, number>;
/** Human-readable label for renderers. */
export declare const DIMENSION_LABEL: Record<DimensionId, string>;
/** A top-action lifted across dimensions, retaining which dimension it
 *  came from so the renderer can label the source. */
export interface CrossDimensionAction extends TopAction {
    readonly dimension: DimensionId;
    readonly dimensionLabel: string;
    /** Per-dimension uplift multiplied by the dimension's weight. The
     *  cross-dimension list is sorted by this value descending. */
    readonly weightedUplift: number;
}
export interface OverallResult {
    readonly overallScore: number;
    readonly rating: Rating;
    /** Cross-dimension top-actions sorted by weighted score-impact. */
    readonly topActions: readonly CrossDimensionAction[];
}
/**
 * Compute the weighted overall score, rating letter, and cross-
 * dimension top-actions list from the six per-dimension scores.
 */
export declare function computeOverall(dimensions: Record<DimensionId, DimensionScore>, options?: {
    topActionsLimit?: number;
}): OverallResult;
//# sourceMappingURL=overall.d.ts.map