import { SarifData, Violation } from '../types/sarif.js';
/**
 * Transform SARIF data into different views and formats
 */
export declare class SarifDataTransformer {
    private data;
    constructor(data: SarifData);
    /**
     * Get violations grouped by rule ID
     */
    getViolationsByRule(): Map<string, Violation[]>;
    /**
     * Get violations grouped by severity level
     */
    getViolationsByLevel(): Map<string, Violation[]>;
    /**
     * Get files sorted by violation count (descending)
     */
    getFilesByViolationCount(): Array<{
        file: string;
        count: number;
        violations: Violation[];
    }>;
    /**
     * Get rules sorted by violation count (descending)
     */
    getRulesByViolationCount(): Array<{
        ruleId: string;
        count: number;
        violations: Violation[];
    }>;
    /**
     * Get summary statistics with additional insights
     */
    getDetailedStatistics(): {
        totalRules: number;
        filesWithMostViolations: {
            file: string;
            count: number;
            violations: Violation[];
        }[];
        rulesWithMostViolations: {
            ruleId: string;
            count: number;
            violations: Violation[];
        }[];
        levelBreakdown: {
            [k: string]: Violation[];
        };
        ruleBreakdown: {
            [k: string]: Violation[];
        };
        errorCount: number;
        warningCount: number;
        infoCount: number;
        noteCount: number;
        noneCount: number;
        averageViolationsPerFile: number;
        mostCommonRules: [string, number][];
        totalFiles: number;
        totalViolations: number;
    };
    /**
     * Filter data by various criteria
     */
    filterData(filters: {
        levels?: string[];
        rules?: string[];
        files?: string[];
        minLine?: number;
        maxLine?: number;
    }): SarifData;
    /**
     * Get violations in a specific line range
     */
    getViolationsInRange(startLine: number, endLine: number): Violation[];
    /**
     * Get violations for a specific file
     */
    getFileViolations(fileUri: string): Violation[];
    /**
     * Get violations for a specific rule
     */
    getRuleViolations(ruleId: string): Violation[];
    /**
     * Calculate statistics for given violations
     */
    private calculateStatistics;
}
//# sourceMappingURL=data-transformer.d.ts.map