#ifndef WKBundle_h
#define WKBundle_h
#include <JavaScriptCore/JavaScript.h>
#include <WebKit/WKBase.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef void (*WKBundleDidCreatePageCallback)(WKBundleRef bundle, WKBundlePageRef page, const void* clientInfo);
typedef void (*WKBundleWillDestroyPageCallback)(WKBundleRef bundle, WKBundlePageRef page, const void* clientInfo);
typedef void (*WKBundleDidInitializePageGroupCallback)(WKBundleRef bundle, WKBundlePageGroupRef pageGroup, const void* clientInfo);
typedef void (*WKBundleDidReceiveMessageCallback)(WKBundleRef bundle, WKStringRef name, WKTypeRef messageBody, const void* clientInfo);
typedef void (*WKBundleDidReceiveMessageToPageCallback)(WKBundleRef bundle, WKBundlePageRef page, WKStringRef name, WKTypeRef messageBody, const void* clientInfo);
typedef struct WKBundleClientBase {
int version;
const void * clientInfo;
} WKBundleClientBase;
typedef struct WKBundleClientV0 {
WKBundleClientBase base;
WKBundleDidCreatePageCallback didCreatePage;
WKBundleWillDestroyPageCallback willDestroyPage;
WKBundleDidInitializePageGroupCallback didInitializePageGroup;
WKBundleDidReceiveMessageCallback didReceiveMessage;
} WKBundleClientV0;
typedef struct WKBundleClientV1 {
WKBundleClientBase base;
WKBundleDidCreatePageCallback didCreatePage;
WKBundleWillDestroyPageCallback willDestroyPage;
WKBundleDidInitializePageGroupCallback didInitializePageGroup;
WKBundleDidReceiveMessageCallback didReceiveMessage;
WKBundleDidReceiveMessageToPageCallback didReceiveMessageToPage;
} WKBundleClientV1;
enum { kWKBundleClientCurrentVersion WK_ENUM_DEPRECATED("Use an explicit version number instead") = 1 };
typedef struct WKBundleClient {
int version;
const void * clientInfo;
WKBundleDidCreatePageCallback didCreatePage;
WKBundleWillDestroyPageCallback willDestroyPage;
WKBundleDidInitializePageGroupCallback didInitializePageGroup;
WKBundleDidReceiveMessageCallback didReceiveMessage;
WKBundleDidReceiveMessageToPageCallback didReceiveMessageToPage;
} WKBundleClient WK_C_DEPRECATED("Use an explicit versioned struct instead");
WK_EXPORT WKTypeID WKBundleGetTypeID();
WK_EXPORT void WKBundleSetClient(WKBundleRef bundle, WKBundleClientBase* client);
WK_EXPORT void WKBundlePostMessage(WKBundleRef bundle, WKStringRef messageName, WKTypeRef messageBody);
WK_EXPORT void WKBundlePostSynchronousMessage(WKBundleRef bundle, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnData);
WK_EXPORT WKConnectionRef WKBundleGetApplicationConnection(WKBundleRef bundle);
WK_EXPORT void WKBundleReportException(JSContextRef, JSValueRef exception);
#ifdef __cplusplus
}
#endif
#endif