#![deny(unsafe_code)]
pub mod cache;
pub mod core;
pub mod error;
pub mod extraction;
pub mod extractors;
pub mod panic_context;
pub mod plugins;
pub mod text;
pub mod types;
pub mod utils;
#[cfg(feature = "api")]
pub mod api;
#[cfg(feature = "mcp")]
pub mod mcp;
#[cfg(feature = "chunking")]
pub mod chunking;
#[cfg(feature = "embeddings")]
pub mod embeddings;
#[cfg(feature = "ocr")]
pub mod image;
#[cfg(feature = "language-detection")]
pub mod language_detection;
#[cfg(feature = "stopwords")]
pub mod stopwords;
#[cfg(any(feature = "keywords-yake", feature = "keywords-rake"))]
pub mod keywords;
#[cfg(feature = "ocr")]
pub mod ocr;
#[cfg(any(feature = "paddle-ocr", feature = "embeddings"))]
pub mod ort_discovery;
#[cfg(feature = "paddle-ocr")]
pub mod paddle_ocr;
#[cfg(feature = "pdf")]
pub mod pdf;
pub use error::{KreuzbergError, Result};
pub use types::*;
#[cfg(feature = "tokio-runtime")]
pub use core::extractor::{batch_extract_bytes, batch_extract_file};
pub use core::extractor::{extract_bytes, extract_file};
pub use core::extractor::{batch_extract_bytes_sync, extract_bytes_sync};
#[cfg(feature = "tokio-runtime")]
pub use core::extractor::{batch_extract_file_sync, extract_file_sync};
pub use core::config::{
ChunkerType, ChunkingConfig, EmbeddingConfig, EmbeddingModelType, ExtractionConfig, ImageExtractionConfig,
LanguageDetectionConfig, OcrConfig, OutputFormat, PageConfig, PostProcessorConfig, TokenReductionConfig,
};
#[cfg(feature = "api")]
pub use core::server_config::ServerConfig;
#[cfg(feature = "pdf")]
pub use core::config::{HierarchyConfig, PdfConfig};
#[cfg(feature = "paddle-ocr")]
pub use paddle_ocr::{CacheStats, ModelManager, ModelPaths, PaddleLanguage, PaddleOcrBackend, PaddleOcrConfig};
pub use core::mime::{
DOCX_MIME_TYPE, EXCEL_MIME_TYPE, HTML_MIME_TYPE, JSON_MIME_TYPE, MARKDOWN_MIME_TYPE, PDF_MIME_TYPE,
PLAIN_TEXT_MIME_TYPE, POWER_POINT_MIME_TYPE, SupportedFormat, XML_MIME_TYPE, detect_mime_type,
detect_mime_type_from_bytes, detect_or_validate, get_extensions_for_mime, list_supported_formats,
validate_mime_type,
};
pub use core::formats::{KNOWN_FORMATS, is_valid_format_field};
pub use plugins::registry::{
get_document_extractor_registry, get_ocr_backend_registry, get_post_processor_registry, get_validator_registry,
};
#[cfg(feature = "embeddings")]
pub use embeddings::{EMBEDDING_PRESETS, EmbeddingPreset, get_preset, list_presets};