@freshworks/react-native-freshdesk-sdk
Version:
React Native wrapper for Freshdesk Android and iOS SDKs
38 lines (35 loc) • 1.6 kB
text/typescript
import type { TurboModule } from 'react-native';
import { TurboModuleRegistry } from 'react-native';
/**
* Codegen spec for the Freshdesk native module.
*
* Parsed by @react-native/codegen. MUST contain only the react-native import,
* the Spec interface, and the default export. All runtime logic (no-op
* fallback, NativeEventEmitter wiring) lives in ./FreshdeskModule.ts.
*
* Rich public types (FreshdeskConfig, ContentConfiguration, ...) stay in
* ./types.ts; the spec uses `Object` / `string` because codegen cannot
* resolve cross-file structured types.
*/
export interface Spec extends TurboModule {
initialize(config: Object): Promise<void>;
openSupport(): Promise<void>;
openKnowledgeBase(): Promise<void>;
openTopic(topicName: string, topicId: string): Promise<void>;
getUnreadCount(): Promise<number>;
trackEvent(name: string, properties: Object): Promise<void>;
setUserProperties(properties: Object): Promise<void>;
setTicketProperties(properties: Object): Promise<void>;
authenticateAndUpdate(jwt: string): Promise<void>;
resetUser(): Promise<{ success: boolean; message: string; error: string }>;
dismiss(): Promise<void>;
setLinkHandlerEnabled(enabled: boolean): Promise<void>;
getSDKVersion(): Promise<string>;
getUser(): Promise<string>;
setContentConfiguration(configJson: string): Promise<void>;
enableDebugLogs(enabled: boolean): Promise<void>;
runDiagnostics(): Promise<Object>;
addListener(eventName: string): void;
removeListeners(count: number): void;
}
export default TurboModuleRegistry.get<Spec>('FreshdeskReactNative');