from __future__ import annotations from typing import Literal from pydantic import BaseModel, Field, HttpUrl class ViewPortModel(BaseModel): width: int = 1280 height: int = 720 class PageModel(BaseModel): color_scheme: Literal["light", "dark", "no-preference"] | None = "no-preference" java_script_enabled: bool | None = True viewport: ViewPortModel | None = None proxy: dict | None = None no_viewport: bool | None = False class GetContentModel(BaseModel): url: HttpUrl new_browser: bool | None = False query_selector: str | None = None ms_delay: int = Field(default=0.0, ge=0, le=15_000) class ScreenshotModel(GetContentModel): full_page: bool | None = False image_type: Literal["png", "jpeg"] = "jpeg"