#ifndef BEXT_PHP_SAPI_H
#define BEXT_PHP_SAPI_H
#include <stddef.h>
#include <stdint.h>
typedef struct bext_request_ctx bext_request_ctx;
extern size_t bext_sapi_ub_write(bext_request_ctx *ctx, const char *str, size_t len);
extern size_t bext_sapi_read_post(bext_request_ctx *ctx, char *buf, size_t count);
extern char *bext_sapi_read_cookies(bext_request_ctx *ctx);
extern void bext_sapi_on_header(bext_request_ctx *ctx, const char *header, size_t header_len);
extern void bext_sapi_register_server_variables(bext_request_ctx *ctx, void *track_vars_array);
extern void bext_sapi_log_message(const char *message, int syslog_type);
extern int bext_sapi_worker_wait_request(bext_request_ctx **ctx_out);
extern void bext_sapi_worker_finish_request(bext_request_ctx *ctx, int status);
extern const char *bext_sapi_get_method(bext_request_ctx *ctx);
extern const char *bext_sapi_get_uri(bext_request_ctx *ctx);
extern const char *bext_sapi_get_query_string(bext_request_ctx *ctx);
extern const char *bext_sapi_get_content_type(bext_request_ctx *ctx);
extern int64_t bext_sapi_get_content_length(bext_request_ctx *ctx);
int bext_php_module_init(const char *ini_entries);
void bext_php_module_shutdown(void);
int bext_php_execute_script(bext_request_ctx *ctx,
const char *script_path,
const char *method,
const char *uri,
const char *query_string,
const char *content_type,
int64_t content_length);
int bext_php_execute_worker(bext_request_ctx *initial_ctx,
const char *worker_script_path);
void bext_php_register_variable(const char *key, const char *val, void *track_vars_array);
void bext_php_register_functions(void);
extern char *bext_sapi_jsc_render(const char *component, const char *props_json);
extern void bext_sapi_free_string(char *ptr);
#endif