import abc
from _typeshed import Incomplete
from abc import ABC, abstractmethod
from typing import Literal
class UAGen(ABC, metaclass=abc.ABCMeta):
@abstractmethod
def generate(self, browsers: list[str] | None = None, os: str | list[str] | None = None, min_version: float = 0.0, platforms: str | list[str] | None = None, pct_threshold: float | None = None, fallback: str = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Chrome/116.0.0.0 Safari/537.36') -> str | dict: ...
@staticmethod
def generate_client_hints(user_agent: str) -> str: ...
class ValidUAGenerator(UAGen):
ua: Incomplete
def __init__(self) -> None: ...
def generate(self, browsers: list[str] | None = None, os: str | list[str] | None = None, min_version: float = 0.0, platforms: str | list[str] | None = None, pct_threshold: float | None = None, fallback: str = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Chrome/116.0.0.0 Safari/537.36') -> str: ...
class OnlineUAGenerator(UAGen):
agents: Incomplete
def __init__(self) -> None: ...
def generate(self, browsers: list[str] | None = None, os: str | list[str] | None = None, min_version: float = 0.0, platforms: str | list[str] | None = None, pct_threshold: float | None = None, fallback: str = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Chrome/116.0.0.0 Safari/537.36') -> dict: ...
class UserAgentGenerator:
desktop_platforms: Incomplete
mobile_platforms: Incomplete
browser_combinations: Incomplete
rendering_engines: Incomplete
chrome_versions: Incomplete
edge_versions: Incomplete
safari_versions: Incomplete
firefox_versions: Incomplete
def __init__(self) -> None: ...
def get_browser_stack(self, num_browsers: int = 1) -> list[str]: ...
def generate(self, device_type: Literal['desktop', 'mobile'] | None = None, os_type: str | None = None, device_brand: str | None = None, browser_type: Literal['chrome', 'edge', 'safari', 'firefox'] | None = None, num_browsers: int = 3) -> str: ...
def generate_with_client_hints(self, **kwargs) -> tuple[str, str]: ...
def get_random_platform(self, device_type, os_type, device_brand): ...
def parse_user_agent(self, user_agent: str) -> dict[str, str]: ...
def generate_client_hints(self, user_agent: str) -> str: ...