/**
 * Zero-Day Hunter Agent
 *
 * AI agent that reasons about code semantics to find novel vulnerabilities.
 * Uses Claude to analyze code for patterns that pattern-based scanners miss.
 *
 * Focus areas:
 * - Logic Flaws: Inconsistent state handling, broken assumptions
 * - Authentication Bypasses: Ways to skip auth checks
 * - Authorization Issues: Privilege escalation paths
 * - Cryptographic Weaknesses: Weak algorithms, key management
 * - Injection Vectors: Novel injection patterns beyond OWASP
 *
 * @module agents/zero-day-hunter
 */
import type { Severity, Finding } from "../certification/types.js";
/**
 * Configuration for zero-day hunter
 */
export interface ZeroDayHunterConfig {
    model?: "claude-sonnet-4-20250514" | "claude-opus-4-20250514" | "claude-3-5-haiku-20241022";
    analysisDepth: "quick" | "standard" | "thorough";
    focusAreas: ZeroDayFocusArea[];
    maxFilesToAnalyze?: number;
    includePatterns?: string[];
    excludePatterns?: string[];
}
export type ZeroDayFocusArea = "auth" | "crypto" | "injection" | "logic" | "state" | "access-control" | "data-validation" | "session" | "api";
/**
 * Zero-day finding with AI analysis
 */
export interface ZeroDayFinding {
    id: string;
    title: string;
    description: string;
    severity: Severity;
    confidence: number;
    category: ZeroDayFocusArea;
    file: string;
    line: number;
    endLine?: number;
    codeSnippet: string;
    attackScenario: string;
    cweIds: string[];
    recommendation: string;
    exploitability: "proven" | "likely" | "possible" | "theoretical";
    aiReasoning: string;
}
/**
 * Result of zero-day hunting
 */
export interface ZeroDayHunterResult {
    filesAnalyzed: number;
    findings: ZeroDayFinding[];
    analysisDepth: string;
    focusAreas: ZeroDayFocusArea[];
    modelUsed: string;
    totalTokensUsed?: number;
    recommendations: string[];
}
/**
 * Run zero-day hunting on a project
 */
export declare function runZeroDayHunter(projectPath: string, config: ZeroDayHunterConfig): Promise<ZeroDayHunterResult>;
/**
 * Convert zero-day findings to certification findings
 */
export declare function zeroDayToFindings(result: ZeroDayHunterResult): Finding[];
//# sourceMappingURL=zero-day-hunter.d.ts.map