# This file is auto-generated by alef — DO NOT EDIT.
# alef:hash:4e15143f4af1ae8bafbdb1506ef057da924484c66a19483966333558ad437e75
# To regenerate: alef generate
# To verify freshness: alef verify --exit-code
# Issues & docs: https://github.com/kreuzberg-dev/alef
defmodule Kreuzberg.DjotContent do
  @moduledoc """
  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.
  """

  @typedoc "Comprehensive Djot document structure with semantic preservation."
  @type t :: %__MODULE__{
          plain_text: String.t() | nil,
          blocks: [map()],
          metadata: map(),
          tables: [map()],
          images: [map()],
          links: [map()],
          footnotes: [map()],
          attributes: [String.t()]
        }

  defstruct plain_text: nil,
            blocks: [],
            metadata: nil,
            tables: [],
            images: [],
            links: [],
            footnotes: [],
            attributes: []
end
