/** Blocking status returned when an explicit model is not verified. */ export declare const EXPLICIT_MODEL_UNAVAILABLE: "model_unavailable"; export type ExplicitModelStatus = typeof EXPLICIT_MODEL_UNAVAILABLE; /** Honest remediation guidance attached to every blocking gate result. */ export declare const EXPLICIT_MODEL_REMEDIATION = "omit the model to inherit the parent/session model, or add the model to the verified model catalog at /.pi/model-catalog.json (schema zob.model-catalog.v1, entry { \"resolutionStatus\": \"verified\" } after confirming current provider availability for this session)"; /** * Injectable verified model catalog. `present` is false when no catalog file * exists; `readError` is set when the file existed but could not be parsed as * JSON; `models` is the model-id -> entry map when a readable catalog has one. */ export interface VerifiedModelCatalog { /** True when a catalog source is present (file exists). */ present: boolean; /** Set when the source is present but could not be read as JSON. */ readError?: string; /** model id -> entry. Only set for a readable catalog with a models object. */ models?: Readonly>>; } export type ExplicitModelVerification = { ok: true; errors: readonly []; } | { ok: false; status: ExplicitModelStatus; errors: readonly string[]; remediation: string; }; /** * Pure normalizer for an already-parsed catalog value (e.g. `JSON.parse` of a * model catalog file). Returns a `VerifiedModelCatalog` without reading any fs. * A non-record or a value without a `models` object yields `present:true` with * no `models` (the gate reports the missing-models case). */ export declare function catalogFromParsed(value: unknown): VerifiedModelCatalog; /** * Verify an explicit model override against an injected `VerifiedModelCatalog`. * * Returns `{ok:true}` when no override is given, or when the override is * present in the catalog with `resolutionStatus === 'verified'`. Otherwise * returns a blocking `{ok:false, status:'model_unavailable', errors, remediation}` * result. Never falls back silently; never probes availability. */ export declare function validateExplicitModelOverride(modelOverride: string | undefined, catalog: VerifiedModelCatalog | undefined): ExplicitModelVerification;