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

/**
 * Single Excel worksheet.
 *
 * Represents one sheet from an Excel workbook with its content
 * converted to Markdown format and dimensional statistics.
 */
data class ExcelSheet(
    /** Sheet name as it appears in Excel */
    val name: String,
    /** Sheet content converted to Markdown tables */
    val markdown: String,
    /** Number of rows */
    val rowCount: Long,
    /** Number of columns */
    val colCount: Long,
    /** Total number of non-empty cells */
    val cellCount: Long,
    /**
     * Pre-extracted table cells (2D vector of cell values)
     * Populated during markdown generation to avoid re-parsing markdown.
     * None for empty sheets.
     */
    val tableCells: List<List<String>>? = null,
)
