use std::os::raw::{c_char, c_int, c_uint};
pub enum HlmFfiClient {}
extern "C" {
pub fn hlm_ffi_create(
base_url: *const c_char,
product_id: *const c_char,
client_api_key: *const c_char,
jwks_json: *const c_char,
format: c_int,
valid_days: c_uint,
machine_id: *const c_char,
machine_name: *const c_char,
license_path: *const c_char,
) -> *mut HlmFfiClient;
pub fn hlm_ffi_destroy(c: *mut HlmFfiClient);
pub fn hlm_ffi_check(c: *mut HlmFfiClient) -> c_int;
pub fn hlm_ffi_activate(c: *mut HlmFfiClient, receipt_code: *const c_char) -> c_int;
pub fn hlm_ffi_deactivate(c: *mut HlmFfiClient) -> c_int;
pub fn hlm_ffi_refresh(c: *mut HlmFfiClient) -> c_int;
pub fn hlm_ffi_status(c: *mut HlmFfiClient) -> c_int;
pub fn hlm_ffi_status_name(c: *mut HlmFfiClient) -> *const c_char;
pub fn hlm_ffi_license_id(c: *mut HlmFfiClient) -> *const c_char;
pub fn hlm_ffi_product_name(c: *mut HlmFfiClient) -> *const c_char;
pub fn hlm_ffi_buyer_email(c: *mut HlmFfiClient) -> *const c_char;
pub fn hlm_ffi_expires(c: *mut HlmFfiClient) -> i64;
pub fn hlm_ffi_trial_end(c: *mut HlmFfiClient) -> i64;
pub fn hlm_ffi_receipt_expires(c: *mut HlmFfiClient) -> i64;
pub fn hlm_ffi_live_mode(c: *mut HlmFfiClient) -> c_int;
pub fn hlm_ffi_metadata(c: *mut HlmFfiClient, key: *const c_char) -> *const c_char;
pub fn hlm_ffi_last_http_status(c: *mut HlmFfiClient) -> c_int;
pub fn hlm_ffi_last_error_detail(c: *mut HlmFfiClient) -> *const c_char;
pub fn hlm_ffi_err_name(err: c_int) -> *const c_char;
pub fn hlm_ffi_machine_id(out: *mut c_char, cap: c_int) -> c_int;
pub fn hlm_ffi_machine_name(out: *mut c_char, cap: c_int) -> c_int;
pub fn hlm_ffi_verify(
jws: *const c_char,
jwks_json: *const c_char,
expected_product_id: *const c_char,
expected_machine_id: *const c_char,
now: i64,
status_out: *mut c_int,
) -> c_int;
}