/* DO NOT EDIT THIS FILE - it is machine generated */

#ifndef __gnu_xml_libxmlj_transform_GnomeTransformer__
#define __gnu_xml_libxmlj_transform_GnomeTransformer__

#include <jni.h>

#ifdef __cplusplus
extern "C"
{
#endif

JNIEXPORT jobject JNICALL Java_gnu_xml_libxmlj_transform_GnomeTransformer_newStylesheet (JNIEnv *env, jobject);
JNIEXPORT jobject JNICALL Java_gnu_xml_libxmlj_transform_GnomeTransformer_newStylesheetFromStream (JNIEnv *env, jobject, jobject, jbyteArray, jstring, jstring, jstring, jboolean, jboolean);
JNIEXPORT jobject JNICALL Java_gnu_xml_libxmlj_transform_GnomeTransformer_newStylesheetFromDoc (JNIEnv *env, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_xml_libxmlj_transform_GnomeTransformer_transformStreamToStream (JNIEnv *env, jobject, jobject, jbyteArray, jstring, jstring, jstring, jboolean, jboolean, jobject);
JNIEXPORT jobject JNICALL Java_gnu_xml_libxmlj_transform_GnomeTransformer_transformStreamToDoc (JNIEnv *env, jobject, jobject, jbyteArray, jstring, jstring, jstring, jboolean, jboolean);
JNIEXPORT void JNICALL Java_gnu_xml_libxmlj_transform_GnomeTransformer_transformStreamToSAX (JNIEnv *env, jobject, jobject, jbyteArray, jstring, jstring, jstring, jboolean, jboolean, jobject);
JNIEXPORT void JNICALL Java_gnu_xml_libxmlj_transform_GnomeTransformer_transformDocToStream (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT jobject JNICALL Java_gnu_xml_libxmlj_transform_GnomeTransformer_transformDocToDoc (JNIEnv *env, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_xml_libxmlj_transform_GnomeTransformer_transformDocToSAX (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_xml_libxmlj_transform_GnomeTransformer_free (JNIEnv *env, jobject);

#ifdef __cplusplus
}
#endif

#endif /* __gnu_xml_libxmlj_transform_GnomeTransformer__ */
