#include <cstdarg>
#include <cstdint>
#include <cstdlib>
#include <ostream>
#include <new>
struct ChaserConfigFFI {
uint32_t context_limit;
uint64_t timeout_ms;
uint32_t profile;
uint32_t lazy_init;
uint32_t headless;
const char *chrome_path;
};
struct ProxyConfigFFI {
const char *host;
uint16_t port;
const char *username;
const char *password;
};
using ChaserCallback = void(*)(const char *result, void *user_data);
extern "C" {
ChaserConfigFFI chaser_config_default();
int32_t chaser_init(const ChaserConfigFFI *config);
void chaser_shutdown();
int32_t chaser_is_ready();
void chaser_solve_waf_async(const char *url,
const ProxyConfigFFI *proxy,
void *user_data,
ChaserCallback callback);
void chaser_get_source_async(const char *url,
const ProxyConfigFFI *proxy,
void *user_data,
ChaserCallback callback);
void chaser_solve_turnstile_async(const char *url,
const ProxyConfigFFI *proxy,
void *user_data,
ChaserCallback callback);
void chaser_solve_turnstile_min_async(const char *url,
const char *site_key,
const ProxyConfigFFI *proxy,
void *user_data,
ChaserCallback callback);
void chaser_free_string(char *s);
}