# 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.FormatMetadata do @moduledoc """ Format-specific metadata (discriminated union). Only one format type can exist per extraction result. This provides type-safe, clean metadata without nested optionals. """ @typedoc "Format-specific metadata (discriminated union)." @type t :: term() @type pdf :: %{type: :pdf, metadata: Kreuzberg.PdfMetadata.t()} @type docx :: %{type: :docx, metadata: Kreuzberg.DocxMetadata.t()} @type excel :: %{type: :excel, metadata: Kreuzberg.ExcelMetadata.t()} @type email :: %{type: :email, metadata: Kreuzberg.EmailMetadata.t()} @type pptx :: %{type: :pptx, metadata: Kreuzberg.PptxMetadata.t()} @type archive :: %{type: :archive, metadata: Kreuzberg.ArchiveMetadata.t()} @type image :: %{type: :image, metadata: Kreuzberg.ImageMetadata.t()} @type xml :: %{type: :xml, metadata: Kreuzberg.XmlMetadata.t()} @type text :: %{type: :text, metadata: Kreuzberg.TextMetadata.t()} @type html :: %{type: :html, metadata: Kreuzberg.HtmlMetadata.t()} @type ocr :: %{type: :ocr, metadata: Kreuzberg.OcrMetadata.t()} @type csv :: %{type: :csv, metadata: Kreuzberg.CsvMetadata.t()} @type bibtex :: %{type: :bibtex, metadata: Kreuzberg.BibtexMetadata.t()} @type citation :: %{type: :citation, metadata: Kreuzberg.CitationMetadata.t()} @type fiction_book :: %{type: :fiction_book, metadata: Kreuzberg.FictionBookMetadata.t()} @type dbf :: %{type: :dbf, metadata: Kreuzberg.DbfMetadata.t()} @type jats :: %{type: :jats, metadata: Kreuzberg.JatsMetadata.t()} @type epub :: %{type: :epub, metadata: Kreuzberg.EpubMetadata.t()} @type pst :: %{type: :pst, metadata: Kreuzberg.PstMetadata.t()} @type code :: %{type: :code, value: String.t()} end