import { type ReviewerEnvelope, type ReviewerRunInput, type ReviewerRunOutput } from './reviewer-types.js'; export type { ReviewerViolation, ReviewerEnvelope, ReviewerRunInput, ReviewerRunOutput } from './reviewer-types.js'; export { REVIEWER_ID, buildSkippedEnvelope } from './reviewer-envelopes.js'; /** * Validate a parsed JSON value against the ReviewerEnvelope contract * (mirrors `schemas/reviewer-envelope.schema.json`). Returns the * normalized envelope on success, or null when the input is malformed. */ export declare function validateReviewerEnvelope(value: unknown): ReviewerEnvelope | null; /** * Try to extract the first JSON object from an LLM text response. * Many LLMs wrap JSON in ```json fences or surrounding prose; we * tolerate both. Returns null when no JSON object is present. */ export declare function extractFirstJsonObject(text: string): unknown; export declare function runReviewer(input: ReviewerRunInput): Promise; /** * The `requireDistinctModelFamily` verdict, over three inputs per side: a * real family, an empty family, or a SKIP. Either side may be missing a * family, and "not comparable" must NOT be reported as "distinct" — that * would let a skip satisfy a distinctness gate. Returns true only when both * families are present and differ. */ export declare function distinctFromKarpathy(thirdPartyFamily: string, karpathyFamily: string): boolean;