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

import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2
from ..core.unchecked_base_model import UncheckedBaseModel


class CueOptionsRequest(UncheckedBaseModel):
    min_duration_ms: typing.Optional[int] = pydantic.Field(default=None)
    """
    Minimum duration of each cue in milliseconds.
    """

    max_duration_ms: typing.Optional[int] = pydantic.Field(default=None)
    """
    Maximum duration of each cue in milliseconds.
    """

    max_lines_per_cue: typing.Optional[int] = pydantic.Field(default=None)
    """
    Maximum number of lines per cue.
    """

    max_chars_per_line: typing.Optional[int] = pydantic.Field(default=None)
    """
    Maximum number of characters per line in a cue.
    """

    max_chars_per_s: typing.Optional[int] = pydantic.Field(default=None)
    """
    Maximum characters per second reading speed. If not set, no reading speed limit is applied.
    """

    min_gap_between_cues_frames: typing.Optional[int] = pydantic.Field(default=None)
    """
    Minimum gap between consecutive cues in frames. If not set, no minimum gap is enforced.
    """

    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
