# This file was auto-generated by Fern from our API Definition.

import typing

import pydantic
import typing_extensions
from ..core.pydantic_utilities import IS_PYDANTIC_V2
from ..core.serialization import FieldMetadata
from ..core.unchecked_base_model import UncheckedBaseModel


class ParseRunMetrics(UncheckedBaseModel):
    """
    Metrics about the parsing process.

    **Availability:** Present when `status` is `"PROCESSED"`.
    """

    processing_time_ms: typing_extensions.Annotated[float, FieldMetadata(alias="processingTimeMs")] = pydantic.Field(
        alias="processingTimeMs"
    )
    """
    The time taken to process the document in milliseconds.
    """

    page_count: typing_extensions.Annotated[float, FieldMetadata(alias="pageCount")] = pydantic.Field(alias="pageCount")
    """
    The number of pages from the document that were parsed. For PDF and image files, this is the actual page count. For spreadsheet files (Excel, CSV), this is an estimated page count based on content volume (~1000 tokens per page).
    """

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
