import type { Linter } from 'eslint'; export interface LintStatsResult { filePath: string; stats?: Linter.Stats; } export interface RulePerformanceSample { filePath: string; passIndex: number; totalMs: number; } export interface RulePerformance { averageMs: number; fileCount: number; maxMs: number; medianMs: number; percentile95Ms: number; ruleId: string; sampleCount: number; shareOfRuleTime: number; slowestSample: RulePerformanceSample; totalMs: number; } export interface RulePerformanceSummary { fileCount: number; fixMs: number; fixPassCount: number; parseMs: number; passCount: number; ruleMs: number; timedFileCount: number; totalMs: number; } export interface RulePerformanceReport { rules: RulePerformance[]; summary: RulePerformanceSummary; } /** * Aggregates ESLint stats output into rule-level performance summaries. * * The resulting metrics keep separate views for cumulative cost, typical per-sample * cost, and tail latency so broad hotspots and narrow spikes remain distinguishable. */ export declare const profileEslintRulePerformance: (results: readonly LintStatsResult[]) => RulePerformanceReport; //# sourceMappingURL=eslint-rule-performance.d.ts.map