# DO NOT EDIT THIS FILE!
#
# This file is generated from the WebDriver BiDi specification. If you need to make
# changes, edit the generator and regenerate all of the modules.
#
# WebDriver BiDi module: userAgentClientHints
"""
WebDriver BiDi userAgentClientHints module.

Provides an API for overriding the User-Agent Client Hints reported
by the browser, enabling tests to simulate different devices, platforms,
and browser brands without changing the actual browser binary.
"""

from __future__ import annotations

from dataclasses import dataclass, field
from typing import Any

@dataclass
class ClientHintsMetadata:
    """
    Full set of User-Agent Client Hint values to override.

    Attributes:
        brands: List of browser brand/version pairs (e.g. [BrandVersion('Chrome', '120')]).
        full_version_list: Brands with full version strings.
        platform: Operating system name (e.g. 'Windows', 'macOS').
        platform_version: OS version string.
        architecture: CPU architecture (e.g. 'x86', 'arm').
        model: Device model (primarily for mobile).
        mobile: True if the UA should appear to be a mobile device.
        bitness: Pointer-size bitness string ('32' or '64').
        wow64: True if running a 32-bit process on 64-bit Windows.
        form_factors: Device form factors (e.g. 'Desktop', 'Phone').
    """

    brands: list[Any] = field(default_factory=list)
    full_version_list: list[Any] = field(default_factory=list)
    platform: str | None = None
    platform_version: str | None = None
    architecture: str | None = None
    model: str | None = None
    mobile: bool | None = None
    bitness: str | None = None
    wow64: bool | None = None
    form_factors: list[Any] = field(default_factory=list)


@dataclass
class BrandVersion:
    """
    A single browser brand entry used in Client Hints brand lists.

    Attributes:
        brand: The browser/engine brand name (e.g. 'Google Chrome').
        version: The major or full version string (e.g. '120').
    """

    brand: str | None = None
    version: str | None = None


class UserAgentClientHints:
    """BiDi interface for overriding User-Agent Client Hints."""

    def __init__(self, conn) -> None:
        self._conn = conn

    pass
