/**
 * Type definitions for AI validation module
 */
import type { Vulnerability, VulnerabilitySeverity, VulnerabilityCategory } from '../shared/types';
export interface ValidationStats {
    /** Total findings processed (input) */
    totalFindings: number;
    /** Findings that went through AI validation */
    validatedFindings: number;
    /** Findings confirmed as true positives */
    confirmedFindings: number;
    /** Findings dismissed as false positives */
    dismissedFindings: number;
    /** Findings with severity adjusted down */
    downgradedFindings: number;
    /** Findings auto-dismissed before AI (test files, etc.) */
    autoDismissedFindings: number;
    /** Estimated input tokens used */
    estimatedInputTokens: number;
    /** Estimated output tokens used */
    estimatedOutputTokens: number;
    /** Estimated cost in USD (based on Haiku pricing) */
    estimatedCost: number;
    /** Number of API calls made */
    apiCalls: number;
    /** Cache creation tokens (first write to cache) */
    cacheCreationTokens: number;
    /** Cache read tokens (subsequent reads from cache) */
    cacheReadTokens: number;
    /** Cache hit rate (0-1) */
    cacheHitRate: number;
}
export interface AIValidationResult {
    vulnerabilities: Vulnerability[];
    stats: ValidationStats;
}
export interface ValidationResult {
    index: number;
    keep: boolean;
    notes?: string;
    adjustedSeverity?: VulnerabilitySeverity | null;
    reason?: string;
    validationNotes?: string;
    impact?: string;
    fixSuggestion?: string;
}
export interface AIFinding {
    lineNumber: number;
    severity: VulnerabilitySeverity;
    category: VulnerabilityCategory;
    title: string;
    description: string;
    suggestedFix: string;
}
export interface Layer3Context {
    /** Middleware configuration from project scan */
    middlewareConfig?: {
        hasAuthMiddleware: boolean;
        authType?: string;
        protectedPaths: string[];
    };
    /** Auth helper context */
    authHelpers?: {
        hasThrowingHelpers: boolean;
        summary: string;
    };
    /** Additional context string */
    additionalContext?: string;
}
export interface AutoDismissRule {
    name: string;
    check: (finding: Vulnerability, fileContent?: string) => boolean;
    reason: string;
}
export interface StatsAccumulator {
    apiCalls: number;
    estimatedInputTokens: number;
    estimatedOutputTokens: number;
    cacheReadTokens: number;
    estimatedCost: number;
    validatedFindings: number;
    confirmedFindings: number;
    dismissedFindings: number;
    downgradedFindings: number;
}
export declare function createStatsAccumulator(): StatsAccumulator;
export declare function createInitialStats(totalFindings: number): ValidationStats;
//# sourceMappingURL=types.d.ts.map