import { type SupersedeState } from './supersedeStore';
import type { JobState } from './reviewOutbox';
import type { PatternStatus } from '../types';
export interface PatternMetrics {
    total: number;
    byStatus: Record<PatternStatus | 'legacy', number>;
}
export interface SkillNotesMetrics {
    runtimeFiles: number;
    runtimeNotes: number;
    curatedFiles: number;
    curatedNotes: number;
}
export interface FeedbackMetrics {
    total: number;
    positive: number;
    negative: number;
}
export interface SelfImproveMetrics {
    collectedAt: number;
    patterns: {
        positive: PatternMetrics;
        negative: PatternMetrics;
        quick: PatternMetrics;
    };
    outbox: {
        byState: Record<JobState, number>;
        dailyJobs: number;
    };
    supersede: Record<SupersedeState, number>;
    skillNotes: SkillNotesMetrics;
    feedback: FeedbackMetrics;
    /** Active analyze() snapshots — surfaced so memory leaks are visible. */
    activeRunSnapshots: number;
    /** Errors that happened during aggregation. Empty array on a clean run. */
    warnings: string[];
}
export declare function collectSelfImproveMetrics(opts?: {
    patternsFile?: string;
    negativePatternsFile?: string;
    quickPatternsFile?: string;
    feedbackFile?: string;
    skillNotesDir?: string;
    curatedSkillNotesDir?: string;
}): SelfImproveMetrics;
//# sourceMappingURL=metricsAggregator.d.ts.map