import type { ResolvedNegativeClaimPhrases } from '../../../integrity/negative-claim/phrases.js';
import type { ProseRow, TurnRecord } from '../../../integrity/negative-claim/types.js';
/** Scan every original free-form string, including nested strings and citation labels.
 * Preflight all limits before looking at any evidence. If any limit is exceeded,
 * one whole-answer note replaces partial findings: skipped work is not success.
 * The caller has already admitted a bounded JSON candidate; copy again so a
 * parser-owned object can never supply getters or mutable evidence to this reader.
 */
export declare function observeNegativeProse(candidate: unknown, record: TurnRecord, citationField?: string, phrases?: ResolvedNegativeClaimPhrases): ProseRow[];
