/** * Selector postconditions, surfaced as fieldSelector `VerifyCheck` entries after fill. * * Phase 1 supports four: * - `no_unresolved_placeholder` — the field's `{field_id}` tag did not survive * to the output (every occurrence filled). * - `all_occurrences_identical` — the field renders one value everywhere: its * value is present and no selector-owned source anchor for the field remains * (a remaining anchor means an occurrence rendered differently → divergence). * - `no_double_dollar` — no doubled currency sigil in the output. * - `no_double_percent` — no doubled percent sigil in the output. The * trailing-sigil twin of `no_double_dollar`: recipes disagree about whether * the replacement key absorbs the source percent sign, so a sign-carrying * value that is correct for one template doubles the sign in another * (issue #719). * * `no_double_percent` is deliberately unwired in this repo: the * `specify_percentage` manifests live under `templates/nvca-*`, which is * replaced wholesale by the daily legal-explainer forward sync (see * `.openagreements-managed-paths.json`), so setting it here would be reverted. * The wiring is an upstream follow-up; the engine support lands first. */ import type { VerifyCheck } from '../field-selector/types.js'; import type { FieldSelectorManifest } from './manifest-schema.js'; export interface PostconditionInput { /** Full extracted text of the filled output. */ outputText: string; manifests: FieldSelectorManifest[]; /** Filled value per field_id (for `all_occurrences_identical`). */ fieldValues: Record; /** Selector-owned source anchor strings per field_id (migrated-key search texts). */ migratedAnchorsByField: Record; } export declare function evaluatePostconditions(input: PostconditionInput): VerifyCheck[]; //# sourceMappingURL=postconditions.d.ts.map