[mrpt-bayes]

// namespaces

namespace mrpt::bayes;
    namespace mrpt::bayes::detail;

// enums

enum mrpt::bayes::TKFMethod;
enum mrpt::bayes::particle_storage_mode;

// structs

template <class Derived, class particle_list_t>
struct mrpt::bayes::CParticleFilterDataImpl;

template <class T, particle_storage_mode STORAGE>
struct mrpt::bayes::CProbabilityParticle;

struct mrpt::bayes::TKF_options;

// classes

template <
    size_t VEH_SIZE,
    size_t OBS_SIZE,
    size_t FEAT_SIZE,
    size_t ACT_SIZE,
    typename KFTYPE = double
    >
class mrpt::bayes::CKalmanFilterCapable;

class mrpt::bayes::CParticleFilter;
class mrpt::bayes::CParticleFilterCapable;

template <
    class T,
    particle_storage_mode STORAGE = particle_storage_mode::POINTER
    >
class mrpt::bayes::CParticleFilterData;

template <
    class TStateSpace,
    mrpt::bayes::particle_storage_mode STORAGE = mrpt::bayes::particle_storage_mode::POINTER
    >
class mrpt::bayes::CRejectionSamplingCapable;