// Code generated by gobind. DO NOT EDIT.

// JNI function headers for the Go <=> Java bridge.
//
//   autogenerated by gobind -lang=java issue10788

#ifndef __Issue10788_H__
#define __Issue10788_H__

#include <jni.h>

extern jclass proxy_class_issue10788_TestInterface;
extern jmethodID proxy_class_issue10788_TestInterface_cons;

void cproxyissue10788_TestInterface_DoSomeWork(int32_t refnum, int32_t s);

void cproxyissue10788_TestInterface_MultipleUnnamedParams(int32_t refnum, nint p0, nstring p1, int64_t p2);

extern jclass proxy_class_issue10788_TestStruct;
extern jmethodID proxy_class_issue10788_TestStruct_cons;
#endif
