|
| 1 | +import type { ReactNativeFirebase } from '@react-native-firebase/app'; |
| 2 | + |
1 | 3 | /** |
2 | 4 | * A currency amount. |
3 | 5 | */ |
@@ -869,3 +871,135 @@ export declare type EventNameString = |
869 | 871 | | 'view_item_list' |
870 | 872 | | 'view_promotion' |
871 | 873 | | 'view_search_results'; |
| 874 | + |
| 875 | +// ============ Module Interface ============ |
| 876 | + |
| 877 | +/** |
| 878 | + * Analytics module instance - returned from firebase.analytics() or firebase.app().analytics() |
| 879 | + */ |
| 880 | +export interface AnalyticsModule extends ReactNativeFirebase.FirebaseModule { |
| 881 | + /** The FirebaseApp this module is associated with */ |
| 882 | + app: ReactNativeFirebase.FirebaseApp; |
| 883 | + |
| 884 | + logEvent( |
| 885 | + name: string, |
| 886 | + params?: { [key: string]: any }, |
| 887 | + options?: AnalyticsCallOptions, |
| 888 | + ): Promise<void>; |
| 889 | + |
| 890 | + setAnalyticsCollectionEnabled(enabled: boolean): Promise<void>; |
| 891 | + |
| 892 | + setSessionTimeoutDuration(milliseconds?: number): Promise<void>; |
| 893 | + |
| 894 | + getAppInstanceId(): Promise<string | null>; |
| 895 | + |
| 896 | + getSessionId(): Promise<number | null>; |
| 897 | + |
| 898 | + setUserId(id: string | null): Promise<void>; |
| 899 | + |
| 900 | + setUserProperty(name: string, value: string | null): Promise<void>; |
| 901 | + |
| 902 | + setUserProperties( |
| 903 | + properties: { [key: string]: string | null }, |
| 904 | + options?: AnalyticsCallOptions, |
| 905 | + ): Promise<void>; |
| 906 | + |
| 907 | + resetAnalyticsData(): Promise<void>; |
| 908 | + |
| 909 | + setConsent(consentSettings: ConsentSettings): Promise<void>; |
| 910 | + |
| 911 | + setDefaultEventParameters(params?: { [key: string]: any }): Promise<void>; |
| 912 | + |
| 913 | + // Event logging methods |
| 914 | + logAddPaymentInfo(object: AddPaymentInfoEventParameters): Promise<void>; |
| 915 | + logScreenView(object: ScreenViewParameters): Promise<void>; |
| 916 | + logAddShippingInfo(object?: AddShippingInfoParameters): Promise<void>; |
| 917 | + logAddToCart(object?: AddToCartEventParameters): Promise<void>; |
| 918 | + logAddToWishlist(object?: AddToWishlistEventParameters): Promise<void>; |
| 919 | + logAppOpen(): Promise<void>; |
| 920 | + logBeginCheckout(object?: BeginCheckoutEventParameters): Promise<void>; |
| 921 | + logCampaignDetails(object: CampaignDetailsEventParameters): Promise<void>; |
| 922 | + logEarnVirtualCurrency(object: EarnVirtualCurrencyEventParameters): Promise<void>; |
| 923 | + logGenerateLead(object?: GenerateLeadEventParameters): Promise<void>; |
| 924 | + logJoinGroup(object: JoinGroupEventParameters): Promise<void>; |
| 925 | + logLevelEnd(object: LevelEndEventParameters): Promise<void>; |
| 926 | + logLevelStart(object: LevelStartEventParameters): Promise<void>; |
| 927 | + logLevelUp(object: LevelUpEventParameters): Promise<void>; |
| 928 | + logLogin(object: LoginEventParameters): Promise<void>; |
| 929 | + logPostScore(object: PostScoreEventParameters): Promise<void>; |
| 930 | + logSelectContent(object: SelectContentEventParameters): Promise<void>; |
| 931 | + logPurchase(object?: PurchaseEventParameters): Promise<void>; |
| 932 | + logRefund(object?: RefundEventParameters): Promise<void>; |
| 933 | + logRemoveFromCart(object?: RemoveFromCartEventParameters): Promise<void>; |
| 934 | + logSearch(object: SearchEventParameters): Promise<void>; |
| 935 | + logSelectItem(object: SelectItemEventParameters): Promise<void>; |
| 936 | + logSetCheckoutOption(object: SetCheckoutOptionEventParameters): Promise<void>; |
| 937 | + logSelectPromotion(object: SelectPromotionEventParameters): Promise<void>; |
| 938 | + logShare(object: ShareEventParameters): Promise<void>; |
| 939 | + logSignUp(object: SignUpEventParameters): Promise<void>; |
| 940 | + logSpendVirtualCurrency(object: SpendVirtualCurrencyEventParameters): Promise<void>; |
| 941 | + logTutorialBegin(): Promise<void>; |
| 942 | + logTutorialComplete(): Promise<void>; |
| 943 | + logUnlockAchievement(object: UnlockAchievementEventParameters): Promise<void>; |
| 944 | + logViewCart(object?: ViewCartEventParameters): Promise<void>; |
| 945 | + logViewItem(object?: ViewItemEventParameters): Promise<void>; |
| 946 | + logViewItemList(object?: ViewItemListEventParameters): Promise<void>; |
| 947 | + logViewPromotion(object?: ViewPromotionEventParameters): Promise<void>; |
| 948 | + logViewSearchResults(object: ViewSearchResultsParameters): Promise<void>; |
| 949 | + |
| 950 | + // iOS-specific methods |
| 951 | + initiateOnDeviceConversionMeasurementWithEmailAddress(emailAddress: string): Promise<void>; |
| 952 | + initiateOnDeviceConversionMeasurementWithHashedEmailAddress( |
| 953 | + hashedEmailAddress: string, |
| 954 | + ): Promise<void>; |
| 955 | + initiateOnDeviceConversionMeasurementWithPhoneNumber(phoneNumber: string): Promise<void>; |
| 956 | + initiateOnDeviceConversionMeasurementWithHashedPhoneNumber( |
| 957 | + hashedPhoneNumber: string, |
| 958 | + ): Promise<void>; |
| 959 | +} |
| 960 | + |
| 961 | +// ============ Type Aliases for Convenience ============ |
| 962 | + |
| 963 | +export type Analytics = AnalyticsModule; |
| 964 | + |
| 965 | +/** |
| 966 | + * @deprecated Use AnalyticsModule instead. |
| 967 | + * FirebaseAnalyticsModule is kept for backwards compatibility. |
| 968 | + */ |
| 969 | +export type FirebaseAnalyticsModule = AnalyticsModule; |
| 970 | + |
| 971 | +/** |
| 972 | + * Default export type for analytics module |
| 973 | + */ |
| 974 | +export type AnalyticsDefaultExport = ReactNativeFirebase.FirebaseModuleWithStatics< |
| 975 | + AnalyticsModule, |
| 976 | + Statics |
| 977 | +> & { |
| 978 | + (): AnalyticsModule; |
| 979 | + (app?: ReactNativeFirebase.FirebaseApp): AnalyticsModule; |
| 980 | +}; |
| 981 | + |
| 982 | +/** |
| 983 | + * Firebase root export type for analytics module |
| 984 | + */ |
| 985 | +export type AnalyticsFirebaseExport = AnalyticsModule & { |
| 986 | + analytics: AnalyticsDefaultExport; |
| 987 | + SDK_VERSION: string; |
| 988 | + app(name?: string): ReactNativeFirebase.FirebaseApp & { analytics(): AnalyticsModule }; |
| 989 | +}; |
| 990 | + |
| 991 | +// ============ Backwards Compatibility Namespace ============ |
| 992 | + |
| 993 | +/** |
| 994 | + * @deprecated Use the exported types directly instead. |
| 995 | + * FirebaseAnalyticsTypes namespace is kept for backwards compatibility. |
| 996 | + */ |
| 997 | +/* eslint-disable @typescript-eslint/no-namespace */ |
| 998 | +export namespace FirebaseAnalyticsTypes { |
| 999 | + // Short name aliases referencing top-level types |
| 1000 | + export type Module = AnalyticsModule; |
| 1001 | + export type CallOptions = AnalyticsCallOptions; |
| 1002 | + export type Consent = ConsentSettings; |
| 1003 | + export type Settings = AnalyticsSettings; |
| 1004 | +} |
| 1005 | +/* eslint-enable @typescript-eslint/no-namespace */ |
0 commit comments