import type { PushNotificationPayload } from "../types"; import type { NotificationPresenter } from "../types"; import type { NotificationProcessingResult } from "../types"; import type { SirrusReactNativeSDK } from "../SirrusReactNativeSDK"; interface FirebaseNotificationLike { title?: string; body?: string; imageUrl?: string; ios?: { imageUrl?: string; }; android?: { imageUrl?: string; }; } export interface FirebaseRemoteMessageLike { messageId?: string; notification?: FirebaseNotificationLike; data?: Record; } export interface FirebaseMessagingLike { onMessage(listener: (message: FirebaseRemoteMessageLike) => void | Promise): () => void; onNotificationOpenedApp(listener: (message: FirebaseRemoteMessageLike) => void | Promise): () => void; getInitialNotification(): Promise; } export interface FirebaseMessagingBridgeOptions { displayForegroundNotifications?: boolean; notificationPresenter?: NotificationPresenter; onUnhandledNotificationReceived?: (message: FirebaseRemoteMessageLike, result: NotificationProcessingResult) => void | Promise; onUnhandledNotificationOpened?: (message: FirebaseRemoteMessageLike, result: NotificationProcessingResult) => void | Promise; mapDataToPayload?: (message: FirebaseRemoteMessageLike) => Partial; } export interface FirebaseMessagingBridge { processInitialNotification(): Promise; unsubscribe(): void; } export declare const mapFirebaseRemoteMessageToPushPayload: (message: FirebaseRemoteMessageLike, mapDataToPayload?: FirebaseMessagingBridgeOptions["mapDataToPayload"]) => PushNotificationPayload; export declare const bindFirebaseMessaging: (sdk: SirrusReactNativeSDK, messaging: FirebaseMessagingLike, options?: FirebaseMessagingBridgeOptions) => FirebaseMessagingBridge; export {};