export { decideProjectMirrorAction } from './project-mirror-decision.js';
export {
  isCanonicalProjectSlug,
  normalizeProjectSlug,
  uniqueProjectSlug,
  PROJECT_SLUG_MAX,
  PROJECT_SLUG_REGEX,
} from './project-slug.js';
export { copyBytesToArrayBuffer } from './bytes';
export {
  getBrowserStorageHealth,
  requestPersistentBrowserStorage,
  supportsOpfsProjectStorage,
} from './browser-capabilities';
export type { BrowserStorageHealth } from './browser-capabilities';
export {
  decodeProjectZip,
  DEFAULT_PROJECT_ARCHIVE_LIMITS,
  encodeProjectZip,
  exportProjectZip,
  exportProjectZipStream,
  importProjectZip,
  importProjectZipBlob,
} from './archive';
export type {
  ExportProjectZipOptions,
  ImportProjectZipOptions,
  ProjectArchiveFile,
  ProjectArchiveLimits,
} from './archive';
export { MemoryProjectStorage } from './memory-project-storage';
export {
  createDefaultLearnitiveProjectConfig,
  DEFAULT_LEARNITIVE_PROJECT_CONFIG,
  isLearnitiveProjectConfig,
  LEARNITIVE_PROJECT_CONFIG_VERSION,
} from './project-config';
export type {
  LearnitiveCompiler,
  LearnitiveCompileTarget,
  LearnitivePdfCompileMode,
  LearnitiveProjectConfig,
} from './project-config';
export {
  DEFAULT_LEARNITIVE_MAIN_TEX,
  initializeBlankLearnitiveProject,
} from './project-bootstrap';
export type { InitializeBlankLearnitiveProjectResult } from './project-bootstrap';
export {
  projectBaseName,
  projectDirectoryPath,
  projectFilePath,
  projectParentDirectory,
  safeProjectDirectoryPath,
  safeProjectFilePath,
} from './project-path';
export type {
  ProjectDirectoryPath,
  ProjectFilePath,
  ProjectPathError,
  ProjectPathResult,
} from './project-path';
export type {
  ProjectEntry,
  ProjectStorageCapabilities,
  ProjectStorageProvider,
} from './types';
export {
  isProjectCodeTextPath,
  isProjectReadableTextPath,
  isLearnitiveEditableTextPath,
} from './text-file-policy';
export {
  fetchProjectTemplateFiles,
  instantiateProjectTemplate,
  loadProjectTemplateManifest,
  loadProjectTemplateCategories,
  loadProjectTemplateInstitutions,
  writePreparedProjectTemplateFiles,
} from './project-templates';
export type {
  PreparedProjectTemplateFile,
  ProjectTemplateCategory,
  ProjectTemplateDefinition,
  ProjectTemplateInstitution,
  ProjectTemplateFile,
  ProjectTemplateManifest,
  ProjectTemplateTier,
} from './project-templates';
