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: float = Field(default=0.0, gt=-1, lt=15_000.1) class ScreenshotModel(GetContentModel): full_page: bool | None = False