package com.freshworks.freshdesk.reactnative import com.facebook.react.bridge.Promise import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactContextBaseJavaModule import com.facebook.react.bridge.ReadableMap /** * Old Architecture base class. * * A plain bridge module ([ReactContextBaseJavaModule]). Every method below * mirrors what @react-native/codegen generates for the New Architecture spec * (`com.freshworks.freshdesk.NativeFreshdeskSpec`), so the single * [FreshdeskModule] implementation can `override` the same method set against * either base. See docs/superpowers/plans/codegen-symbols.md for the verified * generated signatures. * * The generated Java spec declares its reference-type parameters as bare * `String` / `ReadableMap` (Java platform types); the non-null Kotlin forms * used here are a valid override of both bases and match the existing * [FreshdeskModule] method bodies. */ abstract class FreshdeskModuleSpec(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) { abstract fun initialize(config: ReadableMap, promise: Promise) abstract fun openSupport(promise: Promise) abstract fun openKnowledgeBase(promise: Promise) abstract fun openTopic(topicName: String, topicId: String, promise: Promise) abstract fun getUnreadCount(promise: Promise) abstract fun trackEvent(name: String, properties: ReadableMap, promise: Promise) abstract fun setUserProperties(properties: ReadableMap, promise: Promise) abstract fun setTicketProperties(properties: ReadableMap, promise: Promise) abstract fun authenticateAndUpdate(jwt: String, promise: Promise) abstract fun resetUser(promise: Promise) abstract fun dismiss(promise: Promise) abstract fun setLinkHandlerEnabled(enabled: Boolean, promise: Promise) abstract fun getSDKVersion(promise: Promise) abstract fun getUser(promise: Promise) abstract fun setContentConfiguration(configJson: String, promise: Promise) abstract fun enableDebugLogs(enabled: Boolean, promise: Promise) abstract fun runDiagnostics(promise: Promise) abstract fun addListener(eventName: String) abstract fun removeListeners(count: Double) }