import { TurboModuleRegistry, type TurboModule } from 'react-native'; import type { UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes'; /** * Native module specification for CustomerIO Push Messaging React Native SDK * * @see NativeCustomerIO.ts for detailed documentation on TurboModule patterns, * Codegen compatibility, and type safety approach. */ type NativeBridgeObject = UnsafeObject; export interface Spec extends TurboModule { onMessageReceived( message: NativeBridgeObject, handleNotificationTrigger: boolean ): Promise; trackNotificationResponseReceived(payload: NativeBridgeObject): void; trackNotificationReceived(payload: NativeBridgeObject): void; getRegisteredDeviceToken(): Promise; showPromptForPushNotifications(options: NativeBridgeObject): Promise; getPushPermissionStatus(): Promise; } export default TurboModuleRegistry.getEnforcing( 'NativeCustomerIOMessagingPush' );