/**
 * verify.ts — TS port of the feedback-factory fix-verification logic.
 *
 * Byte-exact port of `can_transition_to_verified` (:1084) from the reference
 * `the-portal/.claude/scripts/feedback-processor.py`. Decides whether a fixed
 * cluster has actually stayed fixed (so it may transition to `verified`), via two
 * strategies: version-anchored (HIGH confidence — no recurrence on the fixed
 * version) and silence-based (LOW confidence — quiet long enough relative to its
 * historical report frequency).
 *
 * The reference is time- and DB-dependent (`datetime.now()` + a recent-reports
 * query). This port keeps it PURE by INJECTING both: `now` and the version-
 * anchored query result (`recentReportsSinceFix`) are passed in by the caller
 * (the real store adapter does `datetime.now()` + the query). Parity is verified
 * by monkeypatching the reference's `datetime.now` + `run_prisma_query` to the
 * same fixed values.
 */
import type { Cluster } from './types.js';
export interface VerifyOptions {
    /** Injected "now" (ISO string). The reference uses datetime.now(timezone.utc). */
    now: string;
    /**
     * The version-anchored recent-reports query result (items with the cluster's
     * fingerprint received since fixAppliedAt). Only consulted when the cluster has
     * BOTH fixedInVersion and fingerprint. The real adapter runs the query; tests
     * inject it. Treated as empty when omitted.
     */
    recentReportsSinceFix?: unknown[];
}
export interface VerifyResult {
    allowed: boolean;
    evidence: string;
    recommendation?: string;
    confidence?: string;
    verified_by?: string;
}
/** Reproduce Python `f"{x:.0f}"` — round-half-to-even to an integer, as a string. */
export declare function pyFormat0f(x: number): string;
export declare function canTransitionToVerified(cluster: Cluster, opts: VerifyOptions): VerifyResult;
//# sourceMappingURL=verify.d.ts.map