#ifndef HAKOCLUSTER_H
#define HAKOCLUSTER_H
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct HK_Cluster HK_Cluster;
HK_Cluster *hk_cluster_open(const char *paths_json, const char *sock_dir);
HK_Cluster *hk_cluster_open_with_config(const char *paths_json,
const char *config_json);
void hk_cluster_close(HK_Cluster *handle);
char *hk_cluster_put(HK_Cluster *handle, const char *collection,
const char *doc_id, const char *doc_json);
char *hk_cluster_get(HK_Cluster *handle, const char *collection,
const char *doc_id);
int hk_cluster_delete(HK_Cluster *handle, const char *collection,
const char *doc_id);
char *hk_cluster_query(HK_Cluster *handle, const char *query_json);
long long hk_cluster_promote(HK_Cluster *handle, size_t index);
unsigned long long hk_cluster_epoch(HK_Cluster *handle);
char *hk_cluster_refresh_health(HK_Cluster *handle);
int hk_cluster_tick_flush(HK_Cluster *handle);
typedef struct HK_Databases HK_Databases;
HK_Databases *hk_databases_open(const char *config_json);
void hk_databases_close(HK_Databases *handle);
HK_Cluster *hk_db_get(HK_Databases *handle, const char *name);
char *hk_databases_names(HK_Databases *handle);
void hk_cluster_string_free(char *value);
const char *hk_cluster_last_error(void);
#ifdef __cplusplus
}
#endif
#endif