import type { HarnessState, Medium } from "../types.js"; export interface RuleStats { ruleId: string; ruleName: string; medium: Medium; confidence: number; cognitiveRequired: boolean; category?: string; } export interface AnalyticsData { projectDir: string; collectedAt: string; summary: { totalRules: number; byMedium: Record; averageConfidence: number; cognitiveRequired: number; highConfidence: number; }; rules: RuleStats[]; history: Array<{ timestamp: string; totalRules: number; byMedium: Record; }>; } export interface RuleUsageRecord { ruleId: string; triggeredCount: number; fixedCount: number; bypassedCount: number; lastTriggered: string | null; } export declare class RuleAnalytics { private projectDir; constructor(projectDir: string); /** * Collect analytics from the current state. */ collect(state: HarnessState): AnalyticsData; /** * Get current analytics data (without re-collecting). */ getCurrent(): AnalyticsData | null; /** * Record rule usage events. */ recordUsage(events: Array<{ ruleId: string; event: "trigger" | "fix" | "bypass"; }>): void; /** * Get rule usage records. */ getUsageRecords(): RuleUsageRecord[]; private _inferCategory; private _loadHistory; private _persist; private _loadUsageRecords; private _persistUsageRecords; } //# sourceMappingURL=rule_analytics.d.ts.map