export declare const CANDIDATE_ADMISSION_SCHEMA_VERSION = 1; export declare const MAX_ADMISSION_EVALUATIONS = 20; export declare const MAX_ADMISSION_JSON_CHARS = 96000; /** Static policy identity of the current full admission gate. */ export declare const ADMISSION_POLICY_VERSION = "admission-gate@cr-03"; export type AdmissionDecisionValue = 'admitted' | 'needs_evidence' | 'deferred'; export interface AdmissionEvaluationRecord { evaluationId: string; decision: AdmissionDecisionValue; reason: string; nextAction: string; evaluatedAt: string; policyVersion: string; provenance: string; inputEvidenceCount: number; ownerStatementPresent: boolean; recommendationKind: string; confidence: number | null; /** sha256 over the diagnostic output + input material identity (never raw text). */ materialFingerprint: string; /** Classification summary of the evaluated material (no Owner text). */ materialSummary: { inputEvidenceCount: number; outputEvidenceCount: number; ownerStatementPresent: boolean; /** sha256 of the Owner statement content when one was part of the material. */ statementFingerprint?: string; }; } export type AdmissionProcessingState = 'not_started' | 'in_progress' | 'awaiting_owner' | 'complete' | 'exhausted'; export interface AdmissionProcessingRecord { state: AdmissionProcessingState; attempts: number; lastAttemptAt?: string; lastFailure?: { reason: string; nextAction: string; at: string; }; nextRetryAt?: string; completedAt?: string; /** Bounded structured blocker when state is 'awaiting_owner' or 'exhausted'. */ blockedReason?: string; } export interface CandidateAdmissionDocument { schemaVersion: typeof CANDIDATE_ADMISSION_SCHEMA_VERSION; evaluations: AdmissionEvaluationRecord[]; currentEvaluationId: string | null; processing?: AdmissionProcessingRecord; } export type ParseAdmissionDocumentResult = { ok: true; document: CandidateAdmissionDocument | null; } | { ok: false; document: null; reason: string; }; export declare function parseAdmissionDocument(raw: unknown): ParseAdmissionDocumentResult; export declare function serializeAdmissionDocument(document: CandidateAdmissionDocument): { ok: true; json: string; } | { ok: false; reason: string; }; export declare function fingerprintMaterial(parts: readonly string[]): string; export declare function fingerprintStatement(statementText: string): string; export type AppendAdmissionEvaluationResult = { status: 'appended'; document: CandidateAdmissionDocument; evaluation: AdmissionEvaluationRecord; } | { status: 'reused'; document: CandidateAdmissionDocument; evaluation: AdmissionEvaluationRecord; } | { status: 'refused'; reason: string; }; /** * Append (or idempotently reuse) one full-gate evaluation. Reuse requires the * same material fingerprint AND policy version — a changed material or policy * MUST produce a new version; the previous decision/reason/evaluatedAt stay * intact in history and `currentEvaluationId` moves forward only. */ export declare function appendAdmissionEvaluation(existing: CandidateAdmissionDocument | null, evaluation: AdmissionEvaluationRecord): AppendAdmissionEvaluationResult; export declare function currentEvaluation(document: CandidateAdmissionDocument | null): AdmissionEvaluationRecord | null; export declare function withProcessing(document: CandidateAdmissionDocument | null, processing: AdmissionProcessingRecord): CandidateAdmissionDocument; //# sourceMappingURL=admission-document.d.ts.map