from typing import Protocol, List, runtime_checkable


@runtime_checkable
class BusProtocol(Protocol):
    def read_byte_data(self, addr: int, reg: int) -> int: ...
    def write_byte_data(self, addr: int, reg: int, value: int) -> None: ...

    def read_i2c_block_data(self, addr: int, reg: int, size: int) -> list[int]: ...
    def write_i2c_block_data(self, addr: int, reg: int, data: list[int]) -> None: ...
