/**
 * ASI-09 (OWASP Agentic Top 10) — Human-Agent Trust: oversight-effectiveness scoring.
 *
 * Microsoft AGT parity for the human-oversight gap (and Above-the-Floor Module 5).
 * EU AI Act Art. 14: "presence is not practice." An approval GATE proves a human
 * was present; it does NOT prove they exercised judgment. This read-model scores
 * whether a reviewer actually reviewed — time-to-decision, whether they
 * overrode/edited the agent's proposal, whether they recorded a rationale, and
 * their approval rate — and flags RUBBER-STAMPING (instant near-100% approvals
 * with no edits and no rationale).
 *
 * Process-quality metric, not individual punishment. Pure compute; never throws.
 *
 * @connexum/ai-governance
 */
export interface ReviewEvent {
    reviewerId: string;
    /** Optional workflow/queue this review belonged to. */
    workflowId?: string;
    decision: 'approved' | 'rejected' | 'modified';
    /** Wall-clock time the reviewer spent before deciding. */
    timeToDecisionMs: number;
    /** Did the reviewer change/override the agent's proposed action? */
    changedAgentProposal: boolean;
    /** Did the reviewer record a written rationale? */
    rationaleProvided: boolean;
    /** ISO-8601 decision time. */
    at: string;
}
export interface OversightScore {
    reviewerId: string;
    reviewCount: number;
    /** Share of decisions that were 'approved'. */
    approvalRate: number;
    medianTimeToDecisionMs: number;
    /** Share of reviews where the reviewer changed the agent's proposal. */
    overrideRate: number;
    /** Share of reviews carrying a written rationale. */
    rationaleRate: number;
    /** 0–100 — higher = more genuine oversight. */
    effectivenessScore: number;
    /** True when the pattern indicates rubber-stamping. */
    rubberStamp: boolean;
    /** Human-readable flags explaining the score. */
    flags: string[];
}
export interface OversightConfig {
    /** A median decision at/under this is "too fast to have reviewed". Default 3000ms. */
    rubberStampMaxMs?: number;
    /** Approval rate at/above which, combined with too-fast + no-edits + no-rationale, = rubber-stamp. Default 0.97. */
    rubberStampMinApprovalRate?: number;
}
/**
 * Score human-oversight effectiveness per reviewer from a window of review
 * events. NEVER throws — bad/empty input returns [] or default-filled rows.
 */
export declare function scoreOversight(events: ReviewEvent[], config?: OversightConfig): OversightScore[];
//# sourceMappingURL=oversight-effectiveness.d.ts.map