export {
  applyCanonicalLatexCodeMirrorText,
  computeMinimalSourceEdit,
  createLatexCodeMirror,
  getLatexCodeMirrorCursor,
  getLatexCodeMirrorCursorRect,
  getLatexCodeMirrorLocation,
  getLatexCodeMirrorSoftWrap,
  getLatexCodeMirrorViewportCenterLocation,
  getLatexCodeMirrorSelection,
  revealLatexCodeMirrorLocation,
  selectLatexCodeMirrorLocation,
  selectLatexCodeMirrorOffset,
  setLatexCodeMirrorSoftWrap,
  type LatexCodeMirrorConfig,
  type LatexCodeMirrorPersistedState,
  type LatexCodeMirrorSession,
  type LatexSourceTextEdit,
  createProjectCodeMirror,
  type ProjectCodeMirrorConfig,
  type ProjectCodeMirrorSession,
} from './editor';
export {
  createLatexToolbarController,
  getLatexEditorCommand,
  LATEX_EDITOR_COMMANDS,
  type LatexEditorCommand,
  type LatexToolbarController,
  type LatexToolbarEntry,
} from './toolbar';
export { latexLanguage } from './latex-language';

export {
  createLearnitiveMathLiveExtension,
  type LatexMathOpenRequest,
  type LatexMathPreviewMode,
} from './mathlive';
export {
  createLatexProjectCompletionSource,
  createLatexProjectFeatureExtensions,
  createLatexLinkNavigationExtension,
  detectLatexNavigationTarget,
  createLatexPasteExtension,
  latexSearchHighlightExtension,
  setLatexSearchHighlights,
  clearLatexSearchHighlights,
  type LatexNavigationTarget,
  type LatexProjectCompletionData,
  type LatexProjectFeatureConfig,
  createLatexReviewExtension,
  setLatexReviewDecorations,
  type LatexReviewDecoration,
} from './project-features';

export { bibtexLanguage } from './bibtex-language';

export {
  loadProjectLanguageExtension,
  resolveProjectEditorLanguage,
  type ProjectEditorLanguage,
  type ProjectEditorLanguageId,
} from './project-language';
