#ifndef RUST_TARGET_PROVIDER_H
#define RUST_TARGET_PROVIDER_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdbool.h>
#include <stddef.h>
typedef struct {
void* provider; void* lib; } ProviderHandle;
ProviderHandle *create_provider_instance(const char *provider_path, const char *expected_hash, const char *config_json);
void destroy_provider_instance(ProviderHandle* handle);
const char* get_validation_rule(ProviderHandle* handle);
const char* get(ProviderHandle* handle, const char* deployment_json, const char* references_json);
const char* apply(ProviderHandle* handle, const char* deployment_json, const char* step_json, int is_dry_run);
#ifdef __cplusplus
}
#endif
#endif