/**
 * StandardEnforcementExtractor — pull the structural enforcement references a
 * constitutional standard NAMES in its prose (cartographer-conformance-audit spec #3,
 * Part A).
 *
 * The constitution declares its own enforcement: nearly every article carries an
 * `**In practice.**` / `**Applied through.**` line naming the mechanism that enforces
 * it — a test ratchet (`tests/unit/no-silent-llm-fallback.test.ts`), a gate marker
 * (`B16_UNVERIFIED_WALL` in `MessagingToneGate`), a route (`POST /spec/conformance-check`),
 * a lint (`scripts/lint-*.js`), or a spec (`docs/specs/*.md`). This module extracts
 * those references so the auditor can VERIFY each one actually resolves on disk.
 *
 * PURE — no I/O. It only recognizes enforcement-shaped tokens; verification (does the
 * file/route/symbol actually exist?) is the auditor's job. Extraction is conservative:
 * a reference is only pulled if it matches a known enforcement shape. Unmatched prose
 * contributes nothing (→ the standard reads as having no NAMED guard, itself a signal).
 *
 * Provenance refs (`#NNN` PR/issue numbers) are deliberately NOT treated as enforcement
 * — they record where a guard was built, not a live guard.
 */
import type { StandardArticle } from './StandardsRegistryParser.js';
/** A single enforcement reference extracted from a standard's prose. */
export interface EnforcementRef {
    /** The reference token (a repo-relative path, a `METHOD /route`, or a symbol/marker). */
    ref: string;
    /** Which recognizer matched it. */
    kind: 'file' | 'route' | 'marker';
}
export interface ExtractedRefs {
    files: string[];
    routes: string[];
    markers: string[];
}
/**
 * Extract enforcement references from a single article. Scans both `inPractice` and
 * `appliedThrough` (the two prose lines that name enforcement). Pure + deterministic:
 * same article in → same refs out, in stable (sorted) order.
 */
export declare function extractEnforcementRefs(article: StandardArticle): ExtractedRefs;
/** Flatten an ExtractedRefs into a typed list (auditor convenience). */
export declare function flattenRefs(refs: ExtractedRefs): EnforcementRef[];
/** True if the article names ANY enforcement reference at all. */
export declare function hasAnyRef(refs: ExtractedRefs): boolean;
//# sourceMappingURL=StandardEnforcementExtractor.d.ts.map