# Stubs for autobahn.util (Python 3)
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.
from typing import Any, Optional
def public(obj: Any): ...
def encode_truncate(text: Any, limit: Any, encoding: str = ..., return_encoded: bool = ...): ...
def xor(d1: Any, d2: Any): ...
def utcstr(ts: Optional[Any] = ...): ...
def utcnow(): ...
class IdGenerator:
def __init__(self) -> None: ...
def next(self): ...
def __next__(self): ...
def rid(): ...
def id(): ...
def newid(length: int = ...): ...
def generate_token(char_groups: Any, chars_per_group: Any, chars: Optional[Any] = ..., sep: Optional[Any] = ..., lower_case: bool = ...): ...
def generate_activation_code(): ...
def generate_user_password(): ...
def generate_serial_number(): ...
def rtime(): ...
class Stopwatch:
def __init__(self, start: bool = ...) -> None: ...
def elapsed(self): ...
def pause(self): ...
def resume(self): ...
def stop(self): ...
class Tracker:
tracker: Any = ...
tracked: Any = ...
def __init__(self, tracker: Any, tracked: Any) -> None: ...
def track(self, key: Any) -> None: ...
def diff(self, start_key: Any, end_key: Any, formatted: bool = ...): ...
def absolute(self, key: Any): ...
def __getitem__(self, key: Any): ...
def __iter__(self): ...
class EqualityMixin:
def __eq__(self, other: Any): ...
def __ne__(self, other: Any): ...
class ObservableMixin:
def set_valid_events(self, valid_events: Optional[Any] = ...) -> None: ...
def on(self, event: Any, handler: Any) -> None: ...
def off(self, event: Optional[Any] = ..., handler: Optional[Any] = ...) -> None: ...
def fire(self, event: Any, *args: Any, **kwargs: Any): ...
class _LazyHexFormatter:
obj: Any = ...
def __init__(self, obj: Any) -> None: ...