import { type ReactNode } from "react";
/**
 * Resolves a fence info-string to a registered highlight.js language name, or
 * `null` when no grammar is registered for it (the caller then renders the code
 * flat). Case-insensitive and whitespace-tolerant; never guesses.
 *
 * @param language - The raw language from a `language-*` class (e.g. `"go"`).
 * @returns The normalized, registered language name, or `null`.
 */
export declare function resolveLanguage(language: string | undefined): string | null;
/**
 * Highlights `code` for the given fence `language` and returns themed React
 * nodes — token `<span>`s carrying `hljs-*` classes that `styles.css` maps to
 * `--stgm-syntax-*`.
 *
 * Returns `null` (so the caller can fall back to flat rendering) when the
 * language has no registered grammar or tokenization throws. Highlighting is
 * synchronous: there is no loading state to handle.
 *
 * @param code - The raw source text of the fenced block.
 * @param language - The fence language (e.g. `"ts"`); unknown → `null`.
 */
export declare function highlightToReact(code: string, language: string | undefined): ReactNode | null;
//# sourceMappingURL=code-highlight.d.ts.map