from typing import Protocol


class HTTPProtocol(Protocol):
    """Used for providing static type-checking when parsing through the http protocol"""

    def on_message_begin(self) -> None: ...
    def on_url(self, url: bytes) -> None: ...
    def on_header(self, name: bytes, value: bytes) -> None: ...
    def on_headers_complete(self) -> None: ...
    def on_body(self, body: bytes) -> None: ...
    def on_message_complete(self) -> None: ...
    def on_chunk_header(self) -> None: ...
    def on_chunk_complete(self) -> None: ...
    def on_status(self, status: bytes) -> None: ...
