import { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, DEFAULT_THEMES, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_MODE_FROM_INDEX, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, SPLIT_WITH_NEWLINES, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE } from "./constants.js";
import { areLanguagesAttached, attachResolvedLanguages, cleanUpResolvedLanguages, getResolvedLanguages, getResolvedOrResolveLanguage, hasResolvedLanguages, resolveLanguage, resolveLanguages } from "./highlighter/languages.js";
import { getThemes } from "./utils/getThemes.js";
import { areThemesAttached, attachResolvedThemes, cleanUpResolvedThemes, getResolvedOrResolveTheme, getResolvedThemes, hasResolvedThemes, registerCustomTheme, resolveTheme, resolveThemes } from "./highlighter/themes.js";
import { disposeHighlighter, getHighlighterIfLoaded, getSharedHighlighter, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, preloadHighlighter } from "./highlighter/shared_highlighter.js";
import { areThemesEqual } from "./utils/areThemesEqual.js";
import { createHastElement, createIconElement, createTextNodeElement, findCodeElement } from "./utils/hast_utils.js";
import { createAnnotationElement } from "./utils/createAnnotationElement.js";
import { createEmptyRowBuffer } from "./utils/createEmptyRowBuffer.js";
import { getIconForType } from "./utils/getIconForType.js";
import { createFileHeaderElement } from "./utils/createFileHeaderElement.js";
import { createNoNewlineElement } from "./utils/createNoNewlineElement.js";
import { createPreElement, createPreWrapperProperties } from "./utils/createPreElement.js";
import { createSeparator } from "./utils/createSeparator.js";
import { EXTENSION_TO_FILE_FORMAT, extendFileFormatMap, getFiletypeFromFileName } from "./utils/getFiletypeFromFileName.js";
import { getHighlighterOptions } from "./utils/getHighlighterOptions.js";
import { getHunkSeparatorSlotName } from "./utils/getHunkSeparatorSlotName.js";
import { getLineAnnotationName } from "./utils/getLineAnnotationName.js";
import { getTotalLineCountFromHunks } from "./utils/getTotalLineCountFromHunks.js";
import { cleanLastNewline } from "./utils/cleanLastNewline.js";
import { processLine } from "./utils/processLine.js";
import { createTransformerWithState } from "./utils/createTransformerWithState.js";
import { formatCSSVariablePrefix } from "./utils/formatCSSVariablePrefix.js";
import { getHighlighterThemeStyles } from "./utils/getHighlighterThemeStyles.js";
import { getLineNodes } from "./utils/getLineNodes.js";
import { createDiffSpanDecoration, pushOrJoinSpan } from "./utils/parseDiffDecorations.js";
import { renderDiffWithHighlighter } from "./utils/renderDiffWithHighlighter.js";
import { DiffHunksRenderer } from "./DiffHunksRenderer.js";
import { renderFileWithHighlighter } from "./utils/renderFileWithHighlighter.js";
import { FileRenderer } from "./FileRenderer.js";
import { LineSelectionManager, pluckLineSelectionOptions } from "./LineSelectionManager.js";
import { MouseEventManager, pluckMouseEventOptions } from "./MouseEventManager.js";
import { ResizeManager } from "./ResizeManager.js";
import { createAnnotationWrapperNode } from "./utils/createAnnotationWrapperNode.js";
import { createCodeNode } from "./utils/createCodeNode.js";
import { createHoverContentNode } from "./utils/createHoverContentNode.js";
import { prerenderHTMLIfNecessary } from "./utils/prerenderHTMLIfNecessary.js";
import { setPreNodeProperties } from "./utils/setWrapperNodeProps.js";
import { File } from "./File.js";
import { ScrollSyncManager } from "./ScrollSyncManager.js";
import { parseLineType } from "./utils/parseLineType.js";
import { parsePatchFiles } from "./utils/parsePatchFiles.js";
import { parseDiffFromFile } from "./utils/parseDiffFromFile.js";
import { FileDiff } from "./FileDiff.js";
import { queueRender } from "./UniversalRenderer.js";
import { ShikiStreamTokenizer } from "./shiki-stream/tokenizer.js";
import { CodeToTokenTransformStream } from "./shiki-stream/stream.js";
import { createRowNodes } from "./utils/createRowNodes.js";
import { createSpanFromToken } from "./utils/createSpanNodeFromToken.js";
import { FileStream } from "./FileStream.js";
import { createStyleElement } from "./utils/createStyleElement.js";
import { diffAcceptRejectHunk } from "./utils/diffAcceptRejectHunk.js";
import { getLineEndingType } from "./utils/getLineEndingType.js";
import { getSingularPatch } from "./utils/getSingularPatch.js";
import { setLanguageOverride } from "./utils/setLanguageOverride.js";
import { codeToHtml } from "shiki";

export { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CodeToTokenTransformStream, DEFAULT_THEMES, DiffHunksRenderer, EXTENSION_TO_FILE_FORMAT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_MODE_FROM_INDEX, File, FileDiff, FileRenderer, FileStream, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, LineSelectionManager, MouseEventManager, ResizeManager, SPLIT_WITH_NEWLINES, ScrollSyncManager, ShikiStreamTokenizer, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, areLanguagesAttached, areThemesAttached, areThemesEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createCodeNode, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createHastElement, createHoverContentNode, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createTransformerWithState, diffAcceptRejectHunk, disposeHighlighter, extendFileFormatMap, findCodeElement, formatCSSVariablePrefix, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, hasResolvedLanguages, hasResolvedThemes, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, parseDiffFromFile, parseLineType, parsePatchFiles, pluckLineSelectionOptions, pluckMouseEventOptions, preloadHighlighter, prerenderHTMLIfNecessary, processLine, pushOrJoinSpan, queueRender, registerCustomTheme, renderDiffWithHighlighter, renderFileWithHighlighter, resolveLanguage, resolveLanguages, resolveTheme, resolveThemes, setLanguageOverride, setPreNodeProperties };