ersion_info >= (3, 7):
    class BufferedProtocol(BaseProtocol):
        def get_buffer(self, sizehint: int) -> bytearray: ...
        def buffer_updated(self, nbytes: int) -> None: ...

class DatagramProtocol(BaseProtocol):
    def datagram_received(self, data: bytes, addr: Tuple[str, int]) -> None: ...
    def error_received(self, exc: Exception) -> None: ...

class SubprocessProtocol(BaseProtocol):
    def pipe_data_received(self, fd: int, data: bytes) -> None: ...
    def pipe_connection_lost(self, fd: int, exc: Optional[Exception]) -> None: ...
    def process_exited(self) -> None: ...
PK