extern "C" {
    // return JSON object as string
    const char* NativeGetToken();
    // return JSON object as string
    const char* NativeGetAccount();
    // return JSON object as string
    const char* NativeGetProduct(const char *productId);
    void NativeInitialize();
    void NativeApplicationInvite();
    void NativeApplicationReview();
    void NativeAuthorize();
    void NativeGetSocialFriends();
    // properties - JSON dictionary
    void NativePurchaseProduct(const char *productId, const char *serverId, const char *properties);
    void NativeRestoreProducts();
    void NativePrefetchProduct(const char *productId);
    void NativeGetProducts(const char *jsonProductIds);
    void NativeFinishPurchase(const char *jsonPurchase);
    void NativeShowProfile();
    void NativeLogEvent(const char *message);
    // eveentProperties - JSON dictionary
    void NativeSendEventToAnalytic(const char *eventName, const char *eventProperties);
    void NativeShowMessage(const char *message);
    void NativeForcedApplicationReview();
    void NativeCrashLog(const char *tag, const char *text);
    void NativeShowWebStore(const char *jsonPurchaseProperties);
    void NativeTrackSentryEvent(const char *eventName, const char *jsonValues);
    void NativeTrackSentryError(const char *name, const char *message);
}
