/**
 * Types and interfaces for the vskill audit module.
 */
import type { PatternCheck, Severity, ScanVerdict } from "../scanner/types.js";
export type { Severity, ScanVerdict };
/** Confidence level for a finding */
export type Confidence = "high" | "medium" | "low";
/** Source of a finding */
export type FindingSource = "tier1" | "llm";
/** A file discovered for auditing */
export interface AuditFile {
    /** Relative path within the audited directory */
    path: string;
    /** File content as a string */
    content: string;
    /** File size in bytes */
    sizeBytes: number;
}
/** A single step in a data flow trace */
export interface DataFlowStep {
    file: string;
    line: number;
    description: string;
    code: string;
}
/** Data flow trace from LLM analysis */
export interface DataFlowTrace {
    steps: DataFlowStep[];
}
/** A single audit finding */
export interface AuditFinding {
    /** Unique finding ID (e.g., "AF-001") */
    id: string;
    /** Pattern/rule ID that triggered this finding */
    ruleId: string;
    /** Severity level */
    severity: Severity;
    /** Confidence level */
    confidence: Confidence;
    /** Category of the vulnerability */
    category: string;
    /** Human-readable description */
    message: string;
    /** Relative file path */
    filePath: string;
    /** Line number (1-indexed) */
    line: number;
    /** Column number (optional) */
    column?: number;
    /** End line number (optional, for multi-line findings) */
    endLine?: number;
    /** Code snippet with context */
    snippet: string;
    /** Source of the finding */
    source: FindingSource;
    /** Data flow trace (from LLM analysis) */
    dataFlow?: DataFlowTrace;
    /** Suggested remediation (when --fix is used) */
    suggestedFix?: string;
}
/** Summary statistics for an audit */
export interface AuditSummary {
    critical: number;
    high: number;
    medium: number;
    low: number;
    info: number;
    total: number;
    score: number;
    verdict: ScanVerdict;
}
/** Configuration for an audit run */
export interface AuditConfig {
    excludePaths: string[];
    severityThreshold: Severity;
    maxFiles: number;
    maxFileSize: number;
    tier1Only: boolean;
    llmProvider: string | null;
    llmTimeout: number;
    llmConcurrency: number;
    customPatterns: PatternCheck[];
    fix: boolean;
}
/** Complete audit result */
export interface AuditResult {
    rootPath: string;
    startedAt: string;
    completedAt: string;
    durationMs: number;
    filesScanned: number;
    filesWithFindings: number;
    findings: AuditFinding[];
    summary: AuditSummary;
    config: AuditConfig;
}
/** Create a default AuditConfig with sensible defaults */
export declare function createDefaultAuditConfig(): AuditConfig;
