forked from
jollywhoppers.com/witchsky.app
Bluesky app fork with some witchin' additions 馃挮
1import {type NotificationReason} from '#/lib/hooks/useNotificationHandler'
2import {type FeedDescriptor} from '#/state/queries/post-feed'
3import {type LiveEventFeedMetricContext} from '#/features/liveEvents/types'
4
5export type MetricEvents = {
6 // App events
7 init: {
8 initMs: number
9 }
10 'account:loggedIn': {
11 logContext:
12 | 'LoginForm'
13 | 'SwitchAccount'
14 | 'ChooseAccountForm'
15 | 'Settings'
16 | 'Notification'
17 withPassword: boolean
18 }
19 'account:loggedOut': {
20 logContext:
21 | 'SwitchAccount'
22 | 'Settings'
23 | 'SignupQueued'
24 | 'Deactivated'
25 | 'Takendown'
26 | 'AgeAssuranceNoAccessScreen'
27 scope: 'current' | 'every'
28 }
29 'notifications:openApp': {
30 reason: NotificationReason
31 causedBoot: boolean
32 }
33 'notifications:request': {
34 context: 'StartOnboarding' | 'AfterOnboarding' | 'Login' | 'Home'
35 status: 'granted' | 'denied' | 'undetermined'
36 }
37 'state:background': {
38 secondsActive: number
39 }
40 'state:foreground': {}
41 'router:navigate': {
42 from?: string
43 }
44 'deepLink:referrerReceived': {
45 to: string
46 referrer: string
47 hostname: string
48 }
49
50 // Screen events
51 'splash:signInPressed': {}
52 'splash:createAccountPressed': {}
53 'welcomeModal:signupClicked': {}
54 'welcomeModal:exploreClicked': {}
55 'welcomeModal:signinClicked': {}
56 'welcomeModal:dismissed': {}
57 'welcomeModal:presented': {}
58 'signup:nextPressed': {
59 activeStep: number
60 phoneVerificationRequired?: boolean
61 }
62 'signup:backPressed': {
63 activeStep: number
64 }
65 'signup:captchaSuccess': {}
66 'signup:captchaFailure': {}
67 'signup:fieldError': {
68 field: string
69 errorCount: number
70 errorMessage: string
71 activeStep: number
72 }
73 'signup:backgrounded': {
74 activeStep: number
75 backgroundCount: number
76 }
77 'signup:handleTaken': {typeahead?: boolean}
78 'signup:handleAvailable': {typeahead?: boolean}
79 'signup:handleSuggestionSelected': {method: string}
80 'signin:hostingProviderPressed': {
81 hostingProviderDidChange: boolean
82 }
83 'signin:hostingProviderFailedResolution': {}
84 'signin:success': {
85 failedAttemptsCount: number
86 isUsingCustomProvider: boolean
87 timeTakenSeconds: number
88 }
89 'signin:backPressed': {
90 failedAttemptsCount: number
91 }
92 'signin:forgotPasswordPressed': {}
93 'signin:passwordReset': {}
94 'signin:passwordResetSuccess': {}
95 'signin:passwordResetFailure': {}
96 'onboarding:interests:nextPressed': {
97 selectedInterests: string[]
98 selectedInterestsLength: number
99 }
100 'onboarding:suggestedAccounts:tabPressed': {
101 tab: string
102 }
103 'onboarding:suggestedAccounts:followAllPressed': {
104 tab: string
105 numAccounts: number
106 }
107 'onboarding:suggestedAccounts:nextPressed': {
108 selectedAccountsLength: number
109 skipped: boolean
110 }
111 'onboarding:followingFeed:nextPressed': {}
112 'onboarding:algoFeeds:nextPressed': {
113 selectedPrimaryFeeds: string[]
114 selectedPrimaryFeedsLength: number
115 selectedSecondaryFeeds: string[]
116 selectedSecondaryFeedsLength: number
117 }
118 'onboarding:topicalFeeds:nextPressed': {
119 selectedFeeds: string[]
120 selectedFeedsLength: number
121 }
122 'onboarding:moderation:nextPressed': {}
123 'onboarding:profile:nextPressed': {}
124 'onboarding:finished:nextPressed': {
125 usedStarterPack: boolean
126 starterPackName?: string
127 starterPackCreator?: string
128 starterPackUri?: string
129 profilesFollowed: number
130 feedsPinned: number
131 }
132 'onboarding:finished:avatarResult': {
133 avatarResult: 'default' | 'created' | 'uploaded'
134 }
135 'onboarding:valueProp:stepOne:nextPressed': {}
136 'onboarding:valueProp:stepTwo:nextPressed': {}
137 'onboarding:valueProp:skipPressed': {}
138 'home:feedDisplayed': {
139 feedUrl: string
140 feedType: string
141 index: number
142 }
143 'feed:endReached': {
144 feedUrl: string
145 feedType: string
146 itemCount: number
147 }
148 'feed:refresh': {
149 feedUrl: string
150 feedType: string
151 reason: 'pull-to-refresh' | 'soft-reset' | 'load-latest'
152 }
153 'feed:save': {
154 feedUrl: string
155 }
156 'feed:unsave': {
157 feedUrl: string
158 }
159 'feed:pin': {
160 feedUrl: string
161 }
162 'feed:unpin': {
163 feedUrl: string
164 }
165 'feed:like': {
166 feedUrl: string
167 }
168 'feed:unlike': {
169 feedUrl: string
170 }
171 'feed:share': {
172 feedUrl: string
173 }
174 'feed:suggestion:seen': {
175 feedUrl: string
176 }
177 'feed:suggestion:press': {
178 feedUrl: string
179 }
180 'post:showMore': {
181 uri: string
182 authorDid: string
183 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
184 feedDescriptor?: string
185 position?: number
186 }
187 'post:showLess': {
188 uri: string
189 authorDid: string
190 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
191 feedDescriptor?: string
192 position?: number
193 }
194 'feed:clickthrough': {
195 feed: string
196 count: number
197 }
198 'feed:engaged': {
199 feed: string
200 count: number
201 }
202 'feed:seen': {
203 feed: string
204 count: number
205 }
206
207 'feed:discover:emptyError': {
208 userDid: string
209 }
210
211 'composer:gif:open': {}
212 'composer:gif:select': {}
213 'composerPrompt:press': {}
214 'composerPrompt:camera:press': {}
215 'composerPrompt:gallery:press': {}
216
217 'composer:threadgate:open': {
218 nudged: boolean
219 }
220 'composer:threadgate:save': {
221 replyOptions: string
222 quotesEnabled: boolean
223 persist: boolean
224 hasChanged: boolean
225 }
226
227 // Data events
228 'account:create:begin': {}
229 'account:create:success': {
230 signupDuration: number
231 fieldErrorsTotal: number
232 backgroundCount: number
233 }
234 'post:create': {
235 imageCount: number
236 isReply: boolean
237 isPartOfThread: boolean
238 hasLink: boolean
239 hasQuote: boolean
240 langs: string
241 logContext: 'Composer'
242 }
243 'thread:create': {
244 postCount: number
245 isReply: boolean
246 }
247 'post:like': {
248 uri: string
249 authorDid: string
250 doesLikerFollowPoster: boolean | undefined
251 doesPosterFollowLiker: boolean | undefined
252 likerClout: number | undefined
253 postClout: number | undefined
254 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
255 feedDescriptor?: string
256 }
257 'post:repost': {
258 uri: string
259 authorDid: string
260 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
261 feedDescriptor?: string
262 }
263 'post:unlike': {
264 uri: string
265 authorDid: string
266 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
267 feedDescriptor?: string
268 }
269 'post:unrepost': {
270 uri: string
271 authorDid: string
272 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
273 feedDescriptor?: string
274 }
275 'post:mute': {
276 uri: string
277 authorDid: string
278 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
279 feedDescriptor?: string
280 position?: number
281 }
282 'post:unmute': {
283 uri: string
284 authorDid: string
285 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
286 feedDescriptor?: string
287 position?: number
288 }
289 'post:pin': {}
290 'post:unpin': {}
291 'post:bookmark': {
292 uri: string
293 authorDid: string
294 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
295 feedDescriptor?: string
296 position?: number
297 }
298 'post:unbookmark': {
299 uri: string
300 authorDid: string
301 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
302 feedDescriptor?: string
303 position?: number
304 }
305 'post:clickReply': {
306 uri: string
307 authorDid: string
308 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
309 feedDescriptor?: string
310 position?: number
311 }
312 'post:clickQuotePost': {
313 uri: string
314 authorDid: string
315 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
316 feedDescriptor?: string
317 position?: number
318 }
319 'post:clickthroughAuthor': {
320 uri: string
321 authorDid: string
322 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
323 feedDescriptor?: string
324 position?: number
325 }
326 'post:clickthroughItem': {
327 uri: string
328 authorDid: string
329 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
330 feedDescriptor?: string
331 position?: number
332 }
333 'post:clickthroughEmbed': {
334 uri: string
335 authorDid: string
336 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
337 feedDescriptor?: string
338 position?: number
339 }
340 'post:view': {
341 uri: string
342 authorDid: string
343 logContext:
344 | 'FeedItem'
345 | 'PostThreadItem'
346 | 'Post'
347 | 'ImmersiveVideo'
348 | 'SearchResults'
349 | 'Bookmarks'
350 | 'Notifications'
351 | 'Hashtag'
352 | 'Topic'
353 | 'PostQuotes'
354 feedDescriptor?: string
355 position?: number
356 }
357 'bookmarks:view': {}
358 'bookmarks:post-clicked': {}
359 'profile:follow': {
360 contextProfileDid?: string
361 didBecomeMutual: boolean | undefined
362 followeeClout: number | undefined
363 followeeDid: string
364 followerClout: number | undefined
365 position?: number
366 logContext:
367 | 'RecommendedFollowsItem'
368 | 'PostThreadItem'
369 | 'ProfileCard'
370 | 'ProfileHeader'
371 | 'ProfileHeaderSuggestedFollows'
372 | 'ProfileMenu'
373 | 'ProfileHoverCard'
374 | 'AvatarButton'
375 | 'StarterPackProfilesList'
376 | 'FeedInterstitial'
377 | 'ProfileHeaderSuggestedFollows'
378 | 'PostOnboardingFindFollows'
379 | 'ImmersiveVideo'
380 | 'ExploreSuggestedAccounts'
381 | 'OnboardingSuggestedAccounts'
382 | 'FindContacts'
383 }
384 'profile:followers:view': {
385 contextProfileDid: string
386 isOwnProfile: boolean
387 }
388 'profile:followers:paginate': {
389 contextProfileDid: string
390 itemCount: number
391 page: number
392 }
393 'profile:following:view': {
394 contextProfileDid: string
395 isOwnProfile: boolean
396 }
397 'profile:following:paginate': {
398 contextProfileDid: string
399 itemCount: number
400 page: number
401 }
402 'profileCard:seen': {
403 contextProfileDid?: string
404 profileDid: string
405 position?: number
406 }
407 'suggestedUser:follow': {
408 logContext:
409 | 'Explore'
410 | 'InterstitialDiscover'
411 | 'InterstitialProfile'
412 | 'Profile'
413 | 'Onboarding'
414 location: 'Card' | 'Profile'
415 recId?: number
416 position: number
417 suggestedDid: string
418 category: string | null
419 }
420 'suggestedUser:press': {
421 logContext:
422 | 'Explore'
423 | 'InterstitialDiscover'
424 | 'InterstitialProfile'
425 | 'Onboarding'
426 recId?: number
427 position: number
428 suggestedDid: string
429 category: string | null
430 }
431 'suggestedUser:seen': {
432 logContext:
433 | 'Explore'
434 | 'InterstitialDiscover'
435 | 'InterstitialProfile'
436 | 'Profile'
437 | 'Onboarding'
438 | 'ProgressGuide'
439 recId?: number
440 position: number
441 suggestedDid: string
442 category: string | null
443 }
444 'suggestedUser:seeMore': {
445 logContext:
446 | 'Explore'
447 | 'InterstitialDiscover'
448 | 'InterstitialProfile'
449 | 'Profile'
450 | 'Onboarding'
451 }
452 'suggestedUser:dismiss': {
453 logContext: 'InterstitialDiscover' | 'InterstitialProfile'
454 recId?: number
455 position: number
456 suggestedDid: string
457 }
458 'profile:unfollow': {
459 logContext:
460 | 'RecommendedFollowsItem'
461 | 'PostThreadItem'
462 | 'ProfileCard'
463 | 'ProfileHeader'
464 | 'ProfileHeaderSuggestedFollows'
465 | 'ProfileMenu'
466 | 'ProfileHoverCard'
467 | 'Chat'
468 | 'AvatarButton'
469 | 'StarterPackProfilesList'
470 | 'FeedInterstitial'
471 | 'ProfileHeaderSuggestedFollows'
472 | 'PostOnboardingFindFollows'
473 | 'ImmersiveVideo'
474 | 'ExploreSuggestedAccounts'
475 | 'OnboardingSuggestedAccounts'
476 | 'FindContacts'
477 }
478 'chat:create': {
479 logContext: 'ProfileHeader' | 'NewChatDialog' | 'SendViaChatDialog'
480 }
481 'chat:open': {
482 logContext:
483 | 'ProfileHeader'
484 | 'NewChatDialog'
485 | 'ChatsList'
486 | 'SendViaChatDialog'
487 }
488 'starterPack:addUser': {
489 starterPack?: string
490 }
491 'starterPack:removeUser': {
492 starterPack?: string
493 }
494 'starterPack:share': {
495 starterPack: string
496 shareType: 'link' | 'qrcode'
497 qrShareType?: 'save' | 'copy' | 'share'
498 }
499 'starterPack:followAll': {
500 logContext: 'StarterPackProfilesList' | 'Onboarding'
501 starterPack: string
502 count: number
503 }
504 'starterPack:delete': {}
505 'starterPack:create': {
506 setName: boolean
507 setDescription: boolean
508 profilesCount: number
509 feedsCount: number
510 }
511 'starterPack:ctaPress': {
512 starterPack: string
513 }
514 'starterPack:opened': {
515 starterPack: string
516 }
517 'link:clicked': {
518 url: string
519 domain: string
520 }
521
522 'feed:interstitial:feedCard:press': {}
523 'desktopFeeds:feed:click': {
524 feedUri: string
525 feedDescriptor: string
526 }
527
528 'profile:header:suggestedFollowsCard:press': {}
529 'profile:addToStarterPack': {}
530
531 'test:all:always': {}
532 'test:all:sometimes': {}
533 'test:all:boosted_by_gate1': {reason: 'base' | 'gate1'}
534 'test:all:boosted_by_gate2': {reason: 'base' | 'gate2'}
535 'test:all:boosted_by_both': {reason: 'base' | 'gate1' | 'gate2'}
536 'test:gate1:always': {}
537 'test:gate1:sometimes': {}
538 'test:gate2:always': {}
539 'test:gate2:sometimes': {}
540
541 'tmd:share': {}
542 'tmd:download': {}
543 'tmd:post': {}
544
545 'trendingTopics:show': {
546 context: 'settings'
547 }
548 'trendingTopics:hide': {
549 context: 'settings' | 'sidebar' | 'interstitial' | 'explore:trending'
550 }
551 'trendingTopic:click': {
552 context: 'sidebar' | 'interstitial' | 'explore'
553 }
554 'recommendedTopic:click': {
555 context: 'explore'
556 }
557 'trendingVideos:show': {
558 context: 'settings'
559 }
560 'trendingVideos:hide': {
561 context: 'settings' | 'interstitial:discover' | 'interstitial:explore'
562 }
563 'videoCard:click': {
564 context: 'interstitial:discover' | 'interstitial:explore' | 'feed'
565 }
566
567 'explore:module:seen': {
568 module:
569 | 'trendingTopics'
570 | 'trendingVideos'
571 | 'suggestedAccounts'
572 | 'suggestedFeeds'
573 | 'suggestedStarterPacks'
574 | `feed:${FeedDescriptor}`
575 }
576 'explore:module:searchButtonPress': {
577 module: 'suggestedAccounts' | 'suggestedFeeds'
578 }
579 'explore:suggestedAccounts:tabPressed': {
580 tab: string
581 }
582
583 'progressGuide:hide': {}
584 'progressGuide:followDialog:open': {}
585
586 'moderation:subscribedToLabeler': {}
587 'moderation:unsubscribedFromLabeler': {}
588 'moderation:changeLabelPreference': {
589 preference: string
590 }
591
592 'moderation:subscribedToList': {
593 listType: 'mute' | 'block'
594 }
595 'moderation:unsubscribedFromList': {
596 listType: 'mute' | 'block'
597 }
598
599 'reportDialog:open': {
600 subjectType: string
601 }
602 'reportDialog:close': {}
603 'reportDialog:success': {
604 reason: string
605 labeler: string
606 details: boolean
607 }
608 'reportDialog:failure': {}
609
610 translate: {
611 sourceLanguages: string[]
612 targetLanguage: string
613 textLength: number
614 }
615
616 'verification:create': {}
617 'verification:revoke': {}
618 'verification:badge:click': {}
619 'verification:learn-more': {
620 location:
621 | 'initialAnnouncementeNux'
622 | 'verificationsDialog'
623 | 'verifierDialog'
624 | 'verificationSettings'
625 }
626 'verification:settings:hideBadges': {}
627 'verification:settings:unHideBadges': {}
628
629 'live:create': {duration: number}
630 'live:edit': {}
631 'live:remove': {}
632 'live:card:open': {subject: string; from: 'post' | 'profile'}
633 'live:card:watch': {subject: string}
634 'live:card:openProfile': {subject: string}
635 'live:view:profile': {subject: string}
636 'live:view:post': {subject: string; feed?: string}
637
638 'post:share': {
639 uri: string
640 authorDid: string
641 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' | 'ImmersiveVideo'
642 feedDescriptor?: string
643 postContext: 'feed' | 'thread'
644 position?: number
645 }
646 'share:press:copyLink': {}
647 'share:press:nativeShare': {}
648 'share:press:openDmSearch': {}
649 'share:press:dmSelected': {}
650 'share:press:recentDm': {}
651 'share:press:embed': {}
652
653 'thread:click:showOtherReplies': {}
654 'thread:click:hideReplyForMe': {}
655 'thread:click:hideReplyForEveryone': {}
656 'thread:preferences:load': {
657 [key: string]: any
658 }
659 'thread:preferences:update': {
660 [key: string]: any
661 }
662 'thread:click:headerMenuOpen': {}
663 'thread:click:editOwnThreadgate': {}
664 'thread:click:viewSomeoneElsesThreadgate': {}
665 'activitySubscription:enable': {
666 setting: 'posts' | 'posts_and_replies'
667 }
668 'activitySubscription:disable': {}
669 'activityPreference:changeChannels': {
670 name: string
671 push: boolean
672 list: boolean
673 }
674 'activityPreference:changeFilter': {
675 name: string
676 value: string
677 }
678
679 'ageAssurance:navigateToSettings': {}
680 'ageAssurance:dismissFeedBanner': {}
681 'ageAssurance:dismissSettingsNotice': {}
682 'ageAssurance:initDialogOpen': {
683 hasInitiatedPreviously: boolean
684 }
685 'ageAssurance:initDialogSubmit': {}
686 'ageAssurance:api:begin': {
687 platform: string
688 countryCode: string
689 regionCode?: string
690 }
691 'ageAssurance:initDialogError': {
692 code: string
693 }
694 'ageAssurance:redirectDialogOpen': {}
695 'ageAssurance:redirectDialogSuccess': {}
696 'ageAssurance:redirectDialogFail': {}
697 'ageAssurance:appealDialogOpen': {}
698 'ageAssurance:appealDialogSubmit': {}
699 'ageAssurance:noAccessScreen:shown': {
700 accountCreatedAt: string
701 isAARegion: boolean
702 hasDeclaredAge: boolean
703 canUpdateBirthday: boolean
704 }
705 'ageAssurance:noAccessScreen:openBirthdateDialog': {}
706
707 /*
708 * Specifically for the `BlockedGeoOverlay`
709 */
710 'blockedGeoOverlay:shown': {}
711
712 'geo:debug': {}
713
714 /*
715 * Find Contacts stuff
716 */
717
718 // user presses the button on the new feature NUX
719 'contacts:nux:ctaPressed': {}
720 // user presses the banner NUX
721 'contacts:nux:bannerPressed': {}
722 // user dismisses the banner
723 'contacts:nux:bannerDismissed': {}
724
725 // user lands on the contacts step
726 'onboarding:contacts:presented': {}
727 // user pressed "Import Contacts" button to begin flow
728 'onboarding:contacts:begin': {}
729 // skips the step entirely
730 'onboarding:contacts:skipPressed': {}
731 // user shared their contacts
732 'onboarding:contacts:contactsShared': {}
733 // user leaves the matches page
734 'onboarding:contacts:nextPressed': {
735 matchCount: number
736 followCount: number
737 dismissedMatchCount: number
738 }
739
740 // user entered a number
741 'contacts:phone:phoneEntered': {
742 entryPoint: 'Onboarding' | 'Standalone'
743 }
744 // user entered the correct one-time-code
745 'contacts:phone:phoneVerified': {
746 entryPoint: 'Onboarding' | 'Standalone'
747 }
748 // user responded to the contacts permission prompt
749 'contacts:permission:request': {
750 status: 'granted' | 'denied'
751 accessLevelIOS?: 'all' | 'limited' | 'none'
752 }
753 // contacts were successfully imported and matched
754 'contacts:import:success': {
755 contactCount: number
756 matchCount: number
757 entryPoint: 'Onboarding' | 'Standalone'
758 }
759 // contacts import failed
760 'contacts:import:failure': {
761 reason: 'noValidNumbers' | 'networkError' | 'unknown'
762 entryPoint: 'Onboarding' | 'Standalone'
763 }
764 // user followed a single match
765 'contacts:matches:follow': {
766 entryPoint: 'Onboarding' | 'Standalone'
767 }
768 // user pressed "Follow All" on matches
769 'contacts:matches:followAll': {
770 followCount: number
771 entryPoint: 'Onboarding' | 'Standalone'
772 }
773 // user dismissed a match
774 'contacts:matches:dismiss': {
775 entryPoint: 'Onboarding' | 'Standalone'
776 }
777 // user pressed invite to send an SMS to a non-match
778 'contacts:matches:invite': {
779 entryPoint: 'Onboarding' | 'Standalone'
780 }
781 // user opened the Find Contacts settings screen
782 'contacts:settings:presented': {
783 hasPreviouslySynced: boolean
784 matchCount?: number
785 }
786 // user followed a single match from settings
787 'contacts:settings:follow': {}
788 // user pressed "Follow All" from settings
789 'contacts:settings:followAll': {
790 followCount: number
791 }
792 // user dismissed a match from settings
793 'contacts:settings:dismiss': {}
794 // user re-entered the flow via the resync button
795 'contacts:settings:resync': {
796 daysSinceLastSync: number
797 }
798 // user pressed the remove all data button
799 'contacts:settings:removeData': {}
800
801 'liveEvents:feedBanner:seen': {
802 feed: string
803 context: LiveEventFeedMetricContext
804 }
805 'liveEvents:feedBanner:click': {
806 feed: string
807 context: LiveEventFeedMetricContext
808 }
809 'liveEvents:feedBanner:hide': {
810 feed: string
811 context: LiveEventFeedMetricContext
812 }
813 'liveEvents:feedBanner:unhide': {
814 feed: string
815 context: LiveEventFeedMetricContext
816 }
817 'liveEvents:hideAllFeedBanners': {
818 context: LiveEventFeedMetricContext
819 }
820 'liveEvents:unhideAllFeedBanners': {
821 context: LiveEventFeedMetricContext
822 }
823}