/**
 * Per-Agent Trust Report Generator.
 *
 * SCOPE — read this first. There are TWO compliance-report surfaces in
 * this codebase. They coexist intentionally and cover different audiences:
 *
 *   1. **THIS file** (`src/governance/agent-trust-report.ts`) — produces
 *      a **per-agent, point-in-time trust assessment**. Pulls the 3-dim
 *      score, OWASP findings, axis-specific recommendations, org
 *      reputation into a single AgentTrustReport. Audience: CISO
 *      assessing whether a specific agent is ready to deploy / pass
 *      insurance underwriting / receive a Sovereignty Certificate.
 *
 *   2. **`packages/governance-server/src/compliance-report-routes.ts`** —
 *      produces a **tenant-wide period event-rollup**. Aggregates
 *      allow/deny/require-approval counts across all agents over a
 *      period, with CSV / PDF / insurance-grade / email export variants.
 *      Audience: compliance officer reviewing a quarter.
 *
 * Per Thomas Layer 0 2026-05-06 trademark positioning, **both** map onto
 * the credit-agency framing:
 *   - This file = the per-subject "credit assessment" (what a specific
 *     agent's credit looks like RIGHT NOW)
 *   - The other file = the period "credit history statement" (what the
 *     subject did over the last quarter)
 *
 * Inputs (this file):
 *   AgentThreeDimensionalScore   the score (W3.4)
 *   OrgReputation                the bureau-level signal
 *   ScanReport                   the build-axis findings (W1.7)
 *   RecommendationSet            three-axis remediation (W1.11)
 *   pack bindings + period       scope of the report
 *
 * Output: a structured AgentTrustReport JSON the dashboard renders +
 * exports. Pure helper — serialization is the caller's job.
 *
 * @connexum/ai-governance  Per-Agent Trust Report (reconciles cluster
 *   parallel-implementation; see also compliance-report-routes.ts)
 */
import type { AgentThreeDimensionalScore } from './trust-score-three-dim.js';
import type { OrgReputation } from './org-reputation.js';
import type { ScanReport } from './owasp-agentic-scanner.js';
import type { RecommendationSet, Recommendation } from './improvement-recommendations.js';
export interface AgentTrustReportInput {
    /** Agent the report covers. */
    agentId: string;
    /** Optional human-readable agent name. */
    agentName?: string;
    /** Reporting period (inclusive). */
    period: {
        from: string;
        to: string;
    };
    /** Issuing org (the customer). */
    orgId: string;
    /** Pack ids that govern this agent. */
    packBindings: readonly string[];
    /** Current 3-dim score. */
    score: AgentThreeDimensionalScore;
    /** Org-level reputation context (optional — surfaced as "issuing-org reputation"). */
    orgReputation?: OrgReputation;
    /** Most recent OWASP scan. */
    scanReport: ScanReport;
    /** Combined three-axis recommendations. */
    recommendations: RecommendationSet;
    /** Optional per-period totals (counts of allow/deny/pending). */
    runtimeTotals?: {
        allow: number;
        deny: number;
        pending: number;
        approved: number;
        denied_by_human: number;
    };
}
export type AgentTrustVerdict = 'PROVISIONAL' | 'CONDITIONAL' | 'COMPLIANT' | 'AT_RISK' | 'NON_COMPLIANT';
export interface AgentTrustReportSection<T> {
    title: string;
    body: T;
}
export interface AgentTrustReport {
    /** Stable report id (caller can override; default is sha-ish of agent + period). */
    id: string;
    schemaVersion: '1.0';
    agentId: string;
    agentName?: string;
    orgId: string;
    period: {
        from: string;
        to: string;
    };
    generatedAt: string;
    /** Overall verdict computed from the inputs. */
    verdict: AgentTrustVerdict;
    /** Headline metrics for the cover page. */
    headline: {
        composite_score: number;
        confidence: 'low' | 'medium' | 'high';
        pack_bindings: readonly string[];
        open_critical_findings: number;
        open_high_findings: number;
        potential_score_gain: number;
    };
    sections: {
        summary: AgentTrustReportSection<string>;
        trust_score: AgentTrustReportSection<AgentThreeDimensionalScore>;
        org_reputation: AgentTrustReportSection<OrgReputation | null>;
        findings: AgentTrustReportSection<ScanReport>;
        recommendations: AgentTrustReportSection<RecommendationSet>;
        runtime_totals: AgentTrustReportSection<AgentTrustReportInput['runtimeTotals'] | null>;
    };
}
export declare function generateAgentTrustReport(input: AgentTrustReportInput, options?: {
    id?: string;
    nowIso?: string;
}): AgentTrustReport;
/** Compact CSV row for org-wide CSV exports — one row per agent report. */
export declare function reportToCsvRow(report: AgentTrustReport): string;
export declare const CSV_HEADER: string;
/** Filter recommendations to those above a severity threshold, useful for the report's "top remediations" cover. */
export declare function topRecommendations(set: RecommendationSet, options?: {
    minSeverity?: 'LOW' | 'MED' | 'HIGH' | 'CRIT';
    limit?: number;
}): Recommendation[];
//# sourceMappingURL=agent-trust-report.d.ts.map