/**
 * Extract plain text from HTML for verification. This must include all
 * user-facing content: regular text, `<code>`, `<pre>`, `<blockquote>`. We
 * use `textContent` on the document body — it gives us the same content a
 * reader would see, minus tags but including code/quote spans.
 *
 * Cached at the call boundary; re-computing per field would be O(N*HTML).
 */
export declare function getSourceText(html: string): string;
/**
 * Verify a single LLM-sourced field value against the source text.
 *
 * Returns `true` when:
 *   - the value (case- and whitespace-normalized) appears as a substring of
 *     the source text;
 *   - the value is a number AND the same number (as a string) appears in
 *     the source text;
 *   - the value is `null` / `undefined` (nothing to verify).
 *
 * Returns `false` when the value is not derivable from source — meaning the
 * LLM hallucinated and the caller should null the field.
 *
 * This is a thin wrapper that normalizes `sourceText` once and delegates to
 * `verifyAgainstNormalizedSource`. Hot-path callers that verify many fields
 * against the same source MUST normalize once at the call boundary and use
 * `verifyAgainstNormalizedSource` directly — see `applyEvidenceFilter`.
 */
export declare function verifyAgainstSource(value: unknown, sourceText: string): boolean;
export interface ApplyEvidenceFilterInput {
    values: Record<string, unknown>;
    provenance: Record<string, string>;
    sourceText: string;
    /** Only verify these fields — typically the LLM-sourced subset. */
    fields: string[];
}
export interface ApplyEvidenceFilterResult {
    values: Record<string, unknown>;
    rejectedFields: string[];
}
/**
 * Apply the evidence-only filter to a subset of fields. Returns a new
 * `values` object where every rejected field is set to `null`, plus the
 * list of fields that were rejected (so callers can emit a warning).
 *
 * Non-listed fields are passed through untouched — heuristic /
 * structured-data values do not go through the verifier.
 */
export declare function applyEvidenceFilter(input: ApplyEvidenceFilterInput): ApplyEvidenceFilterResult;
//# sourceMappingURL=schema-truth.d.ts.map