export enum AnalyticsEvent {
  InviteShared = 'Invite Link Shared',
  OnboardingSessionRevived = 'Onboarding Session Revived',
  AppInstalled = 'App Installed',
  AppUpdated = 'App Updated',
  AppActive = 'App Active',
  LoggedInBeforeSignup = 'Logged In Without Signing Up',
  FailedSignupOTP = 'Failed to send Signup OTP',
  FailedLoginOTP = 'Failed to send Login OTP',
  InvitedUserFailedInventoryCheck = 'Invited User Failed Inventory Check',
  PersonalInvitePressed = 'Personal Invite Shown',
  ChannelTemplateSetup = 'Channel Created from Template',
  ChannelLoadComplete = 'Channel Load Complete',
  SessionInitialized = 'Session Initialized',
  NodeNotRunning = 'Node Not Running',
  NodeUnderMaintenance = 'Node Under Maintenance',
  LoginDebug = 'Login Debug',
  LoginAnomaly = 'Login Anomaly',
  ExpectedHostingError = 'Expected Hosting API Error',
  UnexpectedHostingError = 'Unexpected Hosting API Response',
  NodeWaitReport = 'Node Wait Report',
  InviteError = 'Invite Error',
  InviteDebug = 'Invite Debug',
  InviteButtonShown = 'Invite Button Shown',
  InitializedNewInvite = 'Initialized New Invite',
  DebugLogs = 'Debug Logs',
  DebugGroupCreate = 'Create Group Debug',
  DebugAttestation = 'Attestation Debug',
  DebugContactMatching = 'Contact Matching Debug',
  ErrorContactMatching = 'Contact Matching Error',
  AppError = 'App Error',
  AuthenticatedNodeStopped = 'Node Stopped While Logged In',
  Scry = 'Scry',
  ScryNoun = 'Scry Noun',
  Poke = 'Poke',
  NativeDbDebug = 'Native DB Debug',
  Thread = 'Thread',
  TrackedPoke = 'TrackedPoke',
  ErrorDatabaseQuery = 'Database Query Error',
  ErrorTrackedPokeTimeout = 'Error Tracked Poke Timeout',
  ErrorThread = 'Thread Error',
  ErrorSubscribeOnceTimeout = 'Error Subscribe Once Timeout',
  ErrorNativeDb = 'Native DB Error',
  InitDataFetched = 'Init Data Fetched',
  InitDataWritten = 'Init Data Written',
  LatestPostsFetched = 'Latest Posts Fetched',
  LatestPostsWritten = 'Latest Posts Written',
  SubscriptionsEstablished = 'Subscriptions Established',
  AuthFailedToGetCode = 'Failed to get access code',
  AuthForcedLogout = 'Auth Forced Logout',
  NodeConnectionDebug = 'Node Connection Debug',
  NodeConnectionError = 'Node Connection Error',
  SyncDiscontinuity = 'Sync Discontinuity',
  OnNetworkInvite = 'Sent On Network Group Invite',
  UserLoggedIn = 'User Logged In',
  NodeAuthSaved = 'Node Auth Saved',
  ErrorNodeResumePush = 'Node Resume Push Error',
  AnalyticsDigest = 'Usage Digest Report',
  WebAppOpened = 'Web App Opened',
  WebConsoleError = 'Web Console Error',
  WayfindingDebug = 'Wayfinding Debug',
  AttachmentUploadSuccess = 'Attachment Upload Success',
  ActionContactAdded = 'Contact Added',
  ActionContactRemoved = 'Contact Removed',
  ActionRemoveContactSuggestion = 'Removed Contact Suggestion',
  ActionContactEdited = 'Contact Edited',
  ActionUpdatedProfile = 'Updated Profile',
  ActionSendPost = 'Sent Post',
  ActionForwardPost = 'Forwarded Post',
  ActionForwardGroup = 'Forwarded Group',
  ActionStartedDM = 'Started DM',
  ActionSendPostRetry = 'Retried Post Send',
  ActionHidePost = 'Hid Post',
  ActionSendReply = 'Sent Thread Reply',
  ActionDeletePost = 'Deleted Post',
  ActionReact = 'Reacted to Post',
  ActionUnreact = 'Removed Reaction from Post ',
  ActionRespondToDMInvite = 'Responded to DM Invite',
  ActionBlockUser = 'Blocked User',
  ActionUnblockUser = 'Unblocked User',
  ActionCustomizeDM = 'Customized DM',
  ActionJoinGroup = 'Joined Group',
  ActionCancelGroupJoin = 'Cancelled Group Join',
  ActionCustomizedGroup = 'Customized Group',
  ActionDeleteGroup = 'Deleted Group',
  ActionKickUser = 'Kicked User',
  ActionBanUser = 'Banned User',
  ActionUnbanUser = 'Unbanned User',
  ActionCreateGroup = 'Created Group',
  ActionAcceptJoinRequest = 'Accepted Request to Join Group',
  ActionRejectJoinRequest = 'Rejected Request to Join Group',
  ActionAcceptGroupInvite = 'Accepted Group Invite',
  ActionRejectGroupInvite = 'Rejected Group Invite',
  ActionUpdatedGroupPrivacy = 'Updated Group Privacy',
  ActionLeaveGroup = 'Left Group',
  ActionAddedRole = 'Added Group Role',
  ActionRemovedRole = 'Removed Group Role',
  ActionUpdatedRole = 'Updated Group Role',
  ActionAddMemberRole = 'Added Members to Group Role',
  ActionRemoveMemberRole = 'Removed Members from Group Role',
  ActionVisitedGroup = 'Viewed Group',
  ActionRequestGroupInvite = 'Requested Group Invite',
  ActionCreateChannel = 'Created Channel',
  ActionDeleteChannel = 'Deleted Channel',
  ActionUpdatedChannel = 'Updated Channel',
  ActionPinChat = 'Pinned Chat',
  ActionUnpinChat = 'Unpinned Chat',
  ActionVisitedChannel = 'Viewed Channel',
  ActionTappedChat = 'Tapped Chatlist Item',
  ActionJoinChannel = 'Joined Channel',
  ActionMoveChannel = 'Moved Channel',
  ActionUpdateChannelWriters = 'Updated Channel Writers',
  ActionAddedNavSection = 'Added Navigation Section',
  ActionUpdatedNavSection = 'Updated Navigation Section',
  ActionDeletedNavSection = 'Deleted Navigation Section',
  ActionUpdatedGroupNavigation = 'Updated Group Navigation',
  ActionViewProfileGroup = 'Viewed Pinned Profile Group',
  ActionSelectActivityEvent = 'Tapped Activity Event',
  ActionsNotifPermsChecked = 'Checked Notification Permissions',
  ActionNotifPermsSettingsOpened = 'Opened Notification Settings from Nag',
  ActionNotifPermsGrantedFromNag = 'Granted Notification Permission from Nag',
  ActionInitiateTwitterAttest = 'Initiated Twitter Attestation',
  ActionConfirmTwitterAttest = 'Confirmed Twitter Attestation',
  ActionInitiatePhoneAttest = 'Initiated Phone Attestation',
  ActionCheckAttestSig = 'Checked Attestation Signature',
  ActionRevokeAttestation = 'Revoked Attestation',
  ActionUpdateAttestDiscoverability = 'Updated Attestation Discoverability',
  ActionConfirmPhoneAttest = 'Confirmed Phone Attestation',
  ActionGroupChannelSelected = 'Tapped group channel',
  ActionTappedPushNotif = 'Tapped Push Notification',
  ActionDeferredDeepLink = 'Installed with Deferred Deeplink Invite',
  ActionContactBookSkipped = 'Skipped Syncing Contact Book',
  ActionContactBookPermRequested = 'Contact Book Requesting Permission',
  ActionContactBookPermGranted = 'Contact Book Permission Granted',
  ActionContactBookPermDenied = 'Contact Book Permission Denied',
  ActionContactBookInviteShown = 'Contact Book Invite Shown',
  ActionContactBookInviteSent = 'Contact Book Invite Sent',
  FetchLinkMetadata = 'Fetched Link Metadata',
  ActionCalmSettingsUpdate = 'Calm Settings Updated',
  ActionThemeUpdate = 'Theme Setting Updated',
  DebugSystemContacts = 'System Contacts Debug',
  GroupJoinComplete = 'Group Join Complete',
  PersonalInviteLinkReady = 'Personal Invite Link Ready',
  ErrorSendPost = 'Error Sending Post',
  ErrorSendReply = 'Error Sending Thread Reply',
  ErrorReact = 'Error Reacting to Post',
  ErrorUnreact = 'Error Removing Reaction from Post',
  ErrorPushNotifNavigate = 'Error Navigating to Push Channel',
  ErrorDigestFailed = 'Error Preparing Usage Digest',
  ErrorSyncStartHighPriority = 'Error Start Sync: High Priority',
  ErrorSyncStartLowPriority = 'Error Start Sync: Low Priority',
  ErrorVerifyingPersonalInvite = 'Error Verifying DM Invite Link',
  ErrorAttestation = 'Attestation Error',
  ErrorNounParse = 'Error Parsing Noun',
  ErrorNotificationService = 'Notification Service Error',
  ErrorCreateGroup = 'Error Creating Group',
  ErrorWayfinding = 'Wayfinding Error',
  ErrorSystemContacts = 'System Contacts Error',
  ErrorCalmSettingsUpdate = 'Error Updating Calm Settings',
  ErrorThemeUpdate = 'Error Updating Theme Setting',
  ErrorApi = 'API Error',
  ErrorFetchLinkMetadata = 'Error Fetching Link Metadata',
}

export interface AnalyticsDigest {
  numContacts?: number | null;
  numSystemContacts?: number | null;
  numGroups?: number | null;
  numGroupchats?: number | null;
  numGroupsHosted?: number | null;
  numChannels?: number | null;
  numDms?: number | null;
  numLegacyGroupDms?: number | null;
  numGalleries?: number | null;
  numNotebooks?: number | null;
}

export enum AnalyticsSeverity {
  Critical = 'Critical',
  High = 'High',
  Medium = 'Medium',
  Low = 'Low',
}
