#include <vector>
#include <memory>

namespace d3rlpy {

  using namespace std;

  struct CTransition {
    vector<int> observation_shape;
    vector<int> meta_observation_shape;
    int action_size;
    unsigned char* observation_i;
    unsigned char* meta_observation_i;
    float* observation_f;
    int action_i;
    float* action_f;
    float reward;
    unsigned char* next_observation_i;
    unsigned char* next_meta_observation_i;
    float* next_observation_f;
    float terminal;
    float ep_id;
    float tr_id;
    shared_ptr<CTransition> prev_transition;
    shared_ptr<CTransition> next_transition;
  };

}
