/**
 * SARIF Export Module
 *
 * Exports certification findings to SARIF (Static Analysis Results Interchange Format)
 * for integration with GitHub Security, SonarQube, and other analysis tools.
 *
 * SARIF Spec: https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html
 *
 * @module certification/sarif
 */
import { Certification } from "./types.js";
/**
 * SARIF severity levels
 */
type SarifLevel = "error" | "warning" | "note" | "none";
/**
 * SARIF report structure (simplified for common use)
 */
export interface SarifReport {
    $schema: string;
    version: string;
    runs: SarifRun[];
}
export interface SarifRun {
    tool: {
        driver: {
            name: string;
            version: string;
            informationUri: string;
            rules: SarifRule[];
        };
    };
    results: SarifResult[];
    invocations: SarifInvocation[];
}
export interface SarifRule {
    id: string;
    name: string;
    shortDescription: {
        text: string;
    };
    fullDescription?: {
        text: string;
    };
    help?: {
        text: string;
    };
    defaultConfiguration: {
        level: SarifLevel;
    };
    properties?: {
        tags?: string[];
        "security-severity"?: string;
    };
}
export interface SarifResult {
    ruleId: string;
    level: SarifLevel;
    message: {
        text: string;
    };
    locations: SarifLocation[];
    partialFingerprints?: Record<string, string>;
    properties?: {
        confidence?: number;
        agent?: string;
        category?: string;
        instances?: number;
    };
}
export interface SarifLocation {
    physicalLocation: {
        artifactLocation: {
            uri: string;
            uriBaseId?: string;
        };
        region?: {
            startLine: number;
            startColumn?: number;
            endLine?: number;
            endColumn?: number;
        };
    };
}
export interface SarifInvocation {
    executionSuccessful: boolean;
    startTimeUtc?: string;
    endTimeUtc?: string;
}
/**
 * Generate a SARIF report from certification data
 */
export declare function generateSarifReport(certification: Certification): SarifReport;
/**
 * Export certification to SARIF file
 */
export declare function exportToSarif(projectPath: string, certification: Certification, outputFilename?: string): Promise<string>;
/**
 * Export to GitHub Code Scanning format (compatible with SARIF upload action)
 */
export declare function exportForGitHub(projectPath: string, certification: Certification): Promise<string>;
/**
 * Export to SonarQube format (subset of SARIF)
 */
export declare function exportForSonarQube(projectPath: string, certification: Certification): Promise<string>;
export {};
//# sourceMappingURL=sarif.d.ts.map