@spec native_add_data(reference(), String.t()) :: {:ok, {}} | {:error, {atom(), String.t()}}
@spec native_add_policy(reference(), String.t(), String.t()) :: {:ok, {}} | {:error, {atom(), String.t()}}
@spec native_clear_coverage(reference()) :: {:ok, {}} | {:error, {atom(), String.t()}}
@spec native_clear_data(reference()) :: {:ok, {}} | {:error, {atom(), String.t()}}
@spec native_enable_coverage(reference(), boolean()) :: {:ok, {}} | {:error, {atom(), String.t()}}
@spec native_eval_query(reference(), String.t()) :: term() | {:error, {atom(), String.t()}}
@spec native_get_coverage_report(reference()) :: {:ok, map()} | {:error, {atom(), String.t()}}
@spec native_get_packages(reference()) :: {:ok, [String.t()]} | {:error, {atom(), String.t()}}
@spec native_get_rules(reference()) :: {:ok, map()} | {:error, {atom(), String.t()}}
@spec native_new() :: reference()
@spec native_set_input(reference(), String.t()) :: :ok | {:error, {atom(), String.t()}}