// Generated by alef. Do not edit by hand.
@file:Suppress(
    "ktlint:standard:trailing-comma-on-call-site",
    "ktlint:standard:trailing-comma-on-declaration-site",
    "ktlint:standard:spacing-between-declarations-with-comments",
    "ktlint:standard:spacing-between-declarations-with-annotations",
    "ktlint:standard:when-entry-bracing",
    "ktlint:standard:blank-line-between-when-conditions",
    "ktlint:standard:blank-line-before-declaration",
    "ktlint:standard:chain-method-continuation",
    "ktlint:standard:annotation",
    "ktlint:standard:max-line-length",
    "ktlint:standard:no-semi",
    "ktlint:standard:statement-wrapping",
    "MaxLineLength",
    "TooManyFunctions",
    "FunctionParameterNaming",
    "LongParameterList",
    "CyclomaticComplexMethod",
    "LongMethod",
)

package dev.kreuzberg

/**
 * OCR extraction result.
 *
 * Result of performing OCR on an image or scanned document,
 * including recognized text and detected tables.
 */
data class OcrExtractionResult(
    /** Recognized text content */
    val content: String,
    /** Original MIME type of the processed image */
    val mimeType: String,
    /** OCR processing metadata (confidence scores, language, etc.) */
    val metadata: Map<String, Any> = emptyMap(),
    /** Tables detected and extracted via OCR */
    val tables: List<OcrTable> = emptyList(),
    /**
     * Structured OCR elements with bounding boxes and confidence scores.
     * Available when TSV output is requested or table detection is enabled.
     */
    val ocrElements: List<OcrElement>? = null,
    /**
     * Structured document produced from hOCR parsing.
     * Carries paragraph structure, bounding boxes, and confidence scores
     * that the flattened `content` string discards.
     */
    val internalDocument: String? = null,
)
