// @flow type DeviceType = 'mobile' | 'web' | 'desktop'; declare type User = { country: ?string, created_at: string, family_name: ?string, given_name: ?string, groups: Array, has_verified_email: boolean, id: number, invite_reward_claimed: boolean, invited_at: ?number, invited_by_id: number, invites_remaining: number, is_email_enabled: boolean, is_identity_verified: boolean, is_reward_approved: boolean, password_set: boolean, language: string, manual_approval_user_id: ?number, primary_email: ?string, latest_claimed_email: ?string, reward_status_change_trigger: string, updated_at: string, youtube_channels: ?Array, device_types: Array, lbry_first_approved: boolean, experimental_ui: boolean, fiat_enabled: boolean, odysee_live_enabled: boolean, odysee_live_disabled: boolean, global_mod: boolean, publish_id: ?number, is_odysee_user: boolean, location: ?string, }; declare type UserState ={ authenticationIsPending: boolean, userIsPending: boolean, emailNewIsPending: boolean, emailNewErrorMessage: string, emailToVerify: string, emailAlreadyExists: boolean, emailDoesNotExist: boolean, resendingVerificationEmail: boolean, passwordResetPending: boolean, passwordResetSuccess: boolean, passwordResetError: ?string, passwordSetPending: boolean, passwordSetSuccess: boolean, passwordSetError: ?string, inviteNewErrorMessage: string, inviteNewIsPending: boolean, inviteStatusIsPending: boolean, invitesRemaining: ?number, invitees: ?Array, referralLink: ?string, referralCode: ?string, user: ?User, youtubeChannelImportPending: boolean, youtubeChannelImportErrorMessage: string, referrerSetIsPending: boolean, referrerSetError: string, odyseeMembershipsPerClaimIds: ?{ [string]: string }, locale: ?LocaleInfo, }; declare type LocaleInfo = { continent: string, country: string, gdpr_required: boolean, is_eu_member: boolean, };