export declare const ENTITY_CST_PROOF: "entity-cst-v2";
export declare const ENTITY_SIGNATURE_PROOF: "entity-signature-cst-v2";
export declare const WHOLE_DIFF_GRAMMAR_MANIFEST_VERSION: 1;
export interface GrammarManifestEntry {
    grammar: string;
    extensions: readonly string[];
    commentNodeTypes: readonly string[];
    wasmSha256: string;
}
/**
 * The grammar bytes and comment policy are part of every CST proof. Keeping
 * their digests checked in makes a replaced WASM file an evidence failure,
 * rather than silently changing what an existing proof name means.
 */
export declare const WHOLE_DIFF_GRAMMAR_MANIFEST: readonly GrammarManifestEntry[];
/** Update deliberately with the manifest; a stale edit fails at module load. */
export declare const WHOLE_DIFF_GRAMMAR_MANIFEST_DIGEST: "61641a2d1ff140f2ec68fc8a20149eac7df471eecbcccafe4a7ea4e50c6de04d";
export declare function grammarManifestEntry(grammar: string): GrammarManifestEntry | undefined;
export declare function grammarManifestEntryForPath(relativePath: string): GrammarManifestEntry | undefined;
/**
 * Every grammar a path can select without reading its contents.
 *
 * Vue chooses JavaScript, TypeScript, or TSX from its script blocks, so its
 * bounded candidate set is verified up front. Ordinary extensions have one
 * exact grammar and unsupported/data formats have none.
 */
export declare function grammarManifestCandidatesForPath(relativePath: string): readonly GrammarManifestEntry[];
/**
 * Whether this process has physically re-verified the checked-in bytes for a
 * grammar. This synchronous admission predicate deliberately returns false
 * while verification is absent, pending, failed, or addressed to another
 * digest.
 */
export declare function isGrammarVerified(grammar: string): boolean;
/** Verify the physical grammar once per process before admitting CST evidence. */
export declare function verifyGrammarManifestEntry(entry: GrammarManifestEntry): Promise<boolean>;
