from typing import Any

class SerializableTokenCache:
    def deserialize(self, state: str) -> None: ...
    def serialize(self) -> str: ...

class PublicClientApplication:
    token_cache: SerializableTokenCache
    def __init__(
        self,
        client_id: str,
        *,
        authority: str | None = ...,
        token_cache: SerializableTokenCache | None = ...,
    ) -> None: ...
    def initiate_device_flow(self, scopes: list[str] | None = ...) -> dict[str, Any]: ...
    def acquire_token_by_device_flow(self, flow: dict[str, Any]) -> dict[str, Any]: ...
    def acquire_token_silent(
        self,
        scopes: list[str],
        account: dict[str, Any],
    ) -> dict[str, Any] | None: ...
    def acquire_token_interactive(self, scopes: list[str]) -> dict[str, Any]: ...
    def get_accounts(self) -> list[dict[str, Any]]: ...
