from typing import List
from sys import platform
from http.cookiejar import CookieJar, Cookie


def firefox(domains: List[str] = None) -> List[dict]: ...
def firefox_based(key_path: str, db_path: str, domains: List[str] = None) -> List[dict]: ...
def brave(domains: List[str] = None) -> List[dict]: ...
def edge(domains: List[str] = None) -> List[dict]: ...
def chrome(domains: List[str] = None) -> List[dict]: ...
def chromium_based(db_path: str, domains: List[str] = None) -> List[dict]: ...
def chromium(domains: List[str] = None) -> List[dict]: ...
def opera(domains: List[str] = None) -> List[dict]: ...
def vivaldi(domains: List[str] = None) -> List[dict]: ...
def opera_gx(domains: List[str] = None) -> List[dict]: ...
def libre_wolf(domains: List[str] = None) -> List[dict]: ...
def load(domains: List[str] = None) -> List[dict]: ...
def any_browser(domains: List[str] = None) -> List[dict]: ...

# Windows
if platform == "win32":
    def internet_explorer(domains: List[str] = None) -> List[dict]: ...
    def octo_browser(domains: List[str] = None) -> List[dict]: ...

# MacOS
if platform == "darwin":
    def safari(domains: List[str] = None) -> List[dict]: ...


def create_cookie(host: str, path: str, secure: bool, expires: int, name: str, value: str, http_only: bool) -> Cookie: ...
def to_cookiejar(cookies: List[dict]) -> CookieJar: ...