/**
 * Reflect-nudge aggregator — groups refinement signals by target skill,
 * applies the ≥3 signal threshold, and ranks by severity × recency.
 *
 * Shared by the session-end nudge (picks the top suggestion) and the
 * `sw:reflect --status` dashboard section (lists everything above threshold).
 *
 * @module core/reflect-nudge/aggregator
 */
import type { SignalSource } from '../../types/skill-signals.js';
/** Minimum number of refinement signals a skill needs to surface. */
export declare const REFINEMENT_SUGGESTION_THRESHOLD = 3;
/** Per-skill aggregate used by both the nudge and the dashboard. */
export interface SkillSuggestion {
    slug: string;
    totalCount: number;
    countsBySource: Record<SignalSource, number>;
    highestSeverity: 'low' | 'medium' | 'high';
    severityScore: number;
    lastDetectedAt: string;
    sampleEvidence: string;
}
/**
 * Aggregate signals from disk and return skills meeting the threshold,
 * sorted by severity × recency (descending).
 *
 * `threshold` defaults to {@link REFINEMENT_SUGGESTION_THRESHOLD}. Pass `1`
 * for the nudge path (which wants the top suggestion regardless of total).
 */
export declare function aggregateSuggestions(signalsFilePath: string, opts?: {
    threshold?: number;
}): Promise<SkillSuggestion[]>;
//# sourceMappingURL=aggregator.d.ts.map