@depup/firebase__analytics 0.10.20-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +31 -0
  2. package/changes.json +10 -0
  3. package/dist/analytics-public.d.ts +763 -0
  4. package/dist/analytics.d.ts +763 -0
  5. package/dist/esm/index.esm.js +1272 -0
  6. package/dist/esm/index.esm.js.map +1 -0
  7. package/dist/esm/package.json +1 -0
  8. package/dist/esm/src/api.d.ts +453 -0
  9. package/dist/esm/src/constants.d.ts +32 -0
  10. package/dist/esm/src/errors.d.ts +57 -0
  11. package/dist/esm/src/factory.d.ts +74 -0
  12. package/dist/esm/src/functions.d.ts +85 -0
  13. package/dist/esm/src/get-config.d.ts +72 -0
  14. package/dist/esm/src/helpers.d.ts +70 -0
  15. package/dist/esm/src/index.d.ts +14 -0
  16. package/dist/esm/src/initialize-analytics.d.ts +36 -0
  17. package/dist/esm/src/logger.d.ts +18 -0
  18. package/dist/esm/src/public-types.d.ts +282 -0
  19. package/dist/esm/src/types.d.ts +55 -0
  20. package/dist/esm/testing/get-fake-firebase-services.d.ts +29 -0
  21. package/dist/esm/testing/gtag-script-util.d.ts +1 -0
  22. package/dist/esm/testing/integration-tests/integration.d.ts +18 -0
  23. package/dist/esm/testing/setup.d.ts +17 -0
  24. package/dist/index.cjs.js +1287 -0
  25. package/dist/index.cjs.js.map +1 -0
  26. package/dist/src/api.d.ts +453 -0
  27. package/dist/src/constants.d.ts +32 -0
  28. package/dist/src/errors.d.ts +57 -0
  29. package/dist/src/factory.d.ts +74 -0
  30. package/dist/src/functions.d.ts +85 -0
  31. package/dist/src/get-config.d.ts +72 -0
  32. package/dist/src/global_index.d.ts +1056 -0
  33. package/dist/src/helpers.d.ts +70 -0
  34. package/dist/src/index.d.ts +14 -0
  35. package/dist/src/initialize-analytics.d.ts +36 -0
  36. package/dist/src/logger.d.ts +18 -0
  37. package/dist/src/public-types.d.ts +282 -0
  38. package/dist/src/tsdoc-metadata.json +11 -0
  39. package/dist/src/types.d.ts +55 -0
  40. package/dist/testing/get-fake-firebase-services.d.ts +29 -0
  41. package/dist/testing/gtag-script-util.d.ts +1 -0
  42. package/dist/testing/integration-tests/integration.d.ts +18 -0
  43. package/dist/testing/setup.d.ts +17 -0
  44. package/package.json +95 -0
@@ -0,0 +1,763 @@
1
+ /**
2
+ * The Firebase Analytics Web SDK.
3
+ * This SDK does not work in a Node.js environment.
4
+ *
5
+ * @packageDocumentation
6
+ */
7
+
8
+ import { FirebaseApp } from '@firebase/app';
9
+
10
+ /**
11
+ * An instance of Firebase Analytics.
12
+ * @public
13
+ */
14
+ export declare interface Analytics {
15
+ /**
16
+ * The {@link @firebase/app#FirebaseApp} this {@link Analytics} instance is associated with.
17
+ */
18
+ app: FirebaseApp;
19
+ }
20
+
21
+ /**
22
+ * Additional options that can be passed to Analytics method
23
+ * calls such as `logEvent`, etc.
24
+ * @public
25
+ */
26
+ export declare interface AnalyticsCallOptions {
27
+ /**
28
+ * If true, this config or event call applies globally to all
29
+ * Google Analytics properties on the page.
30
+ */
31
+ global: boolean;
32
+ }
33
+
34
+ /**
35
+ * {@link Analytics} instance initialization options.
36
+ * @public
37
+ */
38
+ export declare interface AnalyticsSettings {
39
+ /**
40
+ * Params to be passed in the initial `gtag` config call during Firebase
41
+ * Analytics initialization.
42
+ */
43
+ config?: GtagConfigParams | EventParams;
44
+ }
45
+
46
+ /**
47
+ * Consent status settings for each consent type.
48
+ * For more information, see
49
+ * {@link https://developers.google.com/tag-platform/tag-manager/templates/consent-apis
50
+ * | the GA4 reference documentation for consent state and consent types}.
51
+ * @public
52
+ */
53
+ export declare interface ConsentSettings {
54
+ /** Enables storage, such as cookies, related to advertising */
55
+ ad_storage?: ConsentStatusString;
56
+ /** Sets consent for sending user data to Google for advertising purposes. */
57
+ ad_user_data?: ConsentStatusString;
58
+ /** Sets consent for personalized advertising. */
59
+ ad_personalization?: ConsentStatusString;
60
+ /** Enables storage, such as cookies, related to analytics (for example, visit duration) */
61
+ analytics_storage?: ConsentStatusString;
62
+ /**
63
+ * Enables storage that supports the functionality of the website or app such as language settings
64
+ */
65
+ functionality_storage?: ConsentStatusString;
66
+ /** Enables storage related to personalization such as video recommendations */
67
+ personalization_storage?: ConsentStatusString;
68
+ /**
69
+ * Enables storage related to security such as authentication functionality, fraud prevention,
70
+ * and other user protection.
71
+ */
72
+ security_storage?: ConsentStatusString;
73
+ [key: string]: unknown;
74
+ }
75
+
76
+ /**
77
+ * Whether a particular consent type has been granted or denied.
78
+ * @public
79
+ */
80
+ export declare type ConsentStatusString = 'granted' | 'denied';
81
+
82
+ /**
83
+ * Standard `gtag.js` control parameters.
84
+ * For more information, see
85
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
86
+ * | the GA4 reference documentation}.
87
+ * @public
88
+ */
89
+ export declare interface ControlParams {
90
+ groups?: string | string[];
91
+ send_to?: string | string[];
92
+ event_callback?: () => void;
93
+ event_timeout?: number;
94
+ }
95
+
96
+ /**
97
+ * Standard Google Analytics currency type.
98
+ * @public
99
+ */
100
+ export declare type Currency = string | number;
101
+
102
+ /**
103
+ * Any custom event name string not in the standard list of recommended
104
+ * event names.
105
+ * @public
106
+ */
107
+ export declare type CustomEventName<T> = T extends EventNameString ? never : T;
108
+
109
+ /**
110
+ * Any custom params the user may pass to `gtag`.
111
+ * @public
112
+ */
113
+ export declare interface CustomParams {
114
+ [key: string]: unknown;
115
+ }
116
+
117
+ /**
118
+ * Type for standard Google Analytics event names. `logEvent` also accepts any
119
+ * custom string and interprets it as a custom event name.
120
+ * @public
121
+ */
122
+ export declare type EventNameString = 'add_payment_info' | 'add_shipping_info' | 'add_to_cart' | 'add_to_wishlist' | 'begin_checkout' | 'checkout_progress' | 'exception' | 'generate_lead' | 'login' | 'page_view' | 'purchase' | 'refund' | 'remove_from_cart' | 'screen_view' | 'search' | 'select_content' | 'select_item' | 'select_promotion' | 'set_checkout_option' | 'share' | 'sign_up' | 'timing_complete' | 'view_cart' | 'view_item' | 'view_item_list' | 'view_promotion' | 'view_search_results';
123
+
124
+ /**
125
+ * Standard `gtag.js` event parameters.
126
+ * For more information, see
127
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
128
+ * | the GA4 reference documentation}.
129
+ * @public
130
+ */
131
+ export declare interface EventParams {
132
+ checkout_option?: string;
133
+ checkout_step?: number;
134
+ item_id?: string;
135
+ content_type?: string;
136
+ coupon?: string;
137
+ currency?: string;
138
+ description?: string;
139
+ fatal?: boolean;
140
+ items?: Item[];
141
+ method?: string;
142
+ number?: string;
143
+ promotions?: Promotion[];
144
+ screen_name?: string;
145
+ /**
146
+ * Firebase-specific. Use to log a `screen_name` to Firebase Analytics.
147
+ */
148
+ firebase_screen?: string;
149
+ /**
150
+ * Firebase-specific. Use to log a `screen_class` to Firebase Analytics.
151
+ */
152
+ firebase_screen_class?: string;
153
+ search_term?: string;
154
+ shipping?: Currency;
155
+ tax?: Currency;
156
+ transaction_id?: string;
157
+ value?: number;
158
+ event_label?: string;
159
+ event_category?: string;
160
+ shipping_tier?: string;
161
+ item_list_id?: string;
162
+ item_list_name?: string;
163
+ promotion_id?: string;
164
+ promotion_name?: string;
165
+ payment_type?: string;
166
+ affiliation?: string;
167
+ page_title?: string;
168
+ page_location?: string;
169
+ page_path?: string;
170
+ [key: string]: unknown;
171
+ }
172
+
173
+ /**
174
+ * Returns an {@link Analytics} instance for the given app.
175
+ *
176
+ * @public
177
+ *
178
+ * @param app - The {@link @firebase/app#FirebaseApp} to use.
179
+ */
180
+ export declare function getAnalytics(app?: FirebaseApp): Analytics;
181
+
182
+ /**
183
+ * Retrieves a unique Google Analytics identifier for the web client.
184
+ * See {@link https://developers.google.com/analytics/devguides/collection/ga4/reference/config#client_id | client_id}.
185
+ *
186
+ * @public
187
+ *
188
+ * @param app - The {@link @firebase/app#FirebaseApp} to use.
189
+ */
190
+ export declare function getGoogleAnalyticsClientId(analyticsInstance: Analytics): Promise<string>;
191
+
192
+ /**
193
+ * A set of common Google Analytics config settings recognized by
194
+ * `gtag.js`.
195
+ * @public
196
+ */
197
+ export declare interface GtagConfigParams {
198
+ /**
199
+ * Whether or not a page view should be sent.
200
+ * If set to true (default), a page view is automatically sent upon initialization
201
+ * of analytics.
202
+ * See {@link https://developers.google.com/analytics/devguides/collection/ga4/views | Page views }
203
+ */
204
+ 'send_page_view'?: boolean;
205
+ /**
206
+ * The title of the page.
207
+ * See {@link https://developers.google.com/analytics/devguides/collection/ga4/views | Page views }
208
+ */
209
+ 'page_title'?: string;
210
+ /**
211
+ * The URL of the page.
212
+ * See {@link https://developers.google.com/analytics/devguides/collection/ga4/views | Page views }
213
+ */
214
+ 'page_location'?: string;
215
+ /**
216
+ * Defaults to `auto`.
217
+ * See {@link https://developers.google.com/analytics/devguides/collection/ga4/cookies-user-id | Cookies and user identification }
218
+ */
219
+ 'cookie_domain'?: string;
220
+ /**
221
+ * Defaults to 63072000 (two years, in seconds).
222
+ * See {@link https://developers.google.com/analytics/devguides/collection/ga4/cookies-user-id | Cookies and user identification }
223
+ */
224
+ 'cookie_expires'?: number;
225
+ /**
226
+ * Defaults to `_ga`.
227
+ * See {@link https://developers.google.com/analytics/devguides/collection/ga4/cookies-user-id | Cookies and user identification }
228
+ */
229
+ 'cookie_prefix'?: string;
230
+ /**
231
+ * If set to true, will update cookies on each page load.
232
+ * Defaults to true.
233
+ * See {@link https://developers.google.com/analytics/devguides/collection/ga4/cookies-user-id | Cookies and user identification }
234
+ */
235
+ 'cookie_update'?: boolean;
236
+ /**
237
+ * Appends additional flags to the cookie when set.
238
+ * See {@link https://developers.google.com/analytics/devguides/collection/ga4/cookies-user-id | Cookies and user identification }
239
+ */
240
+ 'cookie_flags'?: string;
241
+ /**
242
+ * If set to false, disables all advertising features with `gtag.js`.
243
+ * See {@link https://developers.google.com/analytics/devguides/collection/ga4/display-features | Disable advertising features }
244
+ */
245
+ 'allow_google_signals'?: boolean;
246
+ /**
247
+ * If set to false, disables all advertising personalization with `gtag.js`.
248
+ * See {@link https://developers.google.com/analytics/devguides/collection/ga4/display-features | Disable advertising features }
249
+ */
250
+ 'allow_ad_personalization_signals'?: boolean;
251
+ [key: string]: unknown;
252
+ }
253
+
254
+ /**
255
+ * Returns an {@link Analytics} instance for the given app.
256
+ *
257
+ * @public
258
+ *
259
+ * @param app - The {@link @firebase/app#FirebaseApp} to use.
260
+ */
261
+ export declare function initializeAnalytics(app: FirebaseApp, options?: AnalyticsSettings): Analytics;
262
+
263
+ /**
264
+ * This is a public static method provided to users that wraps four different checks:
265
+ *
266
+ * 1. Check if it's not a browser extension environment.
267
+ * 2. Check if cookies are enabled in current browser.
268
+ * 3. Check if IndexedDB is supported by the browser environment.
269
+ * 4. Check if the current browser context is valid for using `IndexedDB.open()`.
270
+ *
271
+ * @public
272
+ *
273
+ */
274
+ export declare function isSupported(): Promise<boolean>;
275
+
276
+ /**
277
+ * Standard Google Analytics `Item` type.
278
+ * @public
279
+ */
280
+ export declare interface Item {
281
+ item_id?: string;
282
+ item_name?: string;
283
+ item_brand?: string;
284
+ item_category?: string;
285
+ item_category2?: string;
286
+ item_category3?: string;
287
+ item_category4?: string;
288
+ item_category5?: string;
289
+ item_variant?: string;
290
+ price?: Currency;
291
+ quantity?: number;
292
+ index?: number;
293
+ coupon?: string;
294
+ item_list_name?: string;
295
+ item_list_id?: string;
296
+ discount?: Currency;
297
+ affiliation?: string;
298
+ creative_name?: string;
299
+ creative_slot?: string;
300
+ promotion_id?: string;
301
+ promotion_name?: string;
302
+ location_id?: string;
303
+ /** @deprecated Use item_brand instead. */
304
+ brand?: string;
305
+ /** @deprecated Use item_category instead. */
306
+ category?: string;
307
+ /** @deprecated Use item_id instead. */
308
+ id?: string;
309
+ /** @deprecated Use item_name instead. */
310
+ name?: string;
311
+ }
312
+
313
+ /**
314
+ * Sends a Google Analytics event with given `eventParams`. This method
315
+ * automatically associates this logged event with this Firebase web
316
+ * app instance on this device.
317
+ * @public
318
+ * List of recommended event parameters can be found in
319
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
320
+ * | the GA4 reference documentation}.
321
+ */
322
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'add_payment_info', eventParams?: {
323
+ coupon?: EventParams['coupon'];
324
+ currency?: EventParams['currency'];
325
+ items?: EventParams['items'];
326
+ payment_type?: EventParams['payment_type'];
327
+ value?: EventParams['value'];
328
+ [key: string]: any;
329
+ }, options?: AnalyticsCallOptions): void;
330
+
331
+ /**
332
+ * Sends a Google Analytics event with given `eventParams`. This method
333
+ * automatically associates this logged event with this Firebase web
334
+ * app instance on this device.
335
+ * @public
336
+ * List of recommended event parameters can be found in
337
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
338
+ * | the GA4 reference documentation}.
339
+ */
340
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'add_shipping_info', eventParams?: {
341
+ coupon?: EventParams['coupon'];
342
+ currency?: EventParams['currency'];
343
+ items?: EventParams['items'];
344
+ shipping_tier?: EventParams['shipping_tier'];
345
+ value?: EventParams['value'];
346
+ [key: string]: any;
347
+ }, options?: AnalyticsCallOptions): void;
348
+
349
+ /**
350
+ * Sends a Google Analytics event with given `eventParams`. This method
351
+ * automatically associates this logged event with this Firebase web
352
+ * app instance on this device.
353
+ * @public
354
+ * List of recommended event parameters can be found in
355
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
356
+ * | the GA4 reference documentation}.
357
+ */
358
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'add_to_cart' | 'add_to_wishlist' | 'remove_from_cart', eventParams?: {
359
+ currency?: EventParams['currency'];
360
+ value?: EventParams['value'];
361
+ items?: EventParams['items'];
362
+ [key: string]: any;
363
+ }, options?: AnalyticsCallOptions): void;
364
+
365
+ /**
366
+ * Sends a Google Analytics event with given `eventParams`. This method
367
+ * automatically associates this logged event with this Firebase web
368
+ * app instance on this device.
369
+ * @public
370
+ * List of recommended event parameters can be found in
371
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
372
+ * | the GA4 reference documentation}.
373
+ */
374
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'begin_checkout', eventParams?: {
375
+ currency?: EventParams['currency'];
376
+ coupon?: EventParams['coupon'];
377
+ value?: EventParams['value'];
378
+ items?: EventParams['items'];
379
+ [key: string]: any;
380
+ }, options?: AnalyticsCallOptions): void;
381
+
382
+ /**
383
+ * Sends a Google Analytics event with given `eventParams`. This method
384
+ * automatically associates this logged event with this Firebase web
385
+ * app instance on this device.
386
+ * @public
387
+ * List of recommended event parameters can be found in
388
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
389
+ * | the GA4 reference documentation}.
390
+ */
391
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'checkout_progress', eventParams?: {
392
+ currency?: EventParams['currency'];
393
+ coupon?: EventParams['coupon'];
394
+ value?: EventParams['value'];
395
+ items?: EventParams['items'];
396
+ checkout_step?: EventParams['checkout_step'];
397
+ checkout_option?: EventParams['checkout_option'];
398
+ [key: string]: any;
399
+ }, options?: AnalyticsCallOptions): void;
400
+
401
+ /**
402
+ * Sends a Google Analytics event with given `eventParams`. This method
403
+ * automatically associates this logged event with this Firebase web
404
+ * app instance on this device.
405
+ * @public
406
+ * See
407
+ * {@link https://developers.google.com/analytics/devguides/collection/ga4/exceptions
408
+ * | Measure exceptions}.
409
+ */
410
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'exception', eventParams?: {
411
+ description?: EventParams['description'];
412
+ fatal?: EventParams['fatal'];
413
+ [key: string]: any;
414
+ }, options?: AnalyticsCallOptions): void;
415
+
416
+ /**
417
+ * Sends a Google Analytics event with given `eventParams`. This method
418
+ * automatically associates this logged event with this Firebase web
419
+ * app instance on this device.
420
+ * @public
421
+ * List of recommended event parameters can be found in
422
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
423
+ * | the GA4 reference documentation}.
424
+ */
425
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'generate_lead', eventParams?: {
426
+ value?: EventParams['value'];
427
+ currency?: EventParams['currency'];
428
+ [key: string]: any;
429
+ }, options?: AnalyticsCallOptions): void;
430
+
431
+ /**
432
+ * Sends a Google Analytics event with given `eventParams`. This method
433
+ * automatically associates this logged event with this Firebase web
434
+ * app instance on this device.
435
+ * @public
436
+ * List of recommended event parameters can be found in
437
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
438
+ * | the GA4 reference documentation}.
439
+ */
440
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'login', eventParams?: {
441
+ method?: EventParams['method'];
442
+ [key: string]: any;
443
+ }, options?: AnalyticsCallOptions): void;
444
+
445
+ /**
446
+ * Sends a Google Analytics event with given `eventParams`. This method
447
+ * automatically associates this logged event with this Firebase web
448
+ * app instance on this device.
449
+ * @public
450
+ * See
451
+ * {@link https://developers.google.com/analytics/devguides/collection/ga4/views
452
+ * | Page views}.
453
+ */
454
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'page_view', eventParams?: {
455
+ page_title?: string;
456
+ page_location?: string;
457
+ page_path?: string;
458
+ [key: string]: any;
459
+ }, options?: AnalyticsCallOptions): void;
460
+
461
+ /**
462
+ * Sends a Google Analytics event with given `eventParams`. This method
463
+ * automatically associates this logged event with this Firebase web
464
+ * app instance on this device.
465
+ * @public
466
+ * List of recommended event parameters can be found in
467
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
468
+ * | the GA4 reference documentation}.
469
+ */
470
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'purchase' | 'refund', eventParams?: {
471
+ value?: EventParams['value'];
472
+ currency?: EventParams['currency'];
473
+ transaction_id: EventParams['transaction_id'];
474
+ tax?: EventParams['tax'];
475
+ shipping?: EventParams['shipping'];
476
+ items?: EventParams['items'];
477
+ coupon?: EventParams['coupon'];
478
+ affiliation?: EventParams['affiliation'];
479
+ [key: string]: any;
480
+ }, options?: AnalyticsCallOptions): void;
481
+
482
+ /**
483
+ * Sends a Google Analytics event with given `eventParams`. This method
484
+ * automatically associates this logged event with this Firebase web
485
+ * app instance on this device.
486
+ * @public
487
+ * See {@link https://firebase.google.com/docs/analytics/screenviews
488
+ * | Track Screenviews}.
489
+ */
490
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'screen_view', eventParams?: {
491
+ firebase_screen: EventParams['firebase_screen'];
492
+ firebase_screen_class: EventParams['firebase_screen_class'];
493
+ [key: string]: any;
494
+ }, options?: AnalyticsCallOptions): void;
495
+
496
+ /**
497
+ * Sends a Google Analytics event with given `eventParams`. This method
498
+ * automatically associates this logged event with this Firebase web
499
+ * app instance on this device.
500
+ * @public
501
+ * List of recommended event parameters can be found in
502
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
503
+ * | the GA4 reference documentation}.
504
+ */
505
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'search' | 'view_search_results', eventParams?: {
506
+ search_term?: EventParams['search_term'];
507
+ [key: string]: any;
508
+ }, options?: AnalyticsCallOptions): void;
509
+
510
+ /**
511
+ * Sends a Google Analytics event with given `eventParams`. This method
512
+ * automatically associates this logged event with this Firebase web
513
+ * app instance on this device.
514
+ * @public
515
+ * List of recommended event parameters can be found in
516
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
517
+ * | the GA4 reference documentation}.
518
+ */
519
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'select_content', eventParams?: {
520
+ content_type?: EventParams['content_type'];
521
+ item_id?: EventParams['item_id'];
522
+ [key: string]: any;
523
+ }, options?: AnalyticsCallOptions): void;
524
+
525
+ /**
526
+ * Sends a Google Analytics event with given `eventParams`. This method
527
+ * automatically associates this logged event with this Firebase web
528
+ * app instance on this device.
529
+ * @public
530
+ * List of recommended event parameters can be found in
531
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
532
+ * | the GA4 reference documentation}.
533
+ */
534
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'select_item', eventParams?: {
535
+ items?: EventParams['items'];
536
+ item_list_name?: EventParams['item_list_name'];
537
+ item_list_id?: EventParams['item_list_id'];
538
+ [key: string]: any;
539
+ }, options?: AnalyticsCallOptions): void;
540
+
541
+ /**
542
+ * Sends a Google Analytics event with given `eventParams`. This method
543
+ * automatically associates this logged event with this Firebase web
544
+ * app instance on this device.
545
+ * @public
546
+ * List of recommended event parameters can be found in
547
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
548
+ * | the GA4 reference documentation}.
549
+ */
550
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'select_promotion' | 'view_promotion', eventParams?: {
551
+ items?: EventParams['items'];
552
+ promotion_id?: EventParams['promotion_id'];
553
+ promotion_name?: EventParams['promotion_name'];
554
+ [key: string]: any;
555
+ }, options?: AnalyticsCallOptions): void;
556
+
557
+ /**
558
+ * Sends a Google Analytics event with given `eventParams`. This method
559
+ * automatically associates this logged event with this Firebase web
560
+ * app instance on this device.
561
+ * @public
562
+ * List of recommended event parameters can be found in
563
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
564
+ * | the GA4 reference documentation}.
565
+ */
566
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'set_checkout_option', eventParams?: {
567
+ checkout_step?: EventParams['checkout_step'];
568
+ checkout_option?: EventParams['checkout_option'];
569
+ [key: string]: any;
570
+ }, options?: AnalyticsCallOptions): void;
571
+
572
+ /**
573
+ * Sends a Google Analytics event with given `eventParams`. This method
574
+ * automatically associates this logged event with this Firebase web
575
+ * app instance on this device.
576
+ * @public
577
+ * List of recommended event parameters can be found in
578
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
579
+ * | the GA4 reference documentation}.
580
+ */
581
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'share', eventParams?: {
582
+ method?: EventParams['method'];
583
+ content_type?: EventParams['content_type'];
584
+ item_id?: EventParams['item_id'];
585
+ [key: string]: any;
586
+ }, options?: AnalyticsCallOptions): void;
587
+
588
+ /**
589
+ * Sends a Google Analytics event with given `eventParams`. This method
590
+ * automatically associates this logged event with this Firebase web
591
+ * app instance on this device.
592
+ * @public
593
+ * List of recommended event parameters can be found in
594
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
595
+ * | the GA4 reference documentation}.
596
+ */
597
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'sign_up', eventParams?: {
598
+ method?: EventParams['method'];
599
+ [key: string]: any;
600
+ }, options?: AnalyticsCallOptions): void;
601
+
602
+ /**
603
+ * Sends a Google Analytics event with given `eventParams`. This method
604
+ * automatically associates this logged event with this Firebase web
605
+ * app instance on this device.
606
+ * @public
607
+ * List of recommended event parameters can be found in
608
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
609
+ * | the GA4 reference documentation}.
610
+ */
611
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'timing_complete', eventParams?: {
612
+ name: string;
613
+ value: number;
614
+ event_category?: string;
615
+ event_label?: string;
616
+ [key: string]: any;
617
+ }, options?: AnalyticsCallOptions): void;
618
+
619
+ /**
620
+ * Sends a Google Analytics event with given `eventParams`. This method
621
+ * automatically associates this logged event with this Firebase web
622
+ * app instance on this device.
623
+ * @public
624
+ * List of recommended event parameters can be found in
625
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
626
+ * | the GA4 reference documentation}.
627
+ */
628
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'view_cart' | 'view_item', eventParams?: {
629
+ currency?: EventParams['currency'];
630
+ items?: EventParams['items'];
631
+ value?: EventParams['value'];
632
+ [key: string]: any;
633
+ }, options?: AnalyticsCallOptions): void;
634
+
635
+ /**
636
+ * Sends a Google Analytics event with given `eventParams`. This method
637
+ * automatically associates this logged event with this Firebase web
638
+ * app instance on this device.
639
+ * @public
640
+ * List of recommended event parameters can be found in
641
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
642
+ * | the GA4 reference documentation}.
643
+ */
644
+ export declare function logEvent(analyticsInstance: Analytics, eventName: 'view_item_list', eventParams?: {
645
+ items?: EventParams['items'];
646
+ item_list_name?: EventParams['item_list_name'];
647
+ item_list_id?: EventParams['item_list_id'];
648
+ [key: string]: any;
649
+ }, options?: AnalyticsCallOptions): void;
650
+
651
+ /**
652
+ * Sends a Google Analytics event with given `eventParams`. This method
653
+ * automatically associates this logged event with this Firebase web
654
+ * app instance on this device.
655
+ * @public
656
+ * List of recommended event parameters can be found in
657
+ * {@link https://developers.google.com/gtagjs/reference/ga4-events
658
+ * | the GA4 reference documentation}.
659
+ */
660
+ export declare function logEvent<T extends string>(analyticsInstance: Analytics, eventName: CustomEventName<T>, eventParams?: {
661
+ [key: string]: any;
662
+ }, options?: AnalyticsCallOptions): void;
663
+
664
+ /**
665
+ * Field previously used by some Google Analytics events.
666
+ * @deprecated Use `Item` instead.
667
+ * @public
668
+ */
669
+ export declare interface Promotion {
670
+ creative_name?: string;
671
+ creative_slot?: string;
672
+ id?: string;
673
+ name?: string;
674
+ }
675
+
676
+ /**
677
+ * Sets whether Google Analytics collection is enabled for this app on this device.
678
+ * Sets global `window['ga-disable-analyticsId'] = true;`
679
+ *
680
+ * @public
681
+ *
682
+ * @param analyticsInstance - The {@link Analytics} instance.
683
+ * @param enabled - If true, enables collection, if false, disables it.
684
+ */
685
+ export declare function setAnalyticsCollectionEnabled(analyticsInstance: Analytics, enabled: boolean): void;
686
+
687
+ /**
688
+ * Sets the applicable end user consent state for this web app across all gtag references once
689
+ * Firebase Analytics is initialized.
690
+ *
691
+ * Use the {@link ConsentSettings} to specify individual consent type values. By default consent
692
+ * types are set to "granted".
693
+ * @public
694
+ * @param consentSettings - Maps the applicable end user consent state for gtag.js.
695
+ */
696
+ export declare function setConsent(consentSettings: ConsentSettings): void;
697
+
698
+ /**
699
+ * Use gtag `config` command to set `screen_name`.
700
+ *
701
+ * @public
702
+ *
703
+ * @deprecated Use {@link logEvent} with `eventName` as 'screen_view' and add relevant `eventParams`.
704
+ * See {@link https://firebase.google.com/docs/analytics/screenviews | Track Screenviews}.
705
+ *
706
+ * @param analyticsInstance - The {@link Analytics} instance.
707
+ * @param screenName - Screen name to set.
708
+ */
709
+ export declare function setCurrentScreen(analyticsInstance: Analytics, screenName: string, options?: AnalyticsCallOptions): void;
710
+
711
+ /**
712
+ * Adds data that will be set on every event logged from the SDK, including automatic ones.
713
+ * With gtag's "set" command, the values passed persist on the current page and are passed with
714
+ * all subsequent events.
715
+ * @public
716
+ * @param customParams - Any custom params the user may pass to gtag.js.
717
+ */
718
+ export declare function setDefaultEventParameters(customParams: CustomParams): void;
719
+
720
+ /**
721
+ * Configures Firebase Analytics to use custom `gtag` or `dataLayer` names.
722
+ * Intended to be used if `gtag.js` script has been installed on
723
+ * this page independently of Firebase Analytics, and is using non-default
724
+ * names for either the `gtag` function or for `dataLayer`.
725
+ * Must be called before calling `getAnalytics()` or it won't
726
+ * have any effect.
727
+ *
728
+ * @public
729
+ *
730
+ * @param options - Custom gtag and dataLayer names.
731
+ */
732
+ export declare function settings(options: SettingsOptions): void;
733
+
734
+ /**
735
+ * Specifies custom options for your Firebase Analytics instance.
736
+ * You must set these before initializing `firebase.analytics()`.
737
+ * @public
738
+ */
739
+ export declare interface SettingsOptions {
740
+ /** Sets custom name for `gtag` function. */
741
+ gtagName?: string;
742
+ /** Sets custom name for `dataLayer` array used by `gtag.js`. */
743
+ dataLayerName?: string;
744
+ }
745
+
746
+ /**
747
+ * Use gtag `config` command to set `user_id`.
748
+ *
749
+ * @public
750
+ *
751
+ * @param analyticsInstance - The {@link Analytics} instance.
752
+ * @param id - User ID to set.
753
+ */
754
+ export declare function setUserId(analyticsInstance: Analytics, id: string | null, options?: AnalyticsCallOptions): void;
755
+
756
+ /**
757
+ * Use gtag `config` command to set all params specified.
758
+ *
759
+ * @public
760
+ */
761
+ export declare function setUserProperties(analyticsInstance: Analytics, properties: CustomParams, options?: AnalyticsCallOptions): void;
762
+
763
+ export { }