/**
 * OWASP Agentic Top 10 Scanner — W1.7 of F-NEW-PRODUCT-AGENT-VISIBILITY-CLUSTER-2026-05-12.
 *
 * Analyses an AgentManifest against the OWASP Agentic Top 10 (A01-A10), emits
 * structured findings with severity, remediation, and suggested company-pack
 * gates, and produces a build-structure score (0-100) that feeds the third
 * trust-score dimension (W1.8).
 *
 * Customer flow:
 *   1. Customer-side scan produces an AgentManifest per agent.
 *   2. scanAgent(manifest) -> ScanReport with findings + suggested rules.
 *   3. Each suggested rule maps to a CapabilityRule consumable by buildCompanyPack.
 *   4. Customer accepts/rejects rules; accepted ones become the auto-generated
 *      company pack for that agent.
 *   5. buildStructureScore feeds the agent_build_structure trust-score dimension.
 *
 * Coverage reference: docs/cisos/07-owasp-agentic-top10.md (A01-A10).
 *
 * @connexum/ai-governance  F-NEW-PRODUCT-OWASP-AGENTIC-SCANNER
 */
import { type CapabilityClassId } from './capability-classes.js';
import type { CapabilityRule } from './company-pack-builder.js';
/** OWASP Agentic Top 10 risk classes (LLM/agent variant). */
export declare const OWASP_AGENTIC_RISK: {
    readonly A01_PROMPT_INJECTION: "A01-prompt-injection";
    readonly A02_INSECURE_OUTPUT: "A02-insecure-output";
    readonly A03_RAG_POISONING: "A03-rag-poisoning";
    readonly A04_DOS: "A04-denial-of-service";
    readonly A05_SUPPLY_CHAIN: "A05-supply-chain";
    readonly A06_SENSITIVE_DISCLOSURE: "A06-sensitive-disclosure";
    readonly A07_INSECURE_PLUGIN: "A07-insecure-plugin";
    readonly A08_EXCESSIVE_AGENCY: "A08-excessive-agency";
    readonly A09_OVERRELIANCE: "A09-overreliance";
    readonly A10_MODEL_THEFT: "A10-model-theft";
};
export type OwaspAgenticRiskId = (typeof OWASP_AGENTIC_RISK)[keyof typeof OWASP_AGENTIC_RISK];
export type Severity = 'LOW' | 'MED' | 'HIGH' | 'CRIT';
/** Shape of the customer-side scan output that gets fed to the scanner. */
export interface AgentManifest {
    /** Agent identifier (stable across scans). */
    agentId: string;
    /** Human-readable name. */
    name?: string;
    /** Declared tool names (e.g. 'Bash', 'WebFetch', 'mcp__list_resources'). */
    tools: string[];
    /** MCP server URIs the agent connects to. */
    mcpServers?: string[];
    /** System prompt / role description (may be redacted by customer-side scanner). */
    systemPrompt?: string;
    /** LLM provider + model (e.g. 'anthropic/claude-sonnet-4-6'). */
    llmProvider?: string;
    /** Whether governance hooks are wired on this agent (PreToolUse / PostToolUse / PostResponse). */
    hooks?: {
        preToolUse?: boolean;
        postToolUse?: boolean;
        postResponse?: boolean;
    };
    /** Approval-required gates already declared. Empty => agent has no human-in-loop. */
    declaredApprovalGates?: ReadonlyArray<{
        capability: CapabilityClassId;
        reviewer: string;
    }>;
    /** Capability classes the agent explicitly forbids. */
    declaredForbiddenCapabilities?: ReadonlyArray<CapabilityClassId>;
    /** Whether the agent's plugins / framework adapters have been attestation-signed. */
    pluginIntegrityVerified?: boolean;
    /** Per-tool blast-radius caps already configured. */
    rateLimitsConfigured?: boolean;
}
export interface OwaspFinding {
    risk: OwaspAgenticRiskId;
    severity: Severity;
    title: string;
    detail: string;
    remediation: string;
    /** Optional capability-class rule to add to the auto-generated company pack. */
    suggestedRule?: CapabilityRule;
}
export interface ScanReport {
    agentId: string;
    findings: OwaspFinding[];
    /** Count of findings by severity. */
    countsBySeverity: Record<Severity, number>;
    /** Aggregate company-pack rule suggestions deduplicated by capability+action. */
    suggestedRules: CapabilityRule[];
    /**
     * Build-structure score 0-100. Feeds the agent_build_structure dimension
     * of the trust score (W1.8).
     *   100 = no findings
     *    -8 per LOW, -16 per MED, -32 per HIGH, -50 per CRIT (clamped at 0)
     */
    buildStructureScore: number;
    /** Composite human-readable verdict label. */
    verdict: 'EXCELLENT' | 'GOOD' | 'NEEDS_REVIEW' | 'POOR' | 'CRITICAL';
}
/**
 * Run all A01..A10 analyzers against a manifest and produce a structured report.
 */
export declare function scanAgent(manifest: AgentManifest): ScanReport;
//# sourceMappingURL=owasp-agentic-scanner.d.ts.map