from _typeshed import Incomplete
from collections.abc import Callable
from typing import ParamSpec, TypeVar

_P = ParamSpec("_P")
_T = TypeVar("_T")

MAX_INT: Incomplete
TO_SIGNED: Incomplete

def crc32(data): ...

class Timer:
    def __init__(self, timeout_ms, error_message=None, start_at=None) -> None: ...
    @property
    def expired(self): ...
    @property
    def timeout_ms(self): ...
    @property
    def elapsed_ms(self): ...
    def maybe_raise(self) -> None: ...

TOPIC_MAX_LENGTH: int
TOPIC_LEGAL_CHARS: Incomplete

def ensure_valid_topic_name(topic) -> None: ...

class WeakMethod:
    target: Incomplete
    method: Incomplete
    def __init__(self, object_dot_method) -> None: ...
    def __call__(self, *args, **kwargs): ...
    def __hash__(self): ...
    def __eq__(self, other): ...

class Dict(dict[Incomplete, Incomplete]): ...

def synchronized(func: Callable[_P, _T]) -> Callable[_P, _T]: ...
