cdef class InferenceEngine:
    def __init__(self, model_bytes: bytes, batch_size: int = 1, **kwargs):
        self.batch_size = batch_size

    cdef tuple get_input_shape(self):
        raise NotImplementedError("Subclass must implement get_input_shape")

    cdef int get_batch_size(self):
        return self.batch_size

    cdef run(self, input_data):
        raise NotImplementedError("Subclass must implement run")
