import { type TurboModule } from 'react-native'; import { type Spec as CodegenSpec } from './specs/modules/NativeCustomerIOMessagingPush'; import { type CioPushPermissionOptions, CioPushPermissionStatus } from './types'; /** * Ensures all methods defined in codegen spec are implemented by the public module * * @internal */ interface NativePushSpec extends Omit { } /** @public */ declare class CustomerIOPushMessaging implements NativePushSpec { /** * Processes push notification received outside the CIO SDK. The method displays notification on * device and tracks CIO metrics for push notification. * * @param message - push payload received from FCM. The payload must contain data payload received in push * notification. * @param handleNotificationTrigger - indicates whether it should display the notification or not. * true (default): The SDK will display the notification and track associated metrics. * false: The SDK will only process the notification to track metrics but will not display any notification. * @returns promise that resolves to boolean indicating if the notification was handled by the SDK or not. */ onMessageReceived(message: any, handleNotificationTrigger?: boolean): Promise; /** * Handles push notification received when app is background. Since FCM itself displays the notification * when app is background, this method makes it easier to determine whether the notification should be * displayed or not. * * @see [onMessageReceived] for more details */ onBackgroundMessageReceived(message: any): Promise; /** * Track push notifications metrics using this method. * Call this method when a user interacts and taps open the push notification. * @param payload - Customer.io payload as received from the push notification */ trackNotificationResponseReceived(payload: Object): void; /** * Track push notifications metrics using this method. * Call this method when a push notification is received. * @param payload - Customer.io payload as received from the push notification */ trackNotificationReceived(payload: Object): void; /** * Get the registered device token for the app. * @returns Promise with device token as a string, or error if no token is * registered or the method fails to fetch token. */ getRegisteredDeviceToken(): Promise; showPromptForPushNotifications(options?: CioPushPermissionOptions): Promise; getPushPermissionStatus(): Promise; isAndroid(): boolean; } export { CustomerIOPushMessaging }; //# sourceMappingURL=customerio-push.d.ts.map