export {
  PAPER_MEMORY_CHUNKING_VERSION,
  PAPER_MEMORY_EXTRACTOR_VERSION,
  PAPER_MEMORY_LEXICAL_VERSION,
  PAPER_MEMORY_SCHEMA_VERSION,
  type ExtractedPaperMetadata,
  type ExtractedPdfPage,
  type PaperChunk,
  type PaperExtraction,
  type PaperIndexGeneration,
  type PaperEmbeddingDescriptor,
  type PaperEmbeddingIndex,
  type PaperIndexingStatus,
  type PaperLexicalIndex,
  type PaperLexicalPosting,
  type PaperMemoryCapabilities,
  type PaperMemoryExtractor,
  type PaperMemoryIndexProgress,
  type PaperMemoryManifest,
  type PaperMemoryRetrievalDebugResult,
  type PaperMemoryRetrievalTiming,
  type PaperMemoryPlatform,
  type PaperMemorySearchOptions,
  type PaperMemorySearchResult,
  type PaperMemoryUsage,
  type PaperMemoryStore,
  type PaperPreparedIndex,
  type PaperRecord,
  type PaperCollection,
  type LivingLiteratureSearch,
  type LivingLiteratureResult,
  type PaperResearchNote,
  type SystematicReviewDecision,
  type SystematicReviewStudy,
  type SystematicReviewRecord,
  type PaperResearchEvidence,
  type PaperResearchCell,
  type PaperStudySnapshot,
  type PaperExtractionMatrixRow,
  type PaperExtractionMatrix,
  type PaperComparisonArtifact,
  type PaperContradictionGroup,
  type PaperContradictionArtifact,
  type PaperEvidenceClassification,
  type PaperEvidenceBalanceStudy,
  type PaperEvidenceBalanceArtifact,
  type PaperTableExtractionArtifact,
  type PaperResearchArtifact,
  type PaperStoredResearchArtifact,
  type PaperVerificationClassification,
  type PaperVerificationArtifact,
  type PaperDeepResearchStage,
  type PaperDeepResearchArtifact,
  type PaperResearchInsightsArtifact,
  type PdfTextLine,
  type ScientificBlock,
  type ScientificBlockKind,
} from './types';
export {
  chunkScientificBlocks,
  estimateScientificTokens,
  sha256Text,
} from './chunking';
export { isLikelyScannedPdf, orderPdfLines, scientificBlocksFromPages } from './structure';

export {
  buildPaperLexicalIndex,
  combinePaperRanks,
  diversifyPaperRanks,
  embeddingVectorAt,
  isPaperComparisonQuery,
  rankPaperLexical,
  rankPaperSemantic,
  tokenizeScientificText,
  type PaperRankCandidate,
} from './search';

export {
  PAPER_MEMORY_RAG_SYSTEM_PROMPT,
  buildBudgetedPaperMemoryRagSources,
  buildPaperMemoryRagSources,
  citedPaperSourceIds,
  estimateLocalAiTokens,
  truncateLocalAiTextToTokens,
  safeLocalAiContextTokens,
  estimatePaperMemoryTokens,
  paperMemoryEvidencePrompt,
  paperMemoryGenerationBudget,
  sanitizePaperSourceCitations,
  truncatePaperMemoryTextToTokens,
  type PaperMemoryGenerationBudget,
  type PaperMemoryRagSource,
} from './rag';

export { paperIndexCompatibility, type PaperIndexCompatibility } from './compatibility';

export { detectPaperResearchIntent, requestedExtractionFields, extractionMatrixToCsv, extractionMatrixToLatex, type PaperResearchIntent } from './research';
