#ifndef MltEncoderOptions_D_HPP
#define MltEncoderOptions_D_HPP
#include "diplomat_runtime.hpp"
#include <cstdlib>
#include <functional>
#include <memory>
#include <optional>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
class MltWireVersion;
namespace diplomat {
namespace capi {
struct MltEncoderOptions;
} }
class MltEncoderOptions {
public:
inline static std::unique_ptr<MltEncoderOptions> new_();
inline void set_tessellate(bool enabled);
inline void set_attempt_spatial_morton_sort(bool enabled);
inline void set_attempt_spatial_hilbert_sort(bool enabled);
inline void set_attempt_id_sort(bool enabled);
inline void set_allow_fsst(bool enabled);
inline void set_allow_fastpfor(bool enabled);
inline void set_allow_shared_dict(bool enabled);
inline void set_wire_version(MltWireVersion version);
inline void set_allow_triangles_only(bool enabled);
inline void set_allow_delta2(bool enabled);
inline void set_allow_float_dict(bool enabled);
inline void set_allow_float_alp(bool enabled);
inline void set_allow_packed_dict_codes(bool enabled);
inline void set_allow_rans_vertices(bool enabled);
inline void set_allow_row_shapes(bool enabled);
inline const diplomat::capi::MltEncoderOptions* AsFFI() const;
inline diplomat::capi::MltEncoderOptions* AsFFI();
inline static const MltEncoderOptions* FromFFI(const diplomat::capi::MltEncoderOptions* ptr);
inline static MltEncoderOptions* FromFFI(diplomat::capi::MltEncoderOptions* ptr);
inline static void operator delete(void* ptr);
private:
MltEncoderOptions() = delete;
MltEncoderOptions(const MltEncoderOptions&) = delete;
MltEncoderOptions(MltEncoderOptions&&) noexcept = delete;
MltEncoderOptions operator=(const MltEncoderOptions&) = delete;
MltEncoderOptions operator=(MltEncoderOptions&&) noexcept = delete;
static void operator delete[](void*, size_t) = delete;
};
#endif