// 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

/**
 * Excel workbook representation.
 *
 * Contains all sheets from an Excel file (.xlsx, .xls, etc.) with
 * extracted content and metadata.
 */
data class ExcelWorkbook(
    /** All sheets in the workbook */
    val sheets: List<ExcelSheet> = emptyList(),
    /** Workbook-level metadata (author, creation date, etc.) */
    val metadata: Map<String, String> = emptyMap(),
    /**
     * Collaborative-edit revision headers from `xl/revisions/revisionHeaders.xml`.
     *
     * Populated for legacy shared-workbook `.xlsx` files that contain the
     * `xl/revisions/` directory. Each `<header>` element maps to one
     * `DocumentRevision { kind: FormatChange }` carrying the header's `guid`
     * (→ `revision_id`), `userName` (→ `author`), and `dateTime` (→ `timestamp`).
     * `anchor` and `delta` are `null`/empty for v1 (per-cell log parsing is a
     * follow-up). `null` when `xl/revisions/revisionHeaders.xml` is absent.
     */
    val revisions: List<DocumentRevision>? = null,
)
