#include <stdarg.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>

void clear_cache(void);

void add_to_cache(const char *function_name, const char *path1, const char *path2);

const char *groth16_prove(const char *wasm_path, const char *zkey_path, const char *inputs);

const char *groth16_prove_v2(const char *graph_path, const char *zkey_path, const char *inputs);

const char *noir_prove(const char *data_path_cstr, const char *witness_cstr, const char *type_cstr);

const char *halo2_prove(const char *wasm_path, const char *public_inputs);

void free_string(char *s);
