Files
fil/crates/kreuzberg-ffi/include/kreuzberg.h
Henrik Jess Nielsen b4c07d3693
All checks were successful
Deploy fil (kreuzberg) / deploy (push) Successful in 49s
Nomad changes
2026-06-01 23:40:55 +02:00

14156 lines
475 KiB
C++
Generated

#ifndef KREUZBERG_H
#define KREUZBERG_H
#pragma once
/* This file is auto-generated by alef. DO NOT EDIT. */
#include <stdarg.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
/* Opaque type forward declarations */
/**
* Hardware acceleration configuration for ONNX Runtime models.
*
* Controls which execution provider (CPU, CoreML, CUDA, TensorRT) is used
* for inference in layout detection and embedding generation.
* \code
* use kreuzberg::AccelerationConfig;
*
* // Auto-select: CoreML on macOS, CUDA on Linux, CPU elsewhere
* let config = AccelerationConfig::default();
*
* // Force CPU only
* let config = AccelerationConfig {
* provider: kreuzberg::ExecutionProviderType::Cpu,
* ..Default::default()
* };
* \endcode
*/
typedef struct KREUZBERGAccelerationConfig KREUZBERGAccelerationConfig;
/**
* Types of inline text annotations.
*/
typedef struct KREUZBERGAnnotationKind KREUZBERGAnnotationKind;
/**
* A single file extracted from an archive.
*
* When archives (ZIP, TAR, 7Z, GZIP) are extracted with recursive extraction
* enabled, each processable file produces its own full `ExtractionResult`.
*/
typedef struct KREUZBERGArchiveEntry KREUZBERGArchiveEntry;
/**
* Archive (ZIP/TAR/7Z) metadata.
*
* Extracted from compressed archive files containing file lists and size information.
*/
typedef struct KREUZBERGArchiveMetadata KREUZBERGArchiveMetadata;
/**
* Bounding box in original image coordinates (x1, y1) top-left, (x2, y2) bottom-right.
*/
typedef struct KREUZBERGBBox KREUZBERGBBox;
/**
* Batch item for byte array extraction.
*
* Used with `batch_extract_bytes` and `batch_extract_bytes_sync`
* to represent a single item in a batch extraction job.
*/
typedef struct KREUZBERGBatchBytesItem KREUZBERGBatchBytesItem;
/**
* Batch item for file extraction.
*
* Used with `batch_extract_files` and `batch_extract_files_sync`
* to represent a single file in a batch extraction job.
*/
typedef struct KREUZBERGBatchFileItem KREUZBERGBatchFileItem;
/**
* BibTeX bibliography metadata.
*/
typedef struct KREUZBERGBibtexMetadata KREUZBERGBibtexMetadata;
/**
* Types of block-level elements in Djot.
*/
typedef struct KREUZBERGBlockType KREUZBERGBlockType;
/**
* Bounding box coordinates for element positioning.
*/
typedef struct KREUZBERGBoundingBox KREUZBERGBoundingBox;
typedef struct KREUZBERGCacheStats KREUZBERGCacheStats;
/**
* A single changed cell within a table.
*
* Defined here (rather than only in `crate::diff`) so `RevisionDelta` can
* reference it unconditionally, without requiring the `diff` Cargo feature.
* `crate::diff` re-exports this type verbatim.
*/
typedef struct KREUZBERGCellChange KREUZBERGCellChange;
/**
* A text chunk with optional embedding and metadata.
*
* Chunks are created when chunking is enabled in `ExtractionConfig`. Each chunk
* contains the text content, optional embedding vector (if embedding generation
* is configured), and metadata about its position in the document.
*/
typedef struct KREUZBERGChunk KREUZBERGChunk;
/**
* Metadata about a chunk's position in the original document.
*/
typedef struct KREUZBERGChunkMetadata KREUZBERGChunkMetadata;
/**
* How chunk size is measured.
*
* Defaults to `Characters` (Unicode character count). When using token-based sizing,
* chunks are sized by token count according to the specified tokenizer.
*
* Token-based sizing uses HuggingFace tokenizers loaded at runtime. Any tokenizer
* available on HuggingFace Hub can be used, including OpenAI-compatible tokenizers
* (e.g., `Xenova/gpt-4o`, `Xenova/cl100k_base`).
*/
typedef struct KREUZBERGChunkSizing KREUZBERGChunkSizing;
/**
* Semantic structural classification of a text chunk.
*
* Assigned by the heuristic classifier in `chunking::classifier`.
* Defaults to `Unknown` when no rule matches.
* Designed to be extended in future versions without breaking changes.
*/
typedef struct KREUZBERGChunkType KREUZBERGChunkType;
/**
* Type of text chunker to use.
*
* # Variants
*
* * `Text` - Generic text splitter, splits on whitespace and punctuation
* * `Markdown` - Markdown-aware splitter, preserves formatting and structure
* * `Yaml` - YAML-aware splitter, creates one chunk per top-level key
* * `Semantic` - Topic-aware chunker. With an `EmbeddingConfig`, splits at
* embedding-based topic shifts tuned by `topic_threshold` (default 0.75,
* lower = more splits). Without an embedding, falls back to a
* structural-boundary heuristic (ALL-CAPS headers, numbered sections,
* blank-line paragraphs) and merges groups into chunks capped at
* `max_characters` (default 1000). `topic_threshold` has no effect in the
* fallback path. For best results, pair with an embedding model.
*/
typedef struct KREUZBERGChunkerType KREUZBERGChunkerType;
/**
* Chunking configuration.
*
* Configures text chunking for document content, including chunk size,
* overlap, trimming behavior, and optional embeddings.
*
* Use `..Default::default()` when constructing to allow for future field additions:
* ```rust
* let config = ChunkingConfig {
* max_characters: 500,
* ..Default::default()
* };
* ```
*/
typedef struct KREUZBERGChunkingConfig KREUZBERGChunkingConfig;
/**
* Citation file metadata (RIS, PubMed, EndNote).
*/
typedef struct KREUZBERGCitationMetadata KREUZBERGCitationMetadata;
/**
* Content rendering mode for code extraction.
*
* Controls how extracted code content is represented in the `content` field
* of `ExtractionResult`.
*/
typedef struct KREUZBERGCodeContentMode KREUZBERGCodeContentMode;
/**
* Cross-extractor content filtering configuration.
*
* Controls whether "furniture" content (headers, footers, page numbers,
* watermarks, repeating text) is included in or stripped from extraction
* results. Applies across all extractors (PDF, DOCX, RTF, ODT, HTML, etc.)
* with format-specific implementation.
*
* When `None` on `ExtractionConfig`, each extractor uses its current
* default behavior unchanged.
*/
typedef struct KREUZBERGContentFilterConfig KREUZBERGContentFilterConfig;
/**
* Content layer classification for document nodes.
*
* Replaces separate body/furniture arrays with per-node granularity.
*/
typedef struct KREUZBERGContentLayer KREUZBERGContentLayer;
/**
* JATS contributor with role.
*/
typedef struct KREUZBERGContributorRole KREUZBERGContributorRole;
/**
* Dublin Core metadata from docProps/core.xml
*
* Contains standard metadata fields defined by the Dublin Core standard
* and Office-specific extensions.
*/
typedef struct KREUZBERGCoreProperties KREUZBERGCoreProperties;
/**
* CSV/TSV file metadata.
*/
typedef struct KREUZBERGCsvMetadata KREUZBERGCsvMetadata;
/**
* dBASE field information.
*/
typedef struct KREUZBERGDbfFieldInfo KREUZBERGDbfFieldInfo;
/**
* dBASE (DBF) file metadata.
*/
typedef struct KREUZBERGDbfMetadata KREUZBERGDbfMetadata;
/**
* MIME type detection response.
*/
typedef struct KREUZBERGDetectResponse KREUZBERGDetectResponse;
/**
* Page-level detection result containing all detections and page metadata.
*/
typedef struct KREUZBERGDetectionResult KREUZBERGDetectionResult;
/**
* A single contiguous hunk in a unified diff.
*/
typedef struct KREUZBERGDiffHunk KREUZBERGDiffHunk;
/**
* A single line in a unified-diff hunk.
*
* Defined here (rather than only in `crate::diff`) so `RevisionDelta` can
* reference it unconditionally, without requiring the `diff` Cargo feature.
* `crate::diff` re-exports this type verbatim.
*/
typedef struct KREUZBERGDiffLine KREUZBERGDiffLine;
/**
* Options controlling how two `ExtractionResult` values are compared.
*/
typedef struct KREUZBERGDiffOptions KREUZBERGDiffOptions;
/**
* Comprehensive Djot document structure with semantic preservation.
*
* This type captures the full richness of Djot markup, including:
* - Block-level structures (headings, lists, blockquotes, code blocks, etc.)
* - Inline formatting (emphasis, strong, highlight, subscript, superscript, etc.)
* - Attributes (classes, IDs, key-value pairs)
* - Links, images, footnotes
* - Math expressions (inline and display)
* - Tables with full structure
*
* Available when the `djot` feature is enabled.
*/
typedef struct KREUZBERGDjotContent KREUZBERGDjotContent;
/**
* Image element in Djot.
*/
typedef struct KREUZBERGDjotImage KREUZBERGDjotImage;
/**
* Link element in Djot.
*/
typedef struct KREUZBERGDjotLink KREUZBERGDjotLink;
/**
* Trait for document extractor plugins.
*
* Implement this trait to add support for new document formats or to override
* built-in extraction behavior with custom logic.
*
* # Return Type
*
* Extractors return `InternalDocument`, a flat intermediate representation.
* The pipeline converts this into the public `ExtractionResult` via the
* derivation step.
*
* # Priority System
*
* When multiple extractors support the same MIME type, the registry selects
* the extractor with the highest priority value. Use this to:
* - Override built-in extractors (priority > 50)
* - Provide fallback extractors (priority < 50)
* - Implement specialized extractors for specific use cases
*
* Default priority is 50.
*
* # Thread Safety
*
* Extractors must be thread-safe (`Send + Sync`) to support concurrent extraction.
* \code
* use kreuzberg::plugins::{Plugin, DocumentExtractor};
* use kreuzberg::{Result, ExtractionConfig};
* use kreuzberg::types::internal::InternalDocument;
* use async_trait::async_trait;
* use std::path::Path;
*
* /// Custom PDF extractor with premium features
* struct PremiumPdfExtractor;
*
* impl Plugin for PremiumPdfExtractor {
* fn name(&self) -> &str { "premium-pdf" }
* fn version(&self) -> String { "2.0.0".to_string() }
* fn initialize(&self) -> Result<()> { Ok(()) }
* fn shutdown(&self) -> Result<()> { Ok(()) }
* }
*
* #[async_trait]
* impl DocumentExtractor for PremiumPdfExtractor {
* async fn extract_bytes(&self, content: &[u8], mime_type: &str, config: &ExtractionConfig)
* -> Result<InternalDocument> {
* // Premium extraction logic with better accuracy
* let mut doc = InternalDocument::new("pdf");
* // ... populate doc.elements, doc.metadata, etc.
* Ok(doc)
* }
*
* fn supported_mime_types(&self) -> &[&str] {
* &["application/pdf"]
* }
*
* fn priority(&self) -> i32 {
* 100 // Higher than default (50) - will be preferred
* }
* }
* \endcode
*/
typedef struct KREUZBERGDocumentExtractor KREUZBERGDocumentExtractor;
/**
* A single node in the document tree.
*
* Each node has deterministic `id`, typed `content`, optional `parent`/`children`
* for tree structure, and metadata like page number, bounding box, and content layer.
*/
typedef struct KREUZBERGDocumentNode KREUZBERGDocumentNode;
/**
* A resolved relationship between two nodes in the document tree.
*/
typedef struct KREUZBERGDocumentRelationship KREUZBERGDocumentRelationship;
/**
* A single tracked change embedded in a document.
*
* Populated by per-format extractors that understand change-tracking metadata
* (DOCX `w:ins`/`w:del`/`w:rPrChange`, ODT `text:change-*`, …). Every
* extractor defaults to `ExtractionResult.revisions = None` until a
* format-specific implementation is added.
*/
typedef struct KREUZBERGDocumentRevision KREUZBERGDocumentRevision;
/**
* Top-level structured document representation.
*
* A flat array of nodes with index-based parent/child references forming a tree.
* Root-level nodes have `parent: None`. Use `body_roots()` and `furniture_roots()`
* to iterate over top-level content by layer.
*
* # Validation
*
* Call `validate()` after construction to verify all node indices are in bounds
* and parent-child relationships are bidirectionally consistent.
*/
typedef struct KREUZBERGDocumentStructure KREUZBERGDocumentStructure;
/**
* Application properties from docProps/app.xml for DOCX
*
* Contains Word-specific document statistics and metadata.
*/
typedef struct KREUZBERGDocxAppProperties KREUZBERGDocxAppProperties;
/**
* Word document metadata.
*
* Extracted from DOCX files using shared Office Open XML metadata extraction.
* Integrates with `office_metadata` module for core/app/custom properties.
*/
typedef struct KREUZBERGDocxMetadata KREUZBERGDocxMetadata;
/**
* Semantic element extracted from document.
*
* Represents a logical unit of content with semantic classification,
* unique identifier, and metadata for tracking origin and position.
*/
typedef struct KREUZBERGElement KREUZBERGElement;
/**
* Metadata for a semantic element.
*/
typedef struct KREUZBERGElementMetadata KREUZBERGElementMetadata;
/**
* Semantic element type classification.
*
* Categorizes text content into semantic units for downstream processing.
* Supports the element types commonly found in Unstructured documents.
*/
typedef struct KREUZBERGElementType KREUZBERGElementType;
/**
* Email attachment representation.
*
* Contains metadata and optionally the content of an email attachment.
*/
typedef struct KREUZBERGEmailAttachment KREUZBERGEmailAttachment;
/**
* Configuration for email extraction.
*/
typedef struct KREUZBERGEmailConfig KREUZBERGEmailConfig;
/**
* Email extraction result.
*
* Complete representation of an extracted email message (.eml or .msg)
* including headers, body content, and attachments.
*/
typedef struct KREUZBERGEmailExtractionResult KREUZBERGEmailExtractionResult;
/**
* Email metadata extracted from .eml and .msg files.
*
* Includes sender/recipient information, message ID, and attachment list.
*/
typedef struct KREUZBERGEmailMetadata KREUZBERGEmailMetadata;
/**
* Changes to embedded archive children between two results.
*/
typedef struct KREUZBERGEmbeddedChanges KREUZBERGEmbeddedChanges;
/**
* Diff for a single embedded archive entry that appears in both results.
*/
typedef struct KREUZBERGEmbeddedDiff KREUZBERGEmbeddedDiff;
/**
* Embedded file descriptor extracted from the PDF name tree.
*/
typedef struct KREUZBERGEmbeddedFile KREUZBERGEmbeddedFile;
/**
* Trait for in-process embedding backend plugins.
*
* Async to match the convention used by `OcrBackend`,
* `DocumentExtractor`, and `PostProcessor`.
* Host-language bridges (PyO3, napi-rs, Rustler, extendr, magnus, ext-php-rs,
* C FFI, etc.) wrap their synchronous host callables in `spawn_blocking` or the
* equivalent to satisfy the async signature.
*
* # Thread safety
*
* Backends must be `Send + Sync + 'static`. They are stored in
* `Arc<dyn EmbeddingBackend>` and called concurrently from kreuzberg's chunking
* pipeline. If the backend's underlying model isn't thread-safe, the backend
* itself must serialize access internally (e.g. via `Mutex<Inner>`).
*
* # Contract
*
* - `embed(texts)` MUST return exactly `texts.len()` vectors, each of length
* `self.dimensions()`. The dispatcher in `embed_texts`
* validates this before returning to downstream consumers; a non-conforming
* backend surfaces as a `KreuzbergError::Validation`, not a panic.
* - `embed` may be called from any thread. Its future must be `Send`
* (enforced by `async_trait` when `#[async_trait]` is used on non-WASM targets).
* - `dimensions()` is called exactly once at registration, immediately after
* `initialize()` succeeds. The returned value is cached by the registry and
* used for all subsequent shape validation. Lazy-loading implementations can
* defer model loading into `initialize()` and report the real dimension
* afterwards. Later mutations of the backend's reported dimension are not
* observed by kreuzberg — implementations that need to change dimension
* must unregister and re-register.
* - `shutdown()` (inherited from `Plugin`) may be invoked
* concurrently with an in-flight `embed()` call. Implementations must
* tolerate this — e.g. by letting in-flight calls finish using resources
* held via the `Arc<dyn EmbeddingBackend>` reference, and only releasing
* shared state that isn't needed by `embed`.
*
* # Runtime
*
* The synchronous `embed_texts` entry uses
* [`tokio::task::block_in_place`] to await the trait's async `embed`, which
* requires a multi-thread tokio runtime. Callers running inside a
* `current_thread` runtime (e.g. `#[tokio::test]` without `flavor = "multi_thread"`,
* or `tokio::runtime::Builder::new_current_thread()`) must use
* `embed_texts_async` instead, which awaits directly without
* `block_in_place`.
*/
typedef struct KREUZBERGEmbeddingBackend KREUZBERGEmbeddingBackend;
/**
* Embedding configuration for text chunks.
*
* Configures embedding generation using ONNX models via the vendored embedding engine.
* Requires the `embeddings` feature to be enabled.
*/
typedef struct KREUZBERGEmbeddingConfig KREUZBERGEmbeddingConfig;
/**
* Embedding model types supported by Kreuzberg.
*/
typedef struct KREUZBERGEmbeddingModelType KREUZBERGEmbeddingModelType;
/**
* Preset configurations for common RAG use cases.
*
* Each preset combines chunk size, overlap, and embedding model
* to provide an optimized configuration for specific scenarios.
*
* All string fields are owned `String` for FFI compatibility — instances
* are safe to clone and pass across language boundaries.
*/
typedef struct KREUZBERGEmbeddingPreset KREUZBERGEmbeddingPreset;
/**
* EPUB metadata (Dublin Core extensions).
*/
typedef struct KREUZBERGEpubMetadata KREUZBERGEpubMetadata;
/**
* Error metadata (for batch operations).
*/
typedef struct KREUZBERGErrorMetadata KREUZBERGErrorMetadata;
/**
* Excel/spreadsheet format metadata.
*
* Identifies the document as a spreadsheet source via the `FormatMetadata::Excel`
* discriminant. Sheet count and sheet names are stored inside this struct.
*/
typedef struct KREUZBERGExcelMetadata KREUZBERGExcelMetadata;
/**
* Single Excel worksheet.
*
* Represents one sheet from an Excel workbook with its content
* converted to Markdown format and dimensional statistics.
*/
typedef struct KREUZBERGExcelSheet KREUZBERGExcelSheet;
/**
* Excel workbook representation.
*
* Contains all sheets from an Excel file (.xlsx, .xls, etc.) with
* extracted content and metadata.
*/
typedef struct KREUZBERGExcelWorkbook KREUZBERGExcelWorkbook;
/**
* ONNX Runtime execution provider type.
*
* Determines which hardware backend is used for model inference.
* `Auto` (default) selects the best available provider per platform.
*/
typedef struct KREUZBERGExecutionProviderType KREUZBERGExecutionProviderType;
/**
* Extracted image from a document.
*
* Contains raw image data, metadata, and optional nested OCR results.
* Raw bytes allow cross-language compatibility - users can convert to
* PIL.Image (Python), Sharp (Node.js), or other formats as needed.
*/
typedef struct KREUZBERGExtractedImage KREUZBERGExtractedImage;
/**
* A URI extracted from a document.
*
* Represents any link, reference, or resource pointer found during extraction.
* The `kind` field classifies the URI semantically, while `label` carries
* optional human-readable display text.
*/
typedef struct KREUZBERGExtractedUri KREUZBERGExtractedUri;
/**
* Main extraction configuration.
*
* This struct contains all configuration options for the extraction process.
* It can be loaded from TOML, YAML, or JSON files, or created programmatically.
* \code
* use kreuzberg::core::config::ExtractionConfig;
*
* // Create with defaults
* let config = ExtractionConfig::default();
*
* // Load from TOML file
* // let config = ExtractionConfig::from_toml_file("kreuzberg.toml")?;
* \endcode
*/
typedef struct KREUZBERGExtractionConfig KREUZBERGExtractionConfig;
/**
* The complete diff between two `ExtractionResult` values.
*/
typedef struct KREUZBERGExtractionDiff KREUZBERGExtractionDiff;
/**
* How the extracted text was produced.
*/
typedef struct KREUZBERGExtractionMethod KREUZBERGExtractionMethod;
/**
* General extraction result used by the core extraction API.
*
* This is the main result type returned by all extraction functions.
*/
typedef struct KREUZBERGExtractionResult KREUZBERGExtractionResult;
/**
* FictionBook (FB2) metadata.
*/
typedef struct KREUZBERGFictionBookMetadata KREUZBERGFictionBookMetadata;
/**
* Per-file extraction configuration overrides for batch processing.
*
* All fields are `Option<T>` — `None` means "use the batch-level default."
* This type is used with `batch_extract_files` and
* `batch_extract_bytes` to allow heterogeneous
* extraction settings within a single batch.
*
* # Excluded Fields
*
* The following `ExtractionConfig` fields are batch-level only and
* cannot be overridden per file:
* - `max_concurrent_extractions` — controls batch parallelism
* - `use_cache` — global caching policy
* - `acceleration` — shared ONNX execution provider
* - `security_limits` — global archive security policy
* \code
* use kreuzberg::FileExtractionConfig;
*
* // Override just OCR forcing for a specific file
* let config = FileExtractionConfig {
* force_ocr: Some(true),
* ..Default::default()
* };
* \endcode
*/
typedef struct KREUZBERGFileExtractionConfig KREUZBERGFileExtractionConfig;
/**
* Footnote in Djot.
*/
typedef struct KREUZBERGFootnote KREUZBERGFootnote;
/**
* Format-specific metadata (discriminated union).
*
* Only one format type can exist per extraction result. This provides
* type-safe, clean metadata without nested optionals.
*/
typedef struct KREUZBERGFormatMetadata KREUZBERGFormatMetadata;
/**
* Block-level element in a Djot document.
*
* Represents structural elements like headings, paragraphs, lists, code blocks, etc.
*/
typedef struct KREUZBERGFormattedBlock KREUZBERGFormattedBlock;
/**
* Individual grid cell with position and span metadata.
*/
typedef struct KREUZBERGGridCell KREUZBERGGridCell;
/**
* Header/heading element metadata.
*/
typedef struct KREUZBERGHeaderMetadata KREUZBERGHeaderMetadata;
/**
* Heading context for a chunk within a Markdown document.
*
* Contains the heading hierarchy from document root to this chunk's section.
*/
typedef struct KREUZBERGHeadingContext KREUZBERGHeadingContext;
/**
* A single heading in the hierarchy.
*/
typedef struct KREUZBERGHeadingLevel KREUZBERGHeadingLevel;
/**
* A text block with hierarchy level assignment.
*
* Represents a block of text with semantic heading information extracted from
* font size clustering and hierarchical analysis.
*/
typedef struct KREUZBERGHierarchicalBlock KREUZBERGHierarchicalBlock;
/**
* Hierarchy extraction configuration for PDF text structure analysis.
*
* Enables extraction of document hierarchy levels (H1-H6) based on font size
* clustering and semantic analysis. When enabled, hierarchical blocks are
* included in page content.
*/
typedef struct KREUZBERGHierarchyConfig KREUZBERGHierarchyConfig;
/**
* HTML metadata extracted from HTML documents.
*
* Includes document-level metadata, Open Graph data, Twitter Card metadata,
* and extracted structural elements (headers, links, images, structured data).
*/
typedef struct KREUZBERGHtmlMetadata KREUZBERGHtmlMetadata;
/**
* Configuration for styled HTML output.
*
* When set on [`ExtractionConfig::html_output`] alongside
* `output_format = OutputFormat::Html`, the pipeline builds a
* `StyledHtmlRenderer` (crate::rendering::StyledHtmlRenderer) instead of
* the plain comrak-based renderer.
* \code
* use kreuzberg::core::config::{HtmlOutputConfig, HtmlTheme};
*
* let config = HtmlOutputConfig {
* theme: HtmlTheme::GitHub,
* css: Some(".kb-p { font-size: 1.1rem; }".to_string()),
* ..Default::default()
* };
* \endcode
*/
typedef struct KREUZBERGHtmlOutputConfig KREUZBERGHtmlOutputConfig;
/**
* Built-in HTML theme selection.
*/
typedef struct KREUZBERGHtmlTheme KREUZBERGHtmlTheme;
/**
* Image extraction configuration.
*/
typedef struct KREUZBERGImageExtractionConfig KREUZBERGImageExtractionConfig;
/**
* Heuristic classification of what an image likely depicts.
*/
typedef struct KREUZBERGImageKind KREUZBERGImageKind;
/**
* Image metadata extracted from image files.
*
* Includes dimensions, format, and EXIF data.
*/
typedef struct KREUZBERGImageMetadata KREUZBERGImageMetadata;
/**
* Image element metadata.
*/
typedef struct KREUZBERGImageMetadataType KREUZBERGImageMetadataType;
/**
* Image preprocessing configuration for OCR.
*
* These settings control how images are preprocessed before OCR to improve
* text recognition quality. Different preprocessing strategies work better
* for different document types.
*/
typedef struct KREUZBERGImagePreprocessingConfig KREUZBERGImagePreprocessingConfig;
/**
* Image preprocessing metadata.
*
* Tracks the transformations applied to an image during OCR preprocessing,
* including DPI normalization, resizing, and resampling.
*/
typedef struct KREUZBERGImagePreprocessingMetadata KREUZBERGImagePreprocessingMetadata;
/**
* Image type classification.
*/
typedef struct KREUZBERGImageType KREUZBERGImageType;
/**
* Inline element within a block.
*
* Represents text with formatting, links, images, etc.
*/
typedef struct KREUZBERGInlineElement KREUZBERGInlineElement;
/**
* Types of inline elements in Djot.
*/
typedef struct KREUZBERGInlineType KREUZBERGInlineType;
/**
* JATS (Journal Article Tag Suite) metadata.
*/
typedef struct KREUZBERGJatsMetadata KREUZBERGJatsMetadata;
/**
* Extracted keyword with metadata.
*/
typedef struct KREUZBERGKeyword KREUZBERGKeyword;
/**
* Keyword algorithm selection.
*/
typedef struct KREUZBERGKeywordAlgorithm KREUZBERGKeywordAlgorithm;
/**
* Keyword extraction configuration.
*/
typedef struct KREUZBERGKeywordConfig KREUZBERGKeywordConfig;
/**
* Language detection configuration.
*/
typedef struct KREUZBERGLanguageDetectionConfig KREUZBERGLanguageDetectionConfig;
/**
* The 17 canonical document layout classes.
*
* All model backends (RT-DETR, YOLO, etc.) map their native class IDs
* to this shared set. Models with fewer classes (DocLayNet: 11, PubLayNet: 5)
* map to the closest equivalent.
*
* Wire format is snake_case in all serializers (JSON, TOML, YAML).
*/
typedef struct KREUZBERGLayoutClass KREUZBERGLayoutClass;
/**
* A single layout detection result.
*/
typedef struct KREUZBERGLayoutDetection KREUZBERGLayoutDetection;
/**
* Layout detection configuration.
*
* Controls layout detection behavior in the extraction pipeline.
* When set on `ExtractionConfig` (super::ExtractionConfig), layout detection
* is enabled for PDF extraction.
*/
typedef struct KREUZBERGLayoutDetectionConfig KREUZBERGLayoutDetectionConfig;
/**
* A detected layout region on a page.
*
* When layout detection is enabled, each page may have layout regions
* identifying different content types (text, pictures, tables, etc.)
* with confidence scores and spatial positions.
*/
typedef struct KREUZBERGLayoutRegion KREUZBERGLayoutRegion;
/**
* Link element metadata.
*/
typedef struct KREUZBERGLinkMetadata KREUZBERGLinkMetadata;
/**
* Link type classification.
*/
typedef struct KREUZBERGLinkType KREUZBERGLinkType;
/**
* Type of list detection.
*/
typedef struct KREUZBERGListType KREUZBERGListType;
/**
* Configuration for an LLM provider/model via liter-llm.
*
* Each feature (VLM OCR, VLM embeddings, structured extraction) carries
* its own `LlmConfig`, allowing different providers per feature.
* \code
* [structured_extraction.llm]
* model = "openai/gpt-4o"
* api_key = "sk-..." # or use KREUZBERG_LLM_API_KEY env var
* \endcode
*/
typedef struct KREUZBERGLlmConfig KREUZBERGLlmConfig;
/**
* Token usage and cost data for a single LLM call made during extraction.
*
* Populated when VLM OCR, structured extraction, or LLM-based embeddings
* are used. Multiple entries may be present when multiple LLM calls occur
* within one extraction (e.g. VLM OCR + structured extraction).
*/
typedef struct KREUZBERGLlmUsage KREUZBERGLlmUsage;
/**
* Extraction result metadata.
*
* Contains common fields applicable to all formats, format-specific metadata
* via a discriminated union, and additional custom fields from postprocessors.
*/
typedef struct KREUZBERGMetadata KREUZBERGMetadata;
/**
* Combined paths to all models needed for OCR (backward compatibility).
*/
typedef struct KREUZBERGModelPaths KREUZBERGModelPaths;
/**
* Tagged enum for node content. Each variant carries only type-specific data.
*
* Uses `#[serde(tag = "node_type")]` to avoid "type" keyword collision in
* Go/Java/TypeScript bindings.
*/
typedef struct KREUZBERGNodeContent KREUZBERGNodeContent;
/**
* Trait for OCR backend plugins.
*
* Implement this trait to add custom OCR capabilities. OCR backends can be:
* - Native Rust implementations (like Tesseract)
* - FFI bridges to Python libraries (like EasyOCR, PaddleOCR)
* - Cloud-based OCR services (Google Vision, AWS Textract, etc.)
*
* # Thread Safety
*
* OCR backends must be thread-safe (`Send + Sync`) to support concurrent processing.
* \code
* use kreuzberg::plugins::{Plugin, OcrBackend, OcrBackendType};
* use kreuzberg::{Result, OcrConfig};
* use async_trait::async_trait;
* use std::borrow::Cow;
* use std::path::Path;
* use kreuzberg::types::{ExtractionResult, Metadata};
*
* struct CustomOcrBackend;
*
* impl Plugin for CustomOcrBackend {
* fn name(&self) -> &str { "custom-ocr" }
* fn version(&self) -> String { "1.0.0".to_string() }
* fn initialize(&self) -> Result<()> { Ok(()) }
* fn shutdown(&self) -> Result<()> { Ok(()) }
* }
*
* #[async_trait]
* impl OcrBackend for CustomOcrBackend {
* async fn process_image(&self, image_bytes: &[u8], config: &OcrConfig) -> Result<ExtractionResult> {
* // Implement OCR logic here
* Ok(ExtractionResult {
* content: "Extracted text".to_string(),
* mime_type: Cow::Borrowed("text/plain"),
* ..Default::default()
* })
* }
*
* async fn process_image_file(&self, path: &Path, config: &OcrConfig) -> Result<ExtractionResult> {
* let bytes = std::fs::read(path)?;
* self.process_image(&bytes, config).await
* }
*
* fn supports_language(&self, lang: &str) -> bool {
* matches!(lang, "eng" | "deu" | "fra")
* }
*
* fn backend_type(&self) -> OcrBackendType {
* OcrBackendType::Custom
* }
* }
* \endcode
*/
typedef struct KREUZBERGOcrBackend KREUZBERGOcrBackend;
/**
* OCR backend types.
*/
typedef struct KREUZBERGOcrBackendType KREUZBERGOcrBackendType;
/**
* Bounding geometry for an OCR element.
*
* Supports both axis-aligned rectangles (from Tesseract) and 4-point quadrilaterals
* (from PaddleOCR and rotated text detection).
*/
typedef struct KREUZBERGOcrBoundingGeometry KREUZBERGOcrBoundingGeometry;
/**
* Confidence scores for an OCR element.
*
* Separates detection confidence (how confident that text exists at this location)
* from recognition confidence (how confident about the actual text content).
*/
typedef struct KREUZBERGOcrConfidence KREUZBERGOcrConfidence;
/**
* OCR configuration.
*/
typedef struct KREUZBERGOcrConfig KREUZBERGOcrConfig;
/**
* A unified OCR element representing detected text with full metadata.
*
* This is the primary type for structured OCR output, preserving all information
* from both Tesseract and PaddleOCR backends.
*/
typedef struct KREUZBERGOcrElement KREUZBERGOcrElement;
/**
* Configuration for OCR element extraction.
*
* Controls how OCR elements are extracted and filtered.
*/
typedef struct KREUZBERGOcrElementConfig KREUZBERGOcrElementConfig;
/**
* Hierarchical level of an OCR element.
*
* Maps to Tesseract's page segmentation hierarchy and provides
* equivalent semantics for PaddleOCR.
*/
typedef struct KREUZBERGOcrElementLevel KREUZBERGOcrElementLevel;
/**
* OCR extraction result.
*
* Result of performing OCR on an image or scanned document,
* including recognized text and detected tables.
*/
typedef struct KREUZBERGOcrExtractionResult KREUZBERGOcrExtractionResult;
/**
* OCR processing metadata.
*
* Captures information about OCR processing configuration and results.
*/
typedef struct KREUZBERGOcrMetadata KREUZBERGOcrMetadata;
/**
* Multi-backend OCR pipeline with quality-based fallback.
*
* Backends are tried in priority order (highest first). After each backend
* produces output, quality is evaluated. If it meets `quality_thresholds.pipeline_min_quality`,
* the result is accepted. Otherwise the next backend is tried.
*/
typedef struct KREUZBERGOcrPipelineConfig KREUZBERGOcrPipelineConfig;
/**
* A single backend stage in the OCR pipeline.
*/
typedef struct KREUZBERGOcrPipelineStage KREUZBERGOcrPipelineStage;
/**
* Quality thresholds for OCR fallback decisions and pipeline quality gating.
*
* All fields default to the values that match the previous hardcoded behavior,
* so `OcrQualityThresholds::default()` preserves existing semantics exactly.
*/
typedef struct KREUZBERGOcrQualityThresholds KREUZBERGOcrQualityThresholds;
/**
* Rotation information for an OCR element.
*/
typedef struct KREUZBERGOcrRotation KREUZBERGOcrRotation;
/**
* Table detected via OCR.
*
* Represents a table structure recognized during OCR processing.
*/
typedef struct KREUZBERGOcrTable KREUZBERGOcrTable;
/**
* Bounding box for an OCR-detected table in pixel coordinates.
*/
typedef struct KREUZBERGOcrTableBoundingBox KREUZBERGOcrTableBoundingBox;
/**
* Document orientation detection result.
*/
typedef struct KREUZBERGOrientationResult KREUZBERGOrientationResult;
/**
* Output format for extraction results.
*
* Controls the format of the `content` field in `ExtractionResult`.
* When set to `Markdown`, `Djot`, or `Html`, the output uses that format.
* `Plain` returns the raw extracted text.
* `Structured` returns JSON with full OCR element data including bounding
* boxes and confidence scores.
*/
typedef struct KREUZBERGOutputFormat KREUZBERGOutputFormat;
/**
* Page Segmentation Mode for Tesseract OCR
*/
typedef struct KREUZBERGPSMMode KREUZBERGPSMMode;
/**
* Supported languages in PaddleOCR.
*
* Maps user-friendly language codes to paddle-ocr-rs language identifiers.
*/
typedef struct KREUZBERGPaddleLanguage KREUZBERGPaddleLanguage;
/**
* Configuration for PaddleOCR backend.
*
* Configures PaddleOCR text detection and recognition with multi-language support.
* Uses a builder pattern for convenient configuration.
* \code
* use kreuzberg::PaddleOcrConfig;
*
* // Create with default English configuration
* let config = PaddleOcrConfig::new("en");
*
* // Create with custom cache directory
* let config = PaddleOcrConfig::new("ch")
* .with_cache_dir("/path/to/cache".into());
*
* // Enable table detection
* let config = PaddleOcrConfig::new("en")
* .with_table_detection(true);
* \endcode
*/
typedef struct KREUZBERGPaddleOcrConfig KREUZBERGPaddleOcrConfig;
/**
* Byte offset boundary for a page.
*
* Tracks where a specific page's content starts and ends in the main content string,
* enabling mapping from byte positions to page numbers. Offsets are guaranteed to be
* at valid UTF-8 character boundaries when using standard String methods (push_str, push, etc.).
*/
typedef struct KREUZBERGPageBoundary KREUZBERGPageBoundary;
/**
* Page extraction and tracking configuration.
*
* Controls how pages are extracted, tracked, and represented in the extraction results.
* When `None`, page tracking is disabled.
*
* Page range tracking in chunk metadata (first_page/last_page) is automatically enabled
* when page boundaries are available and chunking is configured.
*/
typedef struct KREUZBERGPageConfig KREUZBERGPageConfig;
/**
* Content for a single page/slide.
*
* When page extraction is enabled, documents are split into per-page content
* with associated tables and images mapped to each page.
*
* # Performance
*
* Uses Arc-wrapped tables and images for memory efficiency:
* - `Vec<Arc<Table>>` enables zero-copy sharing of table data
* - `Vec<Arc<ExtractedImage>>` enables zero-copy sharing of image data
* - Maintains exact JSON compatibility via custom Serialize/Deserialize
*
* This reduces memory overhead for documents with shared tables/images
* by avoiding redundant copies during serialization.
*/
typedef struct KREUZBERGPageContent KREUZBERGPageContent;
/**
* Page hierarchy structure containing heading levels and block information.
*
* Used when PDF text hierarchy extraction is enabled. Contains hierarchical
* blocks with heading levels (H1-H6) for semantic document structure.
*/
typedef struct KREUZBERGPageHierarchy KREUZBERGPageHierarchy;
/**
* Metadata for individual page/slide/sheet.
*
* Captures per-page information including dimensions, content counts,
* and visibility state (for presentations).
*/
typedef struct KREUZBERGPageInfo KREUZBERGPageInfo;
/**
* Unified page structure for documents.
*
* Supports different page types (PDF pages, PPTX slides, Excel sheets)
* with character offset boundaries for chunk-to-page mapping.
*/
typedef struct KREUZBERGPageStructure KREUZBERGPageStructure;
/**
* Type of paginated unit in a document.
*
* Distinguishes between different types of "pages" (PDF pages, presentation slides, spreadsheet
* sheets).
*/
typedef struct KREUZBERGPageUnitType KREUZBERGPageUnitType;
/**
* A PDF annotation extracted from a document page.
*/
typedef struct KREUZBERGPdfAnnotation KREUZBERGPdfAnnotation;
/**
* Type of PDF annotation.
*/
typedef struct KREUZBERGPdfAnnotationType KREUZBERGPdfAnnotationType;
/**
* PDF-specific configuration.
*/
typedef struct KREUZBERGPdfConfig KREUZBERGPdfConfig;
/**
* PDF-specific metadata.
*
* Contains metadata fields specific to PDF documents that are not in the common
* `Metadata` structure. Common fields like title, authors, keywords, and dates
* are at the `Metadata` level.
*/
typedef struct KREUZBERGPdfMetadata KREUZBERGPdfMetadata;
/**
* Base trait that all plugins must implement.
*
* This trait provides common functionality for plugin lifecycle management,
* identification, and metadata.
*
* # Thread Safety
*
* All plugins must be `Send + Sync` to support concurrent usage across threads.
* \code
* use kreuzberg::plugins::Plugin;
* use kreuzberg::Result;
* use std::sync::atomic::{AtomicBool, Ordering};
*
* struct MyPlugin {
* initialized: AtomicBool,
* }
*
* impl Plugin for MyPlugin {
* fn name(&self) -> &str {
* "my-plugin"
* }
*
* fn version(&self) -> String {
* "1.0.0".to_string()
* }
*
* fn initialize(&self) -> Result<()> {
* self.initialized.store(true, Ordering::Release);
* println!("Plugin initialized!");
* Ok(())
* }
*
* fn shutdown(&self) -> Result<()> {
* self.initialized.store(false, Ordering::Release);
* println!("Plugin shutdown!");
* Ok(())
* }
* }
* \endcode
*/
typedef struct KREUZBERGPlugin KREUZBERGPlugin;
/**
* Trait for post-processor plugins.
*
* Post-processors transform or enrich extraction results after the initial
* extraction is complete. They can:
* - Clean and normalize text
* - Add metadata (language, keywords, entities)
* - Split content into chunks
* - Score quality
* - Apply custom transformations
*
* # Processing Order
*
* Post-processors are executed in stage order:
* 1. **Early** - Language detection, entity extraction
* 2. **Middle** - Keyword extraction, token reduction
* 3. **Late** - Custom hooks, final validation
*
* Within each stage, processors are executed in registration order.
*
* # Error Handling
*
* Post-processor errors are non-fatal by default - they're captured in metadata
* and execution continues. To make errors fatal, return an error from `process()`.
*
* # Thread Safety
*
* Post-processors must be thread-safe (`Send + Sync`).
* \code
* use kreuzberg::plugins::{Plugin, PostProcessor, ProcessingStage};
* use kreuzberg::{Result, ExtractionResult, ExtractionConfig};
* use async_trait::async_trait;
*
* /// Add word count metadata to extraction results
* struct WordCountProcessor;
*
* impl Plugin for WordCountProcessor {
* fn name(&self) -> &str { "word-count" }
* fn version(&self) -> String { "1.0.0".to_string() }
* fn initialize(&self) -> Result<()> { Ok(()) }
* fn shutdown(&self) -> Result<()> { Ok(()) }
* }
*
* #[async_trait]
* impl PostProcessor for WordCountProcessor {
* async fn process(&self, result: &mut ExtractionResult, config: &ExtractionConfig)
* -> Result<()> {
* // Count words
* let word_count = result.content.split_whitespace().count();
*
* // Add to metadata
* result.metadata.additional.insert("word_count".to_string().into(), serde_json::json!(word_count));
*
* Ok(())
* }
*
* fn processing_stage(&self) -> ProcessingStage {
* ProcessingStage::Early
* }
* }
* \endcode
*/
typedef struct KREUZBERGPostProcessor KREUZBERGPostProcessor;
/**
* Post-processor configuration.
*/
typedef struct KREUZBERGPostProcessorConfig KREUZBERGPostProcessorConfig;
/**
* Application properties from docProps/app.xml for PPTX
*
* Contains PowerPoint-specific document metadata.
*/
typedef struct KREUZBERGPptxAppProperties KREUZBERGPptxAppProperties;
/**
* PowerPoint (PPTX) extraction result.
*
* Contains extracted slide content, metadata, and embedded images/tables.
*/
typedef struct KREUZBERGPptxExtractionResult KREUZBERGPptxExtractionResult;
/**
* PowerPoint presentation metadata.
*
* Extracted from PPTX files containing slide counts and presentation details.
*/
typedef struct KREUZBERGPptxMetadata KREUZBERGPptxMetadata;
/**
* Processing stages for post-processors.
*
* Post-processors are executed in stage order (Early → Middle → Late).
* Use stages to control the order of post-processing operations.
*/
typedef struct KREUZBERGProcessingStage KREUZBERGProcessingStage;
/**
* A non-fatal warning from a processing pipeline stage.
*
* Captures errors from optional features that don't prevent extraction
* but may indicate degraded results.
*/
typedef struct KREUZBERGProcessingWarning KREUZBERGProcessingWarning;
/**
* Outlook PST archive metadata.
*/
typedef struct KREUZBERGPstMetadata KREUZBERGPstMetadata;
/**
* RAKE-specific parameters.
*/
typedef struct KREUZBERGRakeParams KREUZBERGRakeParams;
/**
* Pre-computed table markdown for a table detection region.
*
* Produced by the TATR-based table structure recognizer and surfaced as part of
* layout-aware OCR results. The struct lives here (under `layout-types`, pure-Rust)
* so that consumers who do not enable `layout-detection` (ORT) can still reference
* the type in their own code.
*/
typedef struct KREUZBERGRecognizedTable KREUZBERGRecognizedTable;
typedef struct KREUZBERGReductionLevel KREUZBERGReductionLevel;
/**
* Semantic kind of a relationship between document elements.
*/
typedef struct KREUZBERGRelationshipKind KREUZBERGRelationshipKind;
/**
* Trait for document renderers that convert [`InternalDocument`] to output strings.
*
* Renderers are typically stateless converters that transform the internal
* document representation into a specific output format (Markdown, HTML,
* Djot, plain text, etc.). They participate in the standard [`Plugin`]
* lifecycle so custom renderers can be registered from any supported binding
* language.
*
* The format name is exposed via [`Plugin::name`]. For stateless renderers
* the [`Plugin`] lifecycle methods (`version`, `initialize`, `shutdown`) all
* take no-op defaults and need not be overridden.
*
* # Thread Safety
*
* Renderers must be `Send + Sync` (inherited from [`Plugin`]).
* \code
* use kreuzberg::plugins::{Plugin, Renderer};
* use kreuzberg::types::internal::InternalDocument;
* use kreuzberg::Result;
*
* struct CustomRenderer;
*
* impl Plugin for CustomRenderer {
* fn name(&self) -> &str { "custom" }
* }
*
* impl Renderer for CustomRenderer {
* fn render(&self, doc: &InternalDocument) -> Result<String> {
* Ok(format!("Custom output with {} elements", doc.elements.len()))
* }
* }
* \endcode
*/
typedef struct KREUZBERGRenderer KREUZBERGRenderer;
/**
* Result-shape selection for extraction results.
*
* Distinct from `OutputFormat` (which controls rendering — Plain, Markdown,
* HTML, etc.). `ResultFormat` controls the *shape* of the result: a unified content
* blob vs. an element-based decomposition.
*/
typedef struct KREUZBERGResultFormat KREUZBERGResultFormat;
/**
* Best-effort document location for a revision.
*/
typedef struct KREUZBERGRevisionAnchor KREUZBERGRevisionAnchor;
/**
* The content changes that make up a single revision.
*
* For insertions and deletions the `content` field carries the added/removed
* lines as `DiffLine::Added` / `DiffLine::Removed` entries. For format
* changes, `content` is empty — the property diff is left as a TODO for a
* later enrichment pass.
*/
typedef struct KREUZBERGRevisionDelta KREUZBERGRevisionDelta;
/**
* Semantic classification of a tracked change.
*/
typedef struct KREUZBERGRevisionKind KREUZBERGRevisionKind;
/**
* Configuration for security limits across extractors.
*
* All limits are intentionally conservative to prevent DoS attacks
* while still supporting legitimate documents.
*/
typedef struct KREUZBERGSecurityLimits KREUZBERGSecurityLimits;
/**
* API server configuration.
*
* This struct holds all configuration options for the Kreuzberg API server,
* including host/port settings, CORS configuration, and upload limits.
*
* # Defaults
*
* - `host`: "127.0.0.1" (localhost only)
* - `port`: 8000
* - `cors_origins`: empty vector (allows all origins)
* - `max_request_body_bytes`: 104_857_600 (100 MB)
* - `max_multipart_field_bytes`: 104_857_600 (100 MB)
*/
typedef struct KREUZBERGServerConfig KREUZBERGServerConfig;
/**
* Structured data (Schema.org, microdata, RDFa) block.
*/
typedef struct KREUZBERGStructuredData KREUZBERGStructuredData;
typedef struct KREUZBERGStructuredDataResult KREUZBERGStructuredDataResult;
/**
* Structured data type classification.
*/
typedef struct KREUZBERGStructuredDataType KREUZBERGStructuredDataType;
/**
* Configuration for LLM-based structured data extraction.
*
* Sends extracted document content to a VLM with a JSON schema,
* returning structured data that conforms to the schema.
* \code
* [structured_extraction]
* schema_name = "invoice_data"
* strict = true
*
* [structured_extraction.schema]
* type = "object"
* properties.vendor = { type = "string" }
* properties.total = { type = "number" }
* required = ["vendor", "total"]
*
* [structured_extraction.llm]
* model = "openai/gpt-4o"
* \endcode
*/
typedef struct KREUZBERGStructuredExtractionConfig KREUZBERGStructuredExtractionConfig;
/**
* A supported document format entry.
*
* Represents a file extension and its corresponding MIME type that Kreuzberg can process.
*/
typedef struct KREUZBERGSupportedFormat KREUZBERGSupportedFormat;
/**
* Extracted table structure.
*
* Represents a table detected and extracted from a document (PDF, image, etc.).
* Tables are converted to both structured cell data and Markdown format.
*/
typedef struct KREUZBERGTable KREUZBERGTable;
/**
* Individual table cell with content and optional styling.
*
* Future extension point for rich table support with cell-level metadata.
*/
typedef struct KREUZBERGTableCell KREUZBERGTableCell;
/**
* Cell-level changes for a pair of tables that share the same index.
*/
typedef struct KREUZBERGTableDiff KREUZBERGTableDiff;
/**
* Structured table grid with cell-level metadata.
*
* Stores row/column dimensions and a flat list of cells with position info.
*/
typedef struct KREUZBERGTableGrid KREUZBERGTableGrid;
/**
* Which table structure recognition model to use.
*
* Controls the model used for table cell detection within layout-detected
* table regions. Wire format is snake_case in all serializers (JSON, TOML,
* YAML).
*/
typedef struct KREUZBERGTableModel KREUZBERGTableModel;
/**
* Tesseract OCR configuration.
*
* Provides fine-grained control over Tesseract OCR engine parameters.
* Most users can use the defaults, but these settings allow optimization
* for specific document types (invoices, handwriting, etc.).
*/
typedef struct KREUZBERGTesseractConfig KREUZBERGTesseractConfig;
/**
* Inline text annotation — byte-range based formatting and links.
*
* Annotations reference byte offsets into the node's text content,
* enabling precise identification of formatted regions.
*/
typedef struct KREUZBERGTextAnnotation KREUZBERGTextAnnotation;
/**
* Text direction enumeration for HTML documents.
*/
typedef struct KREUZBERGTextDirection KREUZBERGTextDirection;
/**
* Plain text and Markdown extraction result.
*
* Contains the extracted text along with statistics and,
* for Markdown files, structural elements like headers and links.
*/
typedef struct KREUZBERGTextExtractionResult KREUZBERGTextExtractionResult;
/**
* Text/Markdown metadata.
*
* Extracted from plain text and Markdown files. Includes word counts and,
* for Markdown, structural elements like headers and links.
*/
typedef struct KREUZBERGTextMetadata KREUZBERGTextMetadata;
typedef struct KREUZBERGTokenReductionConfig KREUZBERGTokenReductionConfig;
/**
* Token reduction configuration.
*/
typedef struct KREUZBERGTokenReductionOptions KREUZBERGTokenReductionOptions;
/**
* Configuration for tree-sitter language pack integration.
*
* Controls grammar download behavior and code analysis options.
*
* # Example (TOML)
*
* ```toml
* [tree_sitter]
* languages = ["python", "rust"]
* groups = ["web"]
*
* [tree_sitter.process]
* structure = true
* comments = true
* docstrings = true
* ```
*/
typedef struct KREUZBERGTreeSitterConfig KREUZBERGTreeSitterConfig;
/**
* Processing options for tree-sitter code analysis.
*
* Controls which analysis features are enabled when extracting code files.
*/
typedef struct KREUZBERGTreeSitterProcessConfig KREUZBERGTreeSitterProcessConfig;
/**
* Semantic classification of an extracted URI.
*/
typedef struct KREUZBERGUriKind KREUZBERGUriKind;
/**
* Trait for validator plugins.
*
* Validators check extraction results for quality, completeness, or correctness.
* Unlike post-processors, validator errors **fail fast** - if a validator returns
* an error, the extraction fails immediately.
*
* # Use Cases
*
* - **Quality Gates**: Ensure extracted content meets minimum quality standards
* - **Compliance**: Verify content meets regulatory requirements
* - **Content Filtering**: Reject documents containing unwanted content
* - **Format Validation**: Verify extracted content structure
* - **Security Checks**: Scan for malicious content
*
* # Error Handling
*
* Validator errors are **fatal** - they cause the extraction to fail and bubble up
* to the caller. Use validators for hard requirements that must be met.
*
* For non-fatal checks, use post-processors instead.
*
* # Thread Safety
*
* Validators must be thread-safe (`Send + Sync`).
* \code
* use kreuzberg::plugins::{Plugin, Validator};
* use kreuzberg::{Result, ExtractionResult, ExtractionConfig, KreuzbergError};
* use async_trait::async_trait;
*
* /// Validate that extracted content has minimum length
* struct MinimumLengthValidator {
* min_length: usize,
* }
*
* impl Plugin for MinimumLengthValidator {
* fn name(&self) -> &str { "min-length-validator" }
* fn version(&self) -> String { "1.0.0".to_string() }
* fn initialize(&self) -> Result<()> { Ok(()) }
* fn shutdown(&self) -> Result<()> { Ok(()) }
* }
*
* #[async_trait]
* impl Validator for MinimumLengthValidator {
* async fn validate(&self, result: &ExtractionResult, config: &ExtractionConfig)
* -> Result<()> {
* if result.content.len() < self.min_length {
* return Err(KreuzbergError::validation(format!(
* "Content too short: {} < {} characters",
* result.content.len(),
* self.min_length
* )));
* }
* Ok(())
* }
* }
* \endcode
*/
typedef struct KREUZBERGValidator KREUZBERGValidator;
/**
* Application properties from docProps/app.xml for XLSX
*
* Contains Excel-specific document metadata.
*/
typedef struct KREUZBERGXlsxAppProperties KREUZBERGXlsxAppProperties;
/**
* XML extraction result.
*
* Contains extracted text content from XML files along with
* structural statistics about the XML document.
*/
typedef struct KREUZBERGXmlExtractionResult KREUZBERGXmlExtractionResult;
/**
* XML metadata extracted during XML parsing.
*
* Provides statistics about XML document structure.
*/
typedef struct KREUZBERGXmlMetadata KREUZBERGXmlMetadata;
/**
* YAKE-specific parameters.
*/
typedef struct KREUZBERGYakeParams KREUZBERGYakeParams;
/**
* Year range for bibliographic metadata.
*/
typedef struct KREUZBERGYearRange KREUZBERGYearRange;
/**
* VTable for C plugin bridges implementing the `OcrBackend` trait.
*
* # Safety
*
* All function pointers must be valid for the lifetime of any bridge created from
* this vtable. `free_user_data`, when non-null, is called once with `user_data`
* when the bridge is dropped.
*/
typedef struct KREUZBERGKreuzbergOcrBackendVTable {
/**
* Return a null-terminated UTF-8 name string into `out_name`; return 0 on success.
*/
int32_t (*name_fn)(const void *user_data,
char **out_name,
char **out_error);
/**
* Return a null-terminated UTF-8 version string into `out_version`; return 0 on success.
*/
int32_t (*version_fn)(const void *user_data,
char **out_version,
char **out_error);
/**
* Initialise the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
*/
int32_t (*initialize_fn)(const void *user_data,
char **out_error);
/**
* Shut down the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
*/
int32_t (*shutdown_fn)(const void *user_data,
char **out_error);
/**
* Process an image and extract text via OCR.
*
* # Arguments
*
* * `image_bytes` - Raw image data (JPEG, PNG, TIFF, etc.)
* * `config` - OCR configuration (language, PSM mode, etc.)
*
* # Returns
*
* An `ExtractionResult` containing the extracted text and metadata.
*
* # Errors
*
* - `KreuzbergError::Ocr` - OCR processing failed
* - `KreuzbergError::Validation` - Invalid image format or configuration
* - `KreuzbergError::Io` - I/O errors (these always bubble up)
*
* # Reading `backend_options`
*
* Backends that support runtime tuning can read `config.backend_options` and
* deserialize only the keys they care about. Unknown keys are silently ignored,
* so multiple backends can coexist in a pipeline without key conflicts.
*
* ```rust
* async fn process_image(&self, image_bytes: &[u8], config: &OcrConfig) -> Result<ExtractionResult> {
* // Read backend-specific options; unknown keys are silently ignored.
* let fast_mode = config.backend_options
* .as_ref()
* .and_then(|v| v.get("mode"))
* .and_then(|v| v.as_str())
* .map(|s| s == "fast")
* .unwrap_or(false);
*
* if image_bytes.is_empty() {
* return Err(kreuzberg::KreuzbergError::Validation {
* message: "Empty image data".to_string(),
* source: None,
* });
* }
*
* let text = if fast_mode {
* "Fast OCR result".to_string()
* } else {
* format!("Extracted text in language: {}", config.language)
* };
*
* Ok(ExtractionResult {
* content: text,
* mime_type: Cow::Borrowed("text/plain"),
* ..Default::default()
* })
* }
* ```
*/
int32_t (*process_image)(const void *user_data,
const uint8_t *image_bytes,
uintptr_t image_bytes_len,
const char *config,
char **out_result,
char **out_error);
/**
* Process a file and extract text via OCR.
*
* Default implementation reads the file and calls `process_image`.
* Override for custom file handling or optimizations.
*
* # Arguments
*
* * `path` - Path to the image file
* * `config` - OCR configuration
*
* # Errors
*
* Same as `process_image`, plus file I/O errors.
*/
int32_t (*process_image_file)(const void *user_data,
const char *path,
const char *config,
char **out_result,
char **out_error);
/**
* Check if this backend supports a given language code.
*
* # Arguments
*
* * `lang` - ISO 639-2/3 language code (e.g., "eng", "deu", "fra")
*
* # Returns
*
* `true` if the language is supported, `false` otherwise.
*
* # Example
*
* ```rust
* fn supports_language(&self, lang: &str) -> bool {
* self.languages.contains(&lang.to_string())
* }
* ```
*/
int32_t (*supports_language)(const void *user_data,
const char *lang);
/**
* Get the backend type identifier.
*
* # Returns
*
* The backend type enum value.
*
* # Example
*
* ```rust
* fn backend_type(&self) -> OcrBackendType {
* OcrBackendType::Tesseract
* }
* ```
*/
int32_t (*backend_type)(const void *user_data,
char **out_result,
char **out_error);
/**
* Optional: Get a list of all supported languages.
*
* Defaults to empty list. Override to provide comprehensive language support info.
*/
int32_t (*supported_languages)(const void *user_data,
char **out_result,
char **out_error);
/**
* Optional: Check if the backend supports table detection.
*
* Defaults to `false`. Override if your backend can detect and extract tables.
*/
int32_t (*supports_table_detection)(const void *user_data);
/**
* Check if the backend supports direct document-level processing (e.g. for PDFs).
*
* Defaults to `false`. Override if the backend has optimized document processing.
*/
int32_t (*supports_document_processing)(const void *user_data);
/**
* Process a document file directly via OCR.
*
* Only called if `supports_document_processing` returns `true`.
*
* # Arguments
*
* * `path` - Path to the document file (e.g. .pdf)
* * `config` - OCR configuration
*/
int32_t (*process_document)(const void *user_data,
const char *_path,
const char *_config,
char **out_result,
char **out_error);
/**
* Optional string destructor: called for strings returned by vtable callbacks.
*/
void (*free_string)(char*);
/**
* Optional destructor: called once with `user_data` when the bridge is dropped.
*/
void (*free_user_data)(void*);
} KREUZBERGKreuzbergOcrBackendVTable;
/**
* VTable for C plugin bridges implementing the `PostProcessor` trait.
*
* # Safety
*
* All function pointers must be valid for the lifetime of any bridge created from
* this vtable. `free_user_data`, when non-null, is called once with `user_data`
* when the bridge is dropped.
*/
typedef struct KREUZBERGKreuzbergPostProcessorVTable {
/**
* Return a null-terminated UTF-8 name string into `out_name`; return 0 on success.
*/
int32_t (*name_fn)(const void *user_data,
char **out_name,
char **out_error);
/**
* Return a null-terminated UTF-8 version string into `out_version`; return 0 on success.
*/
int32_t (*version_fn)(const void *user_data,
char **out_version,
char **out_error);
/**
* Initialise the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
*/
int32_t (*initialize_fn)(const void *user_data,
char **out_error);
/**
* Shut down the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
*/
int32_t (*shutdown_fn)(const void *user_data,
char **out_error);
/**
* Process an extraction result.
*
* Transform or enrich the extraction result. Can modify:
* - `content` - The extracted text
* - `metadata` - Add or update metadata fields
* - `tables` - Modify or enhance table data
*
* # Arguments
*
* * `result` - Mutable reference to the extraction result to process
* * `config` - Extraction configuration
*
* # Returns
*
* `Ok(())` if processing succeeded, `Err(...)` for fatal failures.
*
* # Errors
*
* Return errors for fatal processing failures. Non-fatal errors should be
* captured in metadata directly on the result.
*
* # Performance
*
* This signature avoids unnecessary cloning of large extraction results by
* taking a mutable reference instead of ownership. Processors modify the
* result in place.
*
* # Example - Language Detection
*
* ```rust
* async fn process(&self, result: &mut ExtractionResult, config: &ExtractionConfig)
* -> Result<()> {
* // Detect language (simplified - use real detection library in practice)
* let language = "en"; // Placeholder detection
*
* // Add to metadata
* result.metadata.additional.insert("detected_language".to_string().into(), serde_json::json!(language));
*
* Ok(())
* }
* ```
*
* # Example - Text Cleaning
*
* ```rust
* async fn process(&self, result: &mut ExtractionResult, config: &ExtractionConfig)
* -> Result<()> {
* // Remove excessive whitespace
* result.content = result
* .content
* .split_whitespace()
* .collect::<Vec<_>>()
* .join(" ");
*
* Ok(())
* }
* ```
*/
int32_t (*process)(const void *user_data,
const char *result,
const char *config,
char **out_error);
/**
* Get the processing stage for this post-processor.
*
* Determines when this processor runs in the pipeline.
*
* # Returns
*
* The `ProcessingStage` (Early, Middle, or Late).
*
* # Example
*
* ```rust
* fn processing_stage(&self) -> ProcessingStage {
* ProcessingStage::Early // Run before other processors
* }
* ```
*/
int32_t (*processing_stage)(const void *user_data,
char **out_result,
char **out_error);
/**
* Optional: Check if this processor should run for a given result.
*
* Allows conditional processing based on MIME type, metadata, or content.
* Defaults to `true` (always run).
*
* # Arguments
*
* * `result` - The extraction result to check
* * `config` - Extraction configuration
*
* # Returns
*
* `true` if the processor should run, `false` to skip.
*
* # Example
*
* ```rust
* Only process PDF documents
* fn should_process(&self, result: &ExtractionResult, config: &ExtractionConfig) -> bool {
* result.mime_type == "application/pdf"
* }
* ```
*/
int32_t (*should_process)(const void *user_data,
const char *_result,
const char *_config);
/**
* Optional: Estimate processing time in milliseconds.
*
* Used for logging and debugging. Defaults to 0 (unknown).
*
* # Arguments
*
* * `result` - The extraction result to estimate for
*
* # Returns
*
* Estimated processing time in milliseconds.
*/
uint64_t (*estimated_duration_ms)(const void *user_data,
const char *_result);
/**
* Execution priority within the processing stage.
*
* Higher values run first within the same `ProcessingStage`. Defaults to 50.
* Use 0-49 for fallback processors, 50 for normal processors, and 51-255
* for high-priority processors that should run early in their stage.
*/
int32_t (*priority)(const void *user_data);
/**
* Optional string destructor: called for strings returned by vtable callbacks.
*/
void (*free_string)(char*);
/**
* Optional destructor: called once with `user_data` when the bridge is dropped.
*/
void (*free_user_data)(void*);
} KREUZBERGKreuzbergPostProcessorVTable;
/**
* VTable for C plugin bridges implementing the `Validator` trait.
*
* # Safety
*
* All function pointers must be valid for the lifetime of any bridge created from
* this vtable. `free_user_data`, when non-null, is called once with `user_data`
* when the bridge is dropped.
*/
typedef struct KREUZBERGKreuzbergValidatorVTable {
/**
* Return a null-terminated UTF-8 name string into `out_name`; return 0 on success.
*/
int32_t (*name_fn)(const void *user_data,
char **out_name,
char **out_error);
/**
* Return a null-terminated UTF-8 version string into `out_version`; return 0 on success.
*/
int32_t (*version_fn)(const void *user_data,
char **out_version,
char **out_error);
/**
* Initialise the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
*/
int32_t (*initialize_fn)(const void *user_data,
char **out_error);
/**
* Shut down the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
*/
int32_t (*shutdown_fn)(const void *user_data,
char **out_error);
/**
* Validate an extraction result.
*
* Check the extraction result and return `Ok(())` if valid, or an error
* if validation fails.
*
* # Arguments
*
* * `result` - The extraction result to validate
* * `config` - Extraction configuration
*
* # Returns
*
* - `Ok(())` if validation passes
* - `Err(...)` if validation fails (extraction will fail)
*
* # Errors
*
* - `KreuzbergError::Validation` - Validation failed
* - Any other error type appropriate for the failure
*
* # Example - Content Length Validation
*
* ```rust
* async fn validate(&self, result: &ExtractionResult, config: &ExtractionConfig)
* -> Result<()> {
* let length = result.content.len();
*
* if length < self.min {
* return Err(KreuzbergError::validation(format!(
* "Content too short: {} < {} characters",
* length, self.min
* )));
* }
*
* if length > self.max {
* return Err(KreuzbergError::validation(format!(
* "Content too long: {} > {} characters",
* length, self.max
* )));
* }
*
* Ok(())
* }
* ```
*
* # Example - Quality Score Validation
*
* ```rust
* async fn validate(&self, result: &ExtractionResult, config: &ExtractionConfig)
* -> Result<()> {
* // Check if quality_score exists in metadata
* let score = result.metadata
* .additional
* .get("quality_score")
* .and_then(|v| v.as_f64())
* .unwrap_or(0.0);
*
* if score < self.min_score {
* return Err(KreuzbergError::validation(format!(
* "Quality score too low: {} < {}",
* score, self.min_score
* )));
* }
*
* Ok(())
* }
* ```
*
* # Example - Security Validation
*
* ```rust
* async fn validate(&self, result: &ExtractionResult, config: &ExtractionConfig)
* -> Result<()> {
* // Check for blocked patterns
* for pattern in &self.blocked_patterns {
* if result.content.contains(pattern) {
* return Err(KreuzbergError::validation(format!(
* "Content contains blocked pattern: {}",
* pattern
* )));
* }
* }
*
* Ok(())
* }
* ```
*/
int32_t (*validate)(const void *user_data,
const char *result,
const char *config,
char **out_error);
/**
* Optional: Check if this validator should run for a given result.
*
* Allows conditional validation based on MIME type, metadata, or content.
* Defaults to `true` (always run).
*
* # Arguments
*
* * `result` - The extraction result to check
* * `config` - Extraction configuration
*
* # Returns
*
* `true` if the validator should run, `false` to skip.
*
* # Example
*
* ```rust
* Only validate PDF documents
* fn should_validate(&self, result: &ExtractionResult, config: &ExtractionConfig) -> bool {
* result.mime_type == "application/pdf"
* }
* ```
*/
int32_t (*should_validate)(const void *user_data,
const char *_result,
const char *_config);
/**
* Optional: Get the validation priority.
*
* Higher priority validators run first. Useful for ordering validation checks
* (e.g., run cheap validations before expensive ones).
*
* Default priority is 50.
*
* # Returns
*
* Priority value (higher = runs earlier).
*
* # Example
*
* ```rust
* Run this validator first (it's fast)
* fn priority(&self) -> i32 {
* 100
* }
* ```
*/
int32_t (*priority)(const void *user_data);
/**
* Optional string destructor: called for strings returned by vtable callbacks.
*/
void (*free_string)(char*);
/**
* Optional destructor: called once with `user_data` when the bridge is dropped.
*/
void (*free_user_data)(void*);
} KREUZBERGKreuzbergValidatorVTable;
/**
* VTable for C plugin bridges implementing the `EmbeddingBackend` trait.
*
* # Safety
*
* All function pointers must be valid for the lifetime of any bridge created from
* this vtable. `free_user_data`, when non-null, is called once with `user_data`
* when the bridge is dropped.
*/
typedef struct KREUZBERGKreuzbergEmbeddingBackendVTable {
/**
* Return a null-terminated UTF-8 name string into `out_name`; return 0 on success.
*/
int32_t (*name_fn)(const void *user_data,
char **out_name,
char **out_error);
/**
* Return a null-terminated UTF-8 version string into `out_version`; return 0 on success.
*/
int32_t (*version_fn)(const void *user_data,
char **out_version,
char **out_error);
/**
* Initialise the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
*/
int32_t (*initialize_fn)(const void *user_data,
char **out_error);
/**
* Shut down the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
*/
int32_t (*shutdown_fn)(const void *user_data,
char **out_error);
/**
* Embedding vector dimension. Must be `> 0` and must match the length of
* every vector returned by `embed`.
*/
uintptr_t (*dimensions)(const void *user_data);
/**
* Embed a batch of texts, returning one vector per input in order.
*
* # Errors
*
* Implementations should return `Plugin` for
* backend-specific failures. The dispatcher layers its own validation
* (length, per-vector dimension) on top.
*/
int32_t (*embed)(const void *user_data,
const char *texts,
char **out_result,
char **out_error);
/**
* Optional string destructor: called for strings returned by vtable callbacks.
*/
void (*free_string)(char*);
/**
* Optional destructor: called once with `user_data` when the bridge is dropped.
*/
void (*free_user_data)(void*);
} KREUZBERGKreuzbergEmbeddingBackendVTable;
/**
* VTable for C plugin bridges implementing the `DocumentExtractor` trait.
*
* # Safety
*
* All function pointers must be valid for the lifetime of any bridge created from
* this vtable. `free_user_data`, when non-null, is called once with `user_data`
* when the bridge is dropped.
*/
typedef struct KREUZBERGKreuzbergDocumentExtractorVTable {
/**
* Return a null-terminated UTF-8 name string into `out_name`; return 0 on success.
*/
int32_t (*name_fn)(const void *user_data,
char **out_name,
char **out_error);
/**
* Return a null-terminated UTF-8 version string into `out_version`; return 0 on success.
*/
int32_t (*version_fn)(const void *user_data,
char **out_version,
char **out_error);
/**
* Initialise the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
*/
int32_t (*initialize_fn)(const void *user_data,
char **out_error);
/**
* Shut down the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
*/
int32_t (*shutdown_fn)(const void *user_data,
char **out_error);
/**
* Extract content from a byte array.
*
* This is the core extraction method that processes in-memory document data.
*
* # Arguments
*
* * `content` - Raw document bytes
* * `mime_type` - MIME type of the document (already validated)
* * `config` - Extraction configuration
*
* # Returns
*
* An `InternalDocument` containing the extracted elements, metadata, and tables.
* The pipeline will convert this into the public `ExtractionResult`.
*
* # Errors
*
* - `KreuzbergError::Parsing` - Document parsing failed
* - `KreuzbergError::Validation` - Invalid document structure
* - `KreuzbergError::Io` - I/O errors (these always bubble up)
* - `KreuzbergError::MissingDependency` - Required dependency not available
*/
int32_t (*extract_bytes)(const void *user_data,
const uint8_t *content,
uintptr_t content_len,
const char *mime_type,
const char *config,
char **out_result,
char **out_error);
/**
* Extract content from a file.
*
* Default implementation reads the file and calls `extract_bytes`.
* Override for custom file handling, streaming, or memory optimizations.
*
* # Arguments
*
* * `path` - Path to the document file
* * `mime_type` - MIME type of the document (already validated)
* * `config` - Extraction configuration
*
* # Returns
*
* An `InternalDocument` containing the extracted elements, metadata, and tables.
*
* # Errors
*
* Same as `extract_bytes`, plus file I/O errors.
*/
int32_t (*extract_file)(const void *user_data,
const char *path,
const char *mime_type,
const char *config,
char **out_result,
char **out_error);
/**
* Get the list of MIME types supported by this extractor.
*
* Can include exact MIME types and prefix patterns:
* - Exact: `"application/pdf"`, `"text/plain"`
* - Prefix: `"image/*"` (matches any image type)
*
* # Returns
*
* A slice of MIME type strings.
*/
int32_t (*supported_mime_types)(const void *user_data,
char **out_result,
char **out_error);
/**
* Get the priority of this extractor.
*
* Higher priority extractors are preferred when multiple extractors
* support the same MIME type.
*
* # Priority Guidelines
*
* - **0-25**: Fallback/low-quality extractors
* - **26-49**: Alternative extractors
* - **50**: Default priority (built-in extractors)
* - **51-75**: Premium/enhanced extractors
* - **76-100**: Specialized/high-priority extractors
*
* # Returns
*
* Priority value (default: 50)
*/
int32_t (*priority)(const void *user_data);
/**
* Optional: Check if this extractor can handle a specific file.
*
* Allows for more sophisticated detection beyond MIME types.
* Defaults to `true` (rely on MIME type matching).
*
* # Arguments
*
* * `path` - Path to the file to check
* * `mime_type` - Detected MIME type
*
* # Returns
*
* `true` if the extractor can handle this file, `false` otherwise.
*/
int32_t (*can_handle)(const void *user_data,
const char *_path,
const char *_mime_type);
/**
* Optional string destructor: called for strings returned by vtable callbacks.
*/
void (*free_string)(char*);
/**
* Optional destructor: called once with `user_data` when the bridge is dropped.
*/
void (*free_user_data)(void*);
} KREUZBERGKreuzbergDocumentExtractorVTable;
/**
* VTable for C plugin bridges implementing the `Renderer` trait.
*
* # Safety
*
* All function pointers must be valid for the lifetime of any bridge created from
* this vtable. `free_user_data`, when non-null, is called once with `user_data`
* when the bridge is dropped.
*/
typedef struct KREUZBERGKreuzbergRendererVTable {
/**
* Return a null-terminated UTF-8 name string into `out_name`; return 0 on success.
*/
int32_t (*name_fn)(const void *user_data,
char **out_name,
char **out_error);
/**
* Return a null-terminated UTF-8 version string into `out_version`; return 0 on success.
*/
int32_t (*version_fn)(const void *user_data,
char **out_version,
char **out_error);
/**
* Initialise the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
*/
int32_t (*initialize_fn)(const void *user_data,
char **out_error);
/**
* Shut down the plugin; return 0 on success, non-zero on failure (error text in `out_error`).
*/
int32_t (*shutdown_fn)(const void *user_data,
char **out_error);
/**
* Render an [`InternalDocument`] to the output format.
*
* # Arguments
*
* * `doc` - The internal document to render
*
* # Returns
*
* The rendered output as a string.
*
* # Errors
*
* Returns an error if rendering fails.
*/
int32_t (*render)(const void *user_data,
const char *doc,
char **out_result,
char **out_error);
/**
* Optional string destructor: called for strings returned by vtable callbacks.
*/
void (*free_string)(char*);
/**
* Optional destructor: called once with `user_data` when the bridge is dropped.
*/
void (*free_user_data)(void*);
} KREUZBERGKreuzbergRendererVTable;
/**
* Return the last error code (0 means no error).
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* This function does not allocate and returns no owned pointer.
*/
int32_t kreuzberg_last_error_code(void);
/**
* Return the last error message. The pointer is borrowed and valid until the next FFI call on this thread.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* The returned pointer is borrowed from thread-local storage and must NOT be freed.
*/
const char *kreuzberg_last_error_context(void);
/**
* Free a string previously returned by this library.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_free_string(char *ptr);
/**
* Free a byte buffer previously returned by this library via out-params.
* `ptr`, `len`, and `cap` must match the values written by the library function,
* or the call must pass `ptr = null` (in which case it is a no-op).
* # Safety
* Pointer must have been returned by this library (via out_ptr / out_len / out_cap
* out-params), or be null. The len and cap values must be unchanged since the call.
*/
void kreuzberg_free_bytes(uint8_t *ptr,
uintptr_t len,
uintptr_t cap);
/**
* Return the library version string. The pointer is static and must NOT be freed.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
const char *kreuzberg_version(void);
/**
* Create a `CacheStats` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_cache_stats_free`.
*/
KREUZBERGCacheStats *kreuzberg_cache_stats_from_json(const char *json);
/**
* Serialize a `CacheStats` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_cache_stats_to_json(const KREUZBERGCacheStats *ptr);
/**
* Free a `CacheStats` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_cache_stats_free(KREUZBERGCacheStats *ptr);
/**
* Get the `total_files` field from a `CacheStats`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_cache_stats_total_files(const KREUZBERGCacheStats *ptr);
/**
* Get the `total_size_mb` field from a `CacheStats`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_cache_stats_total_size_mb(const KREUZBERGCacheStats *ptr);
/**
* Get the `available_space_mb` field from a `CacheStats`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_cache_stats_available_space_mb(const KREUZBERGCacheStats *ptr);
/**
* Get the `oldest_file_age_days` field from a `CacheStats`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_cache_stats_oldest_file_age_days(const KREUZBERGCacheStats *ptr);
/**
* Get the `newest_file_age_days` field from a `CacheStats`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_cache_stats_newest_file_age_days(const KREUZBERGCacheStats *ptr);
/**
* Create a `AccelerationConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_acceleration_config_free`.
*/
KREUZBERGAccelerationConfig *kreuzberg_acceleration_config_from_json(const char *json);
/**
* Serialize a `AccelerationConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_acceleration_config_to_json(const KREUZBERGAccelerationConfig *ptr);
/**
* Free a `AccelerationConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_acceleration_config_free(KREUZBERGAccelerationConfig *ptr);
/**
* Get the `provider` field from a `AccelerationConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGExecutionProviderType *kreuzberg_acceleration_config_provider(const KREUZBERGAccelerationConfig *ptr);
/**
* Get the `device_id` field from a `AccelerationConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_acceleration_config_device_id(const KREUZBERGAccelerationConfig *ptr);
/**
* Create a `ContentFilterConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_content_filter_config_free`.
*/
KREUZBERGContentFilterConfig *kreuzberg_content_filter_config_from_json(const char *json);
/**
* Serialize a `ContentFilterConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_content_filter_config_to_json(const KREUZBERGContentFilterConfig *ptr);
/**
* Free a `ContentFilterConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_content_filter_config_free(KREUZBERGContentFilterConfig *ptr);
/**
* Get the `include_headers` field from a `ContentFilterConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_content_filter_config_include_headers(const KREUZBERGContentFilterConfig *ptr);
/**
* Get the `include_footers` field from a `ContentFilterConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_content_filter_config_include_footers(const KREUZBERGContentFilterConfig *ptr);
/**
* Get the `strip_repeating_text` field from a `ContentFilterConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_content_filter_config_strip_repeating_text(const KREUZBERGContentFilterConfig *ptr);
/**
* Get the `include_watermarks` field from a `ContentFilterConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_content_filter_config_include_watermarks(const KREUZBERGContentFilterConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGContentFilterConfig *kreuzberg_content_filter_config_default(void);
/**
* Create a `EmailConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_email_config_free`.
*/
KREUZBERGEmailConfig *kreuzberg_email_config_from_json(const char *json);
/**
* Serialize a `EmailConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_email_config_to_json(const KREUZBERGEmailConfig *ptr);
/**
* Free a `EmailConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_email_config_free(KREUZBERGEmailConfig *ptr);
/**
* Get the `msg_fallback_codepage` field from a `EmailConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_email_config_msg_fallback_codepage(const KREUZBERGEmailConfig *ptr);
/**
* Create a `ExtractionConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_extraction_config_free`.
*/
KREUZBERGExtractionConfig *kreuzberg_extraction_config_from_json(const char *json);
/**
* Serialize a `ExtractionConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_extraction_config_to_json(const KREUZBERGExtractionConfig *ptr);
/**
* Free a `ExtractionConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_extraction_config_free(KREUZBERGExtractionConfig *ptr);
/**
* Get the `use_cache` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_extraction_config_use_cache(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `enable_quality_processing` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_extraction_config_enable_quality_processing(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `ocr` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOcrConfig *kreuzberg_extraction_config_ocr(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `force_ocr` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_extraction_config_force_ocr(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `force_ocr_pages` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_config_force_ocr_pages(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `disable_ocr` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_extraction_config_disable_ocr(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `chunking` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGChunkingConfig *kreuzberg_extraction_config_chunking(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `content_filter` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGContentFilterConfig *kreuzberg_extraction_config_content_filter(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `images` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGImageExtractionConfig *kreuzberg_extraction_config_images(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `pdf_options` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGPdfConfig *kreuzberg_extraction_config_pdf_options(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `token_reduction` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGTokenReductionOptions *kreuzberg_extraction_config_token_reduction(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `language_detection` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGLanguageDetectionConfig *kreuzberg_extraction_config_language_detection(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `pages` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGPageConfig *kreuzberg_extraction_config_pages(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `keywords` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGKeywordConfig *kreuzberg_extraction_config_keywords(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `postprocessor` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGPostProcessorConfig *kreuzberg_extraction_config_postprocessor(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `html_output` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGHtmlOutputConfig *kreuzberg_extraction_config_html_output(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `extraction_timeout_secs` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint64_t kreuzberg_extraction_config_extraction_timeout_secs(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `max_concurrent_extractions` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_extraction_config_max_concurrent_extractions(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `result_format` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGResultFormat *kreuzberg_extraction_config_result_format(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `security_limits` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGSecurityLimits *kreuzberg_extraction_config_security_limits(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `max_embedded_file_bytes` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint64_t kreuzberg_extraction_config_max_embedded_file_bytes(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `output_format` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOutputFormat *kreuzberg_extraction_config_output_format(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `layout` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGLayoutDetectionConfig *kreuzberg_extraction_config_layout(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `use_layout_for_markdown` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_extraction_config_use_layout_for_markdown(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `include_document_structure` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_extraction_config_include_document_structure(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `acceleration` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGAccelerationConfig *kreuzberg_extraction_config_acceleration(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `cache_namespace` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_config_cache_namespace(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `cache_ttl_secs` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint64_t kreuzberg_extraction_config_cache_ttl_secs(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `email` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGEmailConfig *kreuzberg_extraction_config_email(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `max_archive_depth` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_extraction_config_max_archive_depth(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `tree_sitter` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGTreeSitterConfig *kreuzberg_extraction_config_tree_sitter(const KREUZBERGExtractionConfig *ptr);
/**
* Get the `structured_extraction` field from a `ExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGStructuredExtractionConfig *kreuzberg_extraction_config_structured_extraction(const KREUZBERGExtractionConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGExtractionConfig *kreuzberg_extraction_config_default(void);
/**
* Check if image processing is needed by examining OCR and image extraction settings.
*
* Returns `true` if either OCR is enabled or image extraction is configured,
* indicating that image decompression and processing should occur.
* Returns `false` if both are disabled, allowing optimization to skip unnecessary
* image decompression for text-only extraction workflows.
*
* # Optimization Impact
* For text-only extractions (no OCR, no image extraction), skipping image
* decompression can improve CPU utilization by 5-10% by avoiding wasteful
* image I/O and processing when results won't be used.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
int32_t kreuzberg_extraction_config_needs_image_processing(const KREUZBERGExtractionConfig *this_);
/**
* Create a `FileExtractionConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_file_extraction_config_free`.
*/
KREUZBERGFileExtractionConfig *kreuzberg_file_extraction_config_from_json(const char *json);
/**
* Serialize a `FileExtractionConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_file_extraction_config_to_json(const KREUZBERGFileExtractionConfig *ptr);
/**
* Free a `FileExtractionConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_file_extraction_config_free(KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `enable_quality_processing` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_file_extraction_config_enable_quality_processing(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `ocr` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOcrConfig *kreuzberg_file_extraction_config_ocr(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `force_ocr` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_file_extraction_config_force_ocr(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `force_ocr_pages` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_file_extraction_config_force_ocr_pages(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `disable_ocr` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_file_extraction_config_disable_ocr(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `chunking` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGChunkingConfig *kreuzberg_file_extraction_config_chunking(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `content_filter` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGContentFilterConfig *kreuzberg_file_extraction_config_content_filter(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `images` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGImageExtractionConfig *kreuzberg_file_extraction_config_images(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `pdf_options` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGPdfConfig *kreuzberg_file_extraction_config_pdf_options(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `token_reduction` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGTokenReductionOptions *kreuzberg_file_extraction_config_token_reduction(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `language_detection` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGLanguageDetectionConfig *kreuzberg_file_extraction_config_language_detection(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `pages` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGPageConfig *kreuzberg_file_extraction_config_pages(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `keywords` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGKeywordConfig *kreuzberg_file_extraction_config_keywords(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `postprocessor` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGPostProcessorConfig *kreuzberg_file_extraction_config_postprocessor(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `result_format` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGResultFormat *kreuzberg_file_extraction_config_result_format(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `output_format` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOutputFormat *kreuzberg_file_extraction_config_output_format(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `include_document_structure` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_file_extraction_config_include_document_structure(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `layout` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGLayoutDetectionConfig *kreuzberg_file_extraction_config_layout(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `timeout_secs` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint64_t kreuzberg_file_extraction_config_timeout_secs(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `tree_sitter` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGTreeSitterConfig *kreuzberg_file_extraction_config_tree_sitter(const KREUZBERGFileExtractionConfig *ptr);
/**
* Get the `structured_extraction` field from a `FileExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGStructuredExtractionConfig *kreuzberg_file_extraction_config_structured_extraction(const KREUZBERGFileExtractionConfig *ptr);
/**
* Create a `BatchBytesItem` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_batch_bytes_item_free`.
*/
KREUZBERGBatchBytesItem *kreuzberg_batch_bytes_item_from_json(const char *json);
/**
* Serialize a `BatchBytesItem` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_batch_bytes_item_to_json(const KREUZBERGBatchBytesItem *ptr);
/**
* Free a `BatchBytesItem` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_batch_bytes_item_free(KREUZBERGBatchBytesItem *ptr);
/**
* Get the `content` field from a `BatchBytesItem`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint8_t *kreuzberg_batch_bytes_item_content(const KREUZBERGBatchBytesItem *ptr,
uintptr_t *out_len);
/**
* Get the `mime_type` field from a `BatchBytesItem`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_batch_bytes_item_mime_type(const KREUZBERGBatchBytesItem *ptr);
/**
* Get the `config` field from a `BatchBytesItem`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGFileExtractionConfig *kreuzberg_batch_bytes_item_config(const KREUZBERGBatchBytesItem *ptr);
/**
* Create a `BatchFileItem` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_batch_file_item_free`.
*/
KREUZBERGBatchFileItem *kreuzberg_batch_file_item_from_json(const char *json);
/**
* Serialize a `BatchFileItem` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_batch_file_item_to_json(const KREUZBERGBatchFileItem *ptr);
/**
* Free a `BatchFileItem` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_batch_file_item_free(KREUZBERGBatchFileItem *ptr);
/**
* Get the `path` field from a `BatchFileItem`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_batch_file_item_path(const KREUZBERGBatchFileItem *ptr);
/**
* Get the `config` field from a `BatchFileItem`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGFileExtractionConfig *kreuzberg_batch_file_item_config(const KREUZBERGBatchFileItem *ptr);
/**
* Create a `ImageExtractionConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_image_extraction_config_free`.
*/
KREUZBERGImageExtractionConfig *kreuzberg_image_extraction_config_from_json(const char *json);
/**
* Serialize a `ImageExtractionConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_image_extraction_config_to_json(const KREUZBERGImageExtractionConfig *ptr);
/**
* Free a `ImageExtractionConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_image_extraction_config_free(KREUZBERGImageExtractionConfig *ptr);
/**
* Get the `extract_images` field from a `ImageExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_extraction_config_extract_images(const KREUZBERGImageExtractionConfig *ptr);
/**
* Get the `target_dpi` field from a `ImageExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_extraction_config_target_dpi(const KREUZBERGImageExtractionConfig *ptr);
/**
* Get the `max_image_dimension` field from a `ImageExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_extraction_config_max_image_dimension(const KREUZBERGImageExtractionConfig *ptr);
/**
* Get the `inject_placeholders` field from a `ImageExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_extraction_config_inject_placeholders(const KREUZBERGImageExtractionConfig *ptr);
/**
* Get the `auto_adjust_dpi` field from a `ImageExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_extraction_config_auto_adjust_dpi(const KREUZBERGImageExtractionConfig *ptr);
/**
* Get the `min_dpi` field from a `ImageExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_extraction_config_min_dpi(const KREUZBERGImageExtractionConfig *ptr);
/**
* Get the `max_dpi` field from a `ImageExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_extraction_config_max_dpi(const KREUZBERGImageExtractionConfig *ptr);
/**
* Get the `max_images_per_page` field from a `ImageExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_image_extraction_config_max_images_per_page(const KREUZBERGImageExtractionConfig *ptr);
/**
* Get the `classify` field from a `ImageExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_extraction_config_classify(const KREUZBERGImageExtractionConfig *ptr);
/**
* Get the `include_page_rasters` field from a `ImageExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_extraction_config_include_page_rasters(const KREUZBERGImageExtractionConfig *ptr);
/**
* Get the `run_ocr_on_images` field from a `ImageExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_extraction_config_run_ocr_on_images(const KREUZBERGImageExtractionConfig *ptr);
/**
* Get the `ocr_text_only` field from a `ImageExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_extraction_config_ocr_text_only(const KREUZBERGImageExtractionConfig *ptr);
/**
* Get the `append_ocr_text` field from a `ImageExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_extraction_config_append_ocr_text(const KREUZBERGImageExtractionConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGImageExtractionConfig *kreuzberg_image_extraction_config_default(void);
/**
* Create a `TokenReductionOptions` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_token_reduction_options_free`.
*/
KREUZBERGTokenReductionOptions *kreuzberg_token_reduction_options_from_json(const char *json);
/**
* Serialize a `TokenReductionOptions` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_token_reduction_options_to_json(const KREUZBERGTokenReductionOptions *ptr);
/**
* Free a `TokenReductionOptions` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_token_reduction_options_free(KREUZBERGTokenReductionOptions *ptr);
/**
* Get the `mode` field from a `TokenReductionOptions`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_token_reduction_options_mode(const KREUZBERGTokenReductionOptions *ptr);
/**
* Get the `preserve_important_words` field from a `TokenReductionOptions`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_token_reduction_options_preserve_important_words(const KREUZBERGTokenReductionOptions *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGTokenReductionOptions *kreuzberg_token_reduction_options_default(void);
/**
* Create a `LanguageDetectionConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_language_detection_config_free`.
*/
KREUZBERGLanguageDetectionConfig *kreuzberg_language_detection_config_from_json(const char *json);
/**
* Serialize a `LanguageDetectionConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_language_detection_config_to_json(const KREUZBERGLanguageDetectionConfig *ptr);
/**
* Free a `LanguageDetectionConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_language_detection_config_free(KREUZBERGLanguageDetectionConfig *ptr);
/**
* Get the `enabled` field from a `LanguageDetectionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_language_detection_config_enabled(const KREUZBERGLanguageDetectionConfig *ptr);
/**
* Get the `min_confidence` field from a `LanguageDetectionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_language_detection_config_min_confidence(const KREUZBERGLanguageDetectionConfig *ptr);
/**
* Get the `detect_multiple` field from a `LanguageDetectionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_language_detection_config_detect_multiple(const KREUZBERGLanguageDetectionConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGLanguageDetectionConfig *kreuzberg_language_detection_config_default(void);
/**
* Create a `HtmlOutputConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_html_output_config_free`.
*/
KREUZBERGHtmlOutputConfig *kreuzberg_html_output_config_from_json(const char *json);
/**
* Serialize a `HtmlOutputConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_html_output_config_to_json(const KREUZBERGHtmlOutputConfig *ptr);
/**
* Free a `HtmlOutputConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_html_output_config_free(KREUZBERGHtmlOutputConfig *ptr);
/**
* Get the `css` field from a `HtmlOutputConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_output_config_css(const KREUZBERGHtmlOutputConfig *ptr);
/**
* Get the `css_file` field from a `HtmlOutputConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_output_config_css_file(const KREUZBERGHtmlOutputConfig *ptr);
/**
* Get the `theme` field from a `HtmlOutputConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGHtmlTheme *kreuzberg_html_output_config_theme(const KREUZBERGHtmlOutputConfig *ptr);
/**
* Get the `class_prefix` field from a `HtmlOutputConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_output_config_class_prefix(const KREUZBERGHtmlOutputConfig *ptr);
/**
* Get the `embed_css` field from a `HtmlOutputConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_html_output_config_embed_css(const KREUZBERGHtmlOutputConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGHtmlOutputConfig *kreuzberg_html_output_config_default(void);
/**
* Create a `LayoutDetectionConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_layout_detection_config_free`.
*/
KREUZBERGLayoutDetectionConfig *kreuzberg_layout_detection_config_from_json(const char *json);
/**
* Serialize a `LayoutDetectionConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_layout_detection_config_to_json(const KREUZBERGLayoutDetectionConfig *ptr);
/**
* Free a `LayoutDetectionConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_layout_detection_config_free(KREUZBERGLayoutDetectionConfig *ptr);
/**
* Get the `confidence_threshold` field from a `LayoutDetectionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_layout_detection_config_confidence_threshold(const KREUZBERGLayoutDetectionConfig *ptr);
/**
* Get the `apply_heuristics` field from a `LayoutDetectionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_layout_detection_config_apply_heuristics(const KREUZBERGLayoutDetectionConfig *ptr);
/**
* Get the `table_model` field from a `LayoutDetectionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGTableModel *kreuzberg_layout_detection_config_table_model(const KREUZBERGLayoutDetectionConfig *ptr);
/**
* Get the `acceleration` field from a `LayoutDetectionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGAccelerationConfig *kreuzberg_layout_detection_config_acceleration(const KREUZBERGLayoutDetectionConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGLayoutDetectionConfig *kreuzberg_layout_detection_config_default(void);
/**
* Create a `LlmConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_llm_config_free`.
*/
KREUZBERGLlmConfig *kreuzberg_llm_config_from_json(const char *json);
/**
* Serialize a `LlmConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_llm_config_to_json(const KREUZBERGLlmConfig *ptr);
/**
* Free a `LlmConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_llm_config_free(KREUZBERGLlmConfig *ptr);
/**
* Get the `model` field from a `LlmConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_llm_config_model(const KREUZBERGLlmConfig *ptr);
/**
* Get the `api_key` field from a `LlmConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_llm_config_api_key(const KREUZBERGLlmConfig *ptr);
/**
* Get the `base_url` field from a `LlmConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_llm_config_base_url(const KREUZBERGLlmConfig *ptr);
/**
* Get the `timeout_secs` field from a `LlmConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint64_t kreuzberg_llm_config_timeout_secs(const KREUZBERGLlmConfig *ptr);
/**
* Get the `max_retries` field from a `LlmConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_llm_config_max_retries(const KREUZBERGLlmConfig *ptr);
/**
* Get the `temperature` field from a `LlmConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_llm_config_temperature(const KREUZBERGLlmConfig *ptr);
/**
* Get the `max_tokens` field from a `LlmConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint64_t kreuzberg_llm_config_max_tokens(const KREUZBERGLlmConfig *ptr);
/**
* Create a `StructuredExtractionConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_structured_extraction_config_free`.
*/
KREUZBERGStructuredExtractionConfig *kreuzberg_structured_extraction_config_from_json(const char *json);
/**
* Serialize a `StructuredExtractionConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_structured_extraction_config_to_json(const KREUZBERGStructuredExtractionConfig *ptr);
/**
* Free a `StructuredExtractionConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_structured_extraction_config_free(KREUZBERGStructuredExtractionConfig *ptr);
/**
* Get the `schema` field from a `StructuredExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_structured_extraction_config_schema(const KREUZBERGStructuredExtractionConfig *ptr);
/**
* Get the `schema_name` field from a `StructuredExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_structured_extraction_config_schema_name(const KREUZBERGStructuredExtractionConfig *ptr);
/**
* Get the `schema_description` field from a `StructuredExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_structured_extraction_config_schema_description(const KREUZBERGStructuredExtractionConfig *ptr);
/**
* Get the `strict` field from a `StructuredExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_structured_extraction_config_strict(const KREUZBERGStructuredExtractionConfig *ptr);
/**
* Get the `prompt` field from a `StructuredExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_structured_extraction_config_prompt(const KREUZBERGStructuredExtractionConfig *ptr);
/**
* Get the `llm` field from a `StructuredExtractionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGLlmConfig *kreuzberg_structured_extraction_config_llm(const KREUZBERGStructuredExtractionConfig *ptr);
/**
* Create a `OcrQualityThresholds` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_ocr_quality_thresholds_free`.
*/
KREUZBERGOcrQualityThresholds *kreuzberg_ocr_quality_thresholds_from_json(const char *json);
/**
* Serialize a `OcrQualityThresholds` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_quality_thresholds_to_json(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Free a `OcrQualityThresholds` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_quality_thresholds_free(KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `min_total_non_whitespace` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_ocr_quality_thresholds_min_total_non_whitespace(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `min_non_whitespace_per_page` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_ocr_quality_thresholds_min_non_whitespace_per_page(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `min_meaningful_word_len` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_ocr_quality_thresholds_min_meaningful_word_len(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `min_meaningful_words` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_ocr_quality_thresholds_min_meaningful_words(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `min_alnum_ratio` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_ocr_quality_thresholds_min_alnum_ratio(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `min_garbage_chars` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_ocr_quality_thresholds_min_garbage_chars(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `max_fragmented_word_ratio` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_ocr_quality_thresholds_max_fragmented_word_ratio(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `critical_fragmented_word_ratio` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_ocr_quality_thresholds_critical_fragmented_word_ratio(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `min_avg_word_length` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_ocr_quality_thresholds_min_avg_word_length(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `min_words_for_avg_length_check` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_ocr_quality_thresholds_min_words_for_avg_length_check(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `min_consecutive_repeat_ratio` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_ocr_quality_thresholds_min_consecutive_repeat_ratio(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `min_words_for_repeat_check` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_ocr_quality_thresholds_min_words_for_repeat_check(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `substantive_min_chars` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_ocr_quality_thresholds_substantive_min_chars(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `non_text_min_chars` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_ocr_quality_thresholds_non_text_min_chars(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `alnum_ws_ratio_threshold` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_ocr_quality_thresholds_alnum_ws_ratio_threshold(const KREUZBERGOcrQualityThresholds *ptr);
/**
* Get the `pipeline_min_quality` field from a `OcrQualityThresholds`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_ocr_quality_thresholds_pipeline_min_quality(const KREUZBERGOcrQualityThresholds *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGOcrQualityThresholds *kreuzberg_ocr_quality_thresholds_default(void);
/**
* Create a `OcrPipelineStage` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_ocr_pipeline_stage_free`.
*/
KREUZBERGOcrPipelineStage *kreuzberg_ocr_pipeline_stage_from_json(const char *json);
/**
* Serialize a `OcrPipelineStage` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_pipeline_stage_to_json(const KREUZBERGOcrPipelineStage *ptr);
/**
* Free a `OcrPipelineStage` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_pipeline_stage_free(KREUZBERGOcrPipelineStage *ptr);
/**
* Get the `backend` field from a `OcrPipelineStage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_pipeline_stage_backend(const KREUZBERGOcrPipelineStage *ptr);
/**
* Get the `priority` field from a `OcrPipelineStage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_ocr_pipeline_stage_priority(const KREUZBERGOcrPipelineStage *ptr);
/**
* Get the `language` field from a `OcrPipelineStage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_pipeline_stage_language(const KREUZBERGOcrPipelineStage *ptr);
/**
* Get the `tesseract_config` field from a `OcrPipelineStage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGTesseractConfig *kreuzberg_ocr_pipeline_stage_tesseract_config(const KREUZBERGOcrPipelineStage *ptr);
/**
* Get the `paddle_ocr_config` field from a `OcrPipelineStage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_pipeline_stage_paddle_ocr_config(const KREUZBERGOcrPipelineStage *ptr);
/**
* Get the `vlm_config` field from a `OcrPipelineStage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGLlmConfig *kreuzberg_ocr_pipeline_stage_vlm_config(const KREUZBERGOcrPipelineStage *ptr);
/**
* Get the `backend_options` field from a `OcrPipelineStage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_pipeline_stage_backend_options(const KREUZBERGOcrPipelineStage *ptr);
/**
* Create a `OcrPipelineConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_ocr_pipeline_config_free`.
*/
KREUZBERGOcrPipelineConfig *kreuzberg_ocr_pipeline_config_from_json(const char *json);
/**
* Serialize a `OcrPipelineConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_pipeline_config_to_json(const KREUZBERGOcrPipelineConfig *ptr);
/**
* Free a `OcrPipelineConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_pipeline_config_free(KREUZBERGOcrPipelineConfig *ptr);
/**
* Get the `stages` field from a `OcrPipelineConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_pipeline_config_stages(const KREUZBERGOcrPipelineConfig *ptr);
/**
* Get the `quality_thresholds` field from a `OcrPipelineConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOcrQualityThresholds *kreuzberg_ocr_pipeline_config_quality_thresholds(const KREUZBERGOcrPipelineConfig *ptr);
/**
* Create a `OcrConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_ocr_config_free`.
*/
KREUZBERGOcrConfig *kreuzberg_ocr_config_from_json(const char *json);
/**
* Serialize a `OcrConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_config_to_json(const KREUZBERGOcrConfig *ptr);
/**
* Free a `OcrConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_config_free(KREUZBERGOcrConfig *ptr);
/**
* Get the `enabled` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_ocr_config_enabled(const KREUZBERGOcrConfig *ptr);
/**
* Get the `backend` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_config_backend(const KREUZBERGOcrConfig *ptr);
/**
* Get the `language` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_config_language(const KREUZBERGOcrConfig *ptr);
/**
* Get the `tesseract_config` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGTesseractConfig *kreuzberg_ocr_config_tesseract_config(const KREUZBERGOcrConfig *ptr);
/**
* Get the `output_format` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOutputFormat *kreuzberg_ocr_config_output_format(const KREUZBERGOcrConfig *ptr);
/**
* Get the `paddle_ocr_config` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_config_paddle_ocr_config(const KREUZBERGOcrConfig *ptr);
/**
* Get the `backend_options` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_config_backend_options(const KREUZBERGOcrConfig *ptr);
/**
* Get the `element_config` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOcrElementConfig *kreuzberg_ocr_config_element_config(const KREUZBERGOcrConfig *ptr);
/**
* Get the `quality_thresholds` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOcrQualityThresholds *kreuzberg_ocr_config_quality_thresholds(const KREUZBERGOcrConfig *ptr);
/**
* Get the `pipeline` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOcrPipelineConfig *kreuzberg_ocr_config_pipeline(const KREUZBERGOcrConfig *ptr);
/**
* Get the `auto_rotate` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_ocr_config_auto_rotate(const KREUZBERGOcrConfig *ptr);
/**
* Get the `vlm_config` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGLlmConfig *kreuzberg_ocr_config_vlm_config(const KREUZBERGOcrConfig *ptr);
/**
* Get the `vlm_prompt` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_config_vlm_prompt(const KREUZBERGOcrConfig *ptr);
/**
* Get the `acceleration` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGAccelerationConfig *kreuzberg_ocr_config_acceleration(const KREUZBERGOcrConfig *ptr);
/**
* Get the `tessdata_bytes` field from a `OcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_config_tessdata_bytes(const KREUZBERGOcrConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGOcrConfig *kreuzberg_ocr_config_default(void);
/**
* Create a `PageConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_page_config_free`.
*/
KREUZBERGPageConfig *kreuzberg_page_config_from_json(const char *json);
/**
* Serialize a `PageConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_page_config_to_json(const KREUZBERGPageConfig *ptr);
/**
* Free a `PageConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_page_config_free(KREUZBERGPageConfig *ptr);
/**
* Get the `extract_pages` field from a `PageConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_page_config_extract_pages(const KREUZBERGPageConfig *ptr);
/**
* Get the `insert_page_markers` field from a `PageConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_page_config_insert_page_markers(const KREUZBERGPageConfig *ptr);
/**
* Get the `marker_format` field from a `PageConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_page_config_marker_format(const KREUZBERGPageConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGPageConfig *kreuzberg_page_config_default(void);
/**
* Create a `PdfConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_pdf_config_free`.
*/
KREUZBERGPdfConfig *kreuzberg_pdf_config_from_json(const char *json);
/**
* Serialize a `PdfConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_pdf_config_to_json(const KREUZBERGPdfConfig *ptr);
/**
* Free a `PdfConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_pdf_config_free(KREUZBERGPdfConfig *ptr);
/**
* Get the `extract_images` field from a `PdfConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pdf_config_extract_images(const KREUZBERGPdfConfig *ptr);
/**
* Get the `extract_tables` field from a `PdfConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pdf_config_extract_tables(const KREUZBERGPdfConfig *ptr);
/**
* Get the `passwords` field from a `PdfConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pdf_config_passwords(const KREUZBERGPdfConfig *ptr);
/**
* Get the `extract_metadata` field from a `PdfConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pdf_config_extract_metadata(const KREUZBERGPdfConfig *ptr);
/**
* Get the `hierarchy` field from a `PdfConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGHierarchyConfig *kreuzberg_pdf_config_hierarchy(const KREUZBERGPdfConfig *ptr);
/**
* Get the `extract_annotations` field from a `PdfConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pdf_config_extract_annotations(const KREUZBERGPdfConfig *ptr);
/**
* Get the `top_margin_fraction` field from a `PdfConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_pdf_config_top_margin_fraction(const KREUZBERGPdfConfig *ptr);
/**
* Get the `bottom_margin_fraction` field from a `PdfConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_pdf_config_bottom_margin_fraction(const KREUZBERGPdfConfig *ptr);
/**
* Get the `allow_single_column_tables` field from a `PdfConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pdf_config_allow_single_column_tables(const KREUZBERGPdfConfig *ptr);
/**
* Get the `ocr_inline_images` field from a `PdfConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pdf_config_ocr_inline_images(const KREUZBERGPdfConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGPdfConfig *kreuzberg_pdf_config_default(void);
/**
* Create a `HierarchyConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_hierarchy_config_free`.
*/
KREUZBERGHierarchyConfig *kreuzberg_hierarchy_config_from_json(const char *json);
/**
* Serialize a `HierarchyConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_hierarchy_config_to_json(const KREUZBERGHierarchyConfig *ptr);
/**
* Free a `HierarchyConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_hierarchy_config_free(KREUZBERGHierarchyConfig *ptr);
/**
* Get the `enabled` field from a `HierarchyConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_hierarchy_config_enabled(const KREUZBERGHierarchyConfig *ptr);
/**
* Get the `k_clusters` field from a `HierarchyConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_hierarchy_config_k_clusters(const KREUZBERGHierarchyConfig *ptr);
/**
* Get the `include_bbox` field from a `HierarchyConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_hierarchy_config_include_bbox(const KREUZBERGHierarchyConfig *ptr);
/**
* Get the `ocr_coverage_threshold` field from a `HierarchyConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_hierarchy_config_ocr_coverage_threshold(const KREUZBERGHierarchyConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGHierarchyConfig *kreuzberg_hierarchy_config_default(void);
/**
* Create a `PostProcessorConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_post_processor_config_free`.
*/
KREUZBERGPostProcessorConfig *kreuzberg_post_processor_config_from_json(const char *json);
/**
* Serialize a `PostProcessorConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_post_processor_config_to_json(const KREUZBERGPostProcessorConfig *ptr);
/**
* Free a `PostProcessorConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_post_processor_config_free(KREUZBERGPostProcessorConfig *ptr);
/**
* Get the `enabled` field from a `PostProcessorConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_post_processor_config_enabled(const KREUZBERGPostProcessorConfig *ptr);
/**
* Get the `enabled_processors` field from a `PostProcessorConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_post_processor_config_enabled_processors(const KREUZBERGPostProcessorConfig *ptr);
/**
* Get the `disabled_processors` field from a `PostProcessorConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_post_processor_config_disabled_processors(const KREUZBERGPostProcessorConfig *ptr);
/**
* Get the `enabled_set` field from a `PostProcessorConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_post_processor_config_enabled_set(const KREUZBERGPostProcessorConfig *ptr);
/**
* Get the `disabled_set` field from a `PostProcessorConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_post_processor_config_disabled_set(const KREUZBERGPostProcessorConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGPostProcessorConfig *kreuzberg_post_processor_config_default(void);
/**
* Create a `ChunkingConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_chunking_config_free`.
*/
KREUZBERGChunkingConfig *kreuzberg_chunking_config_from_json(const char *json);
/**
* Serialize a `ChunkingConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_chunking_config_to_json(const KREUZBERGChunkingConfig *ptr);
/**
* Free a `ChunkingConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_chunking_config_free(KREUZBERGChunkingConfig *ptr);
/**
* Get the `max_characters` field from a `ChunkingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_chunking_config_max_characters(const KREUZBERGChunkingConfig *ptr);
/**
* Get the `overlap` field from a `ChunkingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_chunking_config_overlap(const KREUZBERGChunkingConfig *ptr);
/**
* Get the `trim` field from a `ChunkingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_chunking_config_trim(const KREUZBERGChunkingConfig *ptr);
/**
* Get the `chunker_type` field from a `ChunkingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGChunkerType *kreuzberg_chunking_config_chunker_type(const KREUZBERGChunkingConfig *ptr);
/**
* Get the `embedding` field from a `ChunkingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGEmbeddingConfig *kreuzberg_chunking_config_embedding(const KREUZBERGChunkingConfig *ptr);
/**
* Get the `preset` field from a `ChunkingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_chunking_config_preset(const KREUZBERGChunkingConfig *ptr);
/**
* Get the `sizing` field from a `ChunkingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGChunkSizing *kreuzberg_chunking_config_sizing(const KREUZBERGChunkingConfig *ptr);
/**
* Get the `prepend_heading_context` field from a `ChunkingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_chunking_config_prepend_heading_context(const KREUZBERGChunkingConfig *ptr);
/**
* Get the `topic_threshold` field from a `ChunkingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_chunking_config_topic_threshold(const KREUZBERGChunkingConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGChunkingConfig *kreuzberg_chunking_config_default(void);
/**
* Create a `EmbeddingConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_embedding_config_free`.
*/
KREUZBERGEmbeddingConfig *kreuzberg_embedding_config_from_json(const char *json);
/**
* Serialize a `EmbeddingConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_embedding_config_to_json(const KREUZBERGEmbeddingConfig *ptr);
/**
* Free a `EmbeddingConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_embedding_config_free(KREUZBERGEmbeddingConfig *ptr);
/**
* Get the `model` field from a `EmbeddingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGEmbeddingModelType *kreuzberg_embedding_config_model(const KREUZBERGEmbeddingConfig *ptr);
/**
* Get the `normalize` field from a `EmbeddingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_embedding_config_normalize(const KREUZBERGEmbeddingConfig *ptr);
/**
* Get the `batch_size` field from a `EmbeddingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_embedding_config_batch_size(const KREUZBERGEmbeddingConfig *ptr);
/**
* Get the `show_download_progress` field from a `EmbeddingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_embedding_config_show_download_progress(const KREUZBERGEmbeddingConfig *ptr);
/**
* Get the `cache_dir` field from a `EmbeddingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_embedding_config_cache_dir(const KREUZBERGEmbeddingConfig *ptr);
/**
* Get the `acceleration` field from a `EmbeddingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGAccelerationConfig *kreuzberg_embedding_config_acceleration(const KREUZBERGEmbeddingConfig *ptr);
/**
* Get the `max_embed_duration_secs` field from a `EmbeddingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint64_t kreuzberg_embedding_config_max_embed_duration_secs(const KREUZBERGEmbeddingConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGEmbeddingConfig *kreuzberg_embedding_config_default(void);
/**
* Create a `TreeSitterConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_tree_sitter_config_free`.
*/
KREUZBERGTreeSitterConfig *kreuzberg_tree_sitter_config_from_json(const char *json);
/**
* Serialize a `TreeSitterConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_tree_sitter_config_to_json(const KREUZBERGTreeSitterConfig *ptr);
/**
* Free a `TreeSitterConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_tree_sitter_config_free(KREUZBERGTreeSitterConfig *ptr);
/**
* Get the `enabled` field from a `TreeSitterConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tree_sitter_config_enabled(const KREUZBERGTreeSitterConfig *ptr);
/**
* Get the `cache_dir` field from a `TreeSitterConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_tree_sitter_config_cache_dir(const KREUZBERGTreeSitterConfig *ptr);
/**
* Get the `languages` field from a `TreeSitterConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_tree_sitter_config_languages(const KREUZBERGTreeSitterConfig *ptr);
/**
* Get the `groups` field from a `TreeSitterConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_tree_sitter_config_groups(const KREUZBERGTreeSitterConfig *ptr);
/**
* Get the `process` field from a `TreeSitterConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGTreeSitterProcessConfig *kreuzberg_tree_sitter_config_process(const KREUZBERGTreeSitterConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGTreeSitterConfig *kreuzberg_tree_sitter_config_default(void);
/**
* Create a `TreeSitterProcessConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_tree_sitter_process_config_free`.
*/
KREUZBERGTreeSitterProcessConfig *kreuzberg_tree_sitter_process_config_from_json(const char *json);
/**
* Serialize a `TreeSitterProcessConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_tree_sitter_process_config_to_json(const KREUZBERGTreeSitterProcessConfig *ptr);
/**
* Free a `TreeSitterProcessConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_tree_sitter_process_config_free(KREUZBERGTreeSitterProcessConfig *ptr);
/**
* Get the `structure` field from a `TreeSitterProcessConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tree_sitter_process_config_structure(const KREUZBERGTreeSitterProcessConfig *ptr);
/**
* Get the `imports` field from a `TreeSitterProcessConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tree_sitter_process_config_imports(const KREUZBERGTreeSitterProcessConfig *ptr);
/**
* Get the `exports` field from a `TreeSitterProcessConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tree_sitter_process_config_exports(const KREUZBERGTreeSitterProcessConfig *ptr);
/**
* Get the `comments` field from a `TreeSitterProcessConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tree_sitter_process_config_comments(const KREUZBERGTreeSitterProcessConfig *ptr);
/**
* Get the `docstrings` field from a `TreeSitterProcessConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tree_sitter_process_config_docstrings(const KREUZBERGTreeSitterProcessConfig *ptr);
/**
* Get the `symbols` field from a `TreeSitterProcessConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tree_sitter_process_config_symbols(const KREUZBERGTreeSitterProcessConfig *ptr);
/**
* Get the `diagnostics` field from a `TreeSitterProcessConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tree_sitter_process_config_diagnostics(const KREUZBERGTreeSitterProcessConfig *ptr);
/**
* Get the `chunk_max_size` field from a `TreeSitterProcessConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_tree_sitter_process_config_chunk_max_size(const KREUZBERGTreeSitterProcessConfig *ptr);
/**
* Get the `content_mode` field from a `TreeSitterProcessConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGCodeContentMode *kreuzberg_tree_sitter_process_config_content_mode(const KREUZBERGTreeSitterProcessConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGTreeSitterProcessConfig *kreuzberg_tree_sitter_process_config_default(void);
/**
* Create a `SupportedFormat` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_supported_format_free`.
*/
KREUZBERGSupportedFormat *kreuzberg_supported_format_from_json(const char *json);
/**
* Serialize a `SupportedFormat` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_supported_format_to_json(const KREUZBERGSupportedFormat *ptr);
/**
* Free a `SupportedFormat` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_supported_format_free(KREUZBERGSupportedFormat *ptr);
/**
* Get the `extension` field from a `SupportedFormat`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_supported_format_extension(const KREUZBERGSupportedFormat *ptr);
/**
* Get the `mime_type` field from a `SupportedFormat`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_supported_format_mime_type(const KREUZBERGSupportedFormat *ptr);
/**
* Create a `ServerConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_server_config_free`.
*/
KREUZBERGServerConfig *kreuzberg_server_config_from_json(const char *json);
/**
* Serialize a `ServerConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_server_config_to_json(const KREUZBERGServerConfig *ptr);
/**
* Free a `ServerConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_server_config_free(KREUZBERGServerConfig *ptr);
/**
* Get the `host` field from a `ServerConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_server_config_host(const KREUZBERGServerConfig *ptr);
/**
* Get the `port` field from a `ServerConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint16_t kreuzberg_server_config_port(const KREUZBERGServerConfig *ptr);
/**
* Get the `cors_origins` field from a `ServerConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_server_config_cors_origins(const KREUZBERGServerConfig *ptr);
/**
* Get the `max_request_body_bytes` field from a `ServerConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_server_config_max_request_body_bytes(const KREUZBERGServerConfig *ptr);
/**
* Get the `max_multipart_field_bytes` field from a `ServerConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_server_config_max_multipart_field_bytes(const KREUZBERGServerConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGServerConfig *kreuzberg_server_config_default(void);
/**
* Get the server listen address (host:port).
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::core::ServerConfig;
*
* let config = ServerConfig::default();
* assert_eq!(config.listen_addr(), "127.0.0.1:8000");
* \endcode
*/
char *kreuzberg_server_config_listen_addr(const KREUZBERGServerConfig *this_);
/**
* Check if CORS allows all origins.
*
* Returns `true` if the `cors_origins` vector is empty, meaning all origins
* are allowed. Returns `false` if specific origins are configured.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::core::ServerConfig;
*
* let mut config = ServerConfig::default();
* assert!(config.cors_allows_all());
*
* config.cors_origins.push("https://example.com".to_string());
* assert!(!config.cors_allows_all());
* \endcode
*/
int32_t kreuzberg_server_config_cors_allows_all(const KREUZBERGServerConfig *this_);
/**
* Check if a given origin is allowed by CORS configuration.
*
* Returns `true` if:
* - CORS allows all origins (empty origins list), or
* - The given origin is in the allowed origins list
* \param origin The origin to check (e.g., "https://example.com")
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::core::ServerConfig;
*
* let mut config = ServerConfig::default();
* assert!(config.is_origin_allowed("https://example.com"));
*
* config.cors_origins.push("https://allowed.com".to_string());
* assert!(config.is_origin_allowed("https://allowed.com"));
* assert!(!config.is_origin_allowed("https://denied.com"));
* \endcode
*/
int32_t kreuzberg_server_config_is_origin_allowed(const KREUZBERGServerConfig *this_,
const char *origin);
/**
* Get maximum request body size in megabytes (rounded up).
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::core::ServerConfig;
*
* let mut config = ServerConfig::default();
* assert_eq!(config.max_request_body_mb(), 100);
* \endcode
*/
uintptr_t kreuzberg_server_config_max_request_body_mb(const KREUZBERGServerConfig *this_);
/**
* Get maximum multipart field size in megabytes (rounded up).
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::core::ServerConfig;
*
* let mut config = ServerConfig::default();
* assert_eq!(config.max_multipart_field_mb(), 100);
* \endcode
*/
uintptr_t kreuzberg_server_config_max_multipart_field_mb(const KREUZBERGServerConfig *this_);
/**
* Create a `StructuredDataResult` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_structured_data_result_free`.
*/
KREUZBERGStructuredDataResult *kreuzberg_structured_data_result_from_json(const char *json);
/**
* Serialize a `StructuredDataResult` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_structured_data_result_to_json(const KREUZBERGStructuredDataResult *ptr);
/**
* Free a `StructuredDataResult` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_structured_data_result_free(KREUZBERGStructuredDataResult *ptr);
/**
* Get the `content` field from a `StructuredDataResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_structured_data_result_content(const KREUZBERGStructuredDataResult *ptr);
/**
* Get the `format` field from a `StructuredDataResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_structured_data_result_format(const KREUZBERGStructuredDataResult *ptr);
/**
* Get the `metadata` field from a `StructuredDataResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_structured_data_result_metadata(const KREUZBERGStructuredDataResult *ptr);
/**
* Get the `text_fields` field from a `StructuredDataResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_structured_data_result_text_fields(const KREUZBERGStructuredDataResult *ptr);
/**
* Create a `DocxAppProperties` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_docx_app_properties_free`.
*/
KREUZBERGDocxAppProperties *kreuzberg_docx_app_properties_from_json(const char *json);
/**
* Serialize a `DocxAppProperties` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_docx_app_properties_to_json(const KREUZBERGDocxAppProperties *ptr);
/**
* Free a `DocxAppProperties` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_docx_app_properties_free(KREUZBERGDocxAppProperties *ptr);
/**
* Get the `application` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_docx_app_properties_application(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `app_version` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_docx_app_properties_app_version(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `template` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_docx_app_properties_template(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `total_time` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_docx_app_properties_total_time(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `pages` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_docx_app_properties_pages(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `words` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_docx_app_properties_words(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `characters` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_docx_app_properties_characters(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `characters_with_spaces` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_docx_app_properties_characters_with_spaces(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `lines` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_docx_app_properties_lines(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `paragraphs` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_docx_app_properties_paragraphs(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `company` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_docx_app_properties_company(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `doc_security` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_docx_app_properties_doc_security(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `scale_crop` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_docx_app_properties_scale_crop(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `links_up_to_date` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_docx_app_properties_links_up_to_date(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `shared_doc` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_docx_app_properties_shared_doc(const KREUZBERGDocxAppProperties *ptr);
/**
* Get the `hyperlinks_changed` field from a `DocxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_docx_app_properties_hyperlinks_changed(const KREUZBERGDocxAppProperties *ptr);
/**
* Create a `XlsxAppProperties` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_xlsx_app_properties_free`.
*/
KREUZBERGXlsxAppProperties *kreuzberg_xlsx_app_properties_from_json(const char *json);
/**
* Serialize a `XlsxAppProperties` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_xlsx_app_properties_to_json(const KREUZBERGXlsxAppProperties *ptr);
/**
* Free a `XlsxAppProperties` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_xlsx_app_properties_free(KREUZBERGXlsxAppProperties *ptr);
/**
* Get the `application` field from a `XlsxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_xlsx_app_properties_application(const KREUZBERGXlsxAppProperties *ptr);
/**
* Get the `app_version` field from a `XlsxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_xlsx_app_properties_app_version(const KREUZBERGXlsxAppProperties *ptr);
/**
* Get the `doc_security` field from a `XlsxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_xlsx_app_properties_doc_security(const KREUZBERGXlsxAppProperties *ptr);
/**
* Get the `scale_crop` field from a `XlsxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_xlsx_app_properties_scale_crop(const KREUZBERGXlsxAppProperties *ptr);
/**
* Get the `links_up_to_date` field from a `XlsxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_xlsx_app_properties_links_up_to_date(const KREUZBERGXlsxAppProperties *ptr);
/**
* Get the `shared_doc` field from a `XlsxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_xlsx_app_properties_shared_doc(const KREUZBERGXlsxAppProperties *ptr);
/**
* Get the `hyperlinks_changed` field from a `XlsxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_xlsx_app_properties_hyperlinks_changed(const KREUZBERGXlsxAppProperties *ptr);
/**
* Get the `company` field from a `XlsxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_xlsx_app_properties_company(const KREUZBERGXlsxAppProperties *ptr);
/**
* Get the `worksheet_names` field from a `XlsxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_xlsx_app_properties_worksheet_names(const KREUZBERGXlsxAppProperties *ptr);
/**
* Create a `PptxAppProperties` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_pptx_app_properties_free`.
*/
KREUZBERGPptxAppProperties *kreuzberg_pptx_app_properties_from_json(const char *json);
/**
* Serialize a `PptxAppProperties` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_pptx_app_properties_to_json(const KREUZBERGPptxAppProperties *ptr);
/**
* Free a `PptxAppProperties` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_pptx_app_properties_free(KREUZBERGPptxAppProperties *ptr);
/**
* Get the `application` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pptx_app_properties_application(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `app_version` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pptx_app_properties_app_version(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `total_time` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pptx_app_properties_total_time(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `company` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pptx_app_properties_company(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `doc_security` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pptx_app_properties_doc_security(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `scale_crop` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pptx_app_properties_scale_crop(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `links_up_to_date` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pptx_app_properties_links_up_to_date(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `shared_doc` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pptx_app_properties_shared_doc(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `hyperlinks_changed` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pptx_app_properties_hyperlinks_changed(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `slides` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pptx_app_properties_slides(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `notes` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pptx_app_properties_notes(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `hidden_slides` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pptx_app_properties_hidden_slides(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `multimedia_clips` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pptx_app_properties_multimedia_clips(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `presentation_format` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pptx_app_properties_presentation_format(const KREUZBERGPptxAppProperties *ptr);
/**
* Get the `slide_titles` field from a `PptxAppProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pptx_app_properties_slide_titles(const KREUZBERGPptxAppProperties *ptr);
/**
* Create a `CoreProperties` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_core_properties_free`.
*/
KREUZBERGCoreProperties *kreuzberg_core_properties_from_json(const char *json);
/**
* Serialize a `CoreProperties` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_core_properties_to_json(const KREUZBERGCoreProperties *ptr);
/**
* Free a `CoreProperties` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_core_properties_free(KREUZBERGCoreProperties *ptr);
/**
* Get the `title` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_title(const KREUZBERGCoreProperties *ptr);
/**
* Get the `subject` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_subject(const KREUZBERGCoreProperties *ptr);
/**
* Get the `creator` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_creator(const KREUZBERGCoreProperties *ptr);
/**
* Get the `keywords` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_keywords(const KREUZBERGCoreProperties *ptr);
/**
* Get the `description` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_description(const KREUZBERGCoreProperties *ptr);
/**
* Get the `last_modified_by` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_last_modified_by(const KREUZBERGCoreProperties *ptr);
/**
* Get the `revision` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_revision(const KREUZBERGCoreProperties *ptr);
/**
* Get the `created` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_created(const KREUZBERGCoreProperties *ptr);
/**
* Get the `modified` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_modified(const KREUZBERGCoreProperties *ptr);
/**
* Get the `category` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_category(const KREUZBERGCoreProperties *ptr);
/**
* Get the `content_status` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_content_status(const KREUZBERGCoreProperties *ptr);
/**
* Get the `language` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_language(const KREUZBERGCoreProperties *ptr);
/**
* Get the `identifier` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_identifier(const KREUZBERGCoreProperties *ptr);
/**
* Get the `version` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_version(const KREUZBERGCoreProperties *ptr);
/**
* Get the `last_printed` field from a `CoreProperties`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_core_properties_last_printed(const KREUZBERGCoreProperties *ptr);
/**
* Create a `SecurityLimits` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_security_limits_free`.
*/
KREUZBERGSecurityLimits *kreuzberg_security_limits_from_json(const char *json);
/**
* Serialize a `SecurityLimits` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_security_limits_to_json(const KREUZBERGSecurityLimits *ptr);
/**
* Free a `SecurityLimits` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_security_limits_free(KREUZBERGSecurityLimits *ptr);
/**
* Get the `max_archive_size` field from a `SecurityLimits`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_security_limits_max_archive_size(const KREUZBERGSecurityLimits *ptr);
/**
* Get the `max_compression_ratio` field from a `SecurityLimits`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_security_limits_max_compression_ratio(const KREUZBERGSecurityLimits *ptr);
/**
* Get the `max_files_in_archive` field from a `SecurityLimits`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_security_limits_max_files_in_archive(const KREUZBERGSecurityLimits *ptr);
/**
* Get the `max_nesting_depth` field from a `SecurityLimits`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_security_limits_max_nesting_depth(const KREUZBERGSecurityLimits *ptr);
/**
* Get the `max_entity_length` field from a `SecurityLimits`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_security_limits_max_entity_length(const KREUZBERGSecurityLimits *ptr);
/**
* Get the `max_content_size` field from a `SecurityLimits`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_security_limits_max_content_size(const KREUZBERGSecurityLimits *ptr);
/**
* Get the `max_iterations` field from a `SecurityLimits`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_security_limits_max_iterations(const KREUZBERGSecurityLimits *ptr);
/**
* Get the `max_xml_depth` field from a `SecurityLimits`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_security_limits_max_xml_depth(const KREUZBERGSecurityLimits *ptr);
/**
* Get the `max_table_cells` field from a `SecurityLimits`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_security_limits_max_table_cells(const KREUZBERGSecurityLimits *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGSecurityLimits *kreuzberg_security_limits_default(void);
/**
* Create a `TokenReductionConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_token_reduction_config_free`.
*/
KREUZBERGTokenReductionConfig *kreuzberg_token_reduction_config_from_json(const char *json);
/**
* Serialize a `TokenReductionConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_token_reduction_config_to_json(const KREUZBERGTokenReductionConfig *ptr);
/**
* Free a `TokenReductionConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_token_reduction_config_free(KREUZBERGTokenReductionConfig *ptr);
/**
* Get the `level` field from a `TokenReductionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGReductionLevel *kreuzberg_token_reduction_config_level(const KREUZBERGTokenReductionConfig *ptr);
/**
* Get the `language_hint` field from a `TokenReductionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_token_reduction_config_language_hint(const KREUZBERGTokenReductionConfig *ptr);
/**
* Get the `preserve_markdown` field from a `TokenReductionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_token_reduction_config_preserve_markdown(const KREUZBERGTokenReductionConfig *ptr);
/**
* Get the `preserve_code` field from a `TokenReductionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_token_reduction_config_preserve_code(const KREUZBERGTokenReductionConfig *ptr);
/**
* Get the `semantic_threshold` field from a `TokenReductionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_token_reduction_config_semantic_threshold(const KREUZBERGTokenReductionConfig *ptr);
/**
* Get the `enable_parallel` field from a `TokenReductionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_token_reduction_config_enable_parallel(const KREUZBERGTokenReductionConfig *ptr);
/**
* Get the `use_simd` field from a `TokenReductionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_token_reduction_config_use_simd(const KREUZBERGTokenReductionConfig *ptr);
/**
* Get the `custom_stopwords` field from a `TokenReductionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_token_reduction_config_custom_stopwords(const KREUZBERGTokenReductionConfig *ptr);
/**
* Get the `preserve_patterns` field from a `TokenReductionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_token_reduction_config_preserve_patterns(const KREUZBERGTokenReductionConfig *ptr);
/**
* Get the `target_reduction` field from a `TokenReductionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_token_reduction_config_target_reduction(const KREUZBERGTokenReductionConfig *ptr);
/**
* Get the `enable_semantic_clustering` field from a `TokenReductionConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_token_reduction_config_enable_semantic_clustering(const KREUZBERGTokenReductionConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGTokenReductionConfig *kreuzberg_token_reduction_config_default(void);
/**
* Create a `PdfAnnotation` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_pdf_annotation_free`.
*/
KREUZBERGPdfAnnotation *kreuzberg_pdf_annotation_from_json(const char *json);
/**
* Serialize a `PdfAnnotation` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_pdf_annotation_to_json(const KREUZBERGPdfAnnotation *ptr);
/**
* Free a `PdfAnnotation` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_pdf_annotation_free(KREUZBERGPdfAnnotation *ptr);
/**
* Get the `annotation_type` field from a `PdfAnnotation`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGPdfAnnotationType *kreuzberg_pdf_annotation_annotation_type(const KREUZBERGPdfAnnotation *ptr);
/**
* Get the `content` field from a `PdfAnnotation`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pdf_annotation_content(const KREUZBERGPdfAnnotation *ptr);
/**
* Get the `page_number` field from a `PdfAnnotation`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_pdf_annotation_page_number(const KREUZBERGPdfAnnotation *ptr);
/**
* Get the `bounding_box` field from a `PdfAnnotation`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGBoundingBox *kreuzberg_pdf_annotation_bounding_box(const KREUZBERGPdfAnnotation *ptr);
/**
* Create a `DjotContent` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_djot_content_free`.
*/
KREUZBERGDjotContent *kreuzberg_djot_content_from_json(const char *json);
/**
* Serialize a `DjotContent` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_djot_content_to_json(const KREUZBERGDjotContent *ptr);
/**
* Free a `DjotContent` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_djot_content_free(KREUZBERGDjotContent *ptr);
/**
* Get the `plain_text` field from a `DjotContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_djot_content_plain_text(const KREUZBERGDjotContent *ptr);
/**
* Get the `blocks` field from a `DjotContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_djot_content_blocks(const KREUZBERGDjotContent *ptr);
/**
* Get the `metadata` field from a `DjotContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGMetadata *kreuzberg_djot_content_metadata(const KREUZBERGDjotContent *ptr);
/**
* Get the `tables` field from a `DjotContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_djot_content_tables(const KREUZBERGDjotContent *ptr);
/**
* Get the `images` field from a `DjotContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_djot_content_images(const KREUZBERGDjotContent *ptr);
/**
* Get the `links` field from a `DjotContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_djot_content_links(const KREUZBERGDjotContent *ptr);
/**
* Get the `footnotes` field from a `DjotContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_djot_content_footnotes(const KREUZBERGDjotContent *ptr);
/**
* Create a `FormattedBlock` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_formatted_block_free`.
*/
KREUZBERGFormattedBlock *kreuzberg_formatted_block_from_json(const char *json);
/**
* Serialize a `FormattedBlock` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_formatted_block_to_json(const KREUZBERGFormattedBlock *ptr);
/**
* Free a `FormattedBlock` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_formatted_block_free(KREUZBERGFormattedBlock *ptr);
/**
* Get the `block_type` field from a `FormattedBlock`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGBlockType *kreuzberg_formatted_block_block_type(const KREUZBERGFormattedBlock *ptr);
/**
* Get the `level` field from a `FormattedBlock`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_formatted_block_level(const KREUZBERGFormattedBlock *ptr);
/**
* Get the `inline_content` field from a `FormattedBlock`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_formatted_block_inline_content(const KREUZBERGFormattedBlock *ptr);
/**
* Get the `language` field from a `FormattedBlock`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_formatted_block_language(const KREUZBERGFormattedBlock *ptr);
/**
* Get the `code` field from a `FormattedBlock`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_formatted_block_code(const KREUZBERGFormattedBlock *ptr);
/**
* Get the `children` field from a `FormattedBlock`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_formatted_block_children(const KREUZBERGFormattedBlock *ptr);
/**
* Create a `InlineElement` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_inline_element_free`.
*/
KREUZBERGInlineElement *kreuzberg_inline_element_from_json(const char *json);
/**
* Serialize a `InlineElement` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_inline_element_to_json(const KREUZBERGInlineElement *ptr);
/**
* Free a `InlineElement` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_inline_element_free(KREUZBERGInlineElement *ptr);
/**
* Get the `element_type` field from a `InlineElement`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGInlineType *kreuzberg_inline_element_element_type(const KREUZBERGInlineElement *ptr);
/**
* Get the `content` field from a `InlineElement`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_inline_element_content(const KREUZBERGInlineElement *ptr);
/**
* Get the `metadata` field from a `InlineElement`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_inline_element_metadata(const KREUZBERGInlineElement *ptr);
/**
* Create a `DjotImage` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_djot_image_free`.
*/
KREUZBERGDjotImage *kreuzberg_djot_image_from_json(const char *json);
/**
* Serialize a `DjotImage` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_djot_image_to_json(const KREUZBERGDjotImage *ptr);
/**
* Free a `DjotImage` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_djot_image_free(KREUZBERGDjotImage *ptr);
/**
* Get the `src` field from a `DjotImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_djot_image_src(const KREUZBERGDjotImage *ptr);
/**
* Get the `alt` field from a `DjotImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_djot_image_alt(const KREUZBERGDjotImage *ptr);
/**
* Get the `title` field from a `DjotImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_djot_image_title(const KREUZBERGDjotImage *ptr);
/**
* Create a `DjotLink` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_djot_link_free`.
*/
KREUZBERGDjotLink *kreuzberg_djot_link_from_json(const char *json);
/**
* Serialize a `DjotLink` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_djot_link_to_json(const KREUZBERGDjotLink *ptr);
/**
* Free a `DjotLink` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_djot_link_free(KREUZBERGDjotLink *ptr);
/**
* Get the `url` field from a `DjotLink`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_djot_link_url(const KREUZBERGDjotLink *ptr);
/**
* Get the `text` field from a `DjotLink`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_djot_link_text(const KREUZBERGDjotLink *ptr);
/**
* Get the `title` field from a `DjotLink`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_djot_link_title(const KREUZBERGDjotLink *ptr);
/**
* Create a `Footnote` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_footnote_free`.
*/
KREUZBERGFootnote *kreuzberg_footnote_from_json(const char *json);
/**
* Serialize a `Footnote` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_footnote_to_json(const KREUZBERGFootnote *ptr);
/**
* Free a `Footnote` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_footnote_free(KREUZBERGFootnote *ptr);
/**
* Get the `label` field from a `Footnote`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_footnote_label(const KREUZBERGFootnote *ptr);
/**
* Get the `content` field from a `Footnote`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_footnote_content(const KREUZBERGFootnote *ptr);
/**
* Create a `DocumentStructure` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_document_structure_free`.
*/
KREUZBERGDocumentStructure *kreuzberg_document_structure_from_json(const char *json);
/**
* Serialize a `DocumentStructure` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_document_structure_to_json(const KREUZBERGDocumentStructure *ptr);
/**
* Free a `DocumentStructure` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_document_structure_free(KREUZBERGDocumentStructure *ptr);
/**
* Get the `nodes` field from a `DocumentStructure`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_document_structure_nodes(const KREUZBERGDocumentStructure *ptr);
/**
* Get the `source_format` field from a `DocumentStructure`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_document_structure_source_format(const KREUZBERGDocumentStructure *ptr);
/**
* Get the `relationships` field from a `DocumentStructure`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_document_structure_relationships(const KREUZBERGDocumentStructure *ptr);
/**
* Get the `node_types` field from a `DocumentStructure`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_document_structure_node_types(const KREUZBERGDocumentStructure *ptr);
/**
* Compute and populate the `node_types` field from the current `nodes`.
*
* Call this after all nodes have been added to the structure. Internal
* construction paths (builder, derivation) call this automatically.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::types::document_structure::{DocumentStructure, DocumentNode, NodeContent, NodeId};
*
* let mut structure = DocumentStructure {
* nodes: vec![DocumentNode {
* id: NodeId::from("n1"),
* content: NodeContent::Paragraph { text: "Hello".into() },
* parent: None,
* children: vec![],
* content_layer: Default::default(),
* page: None,
* page_end: None,
* bbox: None,
* annotations: vec![],
* attributes: None,
* }],
* source_format: None,
* relationships: vec![],
* node_types: vec![],
* };
* structure.finalize_node_types();
* assert!(structure.node_types.contains(&"paragraph".to_string()));
* \endcode
*/
void kreuzberg_document_structure_finalize_node_types(KREUZBERGDocumentStructure *this_);
/**
* Check if the document structure is empty.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
int32_t kreuzberg_document_structure_is_empty(const KREUZBERGDocumentStructure *this_);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGDocumentStructure *kreuzberg_document_structure_default(void);
/**
* Create a `DocumentRelationship` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_document_relationship_free`.
*/
KREUZBERGDocumentRelationship *kreuzberg_document_relationship_from_json(const char *json);
/**
* Serialize a `DocumentRelationship` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_document_relationship_to_json(const KREUZBERGDocumentRelationship *ptr);
/**
* Free a `DocumentRelationship` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_document_relationship_free(KREUZBERGDocumentRelationship *ptr);
/**
* Get the `source` field from a `DocumentRelationship`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_document_relationship_source(const KREUZBERGDocumentRelationship *ptr);
/**
* Get the `target` field from a `DocumentRelationship`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_document_relationship_target(const KREUZBERGDocumentRelationship *ptr);
/**
* Get the `kind` field from a `DocumentRelationship`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGRelationshipKind *kreuzberg_document_relationship_kind(const KREUZBERGDocumentRelationship *ptr);
/**
* Create a `DocumentNode` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_document_node_free`.
*/
KREUZBERGDocumentNode *kreuzberg_document_node_from_json(const char *json);
/**
* Serialize a `DocumentNode` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_document_node_to_json(const KREUZBERGDocumentNode *ptr);
/**
* Free a `DocumentNode` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_document_node_free(KREUZBERGDocumentNode *ptr);
/**
* Get the `content` field from a `DocumentNode`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGNodeContent *kreuzberg_document_node_content(const KREUZBERGDocumentNode *ptr);
/**
* Get the `parent` field from a `DocumentNode`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_document_node_parent(const KREUZBERGDocumentNode *ptr);
/**
* Get the `children` field from a `DocumentNode`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_document_node_children(const KREUZBERGDocumentNode *ptr);
/**
* Get the `content_layer` field from a `DocumentNode`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGContentLayer *kreuzberg_document_node_content_layer(const KREUZBERGDocumentNode *ptr);
/**
* Get the `page` field from a `DocumentNode`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_document_node_page(const KREUZBERGDocumentNode *ptr);
/**
* Get the `page_end` field from a `DocumentNode`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_document_node_page_end(const KREUZBERGDocumentNode *ptr);
/**
* Get the `bbox` field from a `DocumentNode`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGBoundingBox *kreuzberg_document_node_bbox(const KREUZBERGDocumentNode *ptr);
/**
* Get the `annotations` field from a `DocumentNode`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_document_node_annotations(const KREUZBERGDocumentNode *ptr);
/**
* Get the `attributes` field from a `DocumentNode`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_document_node_attributes(const KREUZBERGDocumentNode *ptr);
/**
* Create a `TableGrid` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_table_grid_free`.
*/
KREUZBERGTableGrid *kreuzberg_table_grid_from_json(const char *json);
/**
* Serialize a `TableGrid` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_table_grid_to_json(const KREUZBERGTableGrid *ptr);
/**
* Free a `TableGrid` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_table_grid_free(KREUZBERGTableGrid *ptr);
/**
* Get the `rows` field from a `TableGrid`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_table_grid_rows(const KREUZBERGTableGrid *ptr);
/**
* Get the `cols` field from a `TableGrid`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_table_grid_cols(const KREUZBERGTableGrid *ptr);
/**
* Get the `cells` field from a `TableGrid`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_table_grid_cells(const KREUZBERGTableGrid *ptr);
/**
* Create a `GridCell` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_grid_cell_free`.
*/
KREUZBERGGridCell *kreuzberg_grid_cell_from_json(const char *json);
/**
* Serialize a `GridCell` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_grid_cell_to_json(const KREUZBERGGridCell *ptr);
/**
* Free a `GridCell` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_grid_cell_free(KREUZBERGGridCell *ptr);
/**
* Get the `content` field from a `GridCell`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_grid_cell_content(const KREUZBERGGridCell *ptr);
/**
* Get the `row` field from a `GridCell`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_grid_cell_row(const KREUZBERGGridCell *ptr);
/**
* Get the `col` field from a `GridCell`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_grid_cell_col(const KREUZBERGGridCell *ptr);
/**
* Get the `row_span` field from a `GridCell`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_grid_cell_row_span(const KREUZBERGGridCell *ptr);
/**
* Get the `col_span` field from a `GridCell`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_grid_cell_col_span(const KREUZBERGGridCell *ptr);
/**
* Get the `is_header` field from a `GridCell`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_grid_cell_is_header(const KREUZBERGGridCell *ptr);
/**
* Get the `bbox` field from a `GridCell`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGBoundingBox *kreuzberg_grid_cell_bbox(const KREUZBERGGridCell *ptr);
/**
* Create a `TextAnnotation` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_text_annotation_free`.
*/
KREUZBERGTextAnnotation *kreuzberg_text_annotation_from_json(const char *json);
/**
* Serialize a `TextAnnotation` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_text_annotation_to_json(const KREUZBERGTextAnnotation *ptr);
/**
* Free a `TextAnnotation` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_text_annotation_free(KREUZBERGTextAnnotation *ptr);
/**
* Get the `start` field from a `TextAnnotation`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_text_annotation_start(const KREUZBERGTextAnnotation *ptr);
/**
* Get the `end` field from a `TextAnnotation`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_text_annotation_end(const KREUZBERGTextAnnotation *ptr);
/**
* Get the `kind` field from a `TextAnnotation`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGAnnotationKind *kreuzberg_text_annotation_kind(const KREUZBERGTextAnnotation *ptr);
/**
* Create a `ExtractionResult` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_extraction_result_free`.
*/
KREUZBERGExtractionResult *kreuzberg_extraction_result_from_json(const char *json);
/**
* Serialize a `ExtractionResult` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_extraction_result_to_json(const KREUZBERGExtractionResult *ptr);
/**
* Free a `ExtractionResult` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_extraction_result_free(KREUZBERGExtractionResult *ptr);
/**
* Get the `content` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_content(const KREUZBERGExtractionResult *ptr);
/**
* Get the `mime_type` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_mime_type(const KREUZBERGExtractionResult *ptr);
/**
* Get the `metadata` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGMetadata *kreuzberg_extraction_result_metadata(const KREUZBERGExtractionResult *ptr);
/**
* Get the `extraction_method` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGExtractionMethod *kreuzberg_extraction_result_extraction_method(const KREUZBERGExtractionResult *ptr);
/**
* Get the `tables` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_tables(const KREUZBERGExtractionResult *ptr);
/**
* Get the `detected_languages` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_detected_languages(const KREUZBERGExtractionResult *ptr);
/**
* Get the `chunks` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_chunks(const KREUZBERGExtractionResult *ptr);
/**
* Get the `images` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_images(const KREUZBERGExtractionResult *ptr);
/**
* Get the `pages` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_pages(const KREUZBERGExtractionResult *ptr);
/**
* Get the `elements` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_elements(const KREUZBERGExtractionResult *ptr);
/**
* Get the `djot_content` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGDjotContent *kreuzberg_extraction_result_djot_content(const KREUZBERGExtractionResult *ptr);
/**
* Get the `ocr_elements` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_ocr_elements(const KREUZBERGExtractionResult *ptr);
/**
* Get the `document` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGDocumentStructure *kreuzberg_extraction_result_document(const KREUZBERGExtractionResult *ptr);
/**
* Get the `extracted_keywords` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_extracted_keywords(const KREUZBERGExtractionResult *ptr);
/**
* Get the `quality_score` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_extraction_result_quality_score(const KREUZBERGExtractionResult *ptr);
/**
* Get the `processing_warnings` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_processing_warnings(const KREUZBERGExtractionResult *ptr);
/**
* Get the `annotations` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_annotations(const KREUZBERGExtractionResult *ptr);
/**
* Get the `children` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_children(const KREUZBERGExtractionResult *ptr);
/**
* Get the `uris` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_uris(const KREUZBERGExtractionResult *ptr);
/**
* Get the `revisions` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_revisions(const KREUZBERGExtractionResult *ptr);
/**
* Get the `structured_output` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_structured_output(const KREUZBERGExtractionResult *ptr);
/**
* Get the `code_intelligence` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_code_intelligence(const KREUZBERGExtractionResult *ptr);
/**
* Get the `llm_usage` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_llm_usage(const KREUZBERGExtractionResult *ptr);
/**
* Get the `formatted_content` field from a `ExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_result_formatted_content(const KREUZBERGExtractionResult *ptr);
/**
* Convert from an OCR result.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGExtractionResult *kreuzberg_extraction_result_from_ocr(const KREUZBERGOcrExtractionResult *ocr);
/**
* Create a `ArchiveEntry` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_archive_entry_free`.
*/
KREUZBERGArchiveEntry *kreuzberg_archive_entry_from_json(const char *json);
/**
* Serialize a `ArchiveEntry` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_archive_entry_to_json(const KREUZBERGArchiveEntry *ptr);
/**
* Free a `ArchiveEntry` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_archive_entry_free(KREUZBERGArchiveEntry *ptr);
/**
* Get the `path` field from a `ArchiveEntry`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_archive_entry_path(const KREUZBERGArchiveEntry *ptr);
/**
* Get the `mime_type` field from a `ArchiveEntry`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_archive_entry_mime_type(const KREUZBERGArchiveEntry *ptr);
/**
* Get the `result` field from a `ArchiveEntry`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGExtractionResult *kreuzberg_archive_entry_result(const KREUZBERGArchiveEntry *ptr);
/**
* Create a `ProcessingWarning` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_processing_warning_free`.
*/
KREUZBERGProcessingWarning *kreuzberg_processing_warning_from_json(const char *json);
/**
* Serialize a `ProcessingWarning` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_processing_warning_to_json(const KREUZBERGProcessingWarning *ptr);
/**
* Free a `ProcessingWarning` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_processing_warning_free(KREUZBERGProcessingWarning *ptr);
/**
* Get the `source` field from a `ProcessingWarning`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_processing_warning_source(const KREUZBERGProcessingWarning *ptr);
/**
* Get the `message` field from a `ProcessingWarning`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_processing_warning_message(const KREUZBERGProcessingWarning *ptr);
/**
* Create a `LlmUsage` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_llm_usage_free`.
*/
KREUZBERGLlmUsage *kreuzberg_llm_usage_from_json(const char *json);
/**
* Serialize a `LlmUsage` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_llm_usage_to_json(const KREUZBERGLlmUsage *ptr);
/**
* Free a `LlmUsage` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_llm_usage_free(KREUZBERGLlmUsage *ptr);
/**
* Get the `model` field from a `LlmUsage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_llm_usage_model(const KREUZBERGLlmUsage *ptr);
/**
* Get the `source` field from a `LlmUsage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_llm_usage_source(const KREUZBERGLlmUsage *ptr);
/**
* Get the `input_tokens` field from a `LlmUsage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint64_t kreuzberg_llm_usage_input_tokens(const KREUZBERGLlmUsage *ptr);
/**
* Get the `output_tokens` field from a `LlmUsage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint64_t kreuzberg_llm_usage_output_tokens(const KREUZBERGLlmUsage *ptr);
/**
* Get the `total_tokens` field from a `LlmUsage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint64_t kreuzberg_llm_usage_total_tokens(const KREUZBERGLlmUsage *ptr);
/**
* Get the `estimated_cost` field from a `LlmUsage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_llm_usage_estimated_cost(const KREUZBERGLlmUsage *ptr);
/**
* Get the `finish_reason` field from a `LlmUsage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_llm_usage_finish_reason(const KREUZBERGLlmUsage *ptr);
/**
* Create a `Chunk` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_chunk_free`.
*/
KREUZBERGChunk *kreuzberg_chunk_from_json(const char *json);
/**
* Serialize a `Chunk` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_chunk_to_json(const KREUZBERGChunk *ptr);
/**
* Free a `Chunk` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_chunk_free(KREUZBERGChunk *ptr);
/**
* Get the `content` field from a `Chunk`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_chunk_content(const KREUZBERGChunk *ptr);
/**
* Get the `chunk_type` field from a `Chunk`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGChunkType *kreuzberg_chunk_chunk_type(const KREUZBERGChunk *ptr);
/**
* Get the `embedding` field from a `Chunk`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_chunk_embedding(const KREUZBERGChunk *ptr);
/**
* Get the `metadata` field from a `Chunk`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGChunkMetadata *kreuzberg_chunk_metadata(const KREUZBERGChunk *ptr);
/**
* Create a `HeadingContext` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_heading_context_free`.
*/
KREUZBERGHeadingContext *kreuzberg_heading_context_from_json(const char *json);
/**
* Serialize a `HeadingContext` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_heading_context_to_json(const KREUZBERGHeadingContext *ptr);
/**
* Free a `HeadingContext` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_heading_context_free(KREUZBERGHeadingContext *ptr);
/**
* Get the `headings` field from a `HeadingContext`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_heading_context_headings(const KREUZBERGHeadingContext *ptr);
/**
* Create a `HeadingLevel` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_heading_level_free`.
*/
KREUZBERGHeadingLevel *kreuzberg_heading_level_from_json(const char *json);
/**
* Serialize a `HeadingLevel` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_heading_level_to_json(const KREUZBERGHeadingLevel *ptr);
/**
* Free a `HeadingLevel` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_heading_level_free(KREUZBERGHeadingLevel *ptr);
/**
* Get the `level` field from a `HeadingLevel`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint8_t kreuzberg_heading_level_level(const KREUZBERGHeadingLevel *ptr);
/**
* Get the `text` field from a `HeadingLevel`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_heading_level_text(const KREUZBERGHeadingLevel *ptr);
/**
* Create a `ChunkMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_chunk_metadata_free`.
*/
KREUZBERGChunkMetadata *kreuzberg_chunk_metadata_from_json(const char *json);
/**
* Serialize a `ChunkMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_chunk_metadata_to_json(const KREUZBERGChunkMetadata *ptr);
/**
* Free a `ChunkMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_chunk_metadata_free(KREUZBERGChunkMetadata *ptr);
/**
* Get the `byte_start` field from a `ChunkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_chunk_metadata_byte_start(const KREUZBERGChunkMetadata *ptr);
/**
* Get the `byte_end` field from a `ChunkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_chunk_metadata_byte_end(const KREUZBERGChunkMetadata *ptr);
/**
* Get the `token_count` field from a `ChunkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_chunk_metadata_token_count(const KREUZBERGChunkMetadata *ptr);
/**
* Get the `chunk_index` field from a `ChunkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_chunk_metadata_chunk_index(const KREUZBERGChunkMetadata *ptr);
/**
* Get the `total_chunks` field from a `ChunkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_chunk_metadata_total_chunks(const KREUZBERGChunkMetadata *ptr);
/**
* Get the `first_page` field from a `ChunkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_chunk_metadata_first_page(const KREUZBERGChunkMetadata *ptr);
/**
* Get the `last_page` field from a `ChunkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_chunk_metadata_last_page(const KREUZBERGChunkMetadata *ptr);
/**
* Get the `heading_context` field from a `ChunkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGHeadingContext *kreuzberg_chunk_metadata_heading_context(const KREUZBERGChunkMetadata *ptr);
/**
* Get the `image_indices` field from a `ChunkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_chunk_metadata_image_indices(const KREUZBERGChunkMetadata *ptr);
/**
* Create a `ExtractedImage` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_extracted_image_free`.
*/
KREUZBERGExtractedImage *kreuzberg_extracted_image_from_json(const char *json);
/**
* Serialize a `ExtractedImage` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_extracted_image_to_json(const KREUZBERGExtractedImage *ptr);
/**
* Free a `ExtractedImage` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_extracted_image_free(KREUZBERGExtractedImage *ptr);
/**
* Get the `data` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint8_t *kreuzberg_extracted_image_data(const KREUZBERGExtractedImage *ptr,
uintptr_t *out_len);
/**
* Get the `format` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extracted_image_format(const KREUZBERGExtractedImage *ptr);
/**
* Get the `image_index` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_extracted_image_image_index(const KREUZBERGExtractedImage *ptr);
/**
* Get the `page_number` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_extracted_image_page_number(const KREUZBERGExtractedImage *ptr);
/**
* Get the `width` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_extracted_image_width(const KREUZBERGExtractedImage *ptr);
/**
* Get the `height` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_extracted_image_height(const KREUZBERGExtractedImage *ptr);
/**
* Get the `colorspace` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extracted_image_colorspace(const KREUZBERGExtractedImage *ptr);
/**
* Get the `bits_per_component` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_extracted_image_bits_per_component(const KREUZBERGExtractedImage *ptr);
/**
* Get the `is_mask` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_extracted_image_is_mask(const KREUZBERGExtractedImage *ptr);
/**
* Get the `description` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extracted_image_description(const KREUZBERGExtractedImage *ptr);
/**
* Get the `ocr_result` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGExtractionResult *kreuzberg_extracted_image_ocr_result(const KREUZBERGExtractedImage *ptr);
/**
* Get the `bounding_box` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGBoundingBox *kreuzberg_extracted_image_bounding_box(const KREUZBERGExtractedImage *ptr);
/**
* Get the `source_path` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extracted_image_source_path(const KREUZBERGExtractedImage *ptr);
/**
* Get the `image_kind` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGImageKind *kreuzberg_extracted_image_image_kind(const KREUZBERGExtractedImage *ptr);
/**
* Get the `kind_confidence` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_extracted_image_kind_confidence(const KREUZBERGExtractedImage *ptr);
/**
* Get the `cluster_id` field from a `ExtractedImage`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_extracted_image_cluster_id(const KREUZBERGExtractedImage *ptr);
/**
* Create a `BoundingBox` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_bounding_box_free`.
*/
KREUZBERGBoundingBox *kreuzberg_bounding_box_from_json(const char *json);
/**
* Serialize a `BoundingBox` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_bounding_box_to_json(const KREUZBERGBoundingBox *ptr);
/**
* Free a `BoundingBox` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_bounding_box_free(KREUZBERGBoundingBox *ptr);
/**
* Get the `x0` field from a `BoundingBox`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_bounding_box_x0(const KREUZBERGBoundingBox *ptr);
/**
* Get the `y0` field from a `BoundingBox`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_bounding_box_y0(const KREUZBERGBoundingBox *ptr);
/**
* Get the `x1` field from a `BoundingBox`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_bounding_box_x1(const KREUZBERGBoundingBox *ptr);
/**
* Get the `y1` field from a `BoundingBox`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_bounding_box_y1(const KREUZBERGBoundingBox *ptr);
/**
* Create a `ElementMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_element_metadata_free`.
*/
KREUZBERGElementMetadata *kreuzberg_element_metadata_from_json(const char *json);
/**
* Serialize a `ElementMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_element_metadata_to_json(const KREUZBERGElementMetadata *ptr);
/**
* Free a `ElementMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_element_metadata_free(KREUZBERGElementMetadata *ptr);
/**
* Get the `page_number` field from a `ElementMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_element_metadata_page_number(const KREUZBERGElementMetadata *ptr);
/**
* Get the `filename` field from a `ElementMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_element_metadata_filename(const KREUZBERGElementMetadata *ptr);
/**
* Get the `coordinates` field from a `ElementMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGBoundingBox *kreuzberg_element_metadata_coordinates(const KREUZBERGElementMetadata *ptr);
/**
* Get the `element_index` field from a `ElementMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_element_metadata_element_index(const KREUZBERGElementMetadata *ptr);
/**
* Get the `additional` field from a `ElementMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_element_metadata_additional(const KREUZBERGElementMetadata *ptr);
/**
* Create a `Element` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_element_free`.
*/
KREUZBERGElement *kreuzberg_element_from_json(const char *json);
/**
* Serialize a `Element` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_element_to_json(const KREUZBERGElement *ptr);
/**
* Free a `Element` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_element_free(KREUZBERGElement *ptr);
/**
* Get the `element_type` field from a `Element`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGElementType *kreuzberg_element_element_type(const KREUZBERGElement *ptr);
/**
* Get the `text` field from a `Element`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_element_text(const KREUZBERGElement *ptr);
/**
* Get the `metadata` field from a `Element`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGElementMetadata *kreuzberg_element_metadata(const KREUZBERGElement *ptr);
/**
* Create a `ExcelWorkbook` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_excel_workbook_free`.
*/
KREUZBERGExcelWorkbook *kreuzberg_excel_workbook_from_json(const char *json);
/**
* Serialize a `ExcelWorkbook` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_excel_workbook_to_json(const KREUZBERGExcelWorkbook *ptr);
/**
* Free a `ExcelWorkbook` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_excel_workbook_free(KREUZBERGExcelWorkbook *ptr);
/**
* Get the `sheets` field from a `ExcelWorkbook`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_excel_workbook_sheets(const KREUZBERGExcelWorkbook *ptr);
/**
* Get the `metadata` field from a `ExcelWorkbook`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_excel_workbook_metadata(const KREUZBERGExcelWorkbook *ptr);
/**
* Get the `revisions` field from a `ExcelWorkbook`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_excel_workbook_revisions(const KREUZBERGExcelWorkbook *ptr);
/**
* Create a `ExcelSheet` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_excel_sheet_free`.
*/
KREUZBERGExcelSheet *kreuzberg_excel_sheet_from_json(const char *json);
/**
* Serialize a `ExcelSheet` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_excel_sheet_to_json(const KREUZBERGExcelSheet *ptr);
/**
* Free a `ExcelSheet` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_excel_sheet_free(KREUZBERGExcelSheet *ptr);
/**
* Get the `name` field from a `ExcelSheet`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_excel_sheet_name(const KREUZBERGExcelSheet *ptr);
/**
* Get the `markdown` field from a `ExcelSheet`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_excel_sheet_markdown(const KREUZBERGExcelSheet *ptr);
/**
* Get the `row_count` field from a `ExcelSheet`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_excel_sheet_row_count(const KREUZBERGExcelSheet *ptr);
/**
* Get the `col_count` field from a `ExcelSheet`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_excel_sheet_col_count(const KREUZBERGExcelSheet *ptr);
/**
* Get the `cell_count` field from a `ExcelSheet`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_excel_sheet_cell_count(const KREUZBERGExcelSheet *ptr);
/**
* Get the `table_cells` field from a `ExcelSheet`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_excel_sheet_table_cells(const KREUZBERGExcelSheet *ptr);
/**
* Create a `XmlExtractionResult` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_xml_extraction_result_free`.
*/
KREUZBERGXmlExtractionResult *kreuzberg_xml_extraction_result_from_json(const char *json);
/**
* Serialize a `XmlExtractionResult` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_xml_extraction_result_to_json(const KREUZBERGXmlExtractionResult *ptr);
/**
* Free a `XmlExtractionResult` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_xml_extraction_result_free(KREUZBERGXmlExtractionResult *ptr);
/**
* Get the `content` field from a `XmlExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_xml_extraction_result_content(const KREUZBERGXmlExtractionResult *ptr);
/**
* Get the `element_count` field from a `XmlExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_xml_extraction_result_element_count(const KREUZBERGXmlExtractionResult *ptr);
/**
* Get the `unique_elements` field from a `XmlExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_xml_extraction_result_unique_elements(const KREUZBERGXmlExtractionResult *ptr);
/**
* Create a `TextExtractionResult` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_text_extraction_result_free`.
*/
KREUZBERGTextExtractionResult *kreuzberg_text_extraction_result_from_json(const char *json);
/**
* Serialize a `TextExtractionResult` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_text_extraction_result_to_json(const KREUZBERGTextExtractionResult *ptr);
/**
* Free a `TextExtractionResult` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_text_extraction_result_free(KREUZBERGTextExtractionResult *ptr);
/**
* Get the `content` field from a `TextExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_text_extraction_result_content(const KREUZBERGTextExtractionResult *ptr);
/**
* Get the `line_count` field from a `TextExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_text_extraction_result_line_count(const KREUZBERGTextExtractionResult *ptr);
/**
* Get the `word_count` field from a `TextExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_text_extraction_result_word_count(const KREUZBERGTextExtractionResult *ptr);
/**
* Get the `character_count` field from a `TextExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_text_extraction_result_character_count(const KREUZBERGTextExtractionResult *ptr);
/**
* Get the `headers` field from a `TextExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_text_extraction_result_headers(const KREUZBERGTextExtractionResult *ptr);
/**
* Create a `PptxExtractionResult` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_pptx_extraction_result_free`.
*/
KREUZBERGPptxExtractionResult *kreuzberg_pptx_extraction_result_from_json(const char *json);
/**
* Serialize a `PptxExtractionResult` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_pptx_extraction_result_to_json(const KREUZBERGPptxExtractionResult *ptr);
/**
* Free a `PptxExtractionResult` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_pptx_extraction_result_free(KREUZBERGPptxExtractionResult *ptr);
/**
* Get the `content` field from a `PptxExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pptx_extraction_result_content(const KREUZBERGPptxExtractionResult *ptr);
/**
* Get the `metadata` field from a `PptxExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGPptxMetadata *kreuzberg_pptx_extraction_result_metadata(const KREUZBERGPptxExtractionResult *ptr);
/**
* Get the `slide_count` field from a `PptxExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_pptx_extraction_result_slide_count(const KREUZBERGPptxExtractionResult *ptr);
/**
* Get the `image_count` field from a `PptxExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_pptx_extraction_result_image_count(const KREUZBERGPptxExtractionResult *ptr);
/**
* Get the `table_count` field from a `PptxExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_pptx_extraction_result_table_count(const KREUZBERGPptxExtractionResult *ptr);
/**
* Get the `images` field from a `PptxExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pptx_extraction_result_images(const KREUZBERGPptxExtractionResult *ptr);
/**
* Get the `page_structure` field from a `PptxExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGPageStructure *kreuzberg_pptx_extraction_result_page_structure(const KREUZBERGPptxExtractionResult *ptr);
/**
* Get the `page_contents` field from a `PptxExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pptx_extraction_result_page_contents(const KREUZBERGPptxExtractionResult *ptr);
/**
* Get the `document` field from a `PptxExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGDocumentStructure *kreuzberg_pptx_extraction_result_document(const KREUZBERGPptxExtractionResult *ptr);
/**
* Get the `office_metadata` field from a `PptxExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pptx_extraction_result_office_metadata(const KREUZBERGPptxExtractionResult *ptr);
/**
* Get the `revisions` field from a `PptxExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pptx_extraction_result_revisions(const KREUZBERGPptxExtractionResult *ptr);
/**
* Create a `EmailExtractionResult` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_email_extraction_result_free`.
*/
KREUZBERGEmailExtractionResult *kreuzberg_email_extraction_result_from_json(const char *json);
/**
* Serialize a `EmailExtractionResult` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_email_extraction_result_to_json(const KREUZBERGEmailExtractionResult *ptr);
/**
* Free a `EmailExtractionResult` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_email_extraction_result_free(KREUZBERGEmailExtractionResult *ptr);
/**
* Get the `subject` field from a `EmailExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_extraction_result_subject(const KREUZBERGEmailExtractionResult *ptr);
/**
* Get the `from_email` field from a `EmailExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_extraction_result_from_email(const KREUZBERGEmailExtractionResult *ptr);
/**
* Get the `to_emails` field from a `EmailExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_extraction_result_to_emails(const KREUZBERGEmailExtractionResult *ptr);
/**
* Get the `cc_emails` field from a `EmailExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_extraction_result_cc_emails(const KREUZBERGEmailExtractionResult *ptr);
/**
* Get the `bcc_emails` field from a `EmailExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_extraction_result_bcc_emails(const KREUZBERGEmailExtractionResult *ptr);
/**
* Get the `date` field from a `EmailExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_extraction_result_date(const KREUZBERGEmailExtractionResult *ptr);
/**
* Get the `message_id` field from a `EmailExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_extraction_result_message_id(const KREUZBERGEmailExtractionResult *ptr);
/**
* Get the `plain_text` field from a `EmailExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_extraction_result_plain_text(const KREUZBERGEmailExtractionResult *ptr);
/**
* Get the `html_content` field from a `EmailExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_extraction_result_html_content(const KREUZBERGEmailExtractionResult *ptr);
/**
* Get the `content` field from a `EmailExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_extraction_result_content(const KREUZBERGEmailExtractionResult *ptr);
/**
* Get the `attachments` field from a `EmailExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_extraction_result_attachments(const KREUZBERGEmailExtractionResult *ptr);
/**
* Get the `metadata` field from a `EmailExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_extraction_result_metadata(const KREUZBERGEmailExtractionResult *ptr);
/**
* Create a `EmailAttachment` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_email_attachment_free`.
*/
KREUZBERGEmailAttachment *kreuzberg_email_attachment_from_json(const char *json);
/**
* Serialize a `EmailAttachment` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_email_attachment_to_json(const KREUZBERGEmailAttachment *ptr);
/**
* Free a `EmailAttachment` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_email_attachment_free(KREUZBERGEmailAttachment *ptr);
/**
* Get the `name` field from a `EmailAttachment`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_attachment_name(const KREUZBERGEmailAttachment *ptr);
/**
* Get the `filename` field from a `EmailAttachment`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_attachment_filename(const KREUZBERGEmailAttachment *ptr);
/**
* Get the `mime_type` field from a `EmailAttachment`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_attachment_mime_type(const KREUZBERGEmailAttachment *ptr);
/**
* Get the `size` field from a `EmailAttachment`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_email_attachment_size(const KREUZBERGEmailAttachment *ptr);
/**
* Get the `is_image` field from a `EmailAttachment`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_email_attachment_is_image(const KREUZBERGEmailAttachment *ptr);
/**
* Get the `data` field from a `EmailAttachment`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint8_t *kreuzberg_email_attachment_data(const KREUZBERGEmailAttachment *ptr,
uintptr_t *out_len);
/**
* Create a `OcrExtractionResult` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_ocr_extraction_result_free`.
*/
KREUZBERGOcrExtractionResult *kreuzberg_ocr_extraction_result_from_json(const char *json);
/**
* Serialize a `OcrExtractionResult` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_extraction_result_to_json(const KREUZBERGOcrExtractionResult *ptr);
/**
* Free a `OcrExtractionResult` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_extraction_result_free(KREUZBERGOcrExtractionResult *ptr);
/**
* Get the `content` field from a `OcrExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_extraction_result_content(const KREUZBERGOcrExtractionResult *ptr);
/**
* Get the `mime_type` field from a `OcrExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_extraction_result_mime_type(const KREUZBERGOcrExtractionResult *ptr);
/**
* Get the `metadata` field from a `OcrExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_extraction_result_metadata(const KREUZBERGOcrExtractionResult *ptr);
/**
* Get the `tables` field from a `OcrExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_extraction_result_tables(const KREUZBERGOcrExtractionResult *ptr);
/**
* Get the `ocr_elements` field from a `OcrExtractionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_extraction_result_ocr_elements(const KREUZBERGOcrExtractionResult *ptr);
/**
* Create a `OcrTable` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_ocr_table_free`.
*/
KREUZBERGOcrTable *kreuzberg_ocr_table_from_json(const char *json);
/**
* Serialize a `OcrTable` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_table_to_json(const KREUZBERGOcrTable *ptr);
/**
* Free a `OcrTable` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_table_free(KREUZBERGOcrTable *ptr);
/**
* Get the `cells` field from a `OcrTable`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_table_cells(const KREUZBERGOcrTable *ptr);
/**
* Get the `markdown` field from a `OcrTable`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_table_markdown(const KREUZBERGOcrTable *ptr);
/**
* Get the `page_number` field from a `OcrTable`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_ocr_table_page_number(const KREUZBERGOcrTable *ptr);
/**
* Get the `bounding_box` field from a `OcrTable`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOcrTableBoundingBox *kreuzberg_ocr_table_bounding_box(const KREUZBERGOcrTable *ptr);
/**
* Create a `OcrTableBoundingBox` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_ocr_table_bounding_box_free`.
*/
KREUZBERGOcrTableBoundingBox *kreuzberg_ocr_table_bounding_box_from_json(const char *json);
/**
* Serialize a `OcrTableBoundingBox` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_table_bounding_box_to_json(const KREUZBERGOcrTableBoundingBox *ptr);
/**
* Free a `OcrTableBoundingBox` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_table_bounding_box_free(KREUZBERGOcrTableBoundingBox *ptr);
/**
* Get the `left` field from a `OcrTableBoundingBox`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_ocr_table_bounding_box_left(const KREUZBERGOcrTableBoundingBox *ptr);
/**
* Get the `top` field from a `OcrTableBoundingBox`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_ocr_table_bounding_box_top(const KREUZBERGOcrTableBoundingBox *ptr);
/**
* Get the `right` field from a `OcrTableBoundingBox`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_ocr_table_bounding_box_right(const KREUZBERGOcrTableBoundingBox *ptr);
/**
* Get the `bottom` field from a `OcrTableBoundingBox`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_ocr_table_bounding_box_bottom(const KREUZBERGOcrTableBoundingBox *ptr);
/**
* Create a `ImagePreprocessingConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_image_preprocessing_config_free`.
*/
KREUZBERGImagePreprocessingConfig *kreuzberg_image_preprocessing_config_from_json(const char *json);
/**
* Serialize a `ImagePreprocessingConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_image_preprocessing_config_to_json(const KREUZBERGImagePreprocessingConfig *ptr);
/**
* Free a `ImagePreprocessingConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_image_preprocessing_config_free(KREUZBERGImagePreprocessingConfig *ptr);
/**
* Get the `target_dpi` field from a `ImagePreprocessingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_preprocessing_config_target_dpi(const KREUZBERGImagePreprocessingConfig *ptr);
/**
* Get the `auto_rotate` field from a `ImagePreprocessingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_preprocessing_config_auto_rotate(const KREUZBERGImagePreprocessingConfig *ptr);
/**
* Get the `deskew` field from a `ImagePreprocessingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_preprocessing_config_deskew(const KREUZBERGImagePreprocessingConfig *ptr);
/**
* Get the `denoise` field from a `ImagePreprocessingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_preprocessing_config_denoise(const KREUZBERGImagePreprocessingConfig *ptr);
/**
* Get the `contrast_enhance` field from a `ImagePreprocessingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_preprocessing_config_contrast_enhance(const KREUZBERGImagePreprocessingConfig *ptr);
/**
* Get the `binarization_method` field from a `ImagePreprocessingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_image_preprocessing_config_binarization_method(const KREUZBERGImagePreprocessingConfig *ptr);
/**
* Get the `invert_colors` field from a `ImagePreprocessingConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_preprocessing_config_invert_colors(const KREUZBERGImagePreprocessingConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGImagePreprocessingConfig *kreuzberg_image_preprocessing_config_default(void);
/**
* Create a `TesseractConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_tesseract_config_free`.
*/
KREUZBERGTesseractConfig *kreuzberg_tesseract_config_from_json(const char *json);
/**
* Serialize a `TesseractConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_tesseract_config_to_json(const KREUZBERGTesseractConfig *ptr);
/**
* Free a `TesseractConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_tesseract_config_free(KREUZBERGTesseractConfig *ptr);
/**
* Get the `language` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_tesseract_config_language(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `psm` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tesseract_config_psm(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `output_format` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_tesseract_config_output_format(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `oem` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tesseract_config_oem(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `min_confidence` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_tesseract_config_min_confidence(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `preprocessing` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGImagePreprocessingConfig *kreuzberg_tesseract_config_preprocessing(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `enable_table_detection` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tesseract_config_enable_table_detection(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `table_min_confidence` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_tesseract_config_table_min_confidence(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `table_column_threshold` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tesseract_config_table_column_threshold(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `table_row_threshold_ratio` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_tesseract_config_table_row_threshold_ratio(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `use_cache` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tesseract_config_use_cache(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `classify_use_pre_adapted_templates` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tesseract_config_classify_use_pre_adapted_templates(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `language_model_ngram_on` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tesseract_config_language_model_ngram_on(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `tessedit_dont_blkrej_good_wds` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tesseract_config_tessedit_dont_blkrej_good_wds(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `tessedit_dont_rowrej_good_wds` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tesseract_config_tessedit_dont_rowrej_good_wds(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `tessedit_enable_dict_correction` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tesseract_config_tessedit_enable_dict_correction(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `tessedit_char_whitelist` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_tesseract_config_tessedit_char_whitelist(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `tessedit_char_blacklist` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_tesseract_config_tessedit_char_blacklist(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `tessedit_use_primary_params_model` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tesseract_config_tessedit_use_primary_params_model(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `textord_space_size_is_variable` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tesseract_config_textord_space_size_is_variable(const KREUZBERGTesseractConfig *ptr);
/**
* Get the `thresholding_method` field from a `TesseractConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_tesseract_config_thresholding_method(const KREUZBERGTesseractConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGTesseractConfig *kreuzberg_tesseract_config_default(void);
/**
* Create a `ImagePreprocessingMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_image_preprocessing_metadata_free`.
*/
KREUZBERGImagePreprocessingMetadata *kreuzberg_image_preprocessing_metadata_from_json(const char *json);
/**
* Serialize a `ImagePreprocessingMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_image_preprocessing_metadata_to_json(const KREUZBERGImagePreprocessingMetadata *ptr);
/**
* Free a `ImagePreprocessingMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_image_preprocessing_metadata_free(KREUZBERGImagePreprocessingMetadata *ptr);
/**
* Get the `target_dpi` field from a `ImagePreprocessingMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_preprocessing_metadata_target_dpi(const KREUZBERGImagePreprocessingMetadata *ptr);
/**
* Get the `scale_factor` field from a `ImagePreprocessingMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_image_preprocessing_metadata_scale_factor(const KREUZBERGImagePreprocessingMetadata *ptr);
/**
* Get the `auto_adjusted` field from a `ImagePreprocessingMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_preprocessing_metadata_auto_adjusted(const KREUZBERGImagePreprocessingMetadata *ptr);
/**
* Get the `final_dpi` field from a `ImagePreprocessingMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_preprocessing_metadata_final_dpi(const KREUZBERGImagePreprocessingMetadata *ptr);
/**
* Get the `resample_method` field from a `ImagePreprocessingMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_image_preprocessing_metadata_resample_method(const KREUZBERGImagePreprocessingMetadata *ptr);
/**
* Get the `dimension_clamped` field from a `ImagePreprocessingMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_preprocessing_metadata_dimension_clamped(const KREUZBERGImagePreprocessingMetadata *ptr);
/**
* Get the `calculated_dpi` field from a `ImagePreprocessingMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_preprocessing_metadata_calculated_dpi(const KREUZBERGImagePreprocessingMetadata *ptr);
/**
* Get the `skipped_resize` field from a `ImagePreprocessingMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_image_preprocessing_metadata_skipped_resize(const KREUZBERGImagePreprocessingMetadata *ptr);
/**
* Get the `resize_error` field from a `ImagePreprocessingMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_image_preprocessing_metadata_resize_error(const KREUZBERGImagePreprocessingMetadata *ptr);
/**
* Create a `Metadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_metadata_free`.
*/
KREUZBERGMetadata *kreuzberg_metadata_from_json(const char *json);
/**
* Serialize a `Metadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_metadata_to_json(const KREUZBERGMetadata *ptr);
/**
* Free a `Metadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_metadata_free(KREUZBERGMetadata *ptr);
/**
* Get the `title` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_title(const KREUZBERGMetadata *ptr);
/**
* Get the `subject` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_subject(const KREUZBERGMetadata *ptr);
/**
* Get the `authors` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_authors(const KREUZBERGMetadata *ptr);
/**
* Get the `keywords` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_keywords(const KREUZBERGMetadata *ptr);
/**
* Get the `language` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_language(const KREUZBERGMetadata *ptr);
/**
* Get the `created_at` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_created_at(const KREUZBERGMetadata *ptr);
/**
* Get the `modified_at` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_modified_at(const KREUZBERGMetadata *ptr);
/**
* Get the `created_by` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_created_by(const KREUZBERGMetadata *ptr);
/**
* Get the `modified_by` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_modified_by(const KREUZBERGMetadata *ptr);
/**
* Get the `pages` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGPageStructure *kreuzberg_metadata_pages(const KREUZBERGMetadata *ptr);
/**
* Get the `format` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGFormatMetadata *kreuzberg_metadata_format(const KREUZBERGMetadata *ptr);
/**
* Get the `image_preprocessing` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGImagePreprocessingMetadata *kreuzberg_metadata_image_preprocessing(const KREUZBERGMetadata *ptr);
/**
* Get the `json_schema` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_json_schema(const KREUZBERGMetadata *ptr);
/**
* Get the `error` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGErrorMetadata *kreuzberg_metadata_error(const KREUZBERGMetadata *ptr);
/**
* Get the `extraction_duration_ms` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint64_t kreuzberg_metadata_extraction_duration_ms(const KREUZBERGMetadata *ptr);
/**
* Get the `category` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_category(const KREUZBERGMetadata *ptr);
/**
* Get the `tags` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_tags(const KREUZBERGMetadata *ptr);
/**
* Get the `document_version` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_document_version(const KREUZBERGMetadata *ptr);
/**
* Get the `abstract_text` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_abstract_text(const KREUZBERGMetadata *ptr);
/**
* Get the `output_format` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_output_format(const KREUZBERGMetadata *ptr);
/**
* Get the `ocr_used` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_metadata_ocr_used(const KREUZBERGMetadata *ptr);
/**
* Get the `additional` field from a `Metadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_metadata_additional(const KREUZBERGMetadata *ptr);
/**
* Returns `true` when no metadata fields, format-specific metadata, or
* additional postprocessor fields are populated.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
int32_t kreuzberg_metadata_is_empty(const KREUZBERGMetadata *this_);
/**
* Create a `ExcelMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_excel_metadata_free`.
*/
KREUZBERGExcelMetadata *kreuzberg_excel_metadata_from_json(const char *json);
/**
* Serialize a `ExcelMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_excel_metadata_to_json(const KREUZBERGExcelMetadata *ptr);
/**
* Free a `ExcelMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_excel_metadata_free(KREUZBERGExcelMetadata *ptr);
/**
* Get the `sheet_count` field from a `ExcelMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_excel_metadata_sheet_count(const KREUZBERGExcelMetadata *ptr);
/**
* Get the `sheet_names` field from a `ExcelMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_excel_metadata_sheet_names(const KREUZBERGExcelMetadata *ptr);
/**
* Create a `EmailMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_email_metadata_free`.
*/
KREUZBERGEmailMetadata *kreuzberg_email_metadata_from_json(const char *json);
/**
* Serialize a `EmailMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_email_metadata_to_json(const KREUZBERGEmailMetadata *ptr);
/**
* Free a `EmailMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_email_metadata_free(KREUZBERGEmailMetadata *ptr);
/**
* Get the `from_email` field from a `EmailMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_metadata_from_email(const KREUZBERGEmailMetadata *ptr);
/**
* Get the `from_name` field from a `EmailMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_metadata_from_name(const KREUZBERGEmailMetadata *ptr);
/**
* Get the `to_emails` field from a `EmailMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_metadata_to_emails(const KREUZBERGEmailMetadata *ptr);
/**
* Get the `cc_emails` field from a `EmailMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_metadata_cc_emails(const KREUZBERGEmailMetadata *ptr);
/**
* Get the `bcc_emails` field from a `EmailMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_metadata_bcc_emails(const KREUZBERGEmailMetadata *ptr);
/**
* Get the `message_id` field from a `EmailMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_metadata_message_id(const KREUZBERGEmailMetadata *ptr);
/**
* Get the `attachments` field from a `EmailMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_email_metadata_attachments(const KREUZBERGEmailMetadata *ptr);
/**
* Create a `ArchiveMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_archive_metadata_free`.
*/
KREUZBERGArchiveMetadata *kreuzberg_archive_metadata_from_json(const char *json);
/**
* Serialize a `ArchiveMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_archive_metadata_to_json(const KREUZBERGArchiveMetadata *ptr);
/**
* Free a `ArchiveMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_archive_metadata_free(KREUZBERGArchiveMetadata *ptr);
/**
* Get the `format` field from a `ArchiveMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_archive_metadata_format(const KREUZBERGArchiveMetadata *ptr);
/**
* Get the `file_count` field from a `ArchiveMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_archive_metadata_file_count(const KREUZBERGArchiveMetadata *ptr);
/**
* Get the `file_list` field from a `ArchiveMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_archive_metadata_file_list(const KREUZBERGArchiveMetadata *ptr);
/**
* Get the `total_size` field from a `ArchiveMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint64_t kreuzberg_archive_metadata_total_size(const KREUZBERGArchiveMetadata *ptr);
/**
* Get the `compressed_size` field from a `ArchiveMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint64_t kreuzberg_archive_metadata_compressed_size(const KREUZBERGArchiveMetadata *ptr);
/**
* Create a `ImageMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_image_metadata_free`.
*/
KREUZBERGImageMetadata *kreuzberg_image_metadata_from_json(const char *json);
/**
* Serialize a `ImageMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_image_metadata_to_json(const KREUZBERGImageMetadata *ptr);
/**
* Free a `ImageMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_image_metadata_free(KREUZBERGImageMetadata *ptr);
/**
* Get the `width` field from a `ImageMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_image_metadata_width(const KREUZBERGImageMetadata *ptr);
/**
* Get the `height` field from a `ImageMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_image_metadata_height(const KREUZBERGImageMetadata *ptr);
/**
* Get the `format` field from a `ImageMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_image_metadata_format(const KREUZBERGImageMetadata *ptr);
/**
* Get the `exif` field from a `ImageMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_image_metadata_exif(const KREUZBERGImageMetadata *ptr);
/**
* Create a `XmlMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_xml_metadata_free`.
*/
KREUZBERGXmlMetadata *kreuzberg_xml_metadata_from_json(const char *json);
/**
* Serialize a `XmlMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_xml_metadata_to_json(const KREUZBERGXmlMetadata *ptr);
/**
* Free a `XmlMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_xml_metadata_free(KREUZBERGXmlMetadata *ptr);
/**
* Get the `element_count` field from a `XmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_xml_metadata_element_count(const KREUZBERGXmlMetadata *ptr);
/**
* Get the `unique_elements` field from a `XmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_xml_metadata_unique_elements(const KREUZBERGXmlMetadata *ptr);
/**
* Create a `TextMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_text_metadata_free`.
*/
KREUZBERGTextMetadata *kreuzberg_text_metadata_from_json(const char *json);
/**
* Serialize a `TextMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_text_metadata_to_json(const KREUZBERGTextMetadata *ptr);
/**
* Free a `TextMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_text_metadata_free(KREUZBERGTextMetadata *ptr);
/**
* Get the `line_count` field from a `TextMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_text_metadata_line_count(const KREUZBERGTextMetadata *ptr);
/**
* Get the `word_count` field from a `TextMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_text_metadata_word_count(const KREUZBERGTextMetadata *ptr);
/**
* Get the `character_count` field from a `TextMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_text_metadata_character_count(const KREUZBERGTextMetadata *ptr);
/**
* Get the `headers` field from a `TextMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_text_metadata_headers(const KREUZBERGTextMetadata *ptr);
/**
* Create a `HeaderMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_header_metadata_free`.
*/
KREUZBERGHeaderMetadata *kreuzberg_header_metadata_from_json(const char *json);
/**
* Serialize a `HeaderMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_header_metadata_to_json(const KREUZBERGHeaderMetadata *ptr);
/**
* Free a `HeaderMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_header_metadata_free(KREUZBERGHeaderMetadata *ptr);
/**
* Get the `level` field from a `HeaderMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint8_t kreuzberg_header_metadata_level(const KREUZBERGHeaderMetadata *ptr);
/**
* Get the `text` field from a `HeaderMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_header_metadata_text(const KREUZBERGHeaderMetadata *ptr);
/**
* Get the `id` field from a `HeaderMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_header_metadata_id(const KREUZBERGHeaderMetadata *ptr);
/**
* Get the `depth` field from a `HeaderMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_header_metadata_depth(const KREUZBERGHeaderMetadata *ptr);
/**
* Get the `html_offset` field from a `HeaderMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_header_metadata_html_offset(const KREUZBERGHeaderMetadata *ptr);
/**
* Create a `LinkMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_link_metadata_free`.
*/
KREUZBERGLinkMetadata *kreuzberg_link_metadata_from_json(const char *json);
/**
* Serialize a `LinkMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_link_metadata_to_json(const KREUZBERGLinkMetadata *ptr);
/**
* Free a `LinkMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_link_metadata_free(KREUZBERGLinkMetadata *ptr);
/**
* Get the `href` field from a `LinkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_link_metadata_href(const KREUZBERGLinkMetadata *ptr);
/**
* Get the `text` field from a `LinkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_link_metadata_text(const KREUZBERGLinkMetadata *ptr);
/**
* Get the `title` field from a `LinkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_link_metadata_title(const KREUZBERGLinkMetadata *ptr);
/**
* Get the `link_type` field from a `LinkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGLinkType *kreuzberg_link_metadata_link_type(const KREUZBERGLinkMetadata *ptr);
/**
* Get the `rel` field from a `LinkMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_link_metadata_rel(const KREUZBERGLinkMetadata *ptr);
/**
* Create a `ImageMetadataType` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_image_metadata_type_free`.
*/
KREUZBERGImageMetadataType *kreuzberg_image_metadata_type_from_json(const char *json);
/**
* Serialize a `ImageMetadataType` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_image_metadata_type_to_json(const KREUZBERGImageMetadataType *ptr);
/**
* Free a `ImageMetadataType` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_image_metadata_type_free(KREUZBERGImageMetadataType *ptr);
/**
* Get the `src` field from a `ImageMetadataType`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_image_metadata_type_src(const KREUZBERGImageMetadataType *ptr);
/**
* Get the `alt` field from a `ImageMetadataType`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_image_metadata_type_alt(const KREUZBERGImageMetadataType *ptr);
/**
* Get the `title` field from a `ImageMetadataType`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_image_metadata_type_title(const KREUZBERGImageMetadataType *ptr);
/**
* Get the `image_type` field from a `ImageMetadataType`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGImageType *kreuzberg_image_metadata_type_image_type(const KREUZBERGImageMetadataType *ptr);
/**
* Create a `StructuredData` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_structured_data_free`.
*/
KREUZBERGStructuredData *kreuzberg_structured_data_from_json(const char *json);
/**
* Serialize a `StructuredData` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_structured_data_to_json(const KREUZBERGStructuredData *ptr);
/**
* Free a `StructuredData` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_structured_data_free(KREUZBERGStructuredData *ptr);
/**
* Get the `data_type` field from a `StructuredData`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGStructuredDataType *kreuzberg_structured_data_data_type(const KREUZBERGStructuredData *ptr);
/**
* Get the `raw_json` field from a `StructuredData`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_structured_data_raw_json(const KREUZBERGStructuredData *ptr);
/**
* Get the `schema_type` field from a `StructuredData`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_structured_data_schema_type(const KREUZBERGStructuredData *ptr);
/**
* Create a `HtmlMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_html_metadata_free`.
*/
KREUZBERGHtmlMetadata *kreuzberg_html_metadata_from_json(const char *json);
/**
* Serialize a `HtmlMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_html_metadata_to_json(const KREUZBERGHtmlMetadata *ptr);
/**
* Free a `HtmlMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_html_metadata_free(KREUZBERGHtmlMetadata *ptr);
/**
* Get the `title` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_title(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `description` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_description(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `keywords` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_keywords(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `author` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_author(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `canonical_url` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_canonical_url(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `base_href` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_base_href(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `language` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_language(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `text_direction` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGTextDirection *kreuzberg_html_metadata_text_direction(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `open_graph` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_open_graph(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `twitter_card` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_twitter_card(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `meta_tags` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_meta_tags(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `headers` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_headers(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `links` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_links(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `images` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_images(const KREUZBERGHtmlMetadata *ptr);
/**
* Get the `structured_data` field from a `HtmlMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_html_metadata_structured_data(const KREUZBERGHtmlMetadata *ptr);
/**
* Create a `OcrMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_ocr_metadata_free`.
*/
KREUZBERGOcrMetadata *kreuzberg_ocr_metadata_from_json(const char *json);
/**
* Serialize a `OcrMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_metadata_to_json(const KREUZBERGOcrMetadata *ptr);
/**
* Free a `OcrMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_metadata_free(KREUZBERGOcrMetadata *ptr);
/**
* Get the `language` field from a `OcrMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_metadata_language(const KREUZBERGOcrMetadata *ptr);
/**
* Get the `psm` field from a `OcrMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_ocr_metadata_psm(const KREUZBERGOcrMetadata *ptr);
/**
* Get the `output_format` field from a `OcrMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_metadata_output_format(const KREUZBERGOcrMetadata *ptr);
/**
* Get the `table_count` field from a `OcrMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_ocr_metadata_table_count(const KREUZBERGOcrMetadata *ptr);
/**
* Get the `table_rows` field from a `OcrMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_ocr_metadata_table_rows(const KREUZBERGOcrMetadata *ptr);
/**
* Get the `table_cols` field from a `OcrMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_ocr_metadata_table_cols(const KREUZBERGOcrMetadata *ptr);
/**
* Create a `ErrorMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_error_metadata_free`.
*/
KREUZBERGErrorMetadata *kreuzberg_error_metadata_from_json(const char *json);
/**
* Serialize a `ErrorMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_error_metadata_to_json(const KREUZBERGErrorMetadata *ptr);
/**
* Free a `ErrorMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_error_metadata_free(KREUZBERGErrorMetadata *ptr);
/**
* Get the `error_type` field from a `ErrorMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_error_metadata_error_type(const KREUZBERGErrorMetadata *ptr);
/**
* Get the `message` field from a `ErrorMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_error_metadata_message(const KREUZBERGErrorMetadata *ptr);
/**
* Create a `PptxMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_pptx_metadata_free`.
*/
KREUZBERGPptxMetadata *kreuzberg_pptx_metadata_from_json(const char *json);
/**
* Serialize a `PptxMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_pptx_metadata_to_json(const KREUZBERGPptxMetadata *ptr);
/**
* Free a `PptxMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_pptx_metadata_free(KREUZBERGPptxMetadata *ptr);
/**
* Get the `slide_count` field from a `PptxMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_pptx_metadata_slide_count(const KREUZBERGPptxMetadata *ptr);
/**
* Get the `slide_names` field from a `PptxMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pptx_metadata_slide_names(const KREUZBERGPptxMetadata *ptr);
/**
* Get the `image_count` field from a `PptxMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_pptx_metadata_image_count(const KREUZBERGPptxMetadata *ptr);
/**
* Get the `table_count` field from a `PptxMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_pptx_metadata_table_count(const KREUZBERGPptxMetadata *ptr);
/**
* Create a `DocxMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_docx_metadata_free`.
*/
KREUZBERGDocxMetadata *kreuzberg_docx_metadata_from_json(const char *json);
/**
* Serialize a `DocxMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_docx_metadata_to_json(const KREUZBERGDocxMetadata *ptr);
/**
* Free a `DocxMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_docx_metadata_free(KREUZBERGDocxMetadata *ptr);
/**
* Get the `core_properties` field from a `DocxMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGCoreProperties *kreuzberg_docx_metadata_core_properties(const KREUZBERGDocxMetadata *ptr);
/**
* Get the `app_properties` field from a `DocxMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGDocxAppProperties *kreuzberg_docx_metadata_app_properties(const KREUZBERGDocxMetadata *ptr);
/**
* Get the `custom_properties` field from a `DocxMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_docx_metadata_custom_properties(const KREUZBERGDocxMetadata *ptr);
/**
* Create a `CsvMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_csv_metadata_free`.
*/
KREUZBERGCsvMetadata *kreuzberg_csv_metadata_from_json(const char *json);
/**
* Serialize a `CsvMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_csv_metadata_to_json(const KREUZBERGCsvMetadata *ptr);
/**
* Free a `CsvMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_csv_metadata_free(KREUZBERGCsvMetadata *ptr);
/**
* Get the `row_count` field from a `CsvMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_csv_metadata_row_count(const KREUZBERGCsvMetadata *ptr);
/**
* Get the `column_count` field from a `CsvMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_csv_metadata_column_count(const KREUZBERGCsvMetadata *ptr);
/**
* Get the `delimiter` field from a `CsvMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_csv_metadata_delimiter(const KREUZBERGCsvMetadata *ptr);
/**
* Get the `has_header` field from a `CsvMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_csv_metadata_has_header(const KREUZBERGCsvMetadata *ptr);
/**
* Get the `column_types` field from a `CsvMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_csv_metadata_column_types(const KREUZBERGCsvMetadata *ptr);
/**
* Create a `BibtexMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_bibtex_metadata_free`.
*/
KREUZBERGBibtexMetadata *kreuzberg_bibtex_metadata_from_json(const char *json);
/**
* Serialize a `BibtexMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_bibtex_metadata_to_json(const KREUZBERGBibtexMetadata *ptr);
/**
* Free a `BibtexMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_bibtex_metadata_free(KREUZBERGBibtexMetadata *ptr);
/**
* Get the `entry_count` field from a `BibtexMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_bibtex_metadata_entry_count(const KREUZBERGBibtexMetadata *ptr);
/**
* Get the `citation_keys` field from a `BibtexMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_bibtex_metadata_citation_keys(const KREUZBERGBibtexMetadata *ptr);
/**
* Get the `authors` field from a `BibtexMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_bibtex_metadata_authors(const KREUZBERGBibtexMetadata *ptr);
/**
* Get the `year_range` field from a `BibtexMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGYearRange *kreuzberg_bibtex_metadata_year_range(const KREUZBERGBibtexMetadata *ptr);
/**
* Get the `entry_types` field from a `BibtexMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_bibtex_metadata_entry_types(const KREUZBERGBibtexMetadata *ptr);
/**
* Create a `CitationMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_citation_metadata_free`.
*/
KREUZBERGCitationMetadata *kreuzberg_citation_metadata_from_json(const char *json);
/**
* Serialize a `CitationMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_citation_metadata_to_json(const KREUZBERGCitationMetadata *ptr);
/**
* Free a `CitationMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_citation_metadata_free(KREUZBERGCitationMetadata *ptr);
/**
* Get the `citation_count` field from a `CitationMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_citation_metadata_citation_count(const KREUZBERGCitationMetadata *ptr);
/**
* Get the `format` field from a `CitationMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_citation_metadata_format(const KREUZBERGCitationMetadata *ptr);
/**
* Get the `authors` field from a `CitationMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_citation_metadata_authors(const KREUZBERGCitationMetadata *ptr);
/**
* Get the `year_range` field from a `CitationMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGYearRange *kreuzberg_citation_metadata_year_range(const KREUZBERGCitationMetadata *ptr);
/**
* Get the `dois` field from a `CitationMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_citation_metadata_dois(const KREUZBERGCitationMetadata *ptr);
/**
* Get the `keywords` field from a `CitationMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_citation_metadata_keywords(const KREUZBERGCitationMetadata *ptr);
/**
* Create a `YearRange` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_year_range_free`.
*/
KREUZBERGYearRange *kreuzberg_year_range_from_json(const char *json);
/**
* Serialize a `YearRange` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_year_range_to_json(const KREUZBERGYearRange *ptr);
/**
* Free a `YearRange` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_year_range_free(KREUZBERGYearRange *ptr);
/**
* Get the `min` field from a `YearRange`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_year_range_min(const KREUZBERGYearRange *ptr);
/**
* Get the `max` field from a `YearRange`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_year_range_max(const KREUZBERGYearRange *ptr);
/**
* Get the `years` field from a `YearRange`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_year_range_years(const KREUZBERGYearRange *ptr);
/**
* Create a `FictionBookMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_fiction_book_metadata_free`.
*/
KREUZBERGFictionBookMetadata *kreuzberg_fiction_book_metadata_from_json(const char *json);
/**
* Serialize a `FictionBookMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_fiction_book_metadata_to_json(const KREUZBERGFictionBookMetadata *ptr);
/**
* Free a `FictionBookMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_fiction_book_metadata_free(KREUZBERGFictionBookMetadata *ptr);
/**
* Get the `genres` field from a `FictionBookMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_fiction_book_metadata_genres(const KREUZBERGFictionBookMetadata *ptr);
/**
* Get the `sequences` field from a `FictionBookMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_fiction_book_metadata_sequences(const KREUZBERGFictionBookMetadata *ptr);
/**
* Get the `annotation` field from a `FictionBookMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_fiction_book_metadata_annotation(const KREUZBERGFictionBookMetadata *ptr);
/**
* Create a `DbfMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_dbf_metadata_free`.
*/
KREUZBERGDbfMetadata *kreuzberg_dbf_metadata_from_json(const char *json);
/**
* Serialize a `DbfMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_dbf_metadata_to_json(const KREUZBERGDbfMetadata *ptr);
/**
* Free a `DbfMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_dbf_metadata_free(KREUZBERGDbfMetadata *ptr);
/**
* Get the `record_count` field from a `DbfMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_dbf_metadata_record_count(const KREUZBERGDbfMetadata *ptr);
/**
* Get the `field_count` field from a `DbfMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_dbf_metadata_field_count(const KREUZBERGDbfMetadata *ptr);
/**
* Get the `fields` field from a `DbfMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_dbf_metadata_fields(const KREUZBERGDbfMetadata *ptr);
/**
* Create a `DbfFieldInfo` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_dbf_field_info_free`.
*/
KREUZBERGDbfFieldInfo *kreuzberg_dbf_field_info_from_json(const char *json);
/**
* Serialize a `DbfFieldInfo` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_dbf_field_info_to_json(const KREUZBERGDbfFieldInfo *ptr);
/**
* Free a `DbfFieldInfo` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_dbf_field_info_free(KREUZBERGDbfFieldInfo *ptr);
/**
* Get the `name` field from a `DbfFieldInfo`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_dbf_field_info_name(const KREUZBERGDbfFieldInfo *ptr);
/**
* Get the `field_type` field from a `DbfFieldInfo`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_dbf_field_info_field_type(const KREUZBERGDbfFieldInfo *ptr);
/**
* Create a `JatsMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_jats_metadata_free`.
*/
KREUZBERGJatsMetadata *kreuzberg_jats_metadata_from_json(const char *json);
/**
* Serialize a `JatsMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_jats_metadata_to_json(const KREUZBERGJatsMetadata *ptr);
/**
* Free a `JatsMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_jats_metadata_free(KREUZBERGJatsMetadata *ptr);
/**
* Get the `copyright` field from a `JatsMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_jats_metadata_copyright(const KREUZBERGJatsMetadata *ptr);
/**
* Get the `license` field from a `JatsMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_jats_metadata_license(const KREUZBERGJatsMetadata *ptr);
/**
* Get the `history_dates` field from a `JatsMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_jats_metadata_history_dates(const KREUZBERGJatsMetadata *ptr);
/**
* Get the `contributor_roles` field from a `JatsMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_jats_metadata_contributor_roles(const KREUZBERGJatsMetadata *ptr);
/**
* Create a `ContributorRole` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_contributor_role_free`.
*/
KREUZBERGContributorRole *kreuzberg_contributor_role_from_json(const char *json);
/**
* Serialize a `ContributorRole` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_contributor_role_to_json(const KREUZBERGContributorRole *ptr);
/**
* Free a `ContributorRole` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_contributor_role_free(KREUZBERGContributorRole *ptr);
/**
* Get the `name` field from a `ContributorRole`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_contributor_role_name(const KREUZBERGContributorRole *ptr);
/**
* Get the `role` field from a `ContributorRole`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_contributor_role_role(const KREUZBERGContributorRole *ptr);
/**
* Create a `EpubMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_epub_metadata_free`.
*/
KREUZBERGEpubMetadata *kreuzberg_epub_metadata_from_json(const char *json);
/**
* Serialize a `EpubMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_epub_metadata_to_json(const KREUZBERGEpubMetadata *ptr);
/**
* Free a `EpubMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_epub_metadata_free(KREUZBERGEpubMetadata *ptr);
/**
* Get the `coverage` field from a `EpubMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_epub_metadata_coverage(const KREUZBERGEpubMetadata *ptr);
/**
* Get the `dc_format` field from a `EpubMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_epub_metadata_dc_format(const KREUZBERGEpubMetadata *ptr);
/**
* Get the `relation` field from a `EpubMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_epub_metadata_relation(const KREUZBERGEpubMetadata *ptr);
/**
* Get the `source` field from a `EpubMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_epub_metadata_source(const KREUZBERGEpubMetadata *ptr);
/**
* Get the `dc_type` field from a `EpubMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_epub_metadata_dc_type(const KREUZBERGEpubMetadata *ptr);
/**
* Get the `cover_image` field from a `EpubMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_epub_metadata_cover_image(const KREUZBERGEpubMetadata *ptr);
/**
* Create a `PstMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_pst_metadata_free`.
*/
KREUZBERGPstMetadata *kreuzberg_pst_metadata_from_json(const char *json);
/**
* Serialize a `PstMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_pst_metadata_to_json(const KREUZBERGPstMetadata *ptr);
/**
* Free a `PstMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_pst_metadata_free(KREUZBERGPstMetadata *ptr);
/**
* Get the `message_count` field from a `PstMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_pst_metadata_message_count(const KREUZBERGPstMetadata *ptr);
/**
* Create a `OcrConfidence` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_ocr_confidence_free`.
*/
KREUZBERGOcrConfidence *kreuzberg_ocr_confidence_from_json(const char *json);
/**
* Serialize a `OcrConfidence` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_confidence_to_json(const KREUZBERGOcrConfidence *ptr);
/**
* Free a `OcrConfidence` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_confidence_free(KREUZBERGOcrConfidence *ptr);
/**
* Get the `detection` field from a `OcrConfidence`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_ocr_confidence_detection(const KREUZBERGOcrConfidence *ptr);
/**
* Get the `recognition` field from a `OcrConfidence`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_ocr_confidence_recognition(const KREUZBERGOcrConfidence *ptr);
/**
* Create a `OcrRotation` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_ocr_rotation_free`.
*/
KREUZBERGOcrRotation *kreuzberg_ocr_rotation_from_json(const char *json);
/**
* Serialize a `OcrRotation` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_rotation_to_json(const KREUZBERGOcrRotation *ptr);
/**
* Free a `OcrRotation` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_rotation_free(KREUZBERGOcrRotation *ptr);
/**
* Get the `angle_degrees` field from a `OcrRotation`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_ocr_rotation_angle_degrees(const KREUZBERGOcrRotation *ptr);
/**
* Get the `confidence` field from a `OcrRotation`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_ocr_rotation_confidence(const KREUZBERGOcrRotation *ptr);
/**
* Create a `OcrElement` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_ocr_element_free`.
*/
KREUZBERGOcrElement *kreuzberg_ocr_element_from_json(const char *json);
/**
* Serialize a `OcrElement` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_element_to_json(const KREUZBERGOcrElement *ptr);
/**
* Free a `OcrElement` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_element_free(KREUZBERGOcrElement *ptr);
/**
* Get the `text` field from a `OcrElement`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_element_text(const KREUZBERGOcrElement *ptr);
/**
* Get the `geometry` field from a `OcrElement`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOcrBoundingGeometry *kreuzberg_ocr_element_geometry(const KREUZBERGOcrElement *ptr);
/**
* Get the `confidence` field from a `OcrElement`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOcrConfidence *kreuzberg_ocr_element_confidence(const KREUZBERGOcrElement *ptr);
/**
* Get the `level` field from a `OcrElement`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOcrElementLevel *kreuzberg_ocr_element_level(const KREUZBERGOcrElement *ptr);
/**
* Get the `rotation` field from a `OcrElement`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOcrRotation *kreuzberg_ocr_element_rotation(const KREUZBERGOcrElement *ptr);
/**
* Get the `page_number` field from a `OcrElement`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_ocr_element_page_number(const KREUZBERGOcrElement *ptr);
/**
* Get the `parent_id` field from a `OcrElement`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_element_parent_id(const KREUZBERGOcrElement *ptr);
/**
* Get the `backend_metadata` field from a `OcrElement`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_ocr_element_backend_metadata(const KREUZBERGOcrElement *ptr);
/**
* Create a `OcrElementConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_ocr_element_config_free`.
*/
KREUZBERGOcrElementConfig *kreuzberg_ocr_element_config_from_json(const char *json);
/**
* Serialize a `OcrElementConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_element_config_to_json(const KREUZBERGOcrElementConfig *ptr);
/**
* Free a `OcrElementConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_element_config_free(KREUZBERGOcrElementConfig *ptr);
/**
* Get the `include_elements` field from a `OcrElementConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_ocr_element_config_include_elements(const KREUZBERGOcrElementConfig *ptr);
/**
* Get the `min_level` field from a `OcrElementConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGOcrElementLevel *kreuzberg_ocr_element_config_min_level(const KREUZBERGOcrElementConfig *ptr);
/**
* Get the `min_confidence` field from a `OcrElementConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_ocr_element_config_min_confidence(const KREUZBERGOcrElementConfig *ptr);
/**
* Get the `build_hierarchy` field from a `OcrElementConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_ocr_element_config_build_hierarchy(const KREUZBERGOcrElementConfig *ptr);
/**
* Create a `PageStructure` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_page_structure_free`.
*/
KREUZBERGPageStructure *kreuzberg_page_structure_from_json(const char *json);
/**
* Serialize a `PageStructure` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_page_structure_to_json(const KREUZBERGPageStructure *ptr);
/**
* Free a `PageStructure` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_page_structure_free(KREUZBERGPageStructure *ptr);
/**
* Get the `total_count` field from a `PageStructure`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_page_structure_total_count(const KREUZBERGPageStructure *ptr);
/**
* Get the `unit_type` field from a `PageStructure`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGPageUnitType *kreuzberg_page_structure_unit_type(const KREUZBERGPageStructure *ptr);
/**
* Get the `boundaries` field from a `PageStructure`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_page_structure_boundaries(const KREUZBERGPageStructure *ptr);
/**
* Get the `pages` field from a `PageStructure`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_page_structure_pages(const KREUZBERGPageStructure *ptr);
/**
* Create a `PageBoundary` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_page_boundary_free`.
*/
KREUZBERGPageBoundary *kreuzberg_page_boundary_from_json(const char *json);
/**
* Serialize a `PageBoundary` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_page_boundary_to_json(const KREUZBERGPageBoundary *ptr);
/**
* Free a `PageBoundary` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_page_boundary_free(KREUZBERGPageBoundary *ptr);
/**
* Get the `byte_start` field from a `PageBoundary`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_page_boundary_byte_start(const KREUZBERGPageBoundary *ptr);
/**
* Get the `byte_end` field from a `PageBoundary`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_page_boundary_byte_end(const KREUZBERGPageBoundary *ptr);
/**
* Get the `page_number` field from a `PageBoundary`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_page_boundary_page_number(const KREUZBERGPageBoundary *ptr);
/**
* Create a `PageInfo` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_page_info_free`.
*/
KREUZBERGPageInfo *kreuzberg_page_info_from_json(const char *json);
/**
* Serialize a `PageInfo` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_page_info_to_json(const KREUZBERGPageInfo *ptr);
/**
* Free a `PageInfo` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_page_info_free(KREUZBERGPageInfo *ptr);
/**
* Get the `number` field from a `PageInfo`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_page_info_number(const KREUZBERGPageInfo *ptr);
/**
* Get the `title` field from a `PageInfo`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_page_info_title(const KREUZBERGPageInfo *ptr);
/**
* Get the `image_count` field from a `PageInfo`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_page_info_image_count(const KREUZBERGPageInfo *ptr);
/**
* Get the `table_count` field from a `PageInfo`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_page_info_table_count(const KREUZBERGPageInfo *ptr);
/**
* Get the `hidden` field from a `PageInfo`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_page_info_hidden(const KREUZBERGPageInfo *ptr);
/**
* Get the `is_blank` field from a `PageInfo`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_page_info_is_blank(const KREUZBERGPageInfo *ptr);
/**
* Get the `has_vector_graphics` field from a `PageInfo`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_page_info_has_vector_graphics(const KREUZBERGPageInfo *ptr);
/**
* Create a `PageContent` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_page_content_free`.
*/
KREUZBERGPageContent *kreuzberg_page_content_from_json(const char *json);
/**
* Serialize a `PageContent` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_page_content_to_json(const KREUZBERGPageContent *ptr);
/**
* Free a `PageContent` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_page_content_free(KREUZBERGPageContent *ptr);
/**
* Get the `page_number` field from a `PageContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_page_content_page_number(const KREUZBERGPageContent *ptr);
/**
* Get the `content` field from a `PageContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_page_content_content(const KREUZBERGPageContent *ptr);
/**
* Get the `tables` field from a `PageContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_page_content_tables(const KREUZBERGPageContent *ptr);
/**
* Get the `image_indices` field from a `PageContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_page_content_image_indices(const KREUZBERGPageContent *ptr);
/**
* Get the `hierarchy` field from a `PageContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGPageHierarchy *kreuzberg_page_content_hierarchy(const KREUZBERGPageContent *ptr);
/**
* Get the `is_blank` field from a `PageContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_page_content_is_blank(const KREUZBERGPageContent *ptr);
/**
* Get the `layout_regions` field from a `PageContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_page_content_layout_regions(const KREUZBERGPageContent *ptr);
/**
* Get the `speaker_notes` field from a `PageContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_page_content_speaker_notes(const KREUZBERGPageContent *ptr);
/**
* Get the `section_name` field from a `PageContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_page_content_section_name(const KREUZBERGPageContent *ptr);
/**
* Get the `sheet_name` field from a `PageContent`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_page_content_sheet_name(const KREUZBERGPageContent *ptr);
/**
* Create a `LayoutRegion` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_layout_region_free`.
*/
KREUZBERGLayoutRegion *kreuzberg_layout_region_from_json(const char *json);
/**
* Serialize a `LayoutRegion` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_layout_region_to_json(const KREUZBERGLayoutRegion *ptr);
/**
* Free a `LayoutRegion` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_layout_region_free(KREUZBERGLayoutRegion *ptr);
/**
* Get the `class_name` field from a `LayoutRegion`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_layout_region_class_name(const KREUZBERGLayoutRegion *ptr);
/**
* Get the `confidence` field from a `LayoutRegion`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_layout_region_confidence(const KREUZBERGLayoutRegion *ptr);
/**
* Get the `bounding_box` field from a `LayoutRegion`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGBoundingBox *kreuzberg_layout_region_bounding_box(const KREUZBERGLayoutRegion *ptr);
/**
* Get the `area_fraction` field from a `LayoutRegion`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
double kreuzberg_layout_region_area_fraction(const KREUZBERGLayoutRegion *ptr);
/**
* Create a `PageHierarchy` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_page_hierarchy_free`.
*/
KREUZBERGPageHierarchy *kreuzberg_page_hierarchy_from_json(const char *json);
/**
* Serialize a `PageHierarchy` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_page_hierarchy_to_json(const KREUZBERGPageHierarchy *ptr);
/**
* Free a `PageHierarchy` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_page_hierarchy_free(KREUZBERGPageHierarchy *ptr);
/**
* Get the `block_count` field from a `PageHierarchy`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_page_hierarchy_block_count(const KREUZBERGPageHierarchy *ptr);
/**
* Get the `blocks` field from a `PageHierarchy`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_page_hierarchy_blocks(const KREUZBERGPageHierarchy *ptr);
/**
* Create a `HierarchicalBlock` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_hierarchical_block_free`.
*/
KREUZBERGHierarchicalBlock *kreuzberg_hierarchical_block_from_json(const char *json);
/**
* Serialize a `HierarchicalBlock` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_hierarchical_block_to_json(const KREUZBERGHierarchicalBlock *ptr);
/**
* Free a `HierarchicalBlock` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_hierarchical_block_free(KREUZBERGHierarchicalBlock *ptr);
/**
* Get the `text` field from a `HierarchicalBlock`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_hierarchical_block_text(const KREUZBERGHierarchicalBlock *ptr);
/**
* Get the `font_size` field from a `HierarchicalBlock`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_hierarchical_block_font_size(const KREUZBERGHierarchicalBlock *ptr);
/**
* Get the `level` field from a `HierarchicalBlock`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_hierarchical_block_level(const KREUZBERGHierarchicalBlock *ptr);
/**
* Create a `CellChange` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_cell_change_free`.
*/
KREUZBERGCellChange *kreuzberg_cell_change_from_json(const char *json);
/**
* Serialize a `CellChange` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_cell_change_to_json(const KREUZBERGCellChange *ptr);
/**
* Free a `CellChange` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_cell_change_free(KREUZBERGCellChange *ptr);
/**
* Get the `row` field from a `CellChange`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_cell_change_row(const KREUZBERGCellChange *ptr);
/**
* Get the `col` field from a `CellChange`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_cell_change_col(const KREUZBERGCellChange *ptr);
/**
* Get the `from` field from a `CellChange`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_cell_change_from(const KREUZBERGCellChange *ptr);
/**
* Get the `to` field from a `CellChange`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_cell_change_to(const KREUZBERGCellChange *ptr);
/**
* Create a `DocumentRevision` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_document_revision_free`.
*/
KREUZBERGDocumentRevision *kreuzberg_document_revision_from_json(const char *json);
/**
* Serialize a `DocumentRevision` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_document_revision_to_json(const KREUZBERGDocumentRevision *ptr);
/**
* Free a `DocumentRevision` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_document_revision_free(KREUZBERGDocumentRevision *ptr);
/**
* Get the `revision_id` field from a `DocumentRevision`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_document_revision_revision_id(const KREUZBERGDocumentRevision *ptr);
/**
* Get the `author` field from a `DocumentRevision`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_document_revision_author(const KREUZBERGDocumentRevision *ptr);
/**
* Get the `timestamp` field from a `DocumentRevision`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_document_revision_timestamp(const KREUZBERGDocumentRevision *ptr);
/**
* Get the `kind` field from a `DocumentRevision`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGRevisionKind *kreuzberg_document_revision_kind(const KREUZBERGDocumentRevision *ptr);
/**
* Get the `anchor` field from a `DocumentRevision`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGRevisionAnchor *kreuzberg_document_revision_anchor(const KREUZBERGDocumentRevision *ptr);
/**
* Get the `delta` field from a `DocumentRevision`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGRevisionDelta *kreuzberg_document_revision_delta(const KREUZBERGDocumentRevision *ptr);
/**
* Create a `RevisionDelta` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_revision_delta_free`.
*/
KREUZBERGRevisionDelta *kreuzberg_revision_delta_from_json(const char *json);
/**
* Serialize a `RevisionDelta` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_revision_delta_to_json(const KREUZBERGRevisionDelta *ptr);
/**
* Free a `RevisionDelta` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_revision_delta_free(KREUZBERGRevisionDelta *ptr);
/**
* Get the `content` field from a `RevisionDelta`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_revision_delta_content(const KREUZBERGRevisionDelta *ptr);
/**
* Get the `table_changes` field from a `RevisionDelta`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_revision_delta_table_changes(const KREUZBERGRevisionDelta *ptr);
/**
* Create a `Table` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_table_free`.
*/
KREUZBERGTable *kreuzberg_table_from_json(const char *json);
/**
* Serialize a `Table` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_table_to_json(const KREUZBERGTable *ptr);
/**
* Free a `Table` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_table_free(KREUZBERGTable *ptr);
/**
* Get the `cells` field from a `Table`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_table_cells(const KREUZBERGTable *ptr);
/**
* Get the `markdown` field from a `Table`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_table_markdown(const KREUZBERGTable *ptr);
/**
* Get the `page_number` field from a `Table`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_table_page_number(const KREUZBERGTable *ptr);
/**
* Get the `bounding_box` field from a `Table`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGBoundingBox *kreuzberg_table_bounding_box(const KREUZBERGTable *ptr);
/**
* Create a `TableCell` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_table_cell_free`.
*/
KREUZBERGTableCell *kreuzberg_table_cell_from_json(const char *json);
/**
* Serialize a `TableCell` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_table_cell_to_json(const KREUZBERGTableCell *ptr);
/**
* Free a `TableCell` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_table_cell_free(KREUZBERGTableCell *ptr);
/**
* Get the `content` field from a `TableCell`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_table_cell_content(const KREUZBERGTableCell *ptr);
/**
* Get the `row_span` field from a `TableCell`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_table_cell_row_span(const KREUZBERGTableCell *ptr);
/**
* Get the `col_span` field from a `TableCell`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_table_cell_col_span(const KREUZBERGTableCell *ptr);
/**
* Get the `is_header` field from a `TableCell`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_table_cell_is_header(const KREUZBERGTableCell *ptr);
/**
* Create a `ExtractedUri` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_extracted_uri_free`.
*/
KREUZBERGExtractedUri *kreuzberg_extracted_uri_from_json(const char *json);
/**
* Serialize a `ExtractedUri` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_extracted_uri_to_json(const KREUZBERGExtractedUri *ptr);
/**
* Free a `ExtractedUri` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_extracted_uri_free(KREUZBERGExtractedUri *ptr);
/**
* Get the `url` field from a `ExtractedUri`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extracted_uri_url(const KREUZBERGExtractedUri *ptr);
/**
* Get the `label` field from a `ExtractedUri`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extracted_uri_label(const KREUZBERGExtractedUri *ptr);
/**
* Get the `page` field from a `ExtractedUri`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_extracted_uri_page(const KREUZBERGExtractedUri *ptr);
/**
* Get the `kind` field from a `ExtractedUri`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGUriKind *kreuzberg_extracted_uri_kind(const KREUZBERGExtractedUri *ptr);
/**
* Create a `DetectResponse` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_detect_response_free`.
*/
KREUZBERGDetectResponse *kreuzberg_detect_response_from_json(const char *json);
/**
* Serialize a `DetectResponse` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_detect_response_to_json(const KREUZBERGDetectResponse *ptr);
/**
* Free a `DetectResponse` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_detect_response_free(KREUZBERGDetectResponse *ptr);
/**
* Get the `mime_type` field from a `DetectResponse`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_detect_response_mime_type(const KREUZBERGDetectResponse *ptr);
/**
* Get the `filename` field from a `DetectResponse`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_detect_response_filename(const KREUZBERGDetectResponse *ptr);
/**
* Create a `DiffOptions` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_diff_options_free`.
*/
KREUZBERGDiffOptions *kreuzberg_diff_options_from_json(const char *json);
/**
* Serialize a `DiffOptions` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_diff_options_to_json(const KREUZBERGDiffOptions *ptr);
/**
* Free a `DiffOptions` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_diff_options_free(KREUZBERGDiffOptions *ptr);
/**
* Get the `include_metadata` field from a `DiffOptions`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_diff_options_include_metadata(const KREUZBERGDiffOptions *ptr);
/**
* Get the `include_embedded` field from a `DiffOptions`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_diff_options_include_embedded(const KREUZBERGDiffOptions *ptr);
/**
* Get the `max_content_chars` field from a `DiffOptions`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_diff_options_max_content_chars(const KREUZBERGDiffOptions *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGDiffOptions *kreuzberg_diff_options_default(void);
/**
* Create a `ExtractionDiff` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_extraction_diff_free`.
*/
KREUZBERGExtractionDiff *kreuzberg_extraction_diff_from_json(const char *json);
/**
* Serialize a `ExtractionDiff` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_extraction_diff_to_json(const KREUZBERGExtractionDiff *ptr);
/**
* Free a `ExtractionDiff` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_extraction_diff_free(KREUZBERGExtractionDiff *ptr);
/**
* Get the `content_diff` field from a `ExtractionDiff`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_diff_content_diff(const KREUZBERGExtractionDiff *ptr);
/**
* Get the `tables_added` field from a `ExtractionDiff`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_diff_tables_added(const KREUZBERGExtractionDiff *ptr);
/**
* Get the `tables_removed` field from a `ExtractionDiff`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_diff_tables_removed(const KREUZBERGExtractionDiff *ptr);
/**
* Get the `tables_changed` field from a `ExtractionDiff`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_diff_tables_changed(const KREUZBERGExtractionDiff *ptr);
/**
* Get the `metadata_changed` field from a `ExtractionDiff`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_extraction_diff_metadata_changed(const KREUZBERGExtractionDiff *ptr);
/**
* Get the `embedded_changes` field from a `ExtractionDiff`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGEmbeddedChanges *kreuzberg_extraction_diff_embedded_changes(const KREUZBERGExtractionDiff *ptr);
/**
* Create a `DiffHunk` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_diff_hunk_free`.
*/
KREUZBERGDiffHunk *kreuzberg_diff_hunk_from_json(const char *json);
/**
* Serialize a `DiffHunk` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_diff_hunk_to_json(const KREUZBERGDiffHunk *ptr);
/**
* Free a `DiffHunk` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_diff_hunk_free(KREUZBERGDiffHunk *ptr);
/**
* Get the `from_line` field from a `DiffHunk`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_diff_hunk_from_line(const KREUZBERGDiffHunk *ptr);
/**
* Get the `from_count` field from a `DiffHunk`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_diff_hunk_from_count(const KREUZBERGDiffHunk *ptr);
/**
* Get the `to_line` field from a `DiffHunk`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_diff_hunk_to_line(const KREUZBERGDiffHunk *ptr);
/**
* Get the `to_count` field from a `DiffHunk`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_diff_hunk_to_count(const KREUZBERGDiffHunk *ptr);
/**
* Get the `lines` field from a `DiffHunk`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_diff_hunk_lines(const KREUZBERGDiffHunk *ptr);
/**
* Create a `TableDiff` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_table_diff_free`.
*/
KREUZBERGTableDiff *kreuzberg_table_diff_from_json(const char *json);
/**
* Serialize a `TableDiff` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_table_diff_to_json(const KREUZBERGTableDiff *ptr);
/**
* Free a `TableDiff` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_table_diff_free(KREUZBERGTableDiff *ptr);
/**
* Get the `from_index` field from a `TableDiff`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_table_diff_from_index(const KREUZBERGTableDiff *ptr);
/**
* Get the `to_index` field from a `TableDiff`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_table_diff_to_index(const KREUZBERGTableDiff *ptr);
/**
* Get the `cell_changes` field from a `TableDiff`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_table_diff_cell_changes(const KREUZBERGTableDiff *ptr);
/**
* Create a `EmbeddedChanges` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_embedded_changes_free`.
*/
KREUZBERGEmbeddedChanges *kreuzberg_embedded_changes_from_json(const char *json);
/**
* Serialize a `EmbeddedChanges` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_embedded_changes_to_json(const KREUZBERGEmbeddedChanges *ptr);
/**
* Free a `EmbeddedChanges` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_embedded_changes_free(KREUZBERGEmbeddedChanges *ptr);
/**
* Get the `added` field from a `EmbeddedChanges`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_embedded_changes_added(const KREUZBERGEmbeddedChanges *ptr);
/**
* Get the `removed` field from a `EmbeddedChanges`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_embedded_changes_removed(const KREUZBERGEmbeddedChanges *ptr);
/**
* Get the `changed` field from a `EmbeddedChanges`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_embedded_changes_changed(const KREUZBERGEmbeddedChanges *ptr);
/**
* Create a `EmbeddedDiff` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_embedded_diff_free`.
*/
KREUZBERGEmbeddedDiff *kreuzberg_embedded_diff_from_json(const char *json);
/**
* Serialize a `EmbeddedDiff` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_embedded_diff_to_json(const KREUZBERGEmbeddedDiff *ptr);
/**
* Free a `EmbeddedDiff` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_embedded_diff_free(KREUZBERGEmbeddedDiff *ptr);
/**
* Get the `path` field from a `EmbeddedDiff`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_embedded_diff_path(const KREUZBERGEmbeddedDiff *ptr);
/**
* Get the `diff` field from a `EmbeddedDiff`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGExtractionDiff *kreuzberg_embedded_diff_diff(const KREUZBERGEmbeddedDiff *ptr);
/**
* Create a `EmbeddingPreset` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_embedding_preset_free`.
*/
KREUZBERGEmbeddingPreset *kreuzberg_embedding_preset_from_json(const char *json);
/**
* Serialize a `EmbeddingPreset` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_embedding_preset_to_json(const KREUZBERGEmbeddingPreset *ptr);
/**
* Free a `EmbeddingPreset` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_embedding_preset_free(KREUZBERGEmbeddingPreset *ptr);
/**
* Get the `name` field from a `EmbeddingPreset`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_embedding_preset_name(const KREUZBERGEmbeddingPreset *ptr);
/**
* Get the `chunk_size` field from a `EmbeddingPreset`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_embedding_preset_chunk_size(const KREUZBERGEmbeddingPreset *ptr);
/**
* Get the `overlap` field from a `EmbeddingPreset`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_embedding_preset_overlap(const KREUZBERGEmbeddingPreset *ptr);
/**
* Get the `model_repo` field from a `EmbeddingPreset`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_embedding_preset_model_repo(const KREUZBERGEmbeddingPreset *ptr);
/**
* Get the `pooling` field from a `EmbeddingPreset`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_embedding_preset_pooling(const KREUZBERGEmbeddingPreset *ptr);
/**
* Get the `model_file` field from a `EmbeddingPreset`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_embedding_preset_model_file(const KREUZBERGEmbeddingPreset *ptr);
/**
* Get the `dimensions` field from a `EmbeddingPreset`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_embedding_preset_dimensions(const KREUZBERGEmbeddingPreset *ptr);
/**
* Get the `description` field from a `EmbeddingPreset`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_embedding_preset_description(const KREUZBERGEmbeddingPreset *ptr);
/**
* Create a `YakeParams` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_yake_params_free`.
*/
KREUZBERGYakeParams *kreuzberg_yake_params_from_json(const char *json);
/**
* Serialize a `YakeParams` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_yake_params_to_json(const KREUZBERGYakeParams *ptr);
/**
* Free a `YakeParams` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_yake_params_free(KREUZBERGYakeParams *ptr);
/**
* Get the `window_size` field from a `YakeParams`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_yake_params_window_size(const KREUZBERGYakeParams *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGYakeParams *kreuzberg_yake_params_default(void);
/**
* Create a `RakeParams` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_rake_params_free`.
*/
KREUZBERGRakeParams *kreuzberg_rake_params_from_json(const char *json);
/**
* Serialize a `RakeParams` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_rake_params_to_json(const KREUZBERGRakeParams *ptr);
/**
* Free a `RakeParams` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_rake_params_free(KREUZBERGRakeParams *ptr);
/**
* Get the `min_word_length` field from a `RakeParams`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_rake_params_min_word_length(const KREUZBERGRakeParams *ptr);
/**
* Get the `max_words_per_phrase` field from a `RakeParams`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_rake_params_max_words_per_phrase(const KREUZBERGRakeParams *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGRakeParams *kreuzberg_rake_params_default(void);
/**
* Create a `KeywordConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_keyword_config_free`.
*/
KREUZBERGKeywordConfig *kreuzberg_keyword_config_from_json(const char *json);
/**
* Serialize a `KeywordConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_keyword_config_to_json(const KREUZBERGKeywordConfig *ptr);
/**
* Free a `KeywordConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_keyword_config_free(KREUZBERGKeywordConfig *ptr);
/**
* Get the `algorithm` field from a `KeywordConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGKeywordAlgorithm *kreuzberg_keyword_config_algorithm(const KREUZBERGKeywordConfig *ptr);
/**
* Get the `max_keywords` field from a `KeywordConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_keyword_config_max_keywords(const KREUZBERGKeywordConfig *ptr);
/**
* Get the `min_score` field from a `KeywordConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_keyword_config_min_score(const KREUZBERGKeywordConfig *ptr);
/**
* Get the `language` field from a `KeywordConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_keyword_config_language(const KREUZBERGKeywordConfig *ptr);
/**
* Get the `yake_params` field from a `KeywordConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGYakeParams *kreuzberg_keyword_config_yake_params(const KREUZBERGKeywordConfig *ptr);
/**
* Get the `rake_params` field from a `KeywordConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGRakeParams *kreuzberg_keyword_config_rake_params(const KREUZBERGKeywordConfig *ptr);
/**
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGKeywordConfig *kreuzberg_keyword_config_default(void);
/**
* Create a `Keyword` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_keyword_free`.
*/
KREUZBERGKeyword *kreuzberg_keyword_from_json(const char *json);
/**
* Serialize a `Keyword` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_keyword_to_json(const KREUZBERGKeyword *ptr);
/**
* Free a `Keyword` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_keyword_free(KREUZBERGKeyword *ptr);
/**
* Get the `text` field from a `Keyword`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_keyword_text(const KREUZBERGKeyword *ptr);
/**
* Get the `score` field from a `Keyword`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_keyword_score(const KREUZBERGKeyword *ptr);
/**
* Get the `algorithm` field from a `Keyword`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGKeywordAlgorithm *kreuzberg_keyword_algorithm(const KREUZBERGKeyword *ptr);
/**
* Get the `positions` field from a `Keyword`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_keyword_positions(const KREUZBERGKeyword *ptr);
/**
* Create a `PaddleOcrConfig` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_paddle_ocr_config_free`.
*/
KREUZBERGPaddleOcrConfig *kreuzberg_paddle_ocr_config_from_json(const char *json);
/**
* Serialize a `PaddleOcrConfig` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_paddle_ocr_config_to_json(const KREUZBERGPaddleOcrConfig *ptr);
/**
* Free a `PaddleOcrConfig` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_paddle_ocr_config_free(KREUZBERGPaddleOcrConfig *ptr);
/**
* Get the `language` field from a `PaddleOcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_paddle_ocr_config_language(const KREUZBERGPaddleOcrConfig *ptr);
/**
* Get the `cache_dir` field from a `PaddleOcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_paddle_ocr_config_cache_dir(const KREUZBERGPaddleOcrConfig *ptr);
/**
* Get the `use_angle_cls` field from a `PaddleOcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_paddle_ocr_config_use_angle_cls(const KREUZBERGPaddleOcrConfig *ptr);
/**
* Get the `enable_table_detection` field from a `PaddleOcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_paddle_ocr_config_enable_table_detection(const KREUZBERGPaddleOcrConfig *ptr);
/**
* Get the `det_db_thresh` field from a `PaddleOcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_paddle_ocr_config_det_db_thresh(const KREUZBERGPaddleOcrConfig *ptr);
/**
* Get the `det_db_box_thresh` field from a `PaddleOcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_paddle_ocr_config_det_db_box_thresh(const KREUZBERGPaddleOcrConfig *ptr);
/**
* Get the `det_db_unclip_ratio` field from a `PaddleOcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_paddle_ocr_config_det_db_unclip_ratio(const KREUZBERGPaddleOcrConfig *ptr);
/**
* Get the `det_limit_side_len` field from a `PaddleOcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_paddle_ocr_config_det_limit_side_len(const KREUZBERGPaddleOcrConfig *ptr);
/**
* Get the `rec_batch_num` field from a `PaddleOcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_paddle_ocr_config_rec_batch_num(const KREUZBERGPaddleOcrConfig *ptr);
/**
* Get the `padding` field from a `PaddleOcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_paddle_ocr_config_padding(const KREUZBERGPaddleOcrConfig *ptr);
/**
* Get the `drop_score` field from a `PaddleOcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_paddle_ocr_config_drop_score(const KREUZBERGPaddleOcrConfig *ptr);
/**
* Get the `model_tier` field from a `PaddleOcrConfig`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_paddle_ocr_config_model_tier(const KREUZBERGPaddleOcrConfig *ptr);
/**
* Sets a custom cache directory for model files.
* \param path Path to cache directory
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::PaddleOcrConfig;
* use std::path::PathBuf;
*
* let config = PaddleOcrConfig::new("en")
* .with_cache_dir(PathBuf::from("/tmp/paddle-cache"));
* \endcode
*/
KREUZBERGPaddleOcrConfig *kreuzberg_paddle_ocr_config_with_cache_dir(KREUZBERGPaddleOcrConfig *this_,
const char *path);
/**
* Enables or disables table structure detection.
* \param enable Whether to enable table detection
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::PaddleOcrConfig;
*
* let config = PaddleOcrConfig::new("en")
* .with_table_detection(true);
* \endcode
*/
KREUZBERGPaddleOcrConfig *kreuzberg_paddle_ocr_config_with_table_detection(KREUZBERGPaddleOcrConfig *this_,
int32_t enable);
/**
* Enables or disables angle classification for rotated text.
* \param enable Whether to enable angle classification
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGPaddleOcrConfig *kreuzberg_paddle_ocr_config_with_angle_cls(KREUZBERGPaddleOcrConfig *this_,
int32_t enable);
/**
* Sets the database threshold for text detection.
* \param threshold Detection threshold (0.0-1.0)
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGPaddleOcrConfig *kreuzberg_paddle_ocr_config_with_det_db_thresh(KREUZBERGPaddleOcrConfig *this_,
float threshold);
/**
* Sets the box threshold for text bounding box refinement.
* \param threshold Box threshold (0.0-1.0)
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGPaddleOcrConfig *kreuzberg_paddle_ocr_config_with_det_db_box_thresh(KREUZBERGPaddleOcrConfig *this_,
float threshold);
/**
* Sets the unclip ratio for expanding text bounding boxes.
* \param ratio Unclip ratio (typically 1.5-2.0)
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGPaddleOcrConfig *kreuzberg_paddle_ocr_config_with_det_db_unclip_ratio(KREUZBERGPaddleOcrConfig *this_,
float ratio);
/**
* Sets the maximum side length for detection images.
* \param length Maximum side length in pixels
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGPaddleOcrConfig *kreuzberg_paddle_ocr_config_with_det_limit_side_len(KREUZBERGPaddleOcrConfig *this_,
uint32_t length);
/**
* Sets the batch size for recognition inference.
* \param batch_size Number of text regions to process simultaneously
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGPaddleOcrConfig *kreuzberg_paddle_ocr_config_with_rec_batch_num(KREUZBERGPaddleOcrConfig *this_,
uint32_t batch_size);
/**
* Sets the minimum recognition confidence threshold.
* \param score Minimum confidence (0.0-1.0), text below this is dropped
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGPaddleOcrConfig *kreuzberg_paddle_ocr_config_with_drop_score(KREUZBERGPaddleOcrConfig *this_,
float score);
/**
* Sets padding in pixels added around images before detection.
* \param padding Padding in pixels (0-100)
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGPaddleOcrConfig *kreuzberg_paddle_ocr_config_with_padding(KREUZBERGPaddleOcrConfig *this_,
uint32_t padding);
/**
* Sets the model tier controlling detection/recognition model size.
* \param tier `"mobile"` (default, lightweight, faster) or `"server"` (high accuracy, GPU/complex
* documents)
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGPaddleOcrConfig *kreuzberg_paddle_ocr_config_with_model_tier(KREUZBERGPaddleOcrConfig *this_,
const char *tier);
/**
* Creates a default configuration with English language support.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGPaddleOcrConfig *kreuzberg_paddle_ocr_config_default(void);
/**
* Create a `ModelPaths` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_model_paths_free`.
*/
KREUZBERGModelPaths *kreuzberg_model_paths_from_json(const char *json);
/**
* Serialize a `ModelPaths` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_model_paths_to_json(const KREUZBERGModelPaths *ptr);
/**
* Free a `ModelPaths` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_model_paths_free(KREUZBERGModelPaths *ptr);
/**
* Get the `det_model` field from a `ModelPaths`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_model_paths_det_model(const KREUZBERGModelPaths *ptr);
/**
* Get the `cls_model` field from a `ModelPaths`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_model_paths_cls_model(const KREUZBERGModelPaths *ptr);
/**
* Get the `rec_model` field from a `ModelPaths`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_model_paths_rec_model(const KREUZBERGModelPaths *ptr);
/**
* Get the `dict_file` field from a `ModelPaths`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_model_paths_dict_file(const KREUZBERGModelPaths *ptr);
/**
* Create a `OrientationResult` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_orientation_result_free`.
*/
KREUZBERGOrientationResult *kreuzberg_orientation_result_from_json(const char *json);
/**
* Serialize a `OrientationResult` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_orientation_result_to_json(const KREUZBERGOrientationResult *ptr);
/**
* Free a `OrientationResult` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_orientation_result_free(KREUZBERGOrientationResult *ptr);
/**
* Get the `degrees` field from a `OrientationResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_orientation_result_degrees(const KREUZBERGOrientationResult *ptr);
/**
* Get the `confidence` field from a `OrientationResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_orientation_result_confidence(const KREUZBERGOrientationResult *ptr);
/**
* Create a `BBox` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_b_box_free`.
*/
KREUZBERGBBox *kreuzberg_b_box_from_json(const char *json);
/**
* Serialize a `BBox` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_b_box_to_json(const KREUZBERGBBox *ptr);
/**
* Free a `BBox` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_b_box_free(KREUZBERGBBox *ptr);
/**
* Get the `x1` field from a `BBox`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_b_box_x1(const KREUZBERGBBox *ptr);
/**
* Get the `y1` field from a `BBox`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_b_box_y1(const KREUZBERGBBox *ptr);
/**
* Get the `x2` field from a `BBox`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_b_box_x2(const KREUZBERGBBox *ptr);
/**
* Get the `y2` field from a `BBox`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_b_box_y2(const KREUZBERGBBox *ptr);
/**
* Create a `LayoutDetection` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_layout_detection_free`.
*/
KREUZBERGLayoutDetection *kreuzberg_layout_detection_from_json(const char *json);
/**
* Serialize a `LayoutDetection` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_layout_detection_to_json(const KREUZBERGLayoutDetection *ptr);
/**
* Free a `LayoutDetection` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_layout_detection_free(KREUZBERGLayoutDetection *ptr);
/**
* Get the `class_name` field from a `LayoutDetection`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGLayoutClass *kreuzberg_layout_detection_class_name(const KREUZBERGLayoutDetection *ptr);
/**
* Get the `confidence` field from a `LayoutDetection`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
float kreuzberg_layout_detection_confidence(const KREUZBERGLayoutDetection *ptr);
/**
* Get the `bbox` field from a `LayoutDetection`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGBBox *kreuzberg_layout_detection_bbox(const KREUZBERGLayoutDetection *ptr);
/**
* Create a `RecognizedTable` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_recognized_table_free`.
*/
KREUZBERGRecognizedTable *kreuzberg_recognized_table_from_json(const char *json);
/**
* Serialize a `RecognizedTable` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_recognized_table_to_json(const KREUZBERGRecognizedTable *ptr);
/**
* Free a `RecognizedTable` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_recognized_table_free(KREUZBERGRecognizedTable *ptr);
/**
* Get the `detection_bbox` field from a `RecognizedTable`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
KREUZBERGBBox *kreuzberg_recognized_table_detection_bbox(const KREUZBERGRecognizedTable *ptr);
/**
* Get the `cells` field from a `RecognizedTable`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_recognized_table_cells(const KREUZBERGRecognizedTable *ptr);
/**
* Get the `markdown` field from a `RecognizedTable`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_recognized_table_markdown(const KREUZBERGRecognizedTable *ptr);
/**
* Create a `DetectionResult` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_detection_result_free`.
*/
KREUZBERGDetectionResult *kreuzberg_detection_result_from_json(const char *json);
/**
* Serialize a `DetectionResult` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_detection_result_to_json(const KREUZBERGDetectionResult *ptr);
/**
* Free a `DetectionResult` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_detection_result_free(KREUZBERGDetectionResult *ptr);
/**
* Get the `page_width` field from a `DetectionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_detection_result_page_width(const KREUZBERGDetectionResult *ptr);
/**
* Get the `page_height` field from a `DetectionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_detection_result_page_height(const KREUZBERGDetectionResult *ptr);
/**
* Get the `detections` field from a `DetectionResult`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_detection_result_detections(const KREUZBERGDetectionResult *ptr);
/**
* Create a `EmbeddedFile` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_embedded_file_free`.
*/
KREUZBERGEmbeddedFile *kreuzberg_embedded_file_from_json(const char *json);
/**
* Serialize a `EmbeddedFile` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_embedded_file_to_json(const KREUZBERGEmbeddedFile *ptr);
/**
* Free a `EmbeddedFile` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_embedded_file_free(KREUZBERGEmbeddedFile *ptr);
/**
* Get the `name` field from a `EmbeddedFile`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_embedded_file_name(const KREUZBERGEmbeddedFile *ptr);
/**
* Get the `data` field from a `EmbeddedFile`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint8_t *kreuzberg_embedded_file_data(const KREUZBERGEmbeddedFile *ptr,
uintptr_t *out_len);
/**
* Get the `compressed_size` field from a `EmbeddedFile`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uintptr_t kreuzberg_embedded_file_compressed_size(const KREUZBERGEmbeddedFile *ptr);
/**
* Get the `mime_type` field from a `EmbeddedFile`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_embedded_file_mime_type(const KREUZBERGEmbeddedFile *ptr);
/**
* Create a `PdfMetadata` from a JSON string. Returns null on failure.
* # Safety
* JSON string must be valid UTF-8 and null-terminated.
* Returned handle must be freed with `kreuzberg_pdf_metadata_free`.
*/
KREUZBERGPdfMetadata *kreuzberg_pdf_metadata_from_json(const char *json);
/**
* Serialize a `PdfMetadata` to a JSON string. Returns null on failure.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_pdf_metadata_to_json(const KREUZBERGPdfMetadata *ptr);
/**
* Free a `PdfMetadata` handle.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_pdf_metadata_free(KREUZBERGPdfMetadata *ptr);
/**
* Get the `pdf_version` field from a `PdfMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pdf_metadata_pdf_version(const KREUZBERGPdfMetadata *ptr);
/**
* Get the `producer` field from a `PdfMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
char *kreuzberg_pdf_metadata_producer(const KREUZBERGPdfMetadata *ptr);
/**
* Get the `is_encrypted` field from a `PdfMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int32_t kreuzberg_pdf_metadata_is_encrypted(const KREUZBERGPdfMetadata *ptr);
/**
* Get the `width` field from a `PdfMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int64_t kreuzberg_pdf_metadata_width(const KREUZBERGPdfMetadata *ptr);
/**
* Get the `height` field from a `PdfMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
int64_t kreuzberg_pdf_metadata_height(const KREUZBERGPdfMetadata *ptr);
/**
* Get the `page_count` field from a `PdfMetadata`.
* # Safety
* Pointer must be a valid handle returned by this library.
*/
uint32_t kreuzberg_pdf_metadata_page_count(const KREUZBERGPdfMetadata *ptr);
/**
* Convert an integer to a `ExecutionProviderType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_execution_provider_type_from_i32(int32_t value);
/**
* Convert a `ExecutionProviderType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_execution_provider_type_from_str(const char *name);
/**
* Convert an integer to a `OutputFormat` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_output_format_from_i32(int32_t value);
/**
* Convert a `OutputFormat` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_output_format_from_str(const char *name);
/**
* Convert an integer to a `HtmlTheme` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_html_theme_from_i32(int32_t value);
/**
* Convert a `HtmlTheme` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_html_theme_from_str(const char *name);
/**
* Convert an integer to a `TableModel` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_table_model_from_i32(int32_t value);
/**
* Convert a `TableModel` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_table_model_from_str(const char *name);
/**
* Convert an integer to a `ChunkerType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_chunker_type_from_i32(int32_t value);
/**
* Convert a `ChunkerType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_chunker_type_from_str(const char *name);
/**
* Convert an integer to a `ChunkSizing` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_chunk_sizing_from_i32(int32_t value);
/**
* Convert a `ChunkSizing` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_chunk_sizing_from_str(const char *name);
/**
* Convert an integer to a `EmbeddingModelType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_embedding_model_type_from_i32(int32_t value);
/**
* Convert a `EmbeddingModelType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_embedding_model_type_from_str(const char *name);
/**
* Convert an integer to a `CodeContentMode` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_code_content_mode_from_i32(int32_t value);
/**
* Convert a `CodeContentMode` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_code_content_mode_from_str(const char *name);
/**
* Convert an integer to a `ListType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_list_type_from_i32(int32_t value);
/**
* Convert a `ListType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_list_type_from_str(const char *name);
/**
* Convert an integer to a `OcrBackendType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_ocr_backend_type_from_i32(int32_t value);
/**
* Convert a `OcrBackendType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_ocr_backend_type_from_str(const char *name);
/**
* Convert an integer to a `ProcessingStage` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_processing_stage_from_i32(int32_t value);
/**
* Convert a `ProcessingStage` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_processing_stage_from_str(const char *name);
/**
* Convert an integer to a `ReductionLevel` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_reduction_level_from_i32(int32_t value);
/**
* Convert a `ReductionLevel` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_reduction_level_from_str(const char *name);
/**
* Convert an integer to a `PdfAnnotationType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_pdf_annotation_type_from_i32(int32_t value);
/**
* Convert a `PdfAnnotationType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_pdf_annotation_type_from_str(const char *name);
/**
* Convert an integer to a `BlockType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_block_type_from_i32(int32_t value);
/**
* Convert a `BlockType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_block_type_from_str(const char *name);
/**
* Convert an integer to a `InlineType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_inline_type_from_i32(int32_t value);
/**
* Convert a `InlineType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_inline_type_from_str(const char *name);
/**
* Convert an integer to a `RelationshipKind` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_relationship_kind_from_i32(int32_t value);
/**
* Convert a `RelationshipKind` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_relationship_kind_from_str(const char *name);
/**
* Convert an integer to a `ContentLayer` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_content_layer_from_i32(int32_t value);
/**
* Convert a `ContentLayer` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_content_layer_from_str(const char *name);
/**
* Convert an integer to a `NodeContent` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_node_content_from_i32(int32_t value);
/**
* Convert a `NodeContent` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_node_content_from_str(const char *name);
/**
* Convert an integer to a `AnnotationKind` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_annotation_kind_from_i32(int32_t value);
/**
* Convert a `AnnotationKind` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_annotation_kind_from_str(const char *name);
/**
* Convert an integer to a `ExtractionMethod` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_extraction_method_from_i32(int32_t value);
/**
* Convert a `ExtractionMethod` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_extraction_method_from_str(const char *name);
/**
* Convert an integer to a `ChunkType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_chunk_type_from_i32(int32_t value);
/**
* Convert a `ChunkType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_chunk_type_from_str(const char *name);
/**
* Convert an integer to a `ImageKind` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_image_kind_from_i32(int32_t value);
/**
* Convert a `ImageKind` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_image_kind_from_str(const char *name);
/**
* Convert an integer to a `ResultFormat` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_result_format_from_i32(int32_t value);
/**
* Convert a `ResultFormat` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_result_format_from_str(const char *name);
/**
* Convert an integer to a `ElementType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_element_type_from_i32(int32_t value);
/**
* Convert a `ElementType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_element_type_from_str(const char *name);
/**
* Convert an integer to a `FormatMetadata` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_format_metadata_from_i32(int32_t value);
/**
* Convert a `FormatMetadata` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_format_metadata_from_str(const char *name);
/**
* Convert an integer to a `TextDirection` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_text_direction_from_i32(int32_t value);
/**
* Convert a `TextDirection` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_text_direction_from_str(const char *name);
/**
* Convert an integer to a `LinkType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_link_type_from_i32(int32_t value);
/**
* Convert a `LinkType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_link_type_from_str(const char *name);
/**
* Convert an integer to a `ImageType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_image_type_from_i32(int32_t value);
/**
* Convert a `ImageType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_image_type_from_str(const char *name);
/**
* Convert an integer to a `StructuredDataType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_structured_data_type_from_i32(int32_t value);
/**
* Convert a `StructuredDataType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_structured_data_type_from_str(const char *name);
/**
* Convert an integer to a `OcrBoundingGeometry` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_ocr_bounding_geometry_from_i32(int32_t value);
/**
* Convert a `OcrBoundingGeometry` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_ocr_bounding_geometry_from_str(const char *name);
/**
* Convert an integer to a `OcrElementLevel` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_ocr_element_level_from_i32(int32_t value);
/**
* Convert a `OcrElementLevel` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_ocr_element_level_from_str(const char *name);
/**
* Convert an integer to a `PageUnitType` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_page_unit_type_from_i32(int32_t value);
/**
* Convert a `PageUnitType` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_page_unit_type_from_str(const char *name);
/**
* Convert an integer to a `DiffLine` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_diff_line_from_i32(int32_t value);
/**
* Convert a `DiffLine` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_diff_line_from_str(const char *name);
/**
* Convert an integer to a `RevisionKind` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_revision_kind_from_i32(int32_t value);
/**
* Convert a `RevisionKind` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_revision_kind_from_str(const char *name);
/**
* Convert an integer to a `RevisionAnchor` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_revision_anchor_from_i32(int32_t value);
/**
* Convert a `RevisionAnchor` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_revision_anchor_from_str(const char *name);
/**
* Convert an integer to a `UriKind` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_uri_kind_from_i32(int32_t value);
/**
* Convert a `UriKind` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_uri_kind_from_str(const char *name);
/**
* Convert an integer to a `KeywordAlgorithm` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_keyword_algorithm_from_i32(int32_t value);
/**
* Convert a `KeywordAlgorithm` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_keyword_algorithm_from_str(const char *name);
/**
* Convert an integer to a `PSMMode` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_psm_mode_from_i32(int32_t value);
/**
* Convert a `PSMMode` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_psm_mode_from_str(const char *name);
/**
* Convert an integer to a `PaddleLanguage` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_paddle_language_from_i32(int32_t value);
/**
* Convert a `PaddleLanguage` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_paddle_language_from_str(const char *name);
/**
* Convert an integer to a `LayoutClass` variant. Returns -1 on invalid input.
* # Safety
* Caller must ensure all pointer arguments are valid or null.
* Returned pointers must be freed with the appropriate free function.
*/
int32_t kreuzberg_layout_class_from_i32(int32_t value);
/**
* Convert a `LayoutClass` variant name (C string) to its integer value. Returns -1 on invalid input.
* # Safety
* Caller must ensure `ptr` is a valid pointer to a `c_char` or null.
*/
int32_t kreuzberg_layout_class_from_str(const char *name);
/**
* Free a heap-allocated `ExecutionProviderType` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_execution_provider_type_free(KREUZBERGExecutionProviderType *ptr);
/**
* Serialize a heap-allocated `ExecutionProviderType` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_execution_provider_type_to_json(const KREUZBERGExecutionProviderType *ptr);
/**
* Render a heap-allocated `ExecutionProviderType` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_execution_provider_type_to_string(const KREUZBERGExecutionProviderType *ptr);
/**
* Free a heap-allocated `OutputFormat` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_output_format_free(KREUZBERGOutputFormat *ptr);
/**
* Serialize a heap-allocated `OutputFormat` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_output_format_to_json(const KREUZBERGOutputFormat *ptr);
/**
* Render a heap-allocated `OutputFormat` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_output_format_to_string(const KREUZBERGOutputFormat *ptr);
/**
* Free a heap-allocated `HtmlTheme` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_html_theme_free(KREUZBERGHtmlTheme *ptr);
/**
* Serialize a heap-allocated `HtmlTheme` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_html_theme_to_json(const KREUZBERGHtmlTheme *ptr);
/**
* Render a heap-allocated `HtmlTheme` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_html_theme_to_string(const KREUZBERGHtmlTheme *ptr);
/**
* Free a heap-allocated `TableModel` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_table_model_free(KREUZBERGTableModel *ptr);
/**
* Serialize a heap-allocated `TableModel` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_table_model_to_json(const KREUZBERGTableModel *ptr);
/**
* Render a heap-allocated `TableModel` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_table_model_to_string(const KREUZBERGTableModel *ptr);
/**
* Free a heap-allocated `ChunkerType` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_chunker_type_free(KREUZBERGChunkerType *ptr);
/**
* Serialize a heap-allocated `ChunkerType` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_chunker_type_to_json(const KREUZBERGChunkerType *ptr);
/**
* Render a heap-allocated `ChunkerType` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_chunker_type_to_string(const KREUZBERGChunkerType *ptr);
/**
* Free a heap-allocated `ChunkSizing` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_chunk_sizing_free(KREUZBERGChunkSizing *ptr);
/**
* Serialize a heap-allocated `ChunkSizing` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_chunk_sizing_to_json(const KREUZBERGChunkSizing *ptr);
/**
* Render a heap-allocated `ChunkSizing` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_chunk_sizing_to_string(const KREUZBERGChunkSizing *ptr);
/**
* Free a heap-allocated `EmbeddingModelType` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_embedding_model_type_free(KREUZBERGEmbeddingModelType *ptr);
/**
* Serialize a heap-allocated `EmbeddingModelType` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_embedding_model_type_to_json(const KREUZBERGEmbeddingModelType *ptr);
/**
* Render a heap-allocated `EmbeddingModelType` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_embedding_model_type_to_string(const KREUZBERGEmbeddingModelType *ptr);
/**
* Free a heap-allocated `CodeContentMode` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_code_content_mode_free(KREUZBERGCodeContentMode *ptr);
/**
* Serialize a heap-allocated `CodeContentMode` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_code_content_mode_to_json(const KREUZBERGCodeContentMode *ptr);
/**
* Render a heap-allocated `CodeContentMode` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_code_content_mode_to_string(const KREUZBERGCodeContentMode *ptr);
/**
* Free a heap-allocated `ReductionLevel` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_reduction_level_free(KREUZBERGReductionLevel *ptr);
/**
* Serialize a heap-allocated `ReductionLevel` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_reduction_level_to_json(const KREUZBERGReductionLevel *ptr);
/**
* Render a heap-allocated `ReductionLevel` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_reduction_level_to_string(const KREUZBERGReductionLevel *ptr);
/**
* Free a heap-allocated `PdfAnnotationType` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_pdf_annotation_type_free(KREUZBERGPdfAnnotationType *ptr);
/**
* Serialize a heap-allocated `PdfAnnotationType` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_pdf_annotation_type_to_json(const KREUZBERGPdfAnnotationType *ptr);
/**
* Render a heap-allocated `PdfAnnotationType` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_pdf_annotation_type_to_string(const KREUZBERGPdfAnnotationType *ptr);
/**
* Free a heap-allocated `BlockType` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_block_type_free(KREUZBERGBlockType *ptr);
/**
* Serialize a heap-allocated `BlockType` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_block_type_to_json(const KREUZBERGBlockType *ptr);
/**
* Render a heap-allocated `BlockType` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_block_type_to_string(const KREUZBERGBlockType *ptr);
/**
* Free a heap-allocated `InlineType` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_inline_type_free(KREUZBERGInlineType *ptr);
/**
* Serialize a heap-allocated `InlineType` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_inline_type_to_json(const KREUZBERGInlineType *ptr);
/**
* Render a heap-allocated `InlineType` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_inline_type_to_string(const KREUZBERGInlineType *ptr);
/**
* Free a heap-allocated `RelationshipKind` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_relationship_kind_free(KREUZBERGRelationshipKind *ptr);
/**
* Serialize a heap-allocated `RelationshipKind` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_relationship_kind_to_json(const KREUZBERGRelationshipKind *ptr);
/**
* Render a heap-allocated `RelationshipKind` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_relationship_kind_to_string(const KREUZBERGRelationshipKind *ptr);
/**
* Free a heap-allocated `ContentLayer` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_content_layer_free(KREUZBERGContentLayer *ptr);
/**
* Serialize a heap-allocated `ContentLayer` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_content_layer_to_json(const KREUZBERGContentLayer *ptr);
/**
* Render a heap-allocated `ContentLayer` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_content_layer_to_string(const KREUZBERGContentLayer *ptr);
/**
* Free a heap-allocated `NodeContent` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_node_content_free(KREUZBERGNodeContent *ptr);
/**
* Serialize a heap-allocated `NodeContent` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_node_content_to_json(const KREUZBERGNodeContent *ptr);
/**
* Render a heap-allocated `NodeContent` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_node_content_to_string(const KREUZBERGNodeContent *ptr);
/**
* Free a heap-allocated `AnnotationKind` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_annotation_kind_free(KREUZBERGAnnotationKind *ptr);
/**
* Serialize a heap-allocated `AnnotationKind` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_annotation_kind_to_json(const KREUZBERGAnnotationKind *ptr);
/**
* Render a heap-allocated `AnnotationKind` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_annotation_kind_to_string(const KREUZBERGAnnotationKind *ptr);
/**
* Free a heap-allocated `ExtractionMethod` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_extraction_method_free(KREUZBERGExtractionMethod *ptr);
/**
* Serialize a heap-allocated `ExtractionMethod` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_extraction_method_to_json(const KREUZBERGExtractionMethod *ptr);
/**
* Render a heap-allocated `ExtractionMethod` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_extraction_method_to_string(const KREUZBERGExtractionMethod *ptr);
/**
* Free a heap-allocated `ChunkType` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_chunk_type_free(KREUZBERGChunkType *ptr);
/**
* Serialize a heap-allocated `ChunkType` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_chunk_type_to_json(const KREUZBERGChunkType *ptr);
/**
* Render a heap-allocated `ChunkType` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_chunk_type_to_string(const KREUZBERGChunkType *ptr);
/**
* Free a heap-allocated `ImageKind` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_image_kind_free(KREUZBERGImageKind *ptr);
/**
* Serialize a heap-allocated `ImageKind` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_image_kind_to_json(const KREUZBERGImageKind *ptr);
/**
* Render a heap-allocated `ImageKind` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_image_kind_to_string(const KREUZBERGImageKind *ptr);
/**
* Free a heap-allocated `ResultFormat` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_result_format_free(KREUZBERGResultFormat *ptr);
/**
* Serialize a heap-allocated `ResultFormat` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_result_format_to_json(const KREUZBERGResultFormat *ptr);
/**
* Render a heap-allocated `ResultFormat` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_result_format_to_string(const KREUZBERGResultFormat *ptr);
/**
* Free a heap-allocated `ElementType` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_element_type_free(KREUZBERGElementType *ptr);
/**
* Serialize a heap-allocated `ElementType` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_element_type_to_json(const KREUZBERGElementType *ptr);
/**
* Render a heap-allocated `ElementType` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_element_type_to_string(const KREUZBERGElementType *ptr);
/**
* Free a heap-allocated `FormatMetadata` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_format_metadata_free(KREUZBERGFormatMetadata *ptr);
/**
* Serialize a heap-allocated `FormatMetadata` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_format_metadata_to_json(const KREUZBERGFormatMetadata *ptr);
/**
* Render a heap-allocated `FormatMetadata` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_format_metadata_to_string(const KREUZBERGFormatMetadata *ptr);
/**
* Free a heap-allocated `TextDirection` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_text_direction_free(KREUZBERGTextDirection *ptr);
/**
* Serialize a heap-allocated `TextDirection` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_text_direction_to_json(const KREUZBERGTextDirection *ptr);
/**
* Render a heap-allocated `TextDirection` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_text_direction_to_string(const KREUZBERGTextDirection *ptr);
/**
* Free a heap-allocated `LinkType` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_link_type_free(KREUZBERGLinkType *ptr);
/**
* Serialize a heap-allocated `LinkType` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_link_type_to_json(const KREUZBERGLinkType *ptr);
/**
* Render a heap-allocated `LinkType` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_link_type_to_string(const KREUZBERGLinkType *ptr);
/**
* Free a heap-allocated `ImageType` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_image_type_free(KREUZBERGImageType *ptr);
/**
* Serialize a heap-allocated `ImageType` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_image_type_to_json(const KREUZBERGImageType *ptr);
/**
* Render a heap-allocated `ImageType` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_image_type_to_string(const KREUZBERGImageType *ptr);
/**
* Free a heap-allocated `StructuredDataType` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_structured_data_type_free(KREUZBERGStructuredDataType *ptr);
/**
* Serialize a heap-allocated `StructuredDataType` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_structured_data_type_to_json(const KREUZBERGStructuredDataType *ptr);
/**
* Render a heap-allocated `StructuredDataType` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_structured_data_type_to_string(const KREUZBERGStructuredDataType *ptr);
/**
* Free a heap-allocated `OcrBoundingGeometry` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_bounding_geometry_free(KREUZBERGOcrBoundingGeometry *ptr);
/**
* Serialize a heap-allocated `OcrBoundingGeometry` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_bounding_geometry_to_json(const KREUZBERGOcrBoundingGeometry *ptr);
/**
* Render a heap-allocated `OcrBoundingGeometry` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_bounding_geometry_to_string(const KREUZBERGOcrBoundingGeometry *ptr);
/**
* Free a heap-allocated `OcrElementLevel` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_ocr_element_level_free(KREUZBERGOcrElementLevel *ptr);
/**
* Serialize a heap-allocated `OcrElementLevel` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_element_level_to_json(const KREUZBERGOcrElementLevel *ptr);
/**
* Render a heap-allocated `OcrElementLevel` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_ocr_element_level_to_string(const KREUZBERGOcrElementLevel *ptr);
/**
* Free a heap-allocated `PageUnitType` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_page_unit_type_free(KREUZBERGPageUnitType *ptr);
/**
* Serialize a heap-allocated `PageUnitType` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_page_unit_type_to_json(const KREUZBERGPageUnitType *ptr);
/**
* Render a heap-allocated `PageUnitType` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_page_unit_type_to_string(const KREUZBERGPageUnitType *ptr);
/**
* Free a heap-allocated `RevisionKind` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_revision_kind_free(KREUZBERGRevisionKind *ptr);
/**
* Serialize a heap-allocated `RevisionKind` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_revision_kind_to_json(const KREUZBERGRevisionKind *ptr);
/**
* Render a heap-allocated `RevisionKind` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_revision_kind_to_string(const KREUZBERGRevisionKind *ptr);
/**
* Free a heap-allocated `RevisionAnchor` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_revision_anchor_free(KREUZBERGRevisionAnchor *ptr);
/**
* Serialize a heap-allocated `RevisionAnchor` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_revision_anchor_to_json(const KREUZBERGRevisionAnchor *ptr);
/**
* Render a heap-allocated `RevisionAnchor` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_revision_anchor_to_string(const KREUZBERGRevisionAnchor *ptr);
/**
* Free a heap-allocated `UriKind` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_uri_kind_free(KREUZBERGUriKind *ptr);
/**
* Serialize a heap-allocated `UriKind` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_uri_kind_to_json(const KREUZBERGUriKind *ptr);
/**
* Render a heap-allocated `UriKind` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_uri_kind_to_string(const KREUZBERGUriKind *ptr);
/**
* Free a heap-allocated `KeywordAlgorithm` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_keyword_algorithm_free(KREUZBERGKeywordAlgorithm *ptr);
/**
* Serialize a heap-allocated `KeywordAlgorithm` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_keyword_algorithm_to_json(const KREUZBERGKeywordAlgorithm *ptr);
/**
* Render a heap-allocated `KeywordAlgorithm` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_keyword_algorithm_to_string(const KREUZBERGKeywordAlgorithm *ptr);
/**
* Free a heap-allocated `LayoutClass` returned by a pointer-returning FFI function.
* # Safety
* Pointer must have been returned by this library, or be null.
*/
void kreuzberg_layout_class_free(KREUZBERGLayoutClass *ptr);
/**
* Serialize a heap-allocated `LayoutClass` to a JSON string.
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_layout_class_to_json(const KREUZBERGLayoutClass *ptr);
/**
* Render a heap-allocated `LayoutClass` as its string representation
* (the unit-variant name as serialized by serde — e.g. `"completed"`,
* without surrounding JSON quotes).
* # Safety
* `ptr` must be a valid, non-null pointer returned by a `kreuzberg` function.
* The returned string must be freed with `kreuzberg_free_string`.
*/
char *kreuzberg_layout_class_to_string(const KREUZBERGLayoutClass *ptr);
/**
* Extract content from a byte array.
*
* This is the main entry point for in-memory extraction. It performs the following steps:
* 1. Validate MIME type
* 2. Handle legacy format conversion if needed
* 3. Select appropriate extractor from registry
* 4. Extract content
* 5. Run post-processing pipeline
* \param content The byte array to extract
* \param mime_type MIME type of the content
* \param config Extraction configuration
* \return An `ExtractionResult` containing the extracted content and metadata.
* \note Returns `KreuzbergError::Validation` if MIME type is invalid.
* Returns `KreuzbergError::UnsupportedFormat` if MIME type is not supported.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::core::extractor::extract_bytes;
* use kreuzberg::core::config::ExtractionConfig;
*
* let config = ExtractionConfig::default();
* let bytes = b"Hello, world!";
* let result = extract_bytes(bytes, "text/plain", &config).await?;
* println!("Content: {}", result.content);
* \endcode
*/
KREUZBERGExtractionResult *kreuzberg_extract_bytes(const uint8_t *content,
uintptr_t content_len,
const char *mime_type,
const KREUZBERGExtractionConfig *config);
/**
* Extract content from a file.
*
* This is the main entry point for file-based extraction. It performs the following steps:
* 1. Check cache for existing result (if caching enabled)
* 2. Detect or validate MIME type
* 3. Select appropriate extractor from registry
* 4. Extract content
* 5. Run post-processing pipeline
* 6. Store result in cache (if caching enabled)
* \param path Path to the file to extract
* \param mime_type Optional MIME type override. If None, will be auto-detected
* \param config Extraction configuration
* \return An `ExtractionResult` containing the extracted content and metadata.
* \note Returns `KreuzbergError::Io` if the file doesn't exist (NotFound) or for other file I/O
* errors.
* Returns `KreuzbergError::UnsupportedFormat` if MIME type is not supported.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::core::extractor::extract_file;
* use kreuzberg::core::config::ExtractionConfig;
*
* let config = ExtractionConfig::default();
* let result = extract_file("document.pdf", None, &config).await?;
* println!("Content: {}", result.content);
* \endcode
*/
KREUZBERGExtractionResult *kreuzberg_extract_file(const char *path,
const char *mime_type,
const KREUZBERGExtractionConfig *config);
/**
* Synchronous wrapper for `extract_file`.
*
* This is a convenience function that blocks the current thread until extraction completes.
* For async code, use `extract_file` directly.
*
* Uses the global Tokio runtime for 100x+ performance improvement over creating
* a new runtime per call. Always uses the global runtime to avoid nested runtime issues.
*
* This function is only available with the `tokio-runtime` feature. For WASM targets,
* use a truly synchronous extraction approach instead.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::core::extractor::extract_file_sync;
* use kreuzberg::core::config::ExtractionConfig;
*
* let config = ExtractionConfig::default();
* let result = extract_file_sync("document.pdf", None, &config)?;
* println!("Content: {}", result.content);
* \endcode
*/
KREUZBERGExtractionResult *kreuzberg_extract_file_sync(const char *path,
const char *mime_type,
const KREUZBERGExtractionConfig *config);
/**
* Synchronous wrapper for `extract_bytes`.
*
* Uses the global Tokio runtime for 100x+ performance improvement over creating
* a new runtime per call.
*
* With the `tokio-runtime` feature, this blocks the current thread using the global
* Tokio runtime. Without it (WASM), this calls a truly synchronous implementation.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::core::extractor::extract_bytes_sync;
* use kreuzberg::core::config::ExtractionConfig;
*
* let config = ExtractionConfig::default();
* let bytes = b"Hello, world!";
* let result = extract_bytes_sync(bytes, "text/plain", &config)?;
* println!("Content: {}", result.content);
* \endcode
*/
KREUZBERGExtractionResult *kreuzberg_extract_bytes_sync(const uint8_t *content,
uintptr_t content_len,
const char *mime_type,
const KREUZBERGExtractionConfig *config);
/**
* Synchronous wrapper for `batch_extract_files`.
*
* Uses the global Tokio runtime for optimal performance.
* Only available with `tokio-runtime` (WASM has no filesystem).
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::core::extractor::batch_extract_files_sync;
* use kreuzberg::core::config::{ExtractionConfig, BatchFileItem, FileExtractionConfig};
*
* let config = ExtractionConfig::default();
* let items = vec![
* BatchFileItem {
* path: "doc1.pdf".into(),
* config: Some(FileExtractionConfig { force_ocr: Some(true), ..Default::default() }),
* },
* BatchFileItem { path: "doc2.pdf".into(), config: None },
* ];
* let results = batch_extract_files_sync(items, &config)?;
* \endcode
*/
char *kreuzberg_batch_extract_files_sync(const char *items,
const KREUZBERGExtractionConfig *config);
/**
* Return the byte length of the C string most recently returned by
* `kreuzberg_batch_extract_files_sync` on this thread. Returns 0 when the primary call returned null
* or failed before producing a string. Enables safe slice construction in Zig and Java FFM Panama
* without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_batch_extract_files_sync`.
*/
uintptr_t kreuzberg_batch_extract_files_sync_len(const char *_items,
const KREUZBERGExtractionConfig *_config);
/**
* Synchronous wrapper for `batch_extract_bytes`.
*
* Uses the global Tokio runtime for optimal performance.
* With the `tokio-runtime` feature, this blocks the current thread using the global
* Tokio runtime. Without it (WASM), this calls a truly synchronous implementation
* that iterates through items and calls `extract_bytes_sync()`.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::core::extractor::batch_extract_bytes_sync;
* use kreuzberg::core::config::{ExtractionConfig, BatchBytesItem, FileExtractionConfig};
*
* let config = ExtractionConfig::default();
* let items = vec![
* BatchBytesItem { content: b"content".to_vec(), mime_type: "text/plain".to_string(), config: None },
* BatchBytesItem {
* content: b"other".to_vec(),
* mime_type: "text/plain".to_string(),
* config: Some(FileExtractionConfig { force_ocr: Some(true), ..Default::default() }),
* },
* ];
* let results = batch_extract_bytes_sync(items, &config)?;
* \endcode
*/
char *kreuzberg_batch_extract_bytes_sync(const char *items,
const KREUZBERGExtractionConfig *config);
/**
* Return the byte length of the C string most recently returned by
* `kreuzberg_batch_extract_bytes_sync` on this thread. Returns 0 when the primary call returned null
* or failed before producing a string. Enables safe slice construction in Zig and Java FFM Panama
* without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_batch_extract_bytes_sync`.
*/
uintptr_t kreuzberg_batch_extract_bytes_sync_len(const char *_items,
const KREUZBERGExtractionConfig *_config);
/**
* Extract content from multiple files concurrently.
*
* This function processes multiple files in parallel, automatically managing
* concurrency to prevent resource exhaustion. The concurrency limit can be
* configured via `ExtractionConfig::max_concurrent_extractions` or defaults
* to `(num_cpus * 1.5).ceil()`.
*
* Each file can optionally specify a [`FileExtractionConfig`] that overrides specific
* fields from the batch-level `config`. Pass `None` for a file to use the batch defaults.
* Batch-level settings like `max_concurrent_extractions` and `use_cache` are always
* taken from the batch-level `config`.
* \param items Vector of `BatchFileItem` structs, each containing a path and optional per-file
* configuration overrides.
* \param config Batch-level extraction configuration (provides defaults and batch settings)
* \return A vector of `ExtractionResult` in the same order as the input items.
* \note Individual file errors are captured in the result metadata. System errors
* (IO, RuntimeError equivalents) will bubble up and fail the entire batch.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* Simple usage with no per-file overrides:
*
* use kreuzberg::core::extractor::batch_extract_files;
* use kreuzberg::core::config::{ExtractionConfig, BatchFileItem};
* use std::path::PathBuf;
*
* let config = ExtractionConfig::default();
* let items = vec![
* BatchFileItem { path: "doc1.pdf".into(), config: None },
* BatchFileItem { path: "doc2.pdf".into(), config: None },
* ];
* let results = batch_extract_files(items, &config).await?;
* println!("Processed {} files", results.len());
*
* Per-file configuration overrides:
*
* use kreuzberg::core::extractor::batch_extract_files;
* use kreuzberg::core::config::{ExtractionConfig, BatchFileItem, FileExtractionConfig};
* use std::path::PathBuf;
*
* let config = ExtractionConfig::default();
* let items = vec![
* BatchFileItem {
* path: "scan.pdf".into(),
* config: Some(FileExtractionConfig { force_ocr: Some(true), ..Default::default() }),
* },
* BatchFileItem { path: "notes.txt".into(), config: None },
* ];
* let results = batch_extract_files(items, &config).await?;
* \endcode
*/
char *kreuzberg_batch_extract_files(const char *items,
const KREUZBERGExtractionConfig *config);
/**
* Return the byte length of the C string most recently returned by `kreuzberg_batch_extract_files` on
* this thread. Returns 0 when the primary call returned null or failed before producing a string.
* Enables safe slice construction in Zig and Java FFM Panama without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_batch_extract_files`.
*/
uintptr_t kreuzberg_batch_extract_files_len(const char *_items,
const KREUZBERGExtractionConfig *_config);
/**
* Extract content from multiple byte arrays concurrently.
*
* This function processes multiple byte arrays in parallel, automatically managing
* concurrency to prevent resource exhaustion. The concurrency limit can be
* configured via `ExtractionConfig::max_concurrent_extractions` or defaults
* to `(num_cpus * 1.5).ceil()`.
*
* Each item can optionally specify a [`FileExtractionConfig`] that overrides specific
* fields from the batch-level `config`. Pass `None` as the config to use
* the batch-level defaults for that item.
* \param items Vector of `BatchBytesItem` structs, each containing content bytes, MIME type, and
* optional per-item configuration overrides.
* \param config Batch-level extraction configuration
* \return A vector of `ExtractionResult` in the same order as the input items.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* Simple usage with no per-item overrides:
*
* use kreuzberg::core::extractor::batch_extract_bytes;
* use kreuzberg::core::config::{ExtractionConfig, BatchBytesItem};
*
* let config = ExtractionConfig::default();
* let items = vec![
* BatchBytesItem { content: b"content 1".to_vec(), mime_type: "text/plain".to_string(), config: None },
* BatchBytesItem { content: b"content 2".to_vec(), mime_type: "text/plain".to_string(), config: None },
* ];
* let results = batch_extract_bytes(items, &config).await?;
* println!("Processed {} items", results.len());
*
* Per-item configuration overrides:
*
* use kreuzberg::core::extractor::batch_extract_bytes;
* use kreuzberg::core::config::{ExtractionConfig, BatchBytesItem, FileExtractionConfig};
*
* let config = ExtractionConfig::default();
* let items = vec![
* BatchBytesItem { content: b"content".to_vec(), mime_type: "text/plain".to_string(), config: None },
* BatchBytesItem {
* content: b"<html>test</html>".to_vec(),
* mime_type: "text/html".to_string(),
* config: Some(FileExtractionConfig { force_ocr: Some(true), ..Default::default() }),
* },
* ];
* let results = batch_extract_bytes(items, &config).await?;
* \endcode
*/
char *kreuzberg_batch_extract_bytes(const char *items,
const KREUZBERGExtractionConfig *config);
/**
* Return the byte length of the C string most recently returned by `kreuzberg_batch_extract_bytes` on
* this thread. Returns 0 when the primary call returned null or failed before producing a string.
* Enables safe slice construction in Zig and Java FFM Panama without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_batch_extract_bytes`.
*/
uintptr_t kreuzberg_batch_extract_bytes_len(const char *_items,
const KREUZBERGExtractionConfig *_config);
/**
* Detect MIME type from raw file bytes.
*
* Uses magic byte signatures to detect file type from content.
* Falls back to `infer` crate for comprehensive detection.
*
* For ZIP-based files, inspects contents to distinguish Office Open XML
* formats (DOCX, XLSX, PPTX) from plain ZIP archives.
* \param content Raw file bytes
* \return The detected MIME type string.
* \note Returns `KreuzbergError::UnsupportedFormat` if MIME type cannot be determined.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
char *kreuzberg_detect_mime_type_from_bytes(const uint8_t *content,
uintptr_t content_len);
/**
* Return the byte length of the C string most recently returned by
* `kreuzberg_detect_mime_type_from_bytes` on this thread. Returns 0 when the primary call returned
* null or failed before producing a string. Enables safe slice construction in Zig and Java FFM Panama
* without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_detect_mime_type_from_bytes`.
*/
uintptr_t kreuzberg_detect_mime_type_from_bytes_len(const uint8_t *_content,
uintptr_t _content_len);
/**
* Get file extensions for a given MIME type.
*
* Returns all known file extensions that map to the specified MIME type.
* \param mime_type The MIME type to look up
* \return A vector of file extensions (without leading dot) for the MIME type.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::core::mime::get_extensions_for_mime;
*
* let extensions = get_extensions_for_mime("application/pdf").unwrap();
* assert_eq!(extensions, vec!["pdf"]);
*
* let doc_extensions = get_extensions_for_mime("application/vnd.openxmlformats-officedocument.wordprocessingml.document").unwrap();
* assert!(doc_extensions.contains(&"docx".to_string()));
* \endcode
*/
char *kreuzberg_get_extensions_for_mime(const char *mime_type);
/**
* Return the byte length of the C string most recently returned by `kreuzberg_get_extensions_for_mime`
* on this thread. Returns 0 when the primary call returned null or failed before producing a string.
* Enables safe slice construction in Zig and Java FFM Panama without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_get_extensions_for_mime`.
*/
uintptr_t kreuzberg_get_extensions_for_mime_len(const char *_mime_type);
/**
* List the names of all registered embedding backends.
*
* Used by `kreuzberg-cli`, the api/mcp endpoints, and generated language
* bindings.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
char *kreuzberg_list_embedding_backends(void);
/**
* Return the byte length of the C string most recently returned by `kreuzberg_list_embedding_backends`
* on this thread. Returns 0 when the primary call returned null or failed before producing a string.
* Enables safe slice construction in Zig and Java FFM Panama without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_list_embedding_backends`.
*/
uintptr_t kreuzberg_list_embedding_backends_len(void);
/**
* List names of all registered document extractors.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
char *kreuzberg_list_document_extractors(void);
/**
* Return the byte length of the C string most recently returned by
* `kreuzberg_list_document_extractors` on this thread. Returns 0 when the primary call returned null
* or failed before producing a string. Enables safe slice construction in Zig and Java FFM Panama
* without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_list_document_extractors`.
*/
uintptr_t kreuzberg_list_document_extractors_len(void);
/**
* List all registered OCR backends.
*
* Returns the names of all OCR backends currently registered in the global registry.
* \return A vector of OCR backend names.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::plugins::list_ocr_backends;
*
* let backends = list_ocr_backends()?;
* for name in backends {
* println!("Registered OCR backend: {}", name);
* }
* \endcode
*/
char *kreuzberg_list_ocr_backends(void);
/**
* Return the byte length of the C string most recently returned by `kreuzberg_list_ocr_backends` on
* this thread. Returns 0 when the primary call returned null or failed before producing a string.
* Enables safe slice construction in Zig and Java FFM Panama without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_list_ocr_backends`.
*/
uintptr_t kreuzberg_list_ocr_backends_len(void);
/**
* List all registered post-processor names.
*
* Returns a vector of all post-processor names currently registered in the
* global registry.
* \return - `Ok(Vec<String>)` - Vector of post-processor names
* - `Err(...)` if the registry lock is poisoned
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::plugins::list_post_processors;
*
* let processors = list_post_processors()?;
* for name in processors {
* println!("Registered post-processor: {}", name);
* }
* \endcode
*/
char *kreuzberg_list_post_processors(void);
/**
* Return the byte length of the C string most recently returned by `kreuzberg_list_post_processors` on
* this thread. Returns 0 when the primary call returned null or failed before producing a string.
* Enables safe slice construction in Zig and Java FFM Panama without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_list_post_processors`.
*/
uintptr_t kreuzberg_list_post_processors_len(void);
/**
* List names of all registered renderers.
* \note Returns an error if the registry lock is poisoned.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
char *kreuzberg_list_renderers(void);
/**
* Return the byte length of the C string most recently returned by `kreuzberg_list_renderers` on this
* thread. Returns 0 when the primary call returned null or failed before producing a string. Enables
* safe slice construction in Zig and Java FFM Panama without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_list_renderers`.
*/
uintptr_t kreuzberg_list_renderers_len(void);
/**
* List names of all registered validators.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
char *kreuzberg_list_validators(void);
/**
* Return the byte length of the C string most recently returned by `kreuzberg_list_validators` on this
* thread. Returns 0 when the primary call returned null or failed before producing a string. Enables
* safe slice construction in Zig and Java FFM Panama without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_list_validators`.
*/
uintptr_t kreuzberg_list_validators_len(void);
/**
* Compare two extraction results and return a structured diff.
*
* The comparison is purely structural — no I/O, no side effects. All fields
* of [`ExtractionDiff`] are populated according to the provided [`DiffOptions`].
* \param a — the "before" extraction result
* \param b — the "after" extraction result
* \param opts — controls which sections are compared and optional truncation
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::{ExtractionResult, diff::{compare, DiffOptions}};
*
* let mut a = ExtractionResult::default();
* let mut b = ExtractionResult::default();
* a.content = "Hello world".to_string();
* b.content = "Hello Rust".to_string();
*
* let diff = compare(&a, &b, &DiffOptions::default());
* assert_eq!(diff.content_diff.len(), 1);
* \endcode
*/
KREUZBERGExtractionDiff *kreuzberg_compare(const KREUZBERGExtractionResult *a,
const KREUZBERGExtractionResult *b,
const KREUZBERGDiffOptions *opts);
/**
* Generate embeddings asynchronously for a list of text strings.
*
* This is the async counterpart to [`embed_texts`]. It offloads the blocking
* ONNX inference work to a dedicated blocking thread pool via Tokio's
* `spawn_blocking`, keeping the async executor free.
*
* Returns one embedding vector per input text in the same order.
* \param texts Vec of strings to embed (owned, sent to blocking thread)
* \param config Embedding configuration specifying model, batch size, and normalization
* \note - `KreuzbergError::MissingDependency` if ONNX Runtime is not installed
* - `KreuzbergError::Embedding` if the preset name is unknown, model download fails,
* or the blocking inference task panics
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
* \code
* use kreuzberg::{embed_texts_async, EmbeddingConfig};
*
* let embeddings = embed_texts_async(
* vec!["Hello!".to_string()],
* &EmbeddingConfig::default(),
* ).await?;
* \endcode
*/
char *kreuzberg_embed_texts_async(const char *texts,
const KREUZBERGEmbeddingConfig *config);
/**
* Return the byte length of the C string most recently returned by `kreuzberg_embed_texts_async` on
* this thread. Returns 0 when the primary call returned null or failed before producing a string.
* Enables safe slice construction in Zig and Java FFM Panama without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_embed_texts_async`.
*/
uintptr_t kreuzberg_embed_texts_async_len(const char *_texts,
const KREUZBERGEmbeddingConfig *_config);
/**
* Render a single PDF page to PNG bytes.
*
* Returns raw PNG-encoded bytes for the specified page at the given DPI.
* Uses pdf_oxide with tiny-skia for pure-Rust rendering.
* \param pdf_bytes Raw PDF file bytes
* \param page_index Zero-based page index
* \param dpi Resolution in dots per inch (default: 150)
* \param password Optional password for encrypted PDFs
* \note Returns `KreuzbergError::Parsing` if the PDF cannot be opened, authenticated,
* or rendered, or if `page_index` is out of range.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
int32_t kreuzberg_render_pdf_page_to_png(const uint8_t *pdf_bytes,
uintptr_t pdf_bytes_len,
uintptr_t page_index,
int32_t dpi,
const char *password,
uint8_t **out_ptr,
uintptr_t *out_len,
uintptr_t *out_cap);
/**
* Detect the MIME type of a file at the given path.
*
* Uses the file extension and optionally the file content to determine the MIME type.
* Set `check_exists` to `true` to verify the file exists before detection.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
char *kreuzberg_detect_mime_type(const char *path,
int32_t check_exists);
/**
* Return the byte length of the C string most recently returned by `kreuzberg_detect_mime_type` on
* this thread. Returns 0 when the primary call returned null or failed before producing a string.
* Enables safe slice construction in Zig and Java FFM Panama without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_detect_mime_type`.
*/
uintptr_t kreuzberg_detect_mime_type_len(const char *_path,
int32_t _check_exists);
/**
* Embed a list of texts using the configured embedding model.
*
* Returns a 2D vector where each inner vector is the embedding for the corresponding text.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
char *kreuzberg_embed_texts(const char *texts,
const KREUZBERGEmbeddingConfig *config);
/**
* Return the byte length of the C string most recently returned by `kreuzberg_embed_texts` on this
* thread. Returns 0 when the primary call returned null or failed before producing a string. Enables
* safe slice construction in Zig and Java FFM Panama without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_embed_texts`.
*/
uintptr_t kreuzberg_embed_texts_len(const char *_texts,
const KREUZBERGEmbeddingConfig *_config);
/**
* Get an embedding preset by name.
*
* Returns `None` if no preset with the given name exists. Returns an owned
* clone so the value is safe to pass across FFI boundaries.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
KREUZBERGEmbeddingPreset *kreuzberg_get_embedding_preset(const char *name);
/**
* List the names of all available embedding presets.
*
* Returns owned `String`s so the values are safe to pass across FFI boundaries.
* \note SAFETY: Caller must ensure all pointer arguments are valid or null. Returned pointers must be
* freed with the appropriate free function.
*/
char *kreuzberg_list_embedding_presets(void);
/**
* Return the byte length of the C string most recently returned by `kreuzberg_list_embedding_presets`
* on this thread. Returns 0 when the primary call returned null or failed before producing a string.
* Enables safe slice construction in Zig and Java FFM Panama without a NUL-scan.
* \note SAFETY: Pointer arguments are ignored and are present only to keep the companion ABI aligned
* with `kreuzberg_list_embedding_presets`.
*/
uintptr_t kreuzberg_list_embedding_presets_len(void);
/**
* Register a C plugin implementing `OcrBackend` via a vtable.
*
* # Parameters
*
* - `name`: null-terminated UTF-8 plugin name. Must not be null.
* - `vtable`: vtable with function pointers implementing the trait.
* - `user_data`: opaque pointer forwarded to every vtable function.
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* All function pointers in `vtable` must remain valid until the plugin is
* unregistered. `user_data` must be safe to use from any thread that calls
* into the plugin.
*/
int32_t kreuzberg_register_ocr_backend(const char *name,
struct KREUZBERGKreuzbergOcrBackendVTable vtable,
const void *user_data,
char **out_error);
/**
* Unregister a previously registered C plugin by name.
*
* # Parameters
*
* - `name`: null-terminated UTF-8 plugin name. Must not be null.
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* `name` must point to a valid null-terminated C string.
*/
int32_t kreuzberg_unregister_ocr_backend(const char *name,
char **out_error);
/**
* Remove all registered C plugins of this trait.
*
* # Parameters
*
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* `out_error` may be null. When non-null, the caller owns the resulting string
* and must free it with `kreuzberg_free_string`.
*/
int32_t kreuzberg_clear_ocr_backend(char **out_error);
/**
* Register a C plugin implementing `PostProcessor` via a vtable.
*
* # Parameters
*
* - `name`: null-terminated UTF-8 plugin name. Must not be null.
* - `vtable`: vtable with function pointers implementing the trait.
* - `user_data`: opaque pointer forwarded to every vtable function.
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* All function pointers in `vtable` must remain valid until the plugin is
* unregistered. `user_data` must be safe to use from any thread that calls
* into the plugin.
*/
int32_t kreuzberg_register_post_processor(const char *name,
struct KREUZBERGKreuzbergPostProcessorVTable vtable,
const void *user_data,
char **out_error);
/**
* Unregister a previously registered C plugin by name.
*
* # Parameters
*
* - `name`: null-terminated UTF-8 plugin name. Must not be null.
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* `name` must point to a valid null-terminated C string.
*/
int32_t kreuzberg_unregister_post_processor(const char *name,
char **out_error);
/**
* Remove all registered C plugins of this trait.
*
* # Parameters
*
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* `out_error` may be null. When non-null, the caller owns the resulting string
* and must free it with `kreuzberg_free_string`.
*/
int32_t kreuzberg_clear_post_processor(char **out_error);
/**
* Register a C plugin implementing `Validator` via a vtable.
*
* # Parameters
*
* - `name`: null-terminated UTF-8 plugin name. Must not be null.
* - `vtable`: vtable with function pointers implementing the trait.
* - `user_data`: opaque pointer forwarded to every vtable function.
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* All function pointers in `vtable` must remain valid until the plugin is
* unregistered. `user_data` must be safe to use from any thread that calls
* into the plugin.
*/
int32_t kreuzberg_register_validator(const char *name,
struct KREUZBERGKreuzbergValidatorVTable vtable,
const void *user_data,
char **out_error);
/**
* Unregister a previously registered C plugin by name.
*
* # Parameters
*
* - `name`: null-terminated UTF-8 plugin name. Must not be null.
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* `name` must point to a valid null-terminated C string.
*/
int32_t kreuzberg_unregister_validator(const char *name,
char **out_error);
/**
* Remove all registered C plugins of this trait.
*
* # Parameters
*
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* `out_error` may be null. When non-null, the caller owns the resulting string
* and must free it with `kreuzberg_free_string`.
*/
int32_t kreuzberg_clear_validator(char **out_error);
/**
* Register a C plugin implementing `EmbeddingBackend` via a vtable.
*
* # Parameters
*
* - `name`: null-terminated UTF-8 plugin name. Must not be null.
* - `vtable`: vtable with function pointers implementing the trait.
* - `user_data`: opaque pointer forwarded to every vtable function.
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* All function pointers in `vtable` must remain valid until the plugin is
* unregistered. `user_data` must be safe to use from any thread that calls
* into the plugin.
*/
int32_t kreuzberg_register_embedding_backend(const char *name,
struct KREUZBERGKreuzbergEmbeddingBackendVTable vtable,
const void *user_data,
char **out_error);
/**
* Unregister a previously registered C plugin by name.
*
* # Parameters
*
* - `name`: null-terminated UTF-8 plugin name. Must not be null.
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* `name` must point to a valid null-terminated C string.
*/
int32_t kreuzberg_unregister_embedding_backend(const char *name,
char **out_error);
/**
* Remove all registered C plugins of this trait.
*
* # Parameters
*
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* `out_error` may be null. When non-null, the caller owns the resulting string
* and must free it with `kreuzberg_free_string`.
*/
int32_t kreuzberg_clear_embedding_backend(char **out_error);
/**
* Register a C plugin implementing `DocumentExtractor` via a vtable.
*
* # Parameters
*
* - `name`: null-terminated UTF-8 plugin name. Must not be null.
* - `vtable`: vtable with function pointers implementing the trait.
* - `user_data`: opaque pointer forwarded to every vtable function.
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* All function pointers in `vtable` must remain valid until the plugin is
* unregistered. `user_data` must be safe to use from any thread that calls
* into the plugin.
*/
int32_t kreuzberg_register_document_extractor(const char *name,
struct KREUZBERGKreuzbergDocumentExtractorVTable vtable,
const void *user_data,
char **out_error);
/**
* Unregister a previously registered C plugin by name.
*
* # Parameters
*
* - `name`: null-terminated UTF-8 plugin name. Must not be null.
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* `name` must point to a valid null-terminated C string.
*/
int32_t kreuzberg_unregister_document_extractor(const char *name,
char **out_error);
/**
* Remove all registered C plugins of this trait.
*
* # Parameters
*
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* `out_error` may be null. When non-null, the caller owns the resulting string
* and must free it with `kreuzberg_free_string`.
*/
int32_t kreuzberg_clear_document_extractor(char **out_error);
/**
* Register a C plugin implementing `Renderer` via a vtable.
*
* # Parameters
*
* - `name`: null-terminated UTF-8 plugin name. Must not be null.
* - `vtable`: vtable with function pointers implementing the trait.
* - `user_data`: opaque pointer forwarded to every vtable function.
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* All function pointers in `vtable` must remain valid until the plugin is
* unregistered. `user_data` must be safe to use from any thread that calls
* into the plugin.
*/
int32_t kreuzberg_register_renderer(const char *name,
struct KREUZBERGKreuzbergRendererVTable vtable,
const void *user_data,
char **out_error);
/**
* Unregister a previously registered C plugin by name.
*
* # Parameters
*
* - `name`: null-terminated UTF-8 plugin name. Must not be null.
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* `name` must point to a valid null-terminated C string.
*/
int32_t kreuzberg_unregister_renderer(const char *name,
char **out_error);
/**
* Remove all registered C plugins of this trait.
*
* # Parameters
*
* - `out_error`: receives a heap-allocated error string on failure.
*
* # Safety
*
* `out_error` may be null. When non-null, the caller owns the resulting string
* and must free it with `kreuzberg_free_string`.
*/
int32_t kreuzberg_clear_renderer(char **out_error);
#endif /* KREUZBERG_H */