/**
 * GitHub Action Types
 *
 * Types for the Vaspera Hardening GitHub Action.
 *
 * @module action/types
 */
import type { Severity } from "../certification/types.js";
import type { AggregatedScanResult } from "../scanners/types.js";
/**
 * Action input parameters
 */
export interface ActionInputs {
    mode: "scan" | "certify" | "diff";
    failOn: Severity | "none";
    uploadSarif: boolean;
    commentOnPr: boolean;
    scanners: string[];
    agents: string[];
    anthropicApiKey?: string;
    workingDirectory: string;
    configFile?: string;
}
/**
 * Action output values
 */
export interface ActionOutputs {
    certificationId?: string;
    totalFindings: number;
    criticalCount: number;
    highCount: number;
    mediumCount: number;
    lowCount: number;
    sarifFile?: string;
    certificationLevel?: string;
    scannerSummary: string;
}
/**
 * GitHub context information
 */
export interface GitHubContext {
    owner: string;
    repo: string;
    sha: string;
    ref: string;
    eventName: string;
    pullRequest?: {
        number: number;
        base: {
            sha: string;
            ref: string;
        };
        head: {
            sha: string;
            ref: string;
        };
    };
    workflow: string;
    runId: number;
    runNumber: number;
    actor: string;
}
/**
 * Changed file information for diff mode
 */
export interface ChangedFile {
    filename: string;
    status: "added" | "removed" | "modified" | "renamed" | "copied" | "changed" | "unchanged";
    additions: number;
    deletions: number;
    changes: number;
    previousFilename?: string;
}
/**
 * PR comment content
 */
export interface PrCommentContent {
    title: string;
    summary: string;
    findingsTable: string;
    scannerStatus: string;
    certificationBadge?: string;
    footer: string;
}
/**
 * Action result
 */
export interface ActionResult {
    success: boolean;
    outputs: ActionOutputs;
    scanResult?: AggregatedScanResult;
    certificationId?: string;
    sarifPath?: string;
    error?: string;
}
/**
 * Severity threshold for failing the action
 */
export declare const SEVERITY_LEVELS: Record<Severity | "none", number>;
/**
 * Check if findings exceed the fail threshold
 */
export declare function exceedsThreshold(bySeverity: Record<Severity, number>, threshold: Severity | "none"): boolean;
//# sourceMappingURL=types.d.ts.map