ARRAY: int NATIVE: int LITTLE_ENDIAN: int BIG_ENDIAN: int VOID: int UINT8: int INT8: int UINT16: int INT16: int UINT32: int INT32: int UINT64: int INT64: int BFUINT8: int BFINT8: int BFUINT16: int BFINT16: int BFUINT32: int BFINT32: int BF_POS: int BF_LEN: int FLOAT32: int class struct: def __init__(self, addr: int, descriptor: dict, layout_type: int = ...) -> None: ... StructDict = dict[str, int | tuple[int, int]] def sizeof(struct: struct | bytearray | StructDict, endianity: int = LITTLE_ENDIAN, /) -> int: ... def addressof(obj: bytes) -> int: ... def bytes_at(addr: int, size: int) -> bytes: ... def bytearray_at(addr: int, size: int) -> bytearray: ...