from typing import Protocol, Callable, Awaitable, runtime_checkable


@runtime_checkable
class WebSocketClientProtocol(Protocol):
    async def connect(self) -> None: ...
    async def disconnect(self) -> None: ...
    async def sendText(self, message: str) -> None: ...

    def onTextMessage(self, callback: Callable[[str], Awaitable[None]]) -> None: ...
