import { OAuthApplicationType, ApplicationStatus, DeveloperRole, BungieMembershipType, IgnoreStatus, BungieCredentialType, ContentPropertyDataTypeEnum, ForumMediaType, ForumPostPopularity, GroupAllianceStatus, GroupType, ChatSecuritySetting, GroupHomepage, MembershipOption, GroupPostPublicity, Capabilities, HostGuidedGamesPermissionLevel, RuntimeGroupMemberType, DestinyProgressionRewardItemState, ItemState, DestinyStatAggregationType, DestinyStatCategory, DestinyProgressionScope, DestinyProgressionStepDisplayEffect, SpecialItemType, DestinyItemType, DestinyItemSubType, DestinyClass, DestinyBreakerType, DamageType, DestinySocketVisibility, SocketTypeActionType, DestinySocketCategoryStyle, TierType, BucketScope, BucketCategory, ItemLocation, EquippingItemBlockAttributes, DestinyAmmunitionType, DestinyGender, DestinyVendorProgressionType, VendorDisplayCategorySortOrder, VendorInteractionType, DestinyVendorInteractionRewardSelection, DestinyVendorReplyType, DestinyItemSortType, DestinyVendorItemRefundPolicy, DestinyGatingScope, ActivityGraphNodeHighlightType, DestinyActivityModeType, DestinyUnlockValueUIStyle, DestinyObjectiveUiStyle, DestinyObjectiveGrantStyle, DestinyActivityNavPointType, DestinyActivityModeCategory, DestinyActivityDifficultyTierType, DestinyActivitySkullDynamicUse, DestinyActivityModifierDisplayCategory, DestinyActivityModifierConnotation, DestinyActivityDifficultyId, DestinyGraphNodeState, DestinyRewardSourceCategory, DestinyPresentationNodeType, DestinyScope, DestinyPresentationDisplayStyle, DestinyPresentationScreenStyle, DestinyRecordValueStyle, DestinyRecordToastStyle, PlugUiStyles, PlugAvailabilityMode, DestinyEnergyType, SocketPlugSources, DestinyTalentNodeStepWeaponPerformances, DestinyTalentNodeStepImpactEffects, DestinyTalentNodeStepGuardianAttributes, DestinyTalentNodeStepLightAbilities, DestinyTalentNodeStepDamageTypes, ItemPerkVisibility, DestinyProgressionRewardItemAcquisitionBehavior, GroupPotentialMemberStatus, ForumRecruitmentIntensityLabel, ForumRecruitmentToneLabel, GroupDateRange, GroupSortBy, GroupMemberCountFilter, IgnoreLength, GroupApplicationResolveState, PlatformErrorCodes, DropStateEnum, DestinyGameVersions, ItemBindStatus, TransferStatuses, ComponentPrivacySetting, DestinyPresentationNodeState, DestinyRecordState, DestinyCollectibleState, DestinyPartyMemberStates, DestinyGamePrivacySetting, DestinyJoinClosedReasons, DestinyRace, DestinyMilestoneDisplayPreference, DestinyMilestoneType, DestinyActivityDifficultyTier, DestinyActivityRewardDisplayMode, EquipFailureReason, DestinyTalentNodeState, VendorItemStatus, DestinyVendorItemState, DestinySocketArrayType, DestinyStatsGroupType, PeriodType, DestinyStatsCategoryType, UnitType, DestinyStatsMergeMethod, AwaType, AwaUserSelection, AwaResponseReason, TrendingEntryType, FireteamPlatform, FireteamPlatformInviteResult, PresenceStatus, PresenceOnlineStateFlags, FriendRelationshipState, PlatformFriendType, DestinyActivityTreeType, DestinyActivityTreeChildSortMode, FireteamFinderCodeOptionType, FireteamFinderOptionAvailability, FireteamFinderOptionVisibility, FireteamFinderOptionControlType, FireteamFinderOptionSearchFilterType, FireteamFinderOptionDisplayFormat, FireteamFinderOptionValueProviderType, FireteamFinderOptionValueFlags, FireteamFinderLabelFieldType, OptInFlags, GlobalAlertLevel, GlobalAlertType } from "./enum"; export interface ApiUsage { apiCalls: Series[]; throttledRequests: Series[]; } export interface Series { datapoints: Datapoint[]; target: string; } export interface Datapoint { time: string; count: number | null; } export interface Application { applicationType: OAuthApplicationType; applicationId: number; name: string; redirectUrl: string; link: string; scope: string; origin: string; status: ApplicationStatus; creationDate: string; statusChanged: string; firstPublished: string; team: ApplicationDeveloper[]; overrideAuthorizeViewName: string; } export interface ApplicationDeveloper { role: DeveloperRole; apiEulaVersion: number; user: UserInfoCard; } export interface UserMembership { membershipType: BungieMembershipType; membershipId: string; displayName: string; bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; } export interface CrossSaveUserMembership { crossSaveOverride: BungieMembershipType; applicableMembershipTypes: BungieMembershipType[]; isPublic: boolean; membershipType: BungieMembershipType; membershipId: string; displayName: string; bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; } export interface UserInfoCard { supplementalDisplayName: string; iconPath: string; crossSaveOverride: BungieMembershipType; applicableMembershipTypes: BungieMembershipType[]; isPublic: boolean; membershipType: BungieMembershipType; membershipId: string; displayName: string; bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; } export interface GeneralUser { membershipId: string; uniqueName: string; normalizedName: string; displayName: string; profilePicture: number; profileTheme: number; userTitle: number; successMessageFlags: string; isDeleted: boolean; about: string; firstAccess: string | null; lastUpdate: string | null; legacyPortalUID: string | null; context: UserToUserContext; psnDisplayName: string; xboxDisplayName: string; fbDisplayName: string; showActivity: boolean | null; locale: string; localeInheritDefault: boolean; lastBanReportId: string | null; showGroupMessaging: boolean; profilePicturePath: string; profilePictureWidePath: string; profileThemeName: string; userTitleDisplay: string; statusText: string; statusDate: string; profileBanExpire: string | null; blizzardDisplayName: string; steamDisplayName: string; stadiaDisplayName: string; twitchDisplayName: string; cachedBungieGlobalDisplayName: string; cachedBungieGlobalDisplayNameCode: number | null; egsDisplayName: string; } export interface UserToUserContext { isFollowing: boolean; ignoreStatus: IgnoreResponse; globalIgnoreEndDate: string | null; } export interface GetCredentialTypesForAccountResponse { credentialType: BungieCredentialType; credentialDisplayName: string; isPublic: boolean; credentialAsString: string; } export interface UserMembershipData { destinyMemberships: GroupUserInfoCard[]; primaryMembershipId: string | null; marathonMembershipId: string | null; bungieNetUser: GeneralUser; } export interface HardLinkedUserMembership { membershipType: BungieMembershipType; membershipId: string; CrossSaveOverriddenType: BungieMembershipType; CrossSaveOverriddenMembershipId: string | null; } export interface UserSearchResponse { searchResults: UserSearchResponseDetail[]; page: number; hasMore: boolean; } export interface UserSearchResponseDetail { bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; bungieNetMembershipId: string | null; destinyMemberships: UserInfoCard[]; } export interface UserSearchPrefixRequest { displayNamePrefix: string; } export interface ExactSearchRequest { displayName: string; displayNameCode: number; } export interface EmailSettings { optInDefinitions: Record; subscriptionDefinitions: Record; views: Record; } export interface EmailOptInDefinition { name: string; value: OptInFlags; setByDefault: boolean; dependentSubscriptions: EmailSubscriptionDefinition[]; } export interface EmailSubscriptionDefinition { name: string; localization: Record; value: string; } export interface EMailSettingLocalization { title: string; description: string; } export interface EMailSettingSubscriptionLocalization { unknownUserDescription: string; registeredUserDescription: string; unregisteredUserDescription: string; unknownUserActionText: string; knownUserActionText: string; title: string; description: string; } export interface EmailViewDefinition { name: string; viewSettings: EmailViewDefinitionSetting[]; } export interface EmailViewDefinitionSetting { name: string; localization: Record; setByDefault: boolean; optInAggregateValue: OptInFlags; subscriptions: EmailSubscriptionDefinition[]; } export interface IgnoreResponse { isIgnored: boolean; ignoreFlags: IgnoreStatus; } export interface UserTheme { userThemeId: number; userThemeName: string; userThemeDescription: string; } export interface GroupTheme { name: string; folder: string; description: string; } export interface ClanBannerSource { } export interface ClanBannerDecal { identifier: string; foregroundPath: string; backgroundPath: string; } export interface GroupUserInfoCard { LastSeenDisplayName: string; LastSeenDisplayNameType: BungieMembershipType; supplementalDisplayName: string; iconPath: string; crossSaveOverride: BungieMembershipType; applicableMembershipTypes: BungieMembershipType[]; isPublic: boolean; membershipType: BungieMembershipType; membershipId: string; displayName: string; bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; } export interface GroupResponse { detail: GroupV2; founder: GroupMember; alliedIds: string[]; parentGroup: GroupV2; allianceStatus: GroupAllianceStatus; groupJoinInviteCount: number; currentUserMembershipsInactiveForDestiny: boolean; currentUserMemberMap: Record; currentUserPotentialMemberMap: Record; } export interface GroupV2 { groupId: string; name: string; groupType: GroupType; membershipIdCreated: string; creationDate: string; modificationDate: string; about: string; tags: string[]; memberCount: number; isPublic: boolean; isPublicTopicAdminOnly: boolean; motto: string; allowChat: boolean; isDefaultPostPublic: boolean; chatSecurity: ChatSecuritySetting; locale: string; avatarImageIndex: number; homepage: GroupHomepage; membershipOption: MembershipOption; defaultPublicity: GroupPostPublicity; theme: string; bannerPath: string; avatarPath: string; conversationId: string; enableInvitationMessagingForAdmins: boolean; banExpireDate: string | null; features: GroupFeatures; remoteGroupId: string | null; clanInfo: GroupV2ClanInfoAndInvestment; } export interface GroupFeatures { maximumMembers: number; maximumMembershipsOfGroupType: number; capabilities: Capabilities; membershipTypes: BungieMembershipType[]; invitePermissionOverride: boolean; updateCulturePermissionOverride: boolean; hostGuidedGamePermissionOverride: HostGuidedGamesPermissionLevel; updateBannerPermissionOverride: boolean; joinLevel: RuntimeGroupMemberType; } export interface GroupV2ClanInfo { clanCallsign: string; clanBannerData: ClanBanner; } export interface ClanBanner { decalId: number; decalColorId: number; decalBackgroundColorId: number; gonfalonId: number; gonfalonColorId: number; gonfalonDetailId: number; gonfalonDetailColorId: number; } export interface GroupV2ClanInfoAndInvestment { d2ClanProgressions: Record; clanCallsign: string; clanBannerData: ClanBanner; } export interface GroupUserBase { groupId: string; destinyUserInfo: GroupUserInfoCard; bungieNetUserInfo: UserInfoCard; joinDate: string; } export interface GroupMember { memberType: RuntimeGroupMemberType; isOnline: boolean; lastOnlineStatusChange: string; groupId: string; destinyUserInfo: GroupUserInfoCard; bungieNetUserInfo: UserInfoCard; joinDate: string; } export interface GroupPotentialMember { potentialStatus: GroupPotentialMemberStatus; groupId: string; destinyUserInfo: GroupUserInfoCard; bungieNetUserInfo: UserInfoCard; joinDate: string; } export interface GroupV2Card { groupId: string; name: string; groupType: GroupType; creationDate: string; about: string; motto: string; memberCount: number; locale: string; membershipOption: MembershipOption; capabilities: Capabilities; remoteGroupId: string | null; clanInfo: GroupV2ClanInfo; avatarPath: string; theme: string; } export interface GroupSearchResponse { results: GroupV2Card[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface GroupQuery { name: string; groupType: GroupType; creationDate: GroupDateRange; sortBy: GroupSortBy; groupMemberCountFilter: GroupMemberCountFilter | null; localeFilter: string; tagText: string; itemsPerPage: number; currentPage: number; requestContinuationToken: string; } export interface GroupNameSearchRequest { groupName: string; groupType: GroupType; } export interface GroupOptionalConversation { groupId: string; conversationId: string; chatEnabled: boolean; chatName: string; chatSecurity: ChatSecuritySetting; } export interface GroupEditAction { name: string; about: string; motto: string; theme: string; avatarImageIndex: number | null; tags: string; isPublic: boolean | null; membershipOption: MembershipOption | null; isPublicTopicAdminOnly: boolean | null; allowChat: boolean | null; chatSecurity: ChatSecuritySetting | null; callsign: string; locale: string; homepage: GroupHomepage | null; enableInvitationMessagingForAdmins: boolean | null; defaultPublicity: GroupPostPublicity | null; } export interface GroupOptionsEditAction { InvitePermissionOverride: boolean | null; UpdateCulturePermissionOverride: boolean | null; HostGuidedGamePermissionOverride: HostGuidedGamesPermissionLevel | null; UpdateBannerPermissionOverride: boolean | null; JoinLevel: RuntimeGroupMemberType | null; } export interface GroupOptionalConversationAddRequest { chatName: string; chatSecurity: ChatSecuritySetting; } export interface GroupOptionalConversationEditRequest { chatEnabled: boolean | null; chatName: string; chatSecurity: ChatSecuritySetting | null; } export interface GroupMemberLeaveResult { group: GroupV2; groupDeleted: boolean; } export interface GroupBanRequest { comment: string; length: IgnoreLength; } export interface GroupBan { groupId: string; lastModifiedBy: UserInfoCard; createdBy: UserInfoCard; dateBanned: string; dateExpires: string; comment: string; bungieNetUserInfo: UserInfoCard; destinyUserInfo: GroupUserInfoCard; } export interface GroupEditHistory { groupId: string; name: string; nameEditors: string | null; about: string; aboutEditors: string | null; motto: string; mottoEditors: string | null; clanCallsign: string; clanCallsignEditors: string | null; editDate: string | null; groupEditors: UserInfoCard[]; } export interface GroupMemberApplication { groupId: string; creationDate: string; resolveState: GroupApplicationResolveState; resolveDate: string | null; resolvedByMembershipId: string | null; requestMessage: string; resolveMessage: string; destinyUserInfo: GroupUserInfoCard; bungieNetUserInfo: UserInfoCard; } export interface GroupApplicationRequest { message: string; } export interface GroupApplicationListRequest { memberships: UserMembership[]; message: string; } export interface GroupMembershipBase { group: GroupV2; } export interface GroupMembership { member: GroupMember; group: GroupV2; } export interface GroupMembershipSearchResponse { results: GroupMembership[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface GetGroupsForMemberResponse { areAllMembershipsInactive: Record; results: GroupMembership[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface GroupPotentialMembership { member: GroupPotentialMember; group: GroupV2; } export interface GroupPotentialMembershipSearchResponse { results: GroupPotentialMembership[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface GroupApplicationResponse { resolution: GroupApplicationResolveState; } export interface ContentTypeDescription { cType: string; name: string; contentDescription: string; previewImage: string; priority: number; reminder: string; properties: ContentTypeProperty[]; tagMetadata: TagMetadataDefinition[]; tagMetadataItems: Record; usageExamples: string[]; showInContentEditor: boolean; typeOf: string; bindIdentifierToProperty: string; boundRegex: string; forceIdentifierBinding: boolean; allowComments: boolean; autoEnglishPropertyFallback: boolean; bulkUploadable: boolean; previews: ContentPreview[]; suppressCmsPath: boolean; propertySections: ContentTypePropertySection[]; } export interface ContentTypeProperty { name: string; rootPropertyName: string; readableName: string; value: string; propertyDescription: string; localizable: boolean; fallback: boolean; enabled: boolean; order: number; visible: boolean; isTitle: boolean; required: boolean; maxLength: number; maxByteLength: number; maxFileSize: number; regexp: string; validateAs: string; rssAttribute: string; visibleDependency: string; visibleOn: string; datatype: ContentPropertyDataTypeEnum; attributes: Record; childProperties: ContentTypeProperty[]; contentTypeAllowed: string; bindToProperty: string; boundRegex: string; representationSelection: Record; defaultValues: ContentTypeDefaultValue[]; isExternalAllowed: boolean; propertySection: string; weight: number; entitytype: string; isCombo: boolean; suppressProperty: boolean; legalContentTypes: string[]; representationValidationString: string; minWidth: number; maxWidth: number; minHeight: number; maxHeight: number; isVideo: boolean; isImage: boolean; } export interface ContentTypeDefaultValue { whenClause: string; whenValue: string; defaultValue: string; } export interface TagMetadataDefinition { description: string; order: number; items: TagMetadataItem[]; datatype: string; name: string; isRequired: boolean; } export interface TagMetadataItem { description: string; tagText: string; groups: string[]; isDefault: boolean; name: string; } export interface ContentPreview { name: string; path: string; itemInSet: boolean; setTag: string; setNesting: number; useSetId: number; } export interface ContentTypePropertySection { name: string; readableName: string; collapsed: boolean; } export interface ContentItemPublicContract { contentId: string; cType: string; cmsPath: string; creationDate: string; modifyDate: string; allowComments: boolean; hasAgeGate: boolean; minimumAge: number; ratingImagePath: string; author: GeneralUser; autoEnglishPropertyFallback: boolean; properties: Record; representations: ContentRepresentation[]; tags: string[]; commentSummary: CommentSummary; } export interface ContentRepresentation { name: string; path: string; validationString: string; } export interface CommentSummary { topicId: string; commentCount: number; } export interface NewsArticleRssResponse { CurrentPaginationToken: number; NextPaginationToken: number | null; ResultCountThisPage: number; NewsArticles: NewsArticleRssItem[]; CategoryFilter: string; PagerAction: string; } export interface NewsArticleRssItem { Title: string; Link: string; PubDate: string; UniqueIdentifier: string; Description: string; HtmlContent: string; ImagePath: string; OptionalMobileImagePath: string; } export interface SearchResult { totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface PagedQuery { itemsPerPage: number; currentPage: number; requestContinuationToken: string; } export interface SearchResultOfContentItemPublicContract { results: ContentItemPublicContract[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface PostResponse { lastReplyTimestamp: string; IsPinned: boolean; urlMediaType: ForumMediaType; thumbnail: string; popularity: ForumPostPopularity; isActive: boolean; isAnnouncement: boolean; userRating: number; userHasRated: boolean; userHasMutedPost: boolean; latestReplyPostId: string; latestReplyAuthorId: string; ignoreStatus: IgnoreResponse; locale: string; } export interface PostSearchResponse { relatedPosts: PostResponse[]; authors: GeneralUser[]; groups: GroupResponse[]; searchedTags: TagResponse[]; polls: PollResponse[]; recruitmentDetails: ForumRecruitmentDetail[]; availablePages: number | null; results: PostResponse[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface PollResponse { topicId: string; results: PollResult[]; totalVotes: number; } export interface PollResult { answerText: string; answerSlot: number; lastVoteDate: string; votes: number; requestingUserVoted: boolean; } export interface ForumRecruitmentDetail { topicId: string; microphoneRequired: boolean; intensity: ForumRecruitmentIntensityLabel; tone: ForumRecruitmentToneLabel; approved: boolean; conversationId: string | null; playerSlotsTotal: number; playerSlotsRemaining: number; Fireteam: GeneralUser[]; kickedPlayerIds: string[]; } export interface SearchResultOfPostResponse { results: PostResponse[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface DestinyProgression { progressionHash: number; dailyProgress: number; dailyLimit: number; weeklyProgress: number; weeklyLimit: number; currentProgress: number; level: number; levelCap: number; stepIndex: number; progressToNextLevel: number; nextLevelAt: number; currentResetCount: number | null; seasonResets: DestinyProgressionResetEntry[]; rewardItemStates: DestinyProgressionRewardItemState[]; rewardItemSocketOverrideStates: Record; } export interface DestinyProgressionResetEntry { season: number; resets: number; } export interface DestinyProgressionRewardItemSocketOverrideState { rewardItemStats: Record; itemState: ItemState; } export interface DestinyStat { statHash: number; value: number; } export interface DestinyDefinition { hash: number; index: number; redacted: boolean; } export interface DestinyStatDefinition { displayProperties: DestinyDisplayPropertiesDefinition; aggregationType: DestinyStatAggregationType; hasComputedBlock: boolean; statCategory: DestinyStatCategory; hash: number; index: number; redacted: boolean; } export interface DestinyDisplayPropertiesDefinition { description: string; name: string; icon: string; iconHash: number; iconSequences: DestinyIconSequenceDefinition[]; highResIcon: string; hasIcon: boolean; } export interface DestinyIconSequenceDefinition { frames: string[]; } export interface DestinyIconDefinition { foreground: string; background: string; secondaryBackground: string; specialBackground: string; highResForeground: string; hash: number; index: number; redacted: boolean; } export interface DestinyProgressionDefinition { displayProperties: DestinyProgressionDisplayPropertiesDefinition; scope: DestinyProgressionScope; repeatLastStep: boolean; source: string; steps: DestinyProgressionStepDefinition[]; visible: boolean; factionHash: number | null; color: DestinyColor; rankIcon: string; rewardItems: DestinyProgressionRewardItemQuantity[]; hash: number; index: number; redacted: boolean; } export interface DestinyProgressionDisplayPropertiesDefinition { displayUnitsName: string; description: string; name: string; icon: string; iconHash: number; iconSequences: DestinyIconSequenceDefinition[]; highResIcon: string; hasIcon: boolean; } export interface DestinyProgressionStepDefinition { stepName: string; displayEffectType: DestinyProgressionStepDisplayEffect; progressTotal: number; rewardItems: DestinyItemQuantity[]; icon: string; } export interface DestinyItemQuantity { itemHash: number; itemInstanceId: string | null; quantity: number; hasConditionalVisibility: boolean; } export interface DestinyInventoryItemDefinition { displayProperties: DestinyDisplayPropertiesDefinition; tooltipNotifications: DestinyItemTooltipNotification[]; collectibleHash: number | null; iconWatermark: string; iconWatermarkShelved: string; iconWatermarkFeatured: string; secondaryIcon: string; secondaryOverlay: string; secondarySpecial: string; backgroundColor: DestinyColor; isFeaturedItem: boolean; isHolofoil: boolean; isAdept: boolean; screenshot: string; itemTypeDisplayName: string; flavorText: string; uiItemDisplayStyle: string; itemTypeAndTierDisplayName: string; displaySource: string; tooltipStyle: string; action: DestinyItemActionBlockDefinition; crafting: DestinyItemCraftingBlockDefinition; inventory: DestinyItemInventoryBlockDefinition; setData: DestinyItemSetBlockDefinition; stats: DestinyItemStatBlockDefinition; emblemObjectiveHash: number | null; equippingBlock: DestinyEquippingBlockDefinition; translationBlock: DestinyItemTranslationBlockDefinition; preview: DestinyItemPreviewBlockDefinition; quality: DestinyItemQualityBlockDefinition; value: DestinyItemValueBlockDefinition; sourceData: DestinyItemSourceBlockDefinition; objectives: DestinyItemObjectiveBlockDefinition; metrics: DestinyItemMetricBlockDefinition; plug: DestinyItemPlugDefinition; gearset: DestinyItemGearsetBlockDefinition; sack: DestinyItemSackBlockDefinition; sockets: DestinyItemSocketBlockDefinition; summary: DestinyItemSummaryBlockDefinition; talentGrid: DestinyItemTalentGridBlockDefinition; investmentStats: DestinyItemInvestmentStatDefinition[]; perks: DestinyItemPerkEntryDefinition[]; loreHash: number | null; summaryItemHash: number | null; animations: DestinyAnimationReference[]; allowActions: boolean; links: HyperlinkReference[]; doesPostmasterPullHaveSideEffects: boolean; nonTransferrable: boolean; itemCategoryHashes: number[]; specialItemType: SpecialItemType; itemType: DestinyItemType; itemSubType: DestinyItemSubType; classType: DestinyClass; breakerType: DestinyBreakerType; breakerTypeHash: number | null; equippable: boolean; damageTypeHashes: number[]; damageTypes: DamageType[]; defaultDamageType: DamageType; defaultDamageTypeHash: number | null; seasonHash: number | null; isWrapper: boolean; traitIds: string[]; traitHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyItemTooltipNotification { displayString: string; displayStyle: string; } export interface DestinyColor { red: string; green: string; blue: string; alpha: string; } export interface DestinyItemActionBlockDefinition { verbName: string; verbDescription: string; isPositive: boolean; overlayScreenName: string; overlayIcon: string; requiredCooldownSeconds: number; requiredItems: DestinyItemActionRequiredItemDefinition[]; progressionRewards: DestinyProgressionRewardDefinition[]; actionTypeLabel: string; requiredLocation: string; requiredCooldownHash: number; deleteOnAction: boolean; consumeEntireStack: boolean; useOnAcquire: boolean; } export interface DestinyItemActionRequiredItemDefinition { count: number; itemHash: number; deleteOnAction: boolean; } export interface DestinyProgressionRewardDefinition { progressionMappingHash: number; amount: number; applyThrottles: boolean; } export interface DestinyProgressionMappingDefinition { displayProperties: DestinyDisplayPropertiesDefinition; displayUnits: string; hash: number; index: number; redacted: boolean; } export interface DestinyItemCraftingBlockDefinition { outputItemHash: number; requiredSocketTypeHashes: number[]; failedRequirementStrings: string[]; baseMaterialRequirements: number | null; bonusPlugs: DestinyItemCraftingBlockBonusPlugDefinition[]; } export interface DestinyItemCraftingBlockBonusPlugDefinition { socketTypeHash: number; plugItemHash: number; } export interface DestinySocketTypeDefinition { displayProperties: DestinyDisplayPropertiesDefinition; insertAction: DestinyInsertPlugActionDefinition; plugWhitelist: DestinyPlugWhitelistEntryDefinition[]; socketCategoryHash: number; visibility: DestinySocketVisibility; alwaysRandomizeSockets: boolean; isPreviewEnabled: boolean; hideDuplicateReusablePlugs: boolean; overridesUiAppearance: boolean; avoidDuplicatesOnInitialization: boolean; currencyScalars: DestinySocketTypeScalarMaterialRequirementEntry[]; hash: number; index: number; redacted: boolean; } export interface DestinyInsertPlugActionDefinition { actionExecuteSeconds: number; actionType: SocketTypeActionType; } export interface DestinyPlugWhitelistEntryDefinition { categoryHash: number; categoryIdentifier: string; reinitializationPossiblePlugHashes: number[]; } export interface DestinySocketTypeScalarMaterialRequirementEntry { currencyItemHash: number; scalarValue: number; } export interface DestinySocketCategoryDefinition { displayProperties: DestinyDisplayPropertiesDefinition; uiCategoryStyle: number; categoryStyle: DestinySocketCategoryStyle; hash: number; index: number; redacted: boolean; } export interface DestinyMaterialRequirementSetDefinition { materials: DestinyMaterialRequirement[]; hash: number; index: number; redacted: boolean; } export interface DestinyMaterialRequirement { itemHash: number; deleteOnAction: boolean; count: number; countIsConstant: boolean; omitFromRequirements: boolean; hasVirtualStackSize: boolean; } export interface DestinyItemInventoryBlockDefinition { stackUniqueLabel: string; maxStackSize: number; bucketTypeHash: number; recoveryBucketTypeHash: number; tierTypeHash: number; isInstanceItem: boolean; tierTypeName: string; tierType: TierType; expirationTooltip: string; expiredInActivityMessage: string; expiredInOrbitMessage: string; suppressExpirationWhenObjectivesComplete: boolean; recipeItemHash: number | null; } export interface DestinyInventoryBucketDefinition { displayProperties: DestinyDisplayPropertiesDefinition; scope: BucketScope; category: BucketCategory; bucketOrder: number; itemCount: number; location: ItemLocation; hasTransferDestination: boolean; enabled: boolean; fifo: boolean; hash: number; index: number; redacted: boolean; } export interface DestinyItemTierTypeDefinition { displayProperties: DestinyDisplayPropertiesDefinition; infusionProcess: DestinyItemTierTypeInfusionBlock; hash: number; index: number; redacted: boolean; } export interface DestinyItemTierTypeInfusionBlock { baseQualityTransferRatio: number; minimumQualityIncrement: number; } export interface DestinyItemSetBlockDefinition { itemList: DestinyItemSetBlockEntryDefinition[]; requireOrderedSetItemAdd: boolean; setIsFeatured: boolean; setType: string; questLineName: string; questLineDescription: string; questStepSummary: string; } export interface DestinyItemSetBlockEntryDefinition { trackingValue: number; itemHash: number; } export interface DestinyItemStatBlockDefinition { disablePrimaryStatDisplay: boolean; statGroupHash: number | null; stats: Record; hasDisplayableStats: boolean; primaryBaseStatHash: number; } export interface DestinyInventoryItemStatDefinition { statHash: number; value: number; minimum: number; maximum: number; displayMaximum: number | null; } export interface DestinyStatGroupDefinition { maximumValue: number; uiPosition: number; scaledStats: DestinyStatDisplayDefinition[]; overrides: Record; hash: number; index: number; redacted: boolean; } export interface DestinyStatDisplayDefinition { statHash: number; maximumValue: number; displayAsNumeric: boolean; displayInterpolation: InterpolationPoint[]; } export interface DestinyStatOverrideDefinition { statHash: number; displayProperties: DestinyDisplayPropertiesDefinition; } export interface DestinyEquippingBlockDefinition { gearsetItemHash: number | null; uniqueLabel: string; uniqueLabelHash: number; equipmentSlotTypeHash: number; attributes: EquippingItemBlockAttributes; ammoType: DestinyAmmunitionType; displayStrings: string[]; equipableItemSetHash: number | null; } export interface DestinyEquipmentSlotDefinition { displayProperties: DestinyDisplayPropertiesDefinition; equipmentCategoryHash: number; bucketTypeHash: number; applyCustomArtDyes: boolean; artDyeChannels: DestinyArtDyeReference[]; hash: number; index: number; redacted: boolean; } export interface DestinyArtDyeReference { artDyeChannelHash: number; } export interface DestinyEquipableItemSetDefinition { displayProperties: DestinyDisplayPropertiesDefinition; setItems: number[]; setPerks: DestinyItemSetPerkDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyItemSetPerkDefinition { requiredSetCount: number; sandboxPerkHash: number; } export interface DestinySandboxPerkDefinition { displayProperties: DestinyDisplayPropertiesDefinition; perkIdentifier: string; isDisplayable: boolean; damageType: DamageType; damageTypeHash: number | null; hash: number; index: number; redacted: boolean; } export interface DestinyDamageTypeDefinition { displayProperties: DestinyDisplayPropertiesDefinition; transparentIconPath: string; showIcon: boolean; enumValue: DamageType; color: DestinyColor; hash: number; index: number; redacted: boolean; } export interface DestinyItemTranslationBlockDefinition { weaponPatternIdentifier: string; weaponPatternHash: number; defaultDyes: DyeReference[]; lockedDyes: DyeReference[]; customDyes: DyeReference[]; arrangements: DestinyGearArtArrangementReference[]; hasGeometry: boolean; } export interface DyeReference { channelHash: number; dyeHash: number; } export interface DestinyGearArtArrangementReference { classHash: number; artArrangementHash: number; } export interface DestinyClassDefinition { classType: DestinyClass; displayProperties: DestinyDisplayPropertiesDefinition; genderedClassNames: Record; genderedClassNamesByGenderHash: Record; mentorVendorHash: number | null; hash: number; index: number; redacted: boolean; } export interface DestinyGenderDefinition { genderType: DestinyGender; displayProperties: DestinyDisplayPropertiesDefinition; hash: number; index: number; redacted: boolean; } export interface DestinyVendorDefinition { displayProperties: DestinyVendorDisplayPropertiesDefinition; vendorProgressionType: DestinyVendorProgressionType; buyString: string; sellString: string; displayItemHash: number; inhibitBuying: boolean; inhibitSelling: boolean; factionHash: number; resetIntervalMinutes: number; resetOffsetMinutes: number; failureStrings: string[]; unlockRanges: DateRange[]; vendorIdentifier: string; vendorPortrait: string; vendorBanner: string; enabled: boolean; visible: boolean; vendorSubcategoryIdentifier: string; consolidateCategories: boolean; actions: DestinyVendorActionDefinition[]; categories: DestinyVendorCategoryEntryDefinition[]; originalCategories: DestinyVendorCategoryEntryDefinition[]; displayCategories: DestinyDisplayCategoryDefinition[]; interactions: DestinyVendorInteractionDefinition[]; inventoryFlyouts: DestinyVendorInventoryFlyoutDefinition[]; itemList: DestinyVendorItemDefinition[]; services: DestinyVendorServiceDefinition[]; acceptedItems: DestinyVendorAcceptedItemDefinition[]; returnWithVendorRequest: boolean; locations: DestinyVendorLocationDefinition[]; groups: DestinyVendorGroupReference[]; ignoreSaleItemHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyVendorDisplayPropertiesDefinition { largeIcon: string; subtitle: string; originalIcon: string; requirementsDisplay: DestinyVendorRequirementDisplayEntryDefinition[]; smallTransparentIcon: string; mapIcon: string; largeTransparentIcon: string; description: string; name: string; icon: string; iconHash: number; iconSequences: DestinyIconSequenceDefinition[]; highResIcon: string; hasIcon: boolean; } export interface DestinyVendorRequirementDisplayEntryDefinition { icon: string; name: string; source: string; type: string; } export interface DestinyVendorActionDefinition { description: string; executeSeconds: number; icon: string; name: string; verb: string; isPositive: boolean; actionId: string; actionHash: number; autoPerformAction: boolean; } export interface DestinyVendorCategoryEntryDefinition { categoryIndex: number; sortValue: number; categoryHash: number; quantityAvailable: number; showUnavailableItems: boolean; hideIfNoCurrency: boolean; hideFromRegularPurchase: boolean; buyStringOverride: string; disabledDescription: string; displayTitle: string; overlay: DestinyVendorCategoryOverlayDefinition; vendorItemIndexes: number[]; isPreview: boolean; isDisplayOnly: boolean; resetIntervalMinutesOverride: number; resetOffsetMinutesOverride: number; } export interface DestinyVendorCategoryOverlayDefinition { choiceDescription: string; description: string; icon: string; title: string; currencyItemHash: number | null; } export interface DestinyDisplayCategoryDefinition { index: number; identifier: string; displayCategoryHash: number; displayProperties: DestinyDisplayPropertiesDefinition; displayInBanner: boolean; progressionHash: number | null; sortOrder: VendorDisplayCategorySortOrder; displayStyleHash: number | null; displayStyleIdentifier: string; } export interface DestinyVendorInteractionDefinition { interactionIndex: number; replies: DestinyVendorInteractionReplyDefinition[]; vendorCategoryIndex: number; questlineItemHash: number; sackInteractionList: DestinyVendorInteractionSackEntryDefinition[]; uiInteractionType: number; interactionType: VendorInteractionType; rewardBlockLabel: string; rewardVendorCategoryIndex: number; flavorLineOne: string; flavorLineTwo: string; headerDisplayProperties: DestinyDisplayPropertiesDefinition; instructions: string; } export interface DestinyVendorInteractionReplyDefinition { itemRewardsSelection: DestinyVendorInteractionRewardSelection; reply: string; replyType: DestinyVendorReplyType; } export interface DestinyVendorInteractionSackEntryDefinition { sackType: number; } export interface DestinyVendorInventoryFlyoutDefinition { lockedDescription: string; displayProperties: DestinyDisplayPropertiesDefinition; buckets: DestinyVendorInventoryFlyoutBucketDefinition[]; flyoutId: number; suppressNewness: boolean; equipmentSlotHash: number | null; } export interface DestinyVendorInventoryFlyoutBucketDefinition { collapsible: boolean; inventoryBucketHash: number; sortItemsBy: DestinyItemSortType; } export interface DestinyVendorItemDefinition { vendorItemIndex: number; itemHash: number; quantity: number; failureIndexes: number[]; currencies: DestinyVendorItemQuantity[]; refundPolicy: DestinyVendorItemRefundPolicy; refundTimeLimit: number; creationLevels: DestinyItemCreationEntryLevelDefinition[]; displayCategoryIndex: number; categoryIndex: number; originalCategoryIndex: number; minimumLevel: number; maximumLevel: number; action: DestinyVendorSaleItemActionBlockDefinition; displayCategory: string; inventoryBucketHash: number; visibilityScope: DestinyGatingScope; purchasableScope: DestinyGatingScope; exclusivity: BungieMembershipType; isOffer: boolean | null; isCrm: boolean | null; sortValue: number; expirationTooltip: string; redirectToSaleIndexes: number[]; socketOverrides: DestinyVendorItemSocketOverride[]; unpurchasable: boolean | null; } export interface DestinyVendorItemQuantity { itemHash: number; itemInstanceId: string | null; quantity: number; hasConditionalVisibility: boolean; } export interface DestinyItemCreationEntryLevelDefinition { level: number; } export interface DestinyVendorSaleItemActionBlockDefinition { executeSeconds: number; isPositive: boolean; } export interface DestinyVendorItemSocketOverride { singleItemHash: number | null; randomizedOptionsCount: number; socketTypeHash: number; } export interface DestinyVendorServiceDefinition { name: string; } export interface DestinyVendorAcceptedItemDefinition { acceptedInventoryBucketHash: number; destinationInventoryBucketHash: number; } export interface DestinyVendorLocationDefinition { destinationHash: number; backgroundImagePath: string; } export interface DestinyDestinationDefinition { displayProperties: DestinyDisplayPropertiesDefinition; placeHash: number; defaultFreeroamActivityHash: number; activityGraphEntries: DestinyActivityGraphListEntryDefinition[]; bubbleSettings: DestinyDestinationBubbleSettingDefinition[]; bubbles: DestinyBubbleDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyActivityGraphListEntryDefinition { activityGraphHash: number; } export interface DestinyActivityGraphDefinition { nodes: DestinyActivityGraphNodeDefinition[]; artElements: DestinyActivityGraphArtElementDefinition[]; connections: DestinyActivityGraphConnectionDefinition[]; displayObjectives: DestinyActivityGraphDisplayObjectiveDefinition[]; displayProgressions: DestinyActivityGraphDisplayProgressionDefinition[]; linkedGraphs: DestinyLinkedGraphDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyActivityGraphNodeDefinition { nodeId: number; overrideDisplay: DestinyDisplayPropertiesDefinition; position: DestinyPositionDefinition; featuringStates: DestinyActivityGraphNodeFeaturingStateDefinition[]; activities: DestinyActivityGraphNodeActivityDefinition[]; states: DestinyActivityGraphNodeStateEntry[]; } export interface DestinyPositionDefinition { x: number; y: number; z: number; } export interface DestinyActivityGraphNodeFeaturingStateDefinition { highlightType: ActivityGraphNodeHighlightType; } export interface DestinyActivityGraphNodeActivityDefinition { nodeActivityId: number; activityHash: number; } export interface DestinyActivityDefinition { displayProperties: DestinyDisplayPropertiesDefinition; originalDisplayProperties: DestinyDisplayPropertiesDefinition; selectionScreenDisplayProperties: DestinyDisplayPropertiesDefinition; releaseIcon: string; releaseTime: number; activityLightLevel: number; destinationHash: number; placeHash: number; activityTypeHash: number; tier: number; pgcrImage: string; rewards: DestinyActivityRewardDefinition[]; modifiers: DestinyActivityModifierReferenceDefinition[]; isPlaylist: boolean; challenges: DestinyActivityChallengeDefinition[]; optionalUnlockStrings: DestinyActivityUnlockStringDefinition[]; activityFamilyHashes: number[]; traitHashes: number[]; requirements: DestinyActivityRequirementsBlock; difficultyTierCollectionHash: number | null; selectableSkullCollectionHashes: number[]; selectableSkullCollections: DestinyActivitySelectableSkullCollections[]; playlistItems: DestinyActivityPlaylistItemDefinition[]; activityGraphList: DestinyActivityGraphListEntryDefinition[]; matchmaking: DestinyActivityMatchmakingBlockDefinition; guidedGame: DestinyActivityGuidedBlockDefinition; directActivityModeHash: number | null; directActivityModeType: DestinyActivityModeType | null; loadouts: DestinyActivityLoadoutRequirementSet[]; activityModeHashes: number[]; activityModeTypes: DestinyActivityModeType[]; isPvP: boolean; insertionPoints: DestinyActivityInsertionPointDefinition[]; activityLocationMappings: DestinyEnvironmentLocationMapping[]; curatorBlockDefinition: DestinyActivityCuratorBlockDefinition; durationEstimate: DestinyActivityDurationEstimate; hash: number; index: number; redacted: boolean; } export interface DestinyActivityRewardDefinition { rewardText: string; rewardItems: DestinyItemQuantity[]; } export interface DestinyActivityModifierReferenceDefinition { activityModifierHash: number; } export interface DestinyActivityModifierDefinition { displayProperties: DestinyDisplayPropertiesDefinition; displayInNavMode: boolean; displayInActivitySelection: boolean; hash: number; index: number; redacted: boolean; } export interface DestinyActivityChallengeDefinition { objectiveHash: number; dummyRewards: DestinyItemQuantity[]; } export interface DestinyObjectiveDefinition { displayProperties: DestinyDisplayPropertiesDefinition; completionValue: number; scope: DestinyGatingScope; locationHash: number; allowNegativeValue: boolean; allowValueChangeWhenCompleted: boolean; isCountingDownward: boolean; valueStyle: DestinyUnlockValueUIStyle; progressDescription: string; perks: DestinyObjectivePerkEntryDefinition; stats: DestinyObjectiveStatEntryDefinition; minimumVisibilityThreshold: number; allowOvercompletion: boolean; showValueOnComplete: boolean; completedValueStyle: DestinyUnlockValueUIStyle; inProgressValueStyle: DestinyUnlockValueUIStyle; uiLabel: string; uiStyle: DestinyObjectiveUiStyle; hash: number; index: number; redacted: boolean; } export interface DestinyObjectivePerkEntryDefinition { perkHash: number; style: DestinyObjectiveGrantStyle; } export interface DestinyObjectiveStatEntryDefinition { stat: DestinyItemInvestmentStatDefinition; style: DestinyObjectiveGrantStyle; } export interface DestinyItemInvestmentStatDefinition { statTypeHash: number; value: number; isConditionallyActive: boolean; } export interface DestinyLocationDefinition { vendorHash: number; locationReleases: DestinyLocationReleaseDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyLocationReleaseDefinition { displayProperties: DestinyDisplayPropertiesDefinition; smallTransparentIcon: string; mapIcon: string; largeTransparentIcon: string; spawnPoint: number; destinationHash: number; activityHash: number; activityGraphHash: number; activityGraphNodeHash: number; activityBubbleName: number; activityPathBundle: number; activityPathDestination: number; navPointType: DestinyActivityNavPointType; worldPosition: number[]; } export interface DestinyActivityUnlockStringDefinition { displayString: string; } export interface DestinyActivityRequirementsBlock { leaderRequirementLabels: DestinyActivityRequirementLabel[]; fireteamRequirementLabels: DestinyActivityRequirementLabel[]; } export interface DestinyActivityRequirementLabel { displayString: string; } export interface DestinyActivitySelectableSkullCollections { selectableSkullCollectionHash: number; minimumTierRank: number; maximumTierRank: number; } export interface DestinyActivityPlaylistItemDefinition { activityHash: number; directActivityModeHash: number | null; directActivityModeType: DestinyActivityModeType | null; activityModeHashes: number[]; activityModeTypes: DestinyActivityModeType[]; } export interface DestinyActivityModeDefinition { displayProperties: DestinyDisplayPropertiesDefinition; pgcrImage: string; modeType: DestinyActivityModeType; activityModeCategory: DestinyActivityModeCategory; isTeamBased: boolean; isAggregateMode: boolean; parentHashes: number[]; friendlyName: string; activityModeMappings: Record; display: boolean; order: number; hash: number; index: number; redacted: boolean; } export interface DestinyActivityMatchmakingBlockDefinition { isMatchmade: boolean; minParty: number; maxParty: number; maxPlayers: number; requiresGuardianOath: boolean; } export interface DestinyActivityGuidedBlockDefinition { guidedMaxLobbySize: number; guidedMinLobbySize: number; guidedDisbandCount: number; } export interface DestinyActivityLoadoutRequirementSet { requirements: DestinyActivityLoadoutRequirement[]; } export interface DestinyActivityLoadoutRequirement { equipmentSlotHash: number; allowedEquippedItemHashes: number[]; allowedWeaponSubTypes: DestinyItemSubType[]; } export interface DestinyActivityInsertionPointDefinition { phaseHash: number; } export interface DestinyEnvironmentLocationMapping { locationHash: number; activationSource: string; itemHash: number | null; objectiveHash: number | null; activityHash: number | null; } export interface DestinyActivityCuratorBlockDefinition { quickplaySortPriority: number; quickplaySortToFront: boolean; } export interface DestinyActivityDurationEstimate { durationPipsFilledCount: number; durationPipsTotalCount: number; durationEstimateText: string; } export interface DestinyPlaceDefinition { displayProperties: DestinyDisplayPropertiesDefinition; hash: number; index: number; redacted: boolean; } export interface DestinyActivityTypeDefinition { displayProperties: DestinyDisplayPropertiesDefinition; hash: number; index: number; redacted: boolean; } export interface DestinyActivityFamilyDefinition { traits: number[]; disabledSkullCategoryHashes: number[]; disabledSkullSubcategoryHashes: number[]; fixedSkullSubcategoryHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyTraitDefinition { displayProperties: DestinyDisplayPropertiesDefinition; displayHint: string; hash: number; index: number; redacted: boolean; } export interface DestinyActivitySkullCategoryDefinition { displayProperties: DestinyDisplayPropertiesDefinition; hash: number; index: number; redacted: boolean; } export interface DestinyActivitySkullSubcategoryDefinition { displayProperties: DestinyDisplayPropertiesDefinition; parentSkullCategoryHash: number; availabilityTierRank: number; defaultSkullHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyActivityDifficultyTierCollectionDefinition { difficultyTiers: DestinyActivityDifficultyTierDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyActivityDifficultyTierDefinition { displayProperties: DestinyDisplayPropertiesDefinition; recommendedActivityLevelOffset: number; fixedActivitySkulls: DestinyActivitySkull[]; tierType: DestinyActivityDifficultyTierType; optionalRequiredTrait: number | null; activityLevel: number; tierRank: number; minimumFireteamLeaderPower: number; maximumFireteamLeaderPower: number; scoreTimeLimitMultiplier: number; selectableSkullCollectionHashes: number[]; skullSubcategoryOverrides: DestinyActivityDifficultyTierSubcategoryOverride[]; } export interface DestinyActivitySkull { hash: number; skullIdentifierHash: number; displayProperties: DestinyDisplayPropertiesDefinition; skullOptions: DestinyActivitySkullOption[]; dynamicUse: DestinyActivitySkullDynamicUse; modifierPowerContribution: number; modifierMultiplierContribution: number; skullExclusionGroupHash: number | null; hasUi: boolean; displayDescriptionOverrideForNavMode: string; activityModifierDisplayCategory: DestinyActivityModifierDisplayCategory; activityModifierConnotation: DestinyActivityModifierConnotation; displayInNavMode: boolean; displayInActivitySelection: boolean; } export interface DestinyActivitySkullOption { optionHash: number; stringValue: string; boolValue: boolean; integerValue: number; floatValue: number; minDisplayDifficultyId: DestinyActivityDifficultyId; } export interface DestinyActivitySelectableSkullExclusionGroupDefinition { hash: number; index: number; redacted: boolean; } export interface DestinyActivityDifficultyTierSubcategoryOverride { skullSubcategoryHash: number; refreshTimeMinutes: number; refreshTimeOffsetMinutes: number; } export interface DestinyActivitySelectableSkullCollectionDefinition { displayProperties: DestinyDisplayPropertiesDefinition; skullSubcategoryHashes: number[]; selectionType: DestinyActivitySelectableSkullCollectionSelectionType; selectableActivitySkulls: DestinyActivitySelectableSkull[]; hash: number; index: number; redacted: boolean; } export interface DestinyActivitySelectableSkullCollectionSelectionType { selectionCount: number; refreshTimeMinutes: number; refreshTimeOffsetMinutes: number; } export interface DestinyActivitySelectableSkull { requiredTraitHash: number | null; requiredTraitExistence: boolean; isEmptySkull: boolean; loadoutRestrictionHash: number | null; activitySkull: DestinyActivitySkull; } export interface DestinyActivityLoadoutRestrictionDefinition { restrictedItemFilterHash: number; restrictedEquipmentSlotHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyActivityGraphNodeStateEntry { state: DestinyGraphNodeState; } export interface DestinyActivityGraphArtElementDefinition { position: DestinyPositionDefinition; } export interface DestinyActivityGraphConnectionDefinition { sourceNodeHash: number; destNodeHash: number; } export interface DestinyActivityGraphDisplayObjectiveDefinition { id: number; objectiveHash: number; } export interface DestinyActivityGraphDisplayProgressionDefinition { id: number; progressionHash: number; } export interface DestinyLinkedGraphDefinition { description: string; name: string; linkedGraphId: number; linkedGraphs: DestinyLinkedGraphEntryDefinition[]; overview: string; } export interface DestinyLinkedGraphEntryDefinition { activityGraphHash: number; } export interface DestinyDestinationBubbleSettingDefinition { displayProperties: DestinyDisplayPropertiesDefinition; } export interface DestinyBubbleDefinition { hash: number; displayProperties: DestinyDisplayPropertiesDefinition; } export interface DestinyVendorGroupReference { vendorGroupHash: number; } export interface DestinyVendorGroupDefinition { order: number; categoryName: string; hash: number; index: number; redacted: boolean; } export interface DestinyFactionDefinition { displayProperties: DestinyDisplayPropertiesDefinition; progressionHash: number; tokenValues: Record; rewardItemHash: number; rewardVendorHash: number; vendors: DestinyFactionVendorDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyFactionVendorDefinition { vendorHash: number; destinationHash: number; backgroundImagePath: string; } export interface DestinySandboxPatternDefinition { patternHash: number; patternGlobalTagIdHash: number; weaponContentGroupHash: number; weaponTranslationGroupHash: number; weaponTypeHash: number | null; weaponType: DestinyItemSubType; filters: DestinyArrangementRegionFilterDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyArrangementRegionFilterDefinition { artArrangementRegionHash: number; artArrangementRegionIndex: number; statHash: number; arrangementIndexByStatValue: Record; } export interface DestinyItemPreviewBlockDefinition { screenStyle: string; previewVendorHash: number; artifactHash: number | null; previewActionString: string; derivedItemCategories: DestinyDerivedItemCategoryDefinition[]; } export interface DestinyDerivedItemCategoryDefinition { categoryDescription: string; items: DestinyDerivedItemDefinition[]; } export interface DestinyDerivedItemDefinition { itemHash: number | null; itemName: string; itemDetail: string; itemDescription: string; iconPath: string; vendorItemIndex: number; } export interface DestinyArtifactDefinition { displayProperties: DestinyDisplayPropertiesDefinition; translationBlock: DestinyItemTranslationBlockDefinition; tiers: DestinyArtifactTierDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyArtifactTierDefinition { tierHash: number; displayTitle: string; progressRequirementMessage: string; items: DestinyArtifactTierItemDefinition[]; minimumUnlockPointsUsedRequirement: number; } export interface DestinyArtifactTierItemDefinition { itemHash: number; } export interface DestinyItemQualityBlockDefinition { itemLevels: number[]; qualityLevel: number; infusionCategoryName: string; infusionCategoryHash: number; infusionCategoryHashes: number[]; progressionLevelRequirementHash: number; currentVersion: number; versions: DestinyItemVersionDefinition[]; displayVersionWatermarkIcons: string[]; } export interface DestinyItemVersionDefinition { powerCapHash: number; } export interface DestinyPowerCapDefinition { powerCap: number; hash: number; index: number; redacted: boolean; } export interface DestinyProgressionLevelRequirementDefinition { requirementCurve: InterpolationPointFloat[]; progressionHash: number; hash: number; index: number; redacted: boolean; } export interface DestinyItemValueBlockDefinition { itemValue: DestinyItemQuantity[]; valueDescription: string; } export interface DestinyItemSourceBlockDefinition { sourceHashes: number[]; sources: DestinyItemSourceDefinition[]; exclusive: BungieMembershipType; vendorSources: DestinyItemVendorSourceReference[]; } export interface DestinyItemSourceDefinition { level: number; minQuality: number; maxQuality: number; minLevelRequired: number; maxLevelRequired: number; computedStats: Record; sourceHashes: number[]; } export interface DestinyRewardSourceDefinition { displayProperties: DestinyDisplayPropertiesDefinition; category: DestinyRewardSourceCategory; hash: number; index: number; redacted: boolean; } export interface DestinyItemVendorSourceReference { vendorHash: number; vendorItemIndexes: number[]; } export interface DestinyItemObjectiveBlockDefinition { objectiveHashes: number[]; displayActivityHashes: number[]; requireFullObjectiveCompletion: boolean; questlineItemHash: number; narrative: string; objectiveVerbName: string; questTypeIdentifier: string; questTypeHash: number; perObjectiveDisplayProperties: DestinyObjectiveDisplayProperties[]; displayAsStatTracker: boolean; } export interface DestinyObjectiveDisplayProperties { activityHash: number | null; displayOnItemPreviewScreen: boolean; } export interface DestinyItemMetricBlockDefinition { availableMetricCategoryNodeHashes: number[]; } export interface DestinyPresentationNodeBaseDefinition { presentationNodeType: DestinyPresentationNodeType; traitIds: string[]; traitHashes: number[]; parentNodeHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyScoredPresentationNodeBaseDefinition { maxCategoryRecordScore: number; presentationNodeType: DestinyPresentationNodeType; traitIds: string[]; traitHashes: number[]; parentNodeHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyPresentationNodeDefinition { displayProperties: DestinyDisplayPropertiesDefinition; originalIcon: string; rootViewIcon: string; nodeType: DestinyPresentationNodeType; isSeasonal: boolean; scope: DestinyScope; objectiveHash: number | null; completionRecordHash: number | null; children: DestinyPresentationNodeChildrenBlock; displayStyle: DestinyPresentationDisplayStyle; screenStyle: DestinyPresentationScreenStyle; requirements: DestinyPresentationNodeRequirementsBlock; disableChildSubscreenNavigation: boolean; maxCategoryRecordScore: number; presentationNodeType: DestinyPresentationNodeType; traitIds: string[]; traitHashes: number[]; parentNodeHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyPresentationNodeChildrenBlock { presentationNodes: DestinyPresentationNodeChildEntry[]; collectibles: DestinyPresentationNodeCollectibleChildEntry[]; records: DestinyPresentationNodeRecordChildEntry[]; metrics: DestinyPresentationNodeMetricChildEntry[]; craftables: DestinyPresentationNodeCraftableChildEntry[]; } export interface DestinyPresentationNodeChildEntryBase { nodeDisplayPriority: number; } export interface DestinyPresentationNodeChildEntry { presentationNodeHash: number; nodeDisplayPriority: number; } export interface DestinyPresentationNodeCollectibleChildEntry { collectibleHash: number; nodeDisplayPriority: number; } export interface DestinyCollectibleDefinition { displayProperties: DestinyDisplayPropertiesDefinition; scope: DestinyScope; sourceString: string; sourceHash: number | null; itemHash: number; acquisitionInfo: DestinyCollectibleAcquisitionBlock; stateInfo: DestinyCollectibleStateBlock; presentationInfo: DestinyPresentationChildBlock; presentationNodeType: DestinyPresentationNodeType; traitIds: string[]; traitHashes: number[]; parentNodeHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyCollectibleAcquisitionBlock { acquireMaterialRequirementHash: number | null; acquireTimestampUnlockValueHash: number | null; } export interface DestinyUnlockValueDefinition { hash: number; index: number; redacted: boolean; } export interface DestinyCollectibleStateBlock { obscuredOverrideItemHash: number | null; requirements: DestinyPresentationNodeRequirementsBlock; } export interface DestinyPresentationNodeRequirementsBlock { entitlementUnavailableMessage: string; } export interface DestinyPresentationChildBlock { presentationNodeType: DestinyPresentationNodeType; parentPresentationNodeHashes: number[]; displayStyle: DestinyPresentationDisplayStyle; } export interface DestinyPresentationNodeRecordChildEntry { recordHash: number; nodeDisplayPriority: number; } export interface DestinyRecordDefinition { displayProperties: DestinyDisplayPropertiesDefinition; scope: DestinyScope; presentationInfo: DestinyPresentationChildBlock; loreHash: number | null; objectiveHashes: number[]; recordValueStyle: DestinyRecordValueStyle; forTitleGilding: boolean; shouldShowLargeIcons: boolean; titleInfo: DestinyRecordTitleBlock; completionInfo: DestinyRecordCompletionBlock; stateInfo: SchemaRecordStateBlock; requirements: DestinyPresentationNodeRequirementsBlock; expirationInfo: DestinyRecordExpirationBlock; intervalInfo: DestinyRecordIntervalBlock; rewardItems: DestinyItemQuantity[]; recordTypeName: string; presentationNodeType: DestinyPresentationNodeType; traitIds: string[]; traitHashes: number[]; parentNodeHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyRecordTitleBlock { hasTitle: boolean; titlesByGender: Record; titlesByGenderHash: Record; gildingTrackingRecordHash: number | null; } export interface DestinyRecordCompletionBlock { partialCompletionObjectiveCountThreshold: number; ScoreValue: number; shouldFireToast: boolean; toastStyle: DestinyRecordToastStyle; } export interface SchemaRecordStateBlock { featuredPriority: number; obscuredName: string; obscuredDescription: string; } export interface DestinyRecordExpirationBlock { hasExpiration: boolean; description: string; icon: string; } export interface DestinyRecordIntervalBlock { intervalObjectives: DestinyRecordIntervalObjective[]; intervalRewards: DestinyRecordIntervalRewards[]; originalObjectiveArrayInsertionIndex: number; } export interface DestinyRecordIntervalObjective { intervalObjectiveHash: number; intervalScoreValue: number; } export interface DestinyRecordIntervalRewards { intervalRewardItems: DestinyItemQuantity[]; } export interface DestinyLoreDefinition { displayProperties: DestinyDisplayPropertiesDefinition; subtitle: string; hash: number; index: number; redacted: boolean; } export interface DestinyPresentationNodeMetricChildEntry { metricHash: number; nodeDisplayPriority: number; } export interface DestinyMetricDefinition { displayProperties: DestinyDisplayPropertiesDefinition; trackingObjectiveHash: number; lowerValueIsBetter: boolean; presentationNodeType: DestinyPresentationNodeType; traitIds: string[]; traitHashes: number[]; parentNodeHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyPresentationNodeCraftableChildEntry { craftableItemHash: number; nodeDisplayPriority: number; } export interface DestinyItemPlugDefinition { insertionRules: DestinyPlugRuleDefinition[]; plugCategoryIdentifier: string; plugCategoryHash: number; onActionRecreateSelf: boolean; insertionMaterialRequirementHash: number; previewItemOverrideHash: number; enabledMaterialRequirementHash: number; enabledRules: DestinyPlugRuleDefinition[]; uiPlugLabel: string; plugStyle: PlugUiStyles; plugAvailability: PlugAvailabilityMode; alternateUiPlugLabel: string; alternatePlugStyle: PlugUiStyles; isDummyPlug: boolean; parentItemOverride: DestinyParentItemOverride; energyCapacity: DestinyEnergyCapacityEntry; energyCost: DestinyEnergyCostEntry; } export interface DestinyPlugRuleDefinition { failureMessage: string; } export interface DestinyParentItemOverride { additionalEquipRequirementsDisplayStrings: string[]; pipIcon: string; } export interface DestinyEnergyCapacityEntry { capacityValue: number; energyTypeHash: number; energyType: DestinyEnergyType; } export interface DestinyEnergyTypeDefinition { displayProperties: DestinyDisplayPropertiesDefinition; transparentIconPath: string; showIcon: boolean; enumValue: DestinyEnergyType; capacityStatHash: number | null; costStatHash: number; hash: number; index: number; redacted: boolean; } export interface DestinyEnergyCostEntry { energyCost: number; energyTypeHash: number; energyType: DestinyEnergyType; } export interface DestinyItemGearsetBlockDefinition { trackingValueMax: number; itemList: number[]; } export interface DestinyItemSackBlockDefinition { detailAction: string; openAction: string; selectItemCount: number; vendorSackType: string; openOnAcquire: boolean; } export interface DestinyItemSocketBlockDefinition { detail: string; socketEntries: DestinyItemSocketEntryDefinition[]; intrinsicSockets: DestinyItemIntrinsicSocketEntryDefinition[]; socketCategories: DestinyItemSocketCategoryDefinition[]; } export interface DestinyItemSocketEntryDefinition { socketTypeHash: number; singleInitialItemHash: number; reusablePlugItems: DestinyItemSocketEntryPlugItemDefinition[]; preventInitializationOnVendorPurchase: boolean; hidePerksInItemTooltip: boolean; plugSources: SocketPlugSources; reusablePlugSetHash: number | null; randomizedPlugSetHash: number | null; defaultVisible: boolean; } export interface DestinyItemSocketEntryPlugItemDefinition { plugItemHash: number; } export interface DestinyPlugSetDefinition { displayProperties: DestinyDisplayPropertiesDefinition; reusablePlugItems: DestinyItemSocketEntryPlugItemRandomizedDefinition[]; isFakePlugSet: boolean; hash: number; index: number; redacted: boolean; } export interface DestinyItemSocketEntryPlugItemRandomizedDefinition { craftingRequirements: DestinyPlugItemCraftingRequirements; currentlyCanRoll: boolean; plugItemHash: number; } export interface DestinyPlugItemCraftingRequirements { unlockRequirements: DestinyPlugItemCraftingUnlockRequirement[]; requiredLevel: number | null; materialRequirementHashes: number[]; } export interface DestinyPlugItemCraftingUnlockRequirement { failureDescription: string; } export interface DestinyItemIntrinsicSocketEntryDefinition { plugItemHash: number; socketTypeHash: number; defaultVisible: boolean; } export interface DestinyItemSocketCategoryDefinition { socketCategoryHash: number; socketIndexes: number[]; } export interface DestinyItemSummaryBlockDefinition { sortPriority: number; } export interface DestinyItemTalentGridBlockDefinition { talentGridHash: number; itemDetailString: string; buildName: string; hudDamageType: DamageType; hudIcon: string; } export interface DestinyTalentGridDefinition { maxGridLevel: number; gridLevelPerColumn: number; progressionHash: number; nodes: DestinyTalentNodeDefinition[]; exclusiveSets: DestinyTalentNodeExclusiveSetDefinition[]; independentNodeIndexes: number[]; groups: Record; nodeCategories: DestinyTalentNodeCategory[]; hash: number; index: number; redacted: boolean; } export interface DestinyTalentNodeDefinition { nodeIndex: number; nodeHash: number; row: number; column: number; prerequisiteNodeIndexes: number[]; binaryPairNodeIndex: number; autoUnlocks: boolean; lastStepRepeats: boolean; isRandom: boolean; randomActivationRequirement: DestinyNodeActivationRequirement; isRandomRepurchasable: boolean; steps: DestinyNodeStepDefinition[]; exclusiveWithNodeHashes: number[]; randomStartProgressionBarAtProgression: number; layoutIdentifier: string; groupHash: number | null; loreHash: number | null; nodeStyleIdentifier: string; ignoreForCompletion: boolean; } export interface DestinyNodeActivationRequirement { gridLevel: number; materialRequirementHashes: number[]; } export interface DestinyNodeStepDefinition { displayProperties: DestinyDisplayPropertiesDefinition; stepIndex: number; nodeStepHash: number; interactionDescription: string; damageType: DamageType; damageTypeHash: number | null; activationRequirement: DestinyNodeActivationRequirement; canActivateNextStep: boolean; nextStepIndex: number; isNextStepRandom: boolean; perkHashes: number[]; startProgressionBarAtProgress: number; statHashes: number[]; affectsQuality: boolean; stepGroups: DestinyTalentNodeStepGroups; affectsLevel: boolean; socketReplacements: DestinyNodeSocketReplaceResponse[]; } export interface DestinyTalentNodeStepGroups { weaponPerformance: DestinyTalentNodeStepWeaponPerformances; impactEffects: DestinyTalentNodeStepImpactEffects; guardianAttributes: DestinyTalentNodeStepGuardianAttributes; lightAbilities: DestinyTalentNodeStepLightAbilities; damageTypes: DestinyTalentNodeStepDamageTypes; } export interface DestinyNodeSocketReplaceResponse { socketTypeHash: number; plugItemHash: number; } export interface DestinyTalentNodeExclusiveSetDefinition { nodeIndexes: number[]; } export interface DestinyTalentExclusiveGroup { groupHash: number; loreHash: number | null; nodeHashes: number[]; opposingGroupHashes: number[]; opposingNodeHashes: number[]; } export interface DestinyTalentNodeCategory { identifier: string; isLoreDriven: boolean; displayProperties: DestinyDisplayPropertiesDefinition; nodeHashes: number[]; } export interface DestinyItemPerkEntryDefinition { requirementDisplayString: string; perkHash: number; perkVisibility: ItemPerkVisibility; } export interface DestinyAnimationReference { animName: string; animIdentifier: string; path: string; } export interface DestinyItemCategoryDefinition { displayProperties: DestinyDisplayPropertiesDefinition; visible: boolean; deprecated: boolean; shortTitle: string; itemTypeRegex: string; grantDestinyBreakerType: DestinyBreakerType; plugCategoryIdentifier: string; itemTypeRegexNot: string; originBucketIdentifier: string; grantDestinyItemType: DestinyItemType; grantDestinySubType: DestinyItemSubType; grantDestinyClass: DestinyClass; traitId: string; groupedCategoryHashes: number[]; parentCategoryHashes: number[]; groupCategoryOnly: boolean; hash: number; index: number; redacted: boolean; } export interface DestinyBreakerTypeDefinition { displayProperties: DestinyDisplayPropertiesDefinition; enumValue: DestinyBreakerType; hash: number; index: number; redacted: boolean; } export interface DestinySeasonDefinition { displayProperties: DestinyDisplayPropertiesDefinition; backgroundImagePath: string; seasonNumber: number; startDate: string | null; endDate: string | null; seasonPassHash: number | null; seasonPassList: DestinySeasonPassReference[]; seasonPassProgressionHash: number | null; artifactItemHash: number | null; sealPresentationNodeHash: number | null; acts: DestinySeasonActDefinition[]; seasonalChallengesPresentationNodeHash: number | null; preview: DestinySeasonPreviewDefinition; hash: number; index: number; redacted: boolean; } export interface DestinySeasonPassReference { seasonPassHash: number; seasonPassStartDate: string | null; seasonPassEndDate: string | null; } export interface DestinySeasonPassDefinition { displayProperties: DestinyDisplayPropertiesDefinition; rewardProgressionHash: number; prestigeProgressionHash: number; linkRedirectPath: string; color: DestinyColor; images: DestinySeasonPassImages; hash: number; index: number; redacted: boolean; } export interface DestinySeasonPassImages { iconImagePath: string; themeBackgroundImagePath: string; } export interface DestinySeasonActDefinition { displayName: string; startTime: string; rankCount: number; } export interface DestinySeasonPreviewDefinition { description: string; linkPath: string; videoLink: string; images: DestinySeasonPreviewImageDefinition[]; } export interface DestinySeasonPreviewImageDefinition { thumbnailImage: string; highResImage: string; } export interface DestinyProgressionRewardItemQuantity { rewardItemIndex: number; rewardedAtProgressionLevel: number; acquisitionBehavior: DestinyProgressionRewardItemAcquisitionBehavior; uiDisplayStyle: string; claimUnlockDisplayStrings: string[]; socketOverrides: DestinyProgressionSocketPlugOverride[]; itemHash: number; itemInstanceId: string | null; quantity: number; hasConditionalVisibility: boolean; } export interface DestinyProgressionSocketPlugOverride { socketTypeHash: number; overrideSingleItemHash: number | null; } export interface DestinyManifest { version: string; mobileAssetContentPath: string; mobileGearAssetDataBases: GearAssetDataBaseDefinition[]; mobileWorldContentPaths: Record; jsonWorldContentPaths: Record; jsonWorldComponentContentPaths: Record>; mobileClanBannerDatabasePath: string; mobileGearCDN: Record; iconImagePyramidInfo: ImagePyramidEntry[]; } export interface GearAssetDataBaseDefinition { version: number; path: string; } export interface ImagePyramidEntry { name: string; factor: number; } export interface DestinyLinkedProfilesResponse { profiles: DestinyProfileUserInfoCard[]; bnetMembership: UserInfoCard; profilesWithErrors: DestinyErrorProfile[]; } export interface DestinyProfileUserInfoCard { dateLastPlayed: string; isOverridden: boolean; isCrossSavePrimary: boolean; platformSilver: DestinyPlatformSilverComponent; unpairedGameVersions: DestinyGameVersions | null; supplementalDisplayName: string; iconPath: string; crossSaveOverride: BungieMembershipType; applicableMembershipTypes: BungieMembershipType[]; isPublic: boolean; membershipType: BungieMembershipType; membershipId: string; displayName: string; bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; } export interface DestinyPlatformSilverComponent { platformSilver: Record; } export interface DestinyItemComponent { itemHash: number; itemInstanceId: string | null; quantity: number; bindStatus: ItemBindStatus; location: ItemLocation; bucketHash: number; transferStatus: TransferStatuses; lockable: boolean; state: ItemState; overrideStyleItemHash: number | null; expirationDate: string | null; isWrapper: boolean; tooltipNotificationIndexes: number[]; metricHash: number | null; metricObjective: DestinyObjectiveProgress; versionNumber: number | null; itemValueVisibility: boolean[]; } export interface DestinyObjectiveProgress { objectiveHash: number; destinationHash: number | null; activityHash: number | null; progress: number | null; completionValue: number; complete: boolean; visible: boolean; } export interface DestinyErrorProfile { errorCode: PlatformErrorCodes; infoCard: UserInfoCard; } export interface DestinyProfileResponse { responseMintedTimestamp: string; secondaryComponentsMintedTimestamp: string; vendorReceipts: SingleComponentResponseOfDestinyVendorReceiptsComponent; profileInventory: SingleComponentResponseOfDestinyInventoryComponent; profileCurrencies: SingleComponentResponseOfDestinyInventoryComponent; profile: SingleComponentResponseOfDestinyProfileComponent; platformSilver: SingleComponentResponseOfDestinyPlatformSilverComponent; profileKiosks: SingleComponentResponseOfDestinyKiosksComponent; profilePlugSets: SingleComponentResponseOfDestinyPlugSetsComponent; profileProgression: SingleComponentResponseOfDestinyProfileProgressionComponent; profilePresentationNodes: SingleComponentResponseOfDestinyPresentationNodesComponent; profileRecords: SingleComponentResponseOfDestinyProfileRecordsComponent; profileCollectibles: SingleComponentResponseOfDestinyProfileCollectiblesComponent; profileTransitoryData: SingleComponentResponseOfDestinyProfileTransitoryComponent; metrics: SingleComponentResponseOfDestinyMetricsComponent; profileStringVariables: SingleComponentResponseOfDestinyStringVariablesComponent; profileCommendations: SingleComponentResponseOfDestinySocialCommendationsComponent; characters: DictionaryComponentResponseOfint64AndDestinyCharacterComponent; characterInventories: DictionaryComponentResponseOfint64AndDestinyInventoryComponent; characterLoadouts: DictionaryComponentResponseOfint64AndDestinyLoadoutsComponent; characterProgressions: DictionaryComponentResponseOfint64AndDestinyCharacterProgressionComponent; characterRenderData: DictionaryComponentResponseOfint64AndDestinyCharacterRenderComponent; characterActivities: DictionaryComponentResponseOfint64AndDestinyCharacterActivitiesComponent; characterEquipment: DictionaryComponentResponseOfint64AndDestinyInventoryComponent; characterKiosks: DictionaryComponentResponseOfint64AndDestinyKiosksComponent; characterPlugSets: DictionaryComponentResponseOfint64AndDestinyPlugSetsComponent; characterUninstancedItemComponents: Record; characterPresentationNodes: DictionaryComponentResponseOfint64AndDestinyPresentationNodesComponent; characterRecords: DictionaryComponentResponseOfint64AndDestinyCharacterRecordsComponent; characterCollectibles: DictionaryComponentResponseOfint64AndDestinyCollectiblesComponent; characterStringVariables: DictionaryComponentResponseOfint64AndDestinyStringVariablesComponent; characterCraftables: DictionaryComponentResponseOfint64AndDestinyCraftablesComponent; itemComponents: DestinyItemComponentSetOfint64; characterCurrencyLookups: DictionaryComponentResponseOfint64AndDestinyCurrenciesComponent; } export interface DestinyVendorReceiptsComponent { receipts: DestinyVendorReceipt[]; } export interface DestinyVendorReceipt { currencyPaid: DestinyItemQuantity[]; itemReceived: DestinyItemQuantity; licenseUnlockHash: number; purchasedByCharacterId: string; refundPolicy: DestinyVendorItemRefundPolicy; sequenceNumber: number; timeToExpiration: string; expiresOn: string; } export interface DestinyInventoryComponent { items: DestinyItemComponent[]; } export interface DestinyProfileComponent { userInfo: UserInfoCard; dateLastPlayed: string; versionsOwned: DestinyGameVersions; characterIds: string[]; seasonHashes: number[]; seasonPassHashes: number[]; eventCardHashesOwned: number[]; currentSeasonHash: number | null; currentSeasonPassHash: number | null; currentSeasonRewardPowerCap: number | null; activeEventCardHash: number | null; currentGuardianRank: number; lifetimeHighestGuardianRank: number; renewedGuardianRank: number; } export interface DestinyEventCardDefinition { displayProperties: DestinyDisplayPropertiesDefinition; linkRedirectPath: string; color: DestinyColor; images: DestinyEventCardImages; triumphsPresentationNodeHash: number; sealPresentationNodeHash: number; eventCardCurrencyList: number[]; ticketCurrencyItemHash: number; ticketVendorHash: number; ticketVendorCategoryHash: number; endTime: string; rewardProgressionHash: number | null; rewardProgressionHashList: number[]; weeklyChallengesPresentationNodeHash: number | null; hash: number; index: number; redacted: boolean; } export interface DestinyEventCardImages { unownedCardSleeveImagePath: string; unownedCardSleeveWrapImagePath: string; cardIncompleteImagePath: string; cardCompleteImagePath: string; cardCompleteWrapImagePath: string; progressIconImagePath: string; themeBackgroundImagePath: string; } export interface DestinyGuardianRankDefinition { displayProperties: DestinyDisplayPropertiesDefinition; rankNumber: number; presentationNodeHash: number; foregroundImagePath: string; overlayImagePath: string; overlayMaskImagePath: string; hash: number; index: number; redacted: boolean; } export interface DestinyKiosksComponent { kioskItems: Record; } export interface DestinyKioskItem { index: number; canAcquire: boolean; failureIndexes: number[]; flavorObjective: DestinyObjectiveProgress; } export interface DestinyPlugSetsComponent { plugs: Record; } export interface DestinyItemPlugBase { plugItemHash: number; canInsert: boolean; enabled: boolean; insertFailIndexes: number[]; enableFailIndexes: number[]; stackSize: number | null; maxStackSize: number | null; } export interface DestinyItemPlug { plugObjectives: DestinyObjectiveProgress[]; plugItemHash: number; canInsert: boolean; enabled: boolean; insertFailIndexes: number[]; enableFailIndexes: number[]; stackSize: number | null; maxStackSize: number | null; } export interface DestinyProfileProgressionComponent { checklists: Record>; seasonalArtifact: DestinyArtifactProfileScoped; } export interface DestinyArtifactProfileScoped { artifactHash: number; pointProgression: DestinyProgression; pointsAcquired: number; powerBonusProgression: DestinyProgression; powerBonus: number; } export interface DestinyChecklistDefinition { displayProperties: DestinyDisplayPropertiesDefinition; viewActionString: string; scope: DestinyScope; entries: DestinyChecklistEntryDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyChecklistEntryDefinition { hash: number; displayProperties: DestinyDisplayPropertiesDefinition; destinationHash: number | null; locationHash: number | null; bubbleHash: number | null; activityHash: number | null; itemHash: number | null; vendorHash: number | null; vendorInteractionIndex: number | null; scope: DestinyScope; } export interface DestinyPresentationNodesComponent { nodes: Record; } export interface DestinyPresentationNodeComponent { state: DestinyPresentationNodeState; objective: DestinyObjectiveProgress; progressValue: number; completionValue: number; recordCategoryScore: number | null; } export interface DestinyRecordsComponent { records: Record; recordCategoriesRootNodeHash: number; recordSealsRootNodeHash: number; } export interface DestinyRecordComponent { state: DestinyRecordState; objectives: DestinyObjectiveProgress[]; intervalObjectives: DestinyObjectiveProgress[]; intervalsRedeemedCount: number; completedCount: number | null; rewardVisibilty: boolean[]; } export interface DestinyProfileRecordsComponent { score: number; activeScore: number; legacyScore: number; lifetimeScore: number; trackedRecordHash: number | null; records: Record; recordCategoriesRootNodeHash: number; recordSealsRootNodeHash: number; } export interface DestinyCollectiblesComponent { collectibles: Record; collectionCategoriesRootNodeHash: number; collectionBadgesRootNodeHash: number; } export interface DestinyCollectibleComponent { state: DestinyCollectibleState; } export interface DestinyProfileCollectiblesComponent { recentCollectibleHashes: number[]; newnessFlaggedCollectibleHashes: number[]; collectibles: Record; collectionCategoriesRootNodeHash: number; collectionBadgesRootNodeHash: number; } export interface DestinyProfileTransitoryComponent { partyMembers: DestinyProfileTransitoryPartyMember[]; currentActivity: DestinyProfileTransitoryCurrentActivity; joinability: DestinyProfileTransitoryJoinability; tracking: DestinyProfileTransitoryTrackingEntry[]; lastOrbitedDestinationHash: number | null; } export interface DestinyProfileTransitoryPartyMember { membershipId: string; emblemHash: number; displayName: string; status: DestinyPartyMemberStates; } export interface DestinyProfileTransitoryCurrentActivity { startTime: string | null; endTime: string | null; score: number; highestOpposingFactionScore: number; numberOfOpponents: number; numberOfPlayers: number; } export interface DestinyProfileTransitoryJoinability { openSlots: number; privacySetting: DestinyGamePrivacySetting; closedReasons: DestinyJoinClosedReasons; } export interface DestinyProfileTransitoryTrackingEntry { locationHash: number | null; itemHash: number | null; objectiveHash: number | null; activityHash: number | null; questlineItemHash: number | null; trackedDate: string | null; } export interface DestinyMetricsComponent { metrics: Record; metricsRootNodeHash: number; } export interface DestinyMetricComponent { invisible: boolean; objectiveProgress: DestinyObjectiveProgress; } export interface DestinyStringVariablesComponent { integerValuesByHash: Record; } export interface DestinySocialCommendationsComponent { totalScore: number; commendationNodePercentagesByHash: Record; scoreDetailValues: number[]; commendationNodeScoresByHash: Record; commendationScoresByHash: Record; } export interface DestinySocialCommendationNodeDefinition { displayProperties: DestinyDisplayPropertiesDefinition; color: DestinyColor; tintedIcon: string; parentCommendationNodeHash: number; childCommendationNodeHashes: number[]; childCommendationHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinySocialCommendationDefinition { displayProperties: DestinyDisplayPropertiesDefinition; cardImagePath: string; color: DestinyColor; displayPriority: number; activityGivingLimit: number; parentCommendationNodeHash: number; displayActivities: DestinyDisplayPropertiesDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyCharacterComponent { membershipId: string; membershipType: BungieMembershipType; characterId: string; dateLastPlayed: string; minutesPlayedThisSession: string; minutesPlayedTotal: string; light: number; stats: Record; raceHash: number; genderHash: number; classHash: number; raceType: DestinyRace; classType: DestinyClass; genderType: DestinyGender; emblemPath: string; emblemBackgroundPath: string; emblemHash: number; emblemColor: DestinyColor; levelProgression: DestinyProgression; baseCharacterLevel: number; percentToNextLevel: number; titleRecordHash: number | null; } export interface DestinyRaceDefinition { displayProperties: DestinyDisplayPropertiesDefinition; raceType: DestinyRace; genderedRaceNames: Record; genderedRaceNamesByGenderHash: Record; hash: number; index: number; redacted: boolean; } export interface DestinyLoadoutsComponent { loadouts: DestinyLoadoutComponent[]; } export interface DestinyLoadoutComponent { colorHash: number; iconHash: number; nameHash: number; items: DestinyLoadoutItemComponent[]; } export interface DestinyLoadoutItemComponent { itemInstanceId: string; plugItemHashes: number[]; } export interface DestinyLoadoutColorDefinition { colorImagePath: string; hash: number; index: number; redacted: boolean; } export interface DestinyLoadoutIconDefinition { iconImagePath: string; hash: number; index: number; redacted: boolean; } export interface DestinyLoadoutNameDefinition { name: string; hash: number; index: number; redacted: boolean; } export interface DestinyCharacterProgressionComponent { progressions: Record; factions: Record; milestones: Record; quests: DestinyQuestStatus[]; uninstancedItemObjectives: Record; uninstancedItemPerks: Record; checklists: Record>; seasonalArtifact: DestinyArtifactCharacterScoped; unclaimedOrderRewards: Record; } export interface DestinyFactionProgression { factionHash: number; factionVendorIndex: number; progressionHash: number; dailyProgress: number; dailyLimit: number; weeklyProgress: number; weeklyLimit: number; currentProgress: number; level: number; levelCap: number; stepIndex: number; progressToNextLevel: number; nextLevelAt: number; currentResetCount: number | null; seasonResets: DestinyProgressionResetEntry[]; rewardItemStates: DestinyProgressionRewardItemState[]; rewardItemSocketOverrideStates: Record; } export interface DestinyMilestone { milestoneHash: number; availableQuests: DestinyMilestoneQuest[]; activities: DestinyMilestoneChallengeActivity[]; values: Record; vendorHashes: number[]; vendors: DestinyMilestoneVendor[]; rewards: DestinyMilestoneRewardCategory[]; startDate: string | null; endDate: string | null; order: number; } export interface DestinyMilestoneQuest { questItemHash: number; status: DestinyQuestStatus; activity: DestinyMilestoneActivity; challenges: DestinyChallengeStatus[]; } export interface DestinyQuestStatus { questHash: number; stepHash: number; stepObjectives: DestinyObjectiveProgress[]; tracked: boolean; itemInstanceId: string; completed: boolean; redeemed: boolean; started: boolean; vendorHash: number | null; } export interface DestinyMilestoneActivity { activityHash: number; activityModeHash: number | null; activityModeType: DestinyActivityModeType | null; modifierHashes: number[]; variants: DestinyMilestoneActivityVariant[]; } export interface DestinyMilestoneActivityVariant { activityHash: number; completionStatus: DestinyMilestoneActivityCompletionStatus; activityModeHash: number | null; activityModeType: DestinyActivityModeType | null; } export interface DestinyMilestoneActivityCompletionStatus { completed: boolean; phases: DestinyMilestoneActivityPhase[]; } export interface DestinyMilestoneActivityPhase { complete: boolean; phaseHash: number; } export interface DestinyChallengeStatus { objective: DestinyObjectiveProgress; } export interface DestinyMilestoneChallengeActivity { activityHash: number; challenges: DestinyChallengeStatus[]; modifierHashes: number[]; booleanActivityOptions: Record; loadoutRequirementIndex: number | null; phases: DestinyMilestoneActivityPhase[]; } export interface DestinyMilestoneVendor { vendorHash: number; previewItemHash: number | null; } export interface DestinyMilestoneRewardCategory { rewardCategoryHash: number; entries: DestinyMilestoneRewardEntry[]; } export interface DestinyMilestoneRewardEntry { rewardEntryHash: number; earned: boolean; redeemed: boolean; } export interface DestinyMilestoneDefinition { displayProperties: DestinyDisplayPropertiesDefinition; displayPreference: DestinyMilestoneDisplayPreference; image: string; milestoneType: DestinyMilestoneType; recruitable: boolean; friendlyName: string; showInExplorer: boolean; showInMilestones: boolean; explorePrioritizesActivityImage: boolean; hasPredictableDates: boolean; quests: Record; rewards: Record; vendorsDisplayTitle: string; vendors: DestinyMilestoneVendorDefinition[]; values: Record; isInGameMilestone: boolean; activities: DestinyMilestoneChallengeActivityDefinition[]; defaultOrder: number; hash: number; index: number; redacted: boolean; } export interface DestinyMilestoneQuestDefinition { questItemHash: number; displayProperties: DestinyDisplayPropertiesDefinition; overrideImage: string; questRewards: DestinyMilestoneQuestRewardsDefinition; activities: Record; destinationHash: number | null; } export interface DestinyMilestoneQuestRewardsDefinition { items: DestinyMilestoneQuestRewardItem[]; } export interface DestinyMilestoneQuestRewardItem { vendorHash: number | null; vendorItemIndex: number | null; itemHash: number; itemInstanceId: string | null; quantity: number; hasConditionalVisibility: boolean; } export interface DestinyMilestoneActivityDefinition { conceptualActivityHash: number; variants: Record; } export interface DestinyMilestoneActivityVariantDefinition { activityHash: number; order: number; } export interface DestinyMilestoneRewardCategoryDefinition { categoryHash: number; categoryIdentifier: string; displayProperties: DestinyDisplayPropertiesDefinition; rewardEntries: Record; order: number; } export interface DestinyMilestoneRewardEntryDefinition { rewardEntryHash: number; rewardEntryIdentifier: string; items: DestinyItemQuantity[]; vendorHash: number | null; displayProperties: DestinyDisplayPropertiesDefinition; order: number; } export interface DestinyMilestoneVendorDefinition { vendorHash: number; } export interface DestinyMilestoneValueDefinition { key: string; displayProperties: DestinyDisplayPropertiesDefinition; } export interface DestinyMilestoneChallengeActivityDefinition { activityHash: number; challenges: DestinyMilestoneChallengeDefinition[]; activityGraphNodes: DestinyMilestoneChallengeActivityGraphNodeEntry[]; phases: DestinyMilestoneChallengeActivityPhase[]; } export interface DestinyMilestoneChallengeDefinition { challengeObjectiveHash: number; } export interface DestinyMilestoneChallengeActivityGraphNodeEntry { activityGraphHash: number; activityGraphNodeHash: number; } export interface DestinyMilestoneChallengeActivityPhase { phaseHash: number; } export interface DestinyItemPerksComponent { perks: DestinyPerkReference[]; } export interface DestinyPerkReference { perkHash: number; iconPath: string; isActive: boolean; visible: boolean; } export interface DestinyArtifactCharacterScoped { artifactHash: number; pointsUsed: number; resetCount: number; tiers: DestinyArtifactTier[]; } export interface DestinyArtifactTier { tierHash: number; isUnlocked: boolean; pointsToUnlock: number; items: DestinyArtifactTierItem[]; } export interface DestinyArtifactTierItem { itemHash: number; isActive: boolean; isVisible: boolean; } export interface DestinyCharacterRenderComponent { customDyes: DyeReference[]; customization: DestinyCharacterCustomization; peerView: DestinyCharacterPeerView; } export interface DestinyCharacterCustomization { personality: number; face: number; skinColor: number; lipColor: number; eyeColor: number; hairColors: number[]; featureColors: number[]; decalColor: number; wearHelmet: boolean; hairIndex: number; featureIndex: number; decalIndex: number; } export interface DestinyCharacterPeerView { equipment: DestinyItemPeerView[]; } export interface DestinyItemPeerView { itemHash: number; dyes: DyeReference[]; } export interface DestinyCharacterActivitiesComponent { dateActivityStarted: string; availableActivities: DestinyActivity[]; availableActivityInteractables: DestinyActivityInteractableReference[]; difficultyTierCollections: Record; selectableSkullCollections: Record; currentActivityHash: number; currentActivityModeHash: number; currentActivityModeType: DestinyActivityModeType | null; currentActivityModeHashes: number[]; currentActivityModeTypes: DestinyActivityModeType[]; currentPlaylistActivityHash: number | null; lastCompletedStoryHash: number; } export interface DestinyActivity { activityHash: number; isNew: boolean; canLead: boolean; canJoin: boolean; isCompleted: boolean; isVisible: boolean; displayLevel: number | null; recommendedLight: number | null; difficultyTier: DestinyActivityDifficultyTier; challenges: DestinyChallengeStatus[]; modifierHashes: number[]; booleanActivityOptions: Record; loadoutRequirementIndex: number | null; visibleRewards: DestinyActivityRewardMapping[]; isFocusedActivity: boolean; leaderRequirementFailureIndices: number[]; fireteamRequirementFailureIndices: number[]; } export interface DestinyActivityRewardMapping { displayBehavior: DestinyActivityRewardDisplayMode; rewardItems: DestinyActivityRewardItem[]; } export interface DestinyActivityRewardItem { itemQuantity: DestinyItemQuantity; uiStyle: string; } export interface DestinyActivityInteractableReference { activityInteractableHash: number; activityInteractableElementIndex: number; } export interface DestinyActivityInteractableDefinition { entries: DestinyActivityInteractableEntryDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyActivityInteractableEntryDefinition { activityHash: number; } export interface DestinyActivityDifficultyTierCollectionComponent { difficultyTierCollectionHash: number; difficultyTiers: DestinyActivityDifficultyTierComponent[]; } export interface DestinyActivityDifficultyTierComponent { difficultyTierIndex: number; fixedActivitySkulls: DestinyActivitySkullComponent[]; } export interface DestinyActivitySkullComponent { hash: number; skullIdentifierHash: number; isEnabled: boolean; } export interface DestinyActivitySelectableSkullCollectionComponent { selectableSkullCollectionHash: number; selectableSkulls: DestinyActivitySkullComponent[]; } export interface DestinyItemObjectivesComponent { objectives: DestinyObjectiveProgress[]; flavorObjective: DestinyObjectiveProgress; dateCompleted: string | null; } export interface DestinyCharacterRecordsComponent { featuredRecordHashes: number[]; records: Record; recordCategoriesRootNodeHash: number; recordSealsRootNodeHash: number; } export interface DestinyCraftablesComponent { craftables: Record; craftingRootNodeHash: number; } export interface DestinyCraftableComponent { visible: boolean; failedRequirementIndexes: number[]; sockets: DestinyCraftableSocketComponent[]; } export interface DestinyCraftableSocketComponent { plugSetHash: number; plugs: DestinyCraftableSocketPlugComponent[]; } export interface DestinyCraftableSocketPlugComponent { plugItemHash: number; failedRequirementIndexes: number[]; } export interface DestinyItemInstanceComponent { damageType: DamageType; damageTypeHash: number | null; primaryStat: DestinyStat; itemLevel: number; quality: number; isEquipped: boolean; canEquip: boolean; equipRequiredLevel: number; unlockHashesRequiredToEquip: number[]; cannotEquipReason: EquipFailureReason; breakerType: DestinyBreakerType | null; breakerTypeHash: number | null; energy: DestinyItemInstanceEnergy; gearTier: number | null; } export interface DestinyItemInstanceEnergy { energyTypeHash: number; energyType: DestinyEnergyType; energyCapacity: number; energyUsed: number; energyUnused: number; } export interface DestinyUnlockDefinition { displayProperties: DestinyDisplayPropertiesDefinition; hash: number; index: number; redacted: boolean; } export interface DestinyItemRenderComponent { useCustomDyes: boolean; artRegions: Record; } export interface DestinyItemStatsComponent { stats: Record; } export interface DestinyItemSocketsComponent { sockets: DestinyItemSocketState[]; } export interface DestinyItemSocketState { plugHash: number | null; isEnabled: boolean; isVisible: boolean; enableFailIndexes: number[]; } export interface DestinyItemReusablePlugsComponent { plugs: Record; } export interface DestinyItemPlugObjectivesComponent { objectivesPerPlug: Record; } export interface DestinyItemTalentGridComponent { talentGridHash: number; nodes: DestinyTalentNode[]; isGridComplete: boolean; gridProgression: DestinyProgression; } export interface DestinyTalentNode { nodeIndex: number; nodeHash: number; state: DestinyTalentNodeState; isActivated: boolean; stepIndex: number; materialsToUpgrade: DestinyMaterialRequirement[]; activationGridLevel: number; progressPercent: number; hidden: boolean; nodeStatsBlock: DestinyTalentNodeStatBlock; } export interface DestinyTalentNodeStatBlock { currentStepStats: DestinyStat[]; nextStepStats: DestinyStat[]; } export interface DestinyItemPlugComponent { plugObjectives: DestinyObjectiveProgress[]; plugItemHash: number; canInsert: boolean; enabled: boolean; insertFailIndexes: number[]; enableFailIndexes: number[]; stackSize: number | null; maxStackSize: number | null; } export interface DestinyCurrenciesComponent { itemQuantities: Record; materialRequirementSetStates: Record; } export interface DestinyMaterialRequirementSetState { materialRequirementSetHash: number; materialRequirementStates: DestinyMaterialRequirementState[]; } export interface DestinyMaterialRequirementState { itemHash: number; count: number; stackSize: number; } export interface DestinyCharacterResponse { inventory: SingleComponentResponseOfDestinyInventoryComponent; character: SingleComponentResponseOfDestinyCharacterComponent; progressions: SingleComponentResponseOfDestinyCharacterProgressionComponent; renderData: SingleComponentResponseOfDestinyCharacterRenderComponent; activities: SingleComponentResponseOfDestinyCharacterActivitiesComponent; equipment: SingleComponentResponseOfDestinyInventoryComponent; loadouts: SingleComponentResponseOfDestinyLoadoutsComponent; kiosks: SingleComponentResponseOfDestinyKiosksComponent; plugSets: SingleComponentResponseOfDestinyPlugSetsComponent; presentationNodes: SingleComponentResponseOfDestinyPresentationNodesComponent; records: SingleComponentResponseOfDestinyCharacterRecordsComponent; collectibles: SingleComponentResponseOfDestinyCollectiblesComponent; itemComponents: DestinyItemComponentSetOfint64; uninstancedItemComponents: DestinyBaseItemComponentSetOfuint32; currencyLookups: SingleComponentResponseOfDestinyCurrenciesComponent; } export interface DestinyItemResponse { characterId: string | null; item: SingleComponentResponseOfDestinyItemComponent; instance: SingleComponentResponseOfDestinyItemInstanceComponent; objectives: SingleComponentResponseOfDestinyItemObjectivesComponent; perks: SingleComponentResponseOfDestinyItemPerksComponent; renderData: SingleComponentResponseOfDestinyItemRenderComponent; stats: SingleComponentResponseOfDestinyItemStatsComponent; talentGrid: SingleComponentResponseOfDestinyItemTalentGridComponent; sockets: SingleComponentResponseOfDestinyItemSocketsComponent; reusablePlugs: SingleComponentResponseOfDestinyItemReusablePlugsComponent; plugObjectives: SingleComponentResponseOfDestinyItemPlugObjectivesComponent; } export interface DestinyVendorsResponse { vendorGroups: SingleComponentResponseOfDestinyVendorGroupComponent; vendors: DictionaryComponentResponseOfuint32AndDestinyVendorComponent; categories: DictionaryComponentResponseOfuint32AndDestinyVendorCategoriesComponent; sales: DictionaryComponentResponseOfuint32AndPersonalDestinyVendorSaleItemSetComponent; itemComponents: Record; currencyLookups: SingleComponentResponseOfDestinyCurrenciesComponent; stringVariables: SingleComponentResponseOfDestinyStringVariablesComponent; } export interface DestinyVendorGroupComponent { groups: DestinyVendorGroup[]; } export interface DestinyVendorGroup { vendorGroupHash: number; vendorHashes: number[]; } export interface DestinyVendorBaseComponent { vendorHash: number; nextRefreshDate: string; enabled: boolean; } export interface DestinyVendorComponent { canPurchase: boolean; progression: DestinyProgression; vendorLocationIndex: number; seasonalRank: number | null; vendorHash: number; nextRefreshDate: string; enabled: boolean; } export interface DestinyVendorCategoriesComponent { categories: DestinyVendorCategory[]; } export interface DestinyVendorCategory { displayCategoryIndex: number; itemIndexes: number[]; } export interface DestinyVendorSaleItemBaseComponent { vendorItemIndex: number; itemHash: number; overrideStyleItemHash: number | null; quantity: number; costs: DestinyItemQuantity[]; overrideNextRefreshDate: string | null; apiPurchasable: boolean | null; } export interface DestinyVendorSaleItemComponent { saleStatus: VendorItemStatus; requiredUnlocks: number[]; unlockStatuses: DestinyUnlockStatus[]; failureIndexes: number[]; augments: DestinyVendorItemState; itemValueVisibility: boolean[]; vendorItemIndex: number; itemHash: number; overrideStyleItemHash: number | null; quantity: number; costs: DestinyItemQuantity[]; overrideNextRefreshDate: string | null; apiPurchasable: boolean | null; } export interface DestinyUnlockStatus { unlockHash: number; isSet: boolean; } export interface PersonalDestinyVendorSaleItemSetComponent { saleItems: Record; } export interface DestinyVendorResponse { vendor: SingleComponentResponseOfDestinyVendorComponent; categories: SingleComponentResponseOfDestinyVendorCategoriesComponent; sales: DictionaryComponentResponseOfint32AndDestinyVendorSaleItemComponent; itemComponents: DestinyVendorItemComponentSetOfint32; currencyLookups: SingleComponentResponseOfDestinyCurrenciesComponent; stringVariables: SingleComponentResponseOfDestinyStringVariablesComponent; } export interface DestinyPublicVendorsResponse { vendorGroups: SingleComponentResponseOfDestinyVendorGroupComponent; vendors: DictionaryComponentResponseOfuint32AndDestinyPublicVendorComponent; categories: DictionaryComponentResponseOfuint32AndDestinyVendorCategoriesComponent; sales: DictionaryComponentResponseOfuint32AndPublicDestinyVendorSaleItemSetComponent; stringVariables: SingleComponentResponseOfDestinyStringVariablesComponent; } export interface DestinyPublicVendorComponent { vendorHash: number; nextRefreshDate: string; enabled: boolean; } export interface DestinyPublicVendorSaleItemComponent { vendorItemIndex: number; itemHash: number; overrideStyleItemHash: number | null; quantity: number; costs: DestinyItemQuantity[]; overrideNextRefreshDate: string | null; apiPurchasable: boolean | null; } export interface PublicDestinyVendorSaleItemSetComponent { saleItems: Record; } export interface DestinyCollectibleNodeDetailResponse { collectibles: SingleComponentResponseOfDestinyCollectiblesComponent; collectibleItemComponents: DestinyItemComponentSetOfuint32; } export interface DestinyActionRequest { membershipType: BungieMembershipType; } export interface DestinyCharacterActionRequest { characterId: string; membershipType: BungieMembershipType; } export interface DestinyItemActionRequest { itemId: string; characterId: string; membershipType: BungieMembershipType; } export interface DestinyItemTransferRequest { itemReferenceHash: number; stackSize: number; transferToVault: boolean; itemId: string; characterId: string; membershipType: BungieMembershipType; } export interface DestinyPostmasterTransferRequest { itemReferenceHash: number; stackSize: number; itemId: string; characterId: string; membershipType: BungieMembershipType; } export interface DestinyEquipItemResults { equipResults: DestinyEquipItemResult[]; } export interface DestinyEquipItemResult { itemInstanceId: string; equipStatus: PlatformErrorCodes; } export interface DestinyItemSetActionRequest { itemIds: string[]; characterId: string; membershipType: BungieMembershipType; } export interface DestinyLoadoutActionRequest { loadoutIndex: number; characterId: string; membershipType: BungieMembershipType; } export interface DestinyLoadoutUpdateActionRequest { colorHash: number | null; iconHash: number | null; nameHash: number | null; loadoutIndex: number; characterId: string; membershipType: BungieMembershipType; } export interface DestinyItemStateRequest { state: boolean; itemId: string; characterId: string; membershipType: BungieMembershipType; } export interface InventoryChangedResponse { addedInventoryItems: DestinyItemComponent[]; removedInventoryItems: DestinyItemComponent[]; } export interface DestinyItemChangeResponse { item: DestinyItemResponse; addedInventoryItems: DestinyItemComponent[]; removedInventoryItems: DestinyItemComponent[]; } export interface DestinyInsertPlugsActionRequest { actionToken: string; itemInstanceId: string; plug: DestinyInsertPlugsRequestEntry; characterId: string; membershipType: BungieMembershipType; } export interface DestinyInsertPlugsRequestEntry { socketIndex: number; socketArrayType: DestinySocketArrayType; plugItemHash: number; } export interface DestinyInsertPlugsFreeActionRequest { plug: DestinyInsertPlugsRequestEntry; itemId: string; characterId: string; membershipType: BungieMembershipType; } export interface DestinyPostGameCarnageReportData { period: string; startingPhaseIndex: number | null; activityWasStartedFromBeginning: boolean | null; activityDifficultyTier: number | null; selectedSkullHashes: number[]; activityDetails: DestinyHistoricalStatsActivity; entries: DestinyPostGameCarnageReportEntry[]; teams: DestinyPostGameCarnageReportTeamEntry[]; } export interface DestinyHistoricalStatsActivity { referenceId: number; directorActivityHash: number; instanceId: string; mode: DestinyActivityModeType; modes: DestinyActivityModeType[]; isPrivate: boolean; membershipType: BungieMembershipType; } export interface DestinyPostGameCarnageReportEntry { standing: number; score: DestinyHistoricalStatsValue; player: DestinyPlayer; characterId: string; values: Record; extended: DestinyPostGameCarnageReportExtendedData; } export interface DestinyHistoricalStatsValue { statId: string; basic: DestinyHistoricalStatsValuePair; pga: DestinyHistoricalStatsValuePair; weighted: DestinyHistoricalStatsValuePair; activityId: string | null; } export interface DestinyHistoricalStatsValuePair { value: number; displayValue: string; } export interface DestinyPlayer { destinyUserInfo: UserInfoCard; characterClass: string; classHash: number; raceHash: number; genderHash: number; characterLevel: number; lightLevel: number; bungieNetUserInfo: UserInfoCard; clanName: string; clanTag: string; emblemHash: number; } export interface DestinyPostGameCarnageReportExtendedData { weapons: DestinyHistoricalWeaponStats[]; values: Record; scoreboardValues: Record; } export interface DestinyHistoricalWeaponStats { referenceId: number; values: Record; } export interface DestinyPostGameCarnageReportTeamEntry { teamId: number; standing: DestinyHistoricalStatsValue; score: DestinyHistoricalStatsValue; teamName: string; } export interface DestinyReportOffensePgcrRequest { reasonCategoryHashes: number[]; reasonHashes: number[]; offendingCharacterId: string; } export interface DestinyReportReasonCategoryDefinition { displayProperties: DestinyDisplayPropertiesDefinition; reasons: Record; hash: number; index: number; redacted: boolean; } export interface DestinyReportReasonDefinition { reasonHash: number; displayProperties: DestinyDisplayPropertiesDefinition; } export interface DestinyHistoricalStatsDefinition { statId: string; group: DestinyStatsGroupType; periodTypes: PeriodType[]; modes: DestinyActivityModeType[]; category: DestinyStatsCategoryType; statName: string; statNameAbbr: string; statDescription: string; unitType: UnitType; iconImage: string; mergeMethod: DestinyStatsMergeMethod | null; unitLabel: string; weight: number; medalTierHash: number | null; } export interface DestinyMedalTierDefinition { tierName: string; order: number; hash: number; index: number; redacted: boolean; } export interface DestinyLeaderboard { statId: string; entries: DestinyLeaderboardEntry[]; } export interface DestinyLeaderboardEntry { rank: number; player: DestinyPlayer; characterId: string; value: DestinyHistoricalStatsValue; } export interface DestinyLeaderboardResults { focusMembershipId: string | null; focusCharacterId: string | null; } export interface DestinyClanAggregateStat { mode: DestinyActivityModeType; statId: string; value: DestinyHistoricalStatsValue; } export interface DestinyEntitySearchResult { suggestedWords: string[]; results: SearchResultOfDestinyEntitySearchResultItem; } export interface DestinyEntitySearchResultItem { hash: number; entityType: string; displayProperties: DestinyDisplayPropertiesDefinition; weight: number; } export interface DestinyHistoricalStatsByPeriod { allTime: Record; allTimeTier1: Record; allTimeTier2: Record; allTimeTier3: Record; daily: DestinyHistoricalStatsPeriodGroup[]; monthly: DestinyHistoricalStatsPeriodGroup[]; } export interface DestinyHistoricalStatsPeriodGroup { period: string; activityDetails: DestinyHistoricalStatsActivity; values: Record; } export interface DestinyHistoricalStatsResults { $ref: undefined; } export interface DestinyHistoricalStatsAccountResult { mergedDeletedCharacters: DestinyHistoricalStatsWithMerged; mergedAllCharacters: DestinyHistoricalStatsWithMerged; characters: DestinyHistoricalStatsPerCharacter[]; } export interface DestinyHistoricalStatsWithMerged { results: Record; merged: DestinyHistoricalStatsByPeriod; } export interface DestinyHistoricalStatsPerCharacter { characterId: string; deleted: boolean; results: Record; merged: DestinyHistoricalStatsByPeriod; } export interface DestinyActivityHistoryResults { activities: DestinyHistoricalStatsPeriodGroup[]; } export interface DestinyHistoricalWeaponStatsData { weapons: DestinyHistoricalWeaponStats[]; } export interface DestinyAggregateActivityResults { activities: DestinyAggregateActivityStats[]; } export interface DestinyAggregateActivityStats { activityHash: number; values: Record; } export interface DestinyMilestoneContent { about: string; status: string; tips: string[]; itemCategories: DestinyMilestoneContentItemCategory[]; } export interface DestinyMilestoneContentItemCategory { title: string; itemHashes: number[]; } export interface DestinyPublicMilestone { milestoneHash: number; availableQuests: DestinyPublicMilestoneQuest[]; activities: DestinyPublicMilestoneChallengeActivity[]; vendorHashes: number[]; vendors: DestinyPublicMilestoneVendor[]; startDate: string | null; endDate: string | null; order: number; } export interface DestinyPublicMilestoneQuest { questItemHash: number; activity: DestinyPublicMilestoneActivity; challenges: DestinyPublicMilestoneChallenge[]; } export interface DestinyPublicMilestoneActivity { activityHash: number; modifierHashes: number[]; variants: DestinyPublicMilestoneActivityVariant[]; activityModeHash: number | null; activityModeType: DestinyActivityModeType | null; } export interface DestinyPublicMilestoneActivityVariant { activityHash: number; activityModeHash: number | null; activityModeType: DestinyActivityModeType | null; } export interface DestinyPublicMilestoneChallenge { objectiveHash: number; activityHash: number | null; } export interface DestinyPublicMilestoneChallengeActivity { activityHash: number; challengeObjectiveHashes: number[]; modifierHashes: number[]; loadoutRequirementIndex: number | null; phaseHashes: number[]; booleanActivityOptions: Record; } export interface DestinyPublicMilestoneVendor { vendorHash: number; previewItemHash: number | null; } export interface AwaInitializeResponse { correlationId: string; sentToSelf: boolean; } export interface AwaPermissionRequested { type: AwaType; affectedItemId: string | null; membershipType: BungieMembershipType; characterId: string | null; } export interface AwaUserResponse { selection: AwaUserSelection; correlationId: string; nonce: string[]; } export interface AwaAuthorizationResult { userSelection: AwaUserSelection; responseReason: AwaResponseReason; developerNote: string; actionToken: string; maximumNumberOfUses: number; validUntil: string | null; type: AwaType; membershipType: BungieMembershipType; } export interface DestinyPublicActivityStatus { challengeObjectiveHashes: number[]; modifierHashes: number[]; rewardTooltipItems: DestinyItemQuantity[]; } export interface DestinyGlobalConstantsDefinition { pathfinderConstants: DestinyPathfinderConstantsDefinition; collectionsRootNodeHash: number; collectionBadgesRootNodeHash: number; activeTriumphsRootNodeHash: number; activeSealsRootNodeHash: number; legacyTriumphsRootNodeHash: number; legacySealsRootNodeHash: number; medalsRootNodeHash: number; exoticCatalystsRootNodeHash: number; loreRootNodeHash: number; metricsRootNodeHash: number; craftingRootNodeHash: number; guardianRanksRootNodeHash: number; seasonalHubEventCardHash: number; destinyRewardPassRankSealImages: DestinyRewardPassRankSealImages; destinySeasonalHubRankIconImages: DestinySeasonalHubRankIconImages; armorArchetypePlugSetHash: number; featuredItemsListHash: number; portalActivityGraphRootNodesWithIcons: Record; orderRewardsUnlockValueHashesToRewardItemHashes: Record; questItemTraitToFeaturedQuestImagePath: Record; hash: number; index: number; redacted: boolean; } export interface DestinyPathfinderConstantsDefinition { thePaleHeartPathfinderRootNodeHash: number; allPathfinderRootNodeHashes: number[]; pathfinderTreeTiers: Record; pathfinderTopology: Record; hash: number; index: number; redacted: boolean; } export interface DestinyRewardPassRankSealImages { rewardPassRankSealImagePath: string; rewardPassRankSealPremiumImagePath: string; rewardPassRankSealPrestigeImagePath: string; rewardPassRankSealPremiumPrestigeImagePath: string; } export interface DestinySeasonalHubRankIconImages { seasonalHubRankIconUnearned: string; seasonalHubRankIconEarning: string; seasonalHubRankIconActive: string; } export interface DestinyItemFilterDefinition { allowedItems: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyLoadoutConstantsDefinition { displayProperties: DestinyDisplayPropertiesDefinition; whiteIconImagePath: string; blackIconImagePath: string; loadoutCountPerCharacter: number; loadoutPreviewFilterOutSocketCategoryHashes: number[]; loadoutPreviewFilterOutSocketTypeHashes: number[]; loadoutNameHashes: number[]; loadoutIconHashes: number[]; loadoutColorHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyGuardianRankConstantsDefinition { displayProperties: DestinyDisplayPropertiesDefinition; rankCount: number; guardianRankHashes: number[]; rootNodeHash: number; iconBackgrounds: DestinyGuardianRankIconBackgroundsDefinition; hash: number; index: number; redacted: boolean; } export interface DestinyGuardianRankIconBackgroundsDefinition { backgroundEmptyBorderedImagePath: string; backgroundEmptyBlueGradientBorderedImagePath: string; backgroundFilledBlueBorderedImagePath: string; backgroundFilledBlueGradientBorderedImagePath: string; backgroundFilledBlueLowAlphaImagePath: string; backgroundFilledBlueMediumAlphaImagePath: string; backgroundFilledGrayMediumAlphaBorderedImagePath: string; backgroundFilledGrayHeavyAlphaBorderedImagePath: string; backgroundFilledWhiteMediumAlphaImagePath: string; backgroundFilledWhiteImagePath: string; backgroundPlateWhiteImagePath: string; backgroundPlateBlackImagePath: string; backgroundPlateBlackAlphaImagePath: string; } export interface DestinyFireteamFinderConstantsDefinition { displayProperties: DestinyDisplayPropertiesDefinition; fireteamFinderActivityGraphRootCategoryHashes: number[]; allFireteamFinderActivityHashes: number[]; guardianOathDisplayProperties: DestinyDisplayPropertiesDefinition; guardianOathTenets: DestinyDisplayPropertiesDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyFireteamFinderActivityGraphDefinition { displayProperties: DestinyDisplayPropertiesDefinition; color: DestinyColor; isPlayerElectedDifficultyNode: boolean; parentHash: number | null; children: number[]; selfAndAllDescendantHashes: number[]; relatedActivitySetHashes: number[]; specificActivitySetHash: number | null; relatedActivityHashes: number[]; relatedDirectorNodes: DestinyActivityGraphReference[]; relatedInteractableActivities: DestinyActivityInteractableReference[]; relatedLocationHashes: number[]; sortMatchmadeActivitiesToFront: boolean; enabledOnTreeTypesListEnum: DestinyActivityTreeType[]; activityTreeChildSortMode: DestinyActivityTreeChildSortMode; sortPriority: number | null; hash: number; index: number; redacted: boolean; } export interface DestinyActivityGraphReference { activityGraphHash: number; } export interface DestinyFireteamFinderActivitySetDefinition { maximumPartySize: number; optionHashes: number[]; labelHashes: number[]; activityGraphHashes: number[]; activityHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyFireteamFinderOptionDefinition { displayProperties: DestinyDisplayPropertiesDefinition; descendingSortPriority: number; groupHash: number; codeOptionType: FireteamFinderCodeOptionType; availability: FireteamFinderOptionAvailability; visibility: FireteamFinderOptionVisibility; uiDisplayStyle: string; creatorSettings: DestinyFireteamFinderOptionCreatorSettings; searcherSettings: DestinyFireteamFinderOptionSearcherSettings; values: DestinyFireteamFinderOptionValues; hash: number; index: number; redacted: boolean; } export interface DestinyFireteamFinderOptionCreatorSettings { control: DestinyFireteamFinderOptionSettingsControl; } export interface DestinyFireteamFinderOptionSettingsControl { type: FireteamFinderOptionControlType; minSelectedItems: number; maxSelectedItems: number; } export interface DestinyFireteamFinderOptionSearcherSettings { control: DestinyFireteamFinderOptionSettingsControl; searchFilterType: FireteamFinderOptionSearchFilterType; } export interface DestinyFireteamFinderOptionValues { optionalNull: DestinyDisplayPropertiesDefinition; optionalFormatString: string; displayFormatType: FireteamFinderOptionDisplayFormat; type: FireteamFinderOptionValueProviderType; valueDefinitions: DestinyFireteamFinderOptionValueDefinition[]; } export interface DestinyFireteamFinderOptionValueDefinition { displayProperties: DestinyDisplayPropertiesDefinition; value: number; flags: FireteamFinderOptionValueFlags; } export interface DestinyFireteamFinderOptionGroupDefinition { displayProperties: DestinyDisplayPropertiesDefinition; descendingSortPriority: number; hash: number; index: number; redacted: boolean; } export interface DestinyFireteamFinderLabelDefinition { displayProperties: DestinyDisplayPropertiesDefinition; descendingSortPriority: number; groupHash: number; allowInFields: FireteamFinderLabelFieldType; hash: number; index: number; redacted: boolean; } export interface DestinyFireteamFinderLabelGroupDefinition { displayProperties: DestinyDisplayPropertiesDefinition; descendingSortPriority: number; hash: number; index: number; redacted: boolean; } export interface DestinyInventoryItemConstantsDefinition { gearTierOverlayImagePaths: string[]; watermarkDropShadowPath: string; craftedBackgroundPath: string; featuredItemFlagPath: string; masterworkOverlayPath: string; masterworkExoticOverlayPath: string; masterworkBorderedOverlayPath: string; masterworkExoticBorderedOverlayPath: string; craftedOverlayPath: string; enhancedItemOverlayPath: string; holofoilBackgroundOverlayPath: string; holofoil900BackgroundOverlayPath: string; holofoil900AnimatedBackgroundOverlayPath: string; universalOrnamentBackgroundOverlayPath: string; universalOrnamentLegendaryBackgroundOverlayPath: string; universalOrnamentExoticBackgroundOverlayPath: string; hash: number; index: number; redacted: boolean; } export interface InterpolationPoint { value: number; weight: number; } export interface InterpolationPointFloat { value: number; weight: number; } export interface DateRange { start: string; end: string; } export interface HyperlinkReference { title: string; url: string; } export interface TagResponse { tagText: string; ignoreStatus: IgnoreResponse; } export interface SearchResultOfGroupV2Card { results: GroupV2Card[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface SearchResultOfGroupMember { results: GroupMember[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface SearchResultOfGroupBan { results: GroupBan[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface SearchResultOfGroupEditHistory { results: GroupEditHistory[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface SearchResultOfGroupMemberApplication { results: GroupMemberApplication[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface EntityActionResult { entityId: string; result: PlatformErrorCodes; } export interface SearchResultOfGroupMembership { results: GroupMembership[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface SearchResultOfGroupPotentialMembership { results: GroupPotentialMembership[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface PartnerOfferClaimRequest { PartnerOfferId: string; BungieNetMembershipId: string; TransactionId: string; } export interface PartnerOfferSkuHistoryResponse { SkuIdentifier: string; LocalizedName: string; LocalizedDescription: string; ClaimDate: string; AllOffersApplied: boolean; TransactionId: string; SkuOffers: PartnerOfferHistoryResponse[]; } export interface PartnerOfferHistoryResponse { PartnerOfferKey: string; MembershipId: string | null; MembershipType: BungieMembershipType | null; LocalizedName: string; LocalizedDescription: string; IsConsumable: boolean; QuantityApplied: number; ApplyDate: string | null; } export interface PartnerRewardHistoryResponse { PartnerOffers: PartnerOfferSkuHistoryResponse[]; TwitchDrops: TwitchDropHistoryResponse[]; } export interface TwitchDropHistoryResponse { Title: string; Description: string; CreatedAt: string | null; ClaimState: DropStateEnum | null; } export interface BungieRewardDisplay { UserRewardAvailabilityModel: UserRewardAvailabilityModel; ObjectiveDisplayProperties: RewardDisplayProperties; RewardDisplayProperties: RewardDisplayProperties; } export interface UserRewardAvailabilityModel { AvailabilityModel: RewardAvailabilityModel; IsAvailableForUser: boolean; IsUnlockedForUser: boolean; } export interface RewardAvailabilityModel { HasExistingCode: boolean; RecordDefinitions: DestinyRecordDefinition[]; CollectibleDefinitions: CollectibleDefinitions[]; IsOffer: boolean; HasOffer: boolean; OfferApplied: boolean; DecryptedToken: string; IsLoyaltyReward: boolean; ShopifyEndDate: string | null; GameEarnByDate: string; RedemptionEndDate: string; } export interface CollectibleDefinitions { CollectibleDefinition: DestinyCollectibleDefinition; DestinyInventoryItemDefinition: DestinyInventoryItemDefinition; } export interface RewardDisplayProperties { Name: string; Description: string; ImagePath: string; } export interface ComponentResponse { privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyVendorReceiptsComponent { data: DestinyVendorReceiptsComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyInventoryComponent { data: DestinyInventoryComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyProfileComponent { data: DestinyProfileComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyPlatformSilverComponent { data: DestinyPlatformSilverComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyKiosksComponent { data: DestinyKiosksComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyPlugSetsComponent { data: DestinyPlugSetsComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyProfileProgressionComponent { data: DestinyProfileProgressionComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyPresentationNodesComponent { data: DestinyPresentationNodesComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyProfileRecordsComponent { data: DestinyProfileRecordsComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyProfileCollectiblesComponent { data: DestinyProfileCollectiblesComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyProfileTransitoryComponent { data: DestinyProfileTransitoryComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyMetricsComponent { data: DestinyMetricsComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyStringVariablesComponent { data: DestinyStringVariablesComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinySocialCommendationsComponent { data: DestinySocialCommendationsComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyCharacterComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyInventoryComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyLoadoutsComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyCharacterProgressionComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyCharacterRenderComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyCharacterActivitiesComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyKiosksComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyPlugSetsComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DestinyBaseItemComponentSetOfuint32 { objectives: DictionaryComponentResponseOfuint32AndDestinyItemObjectivesComponent; perks: DictionaryComponentResponseOfuint32AndDestinyItemPerksComponent; } export interface DictionaryComponentResponseOfuint32AndDestinyItemObjectivesComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfuint32AndDestinyItemPerksComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyPresentationNodesComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyCharacterRecordsComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyCollectiblesComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyStringVariablesComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyCraftablesComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DestinyBaseItemComponentSetOfint64 { objectives: DictionaryComponentResponseOfint64AndDestinyItemObjectivesComponent; perks: DictionaryComponentResponseOfint64AndDestinyItemPerksComponent; } export interface DictionaryComponentResponseOfint64AndDestinyItemObjectivesComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyItemPerksComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DestinyItemComponentSetOfint64 { instances: DictionaryComponentResponseOfint64AndDestinyItemInstanceComponent; renderData: DictionaryComponentResponseOfint64AndDestinyItemRenderComponent; stats: DictionaryComponentResponseOfint64AndDestinyItemStatsComponent; sockets: DictionaryComponentResponseOfint64AndDestinyItemSocketsComponent; reusablePlugs: DictionaryComponentResponseOfint64AndDestinyItemReusablePlugsComponent; plugObjectives: DictionaryComponentResponseOfint64AndDestinyItemPlugObjectivesComponent; talentGrids: DictionaryComponentResponseOfint64AndDestinyItemTalentGridComponent; plugStates: DictionaryComponentResponseOfuint32AndDestinyItemPlugComponent; objectives: DictionaryComponentResponseOfint64AndDestinyItemObjectivesComponent; perks: DictionaryComponentResponseOfint64AndDestinyItemPerksComponent; } export interface DictionaryComponentResponseOfint64AndDestinyItemInstanceComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyItemRenderComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyItemStatsComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyItemSocketsComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyItemReusablePlugsComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyItemPlugObjectivesComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyItemTalentGridComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfuint32AndDestinyItemPlugComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint64AndDestinyCurrenciesComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyCharacterComponent { data: DestinyCharacterComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyCharacterProgressionComponent { data: DestinyCharacterProgressionComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyCharacterRenderComponent { data: DestinyCharacterRenderComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyCharacterActivitiesComponent { data: DestinyCharacterActivitiesComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyLoadoutsComponent { data: DestinyLoadoutsComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyCharacterRecordsComponent { data: DestinyCharacterRecordsComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyCollectiblesComponent { data: DestinyCollectiblesComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyCurrenciesComponent { data: DestinyCurrenciesComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyItemComponent { data: DestinyItemComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyItemInstanceComponent { data: DestinyItemInstanceComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyItemObjectivesComponent { data: DestinyItemObjectivesComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyItemPerksComponent { data: DestinyItemPerksComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyItemRenderComponent { data: DestinyItemRenderComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyItemStatsComponent { data: DestinyItemStatsComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyItemTalentGridComponent { data: DestinyItemTalentGridComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyItemSocketsComponent { data: DestinyItemSocketsComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyItemReusablePlugsComponent { data: DestinyItemReusablePlugsComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyItemPlugObjectivesComponent { data: DestinyItemPlugObjectivesComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyVendorGroupComponent { data: DestinyVendorGroupComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfuint32AndDestinyVendorComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfuint32AndDestinyVendorCategoriesComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DestinyVendorSaleItemSetComponentOfDestinyVendorSaleItemComponent { saleItems: Record; } export interface DictionaryComponentResponseOfuint32AndPersonalDestinyVendorSaleItemSetComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DestinyBaseItemComponentSetOfint32 { objectives: DictionaryComponentResponseOfint32AndDestinyItemObjectivesComponent; perks: DictionaryComponentResponseOfint32AndDestinyItemPerksComponent; } export interface DictionaryComponentResponseOfint32AndDestinyItemObjectivesComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint32AndDestinyItemPerksComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DestinyItemComponentSetOfint32 { instances: DictionaryComponentResponseOfint32AndDestinyItemInstanceComponent; renderData: DictionaryComponentResponseOfint32AndDestinyItemRenderComponent; stats: DictionaryComponentResponseOfint32AndDestinyItemStatsComponent; sockets: DictionaryComponentResponseOfint32AndDestinyItemSocketsComponent; reusablePlugs: DictionaryComponentResponseOfint32AndDestinyItemReusablePlugsComponent; plugObjectives: DictionaryComponentResponseOfint32AndDestinyItemPlugObjectivesComponent; talentGrids: DictionaryComponentResponseOfint32AndDestinyItemTalentGridComponent; plugStates: DictionaryComponentResponseOfuint32AndDestinyItemPlugComponent; objectives: DictionaryComponentResponseOfint32AndDestinyItemObjectivesComponent; perks: DictionaryComponentResponseOfint32AndDestinyItemPerksComponent; } export interface DictionaryComponentResponseOfint32AndDestinyItemInstanceComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint32AndDestinyItemRenderComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint32AndDestinyItemStatsComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint32AndDestinyItemSocketsComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint32AndDestinyItemReusablePlugsComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint32AndDestinyItemPlugObjectivesComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint32AndDestinyItemTalentGridComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DestinyVendorItemComponentSetOfint32 { itemComponents: DictionaryComponentResponseOfint32AndDestinyItemComponent; instances: DictionaryComponentResponseOfint32AndDestinyItemInstanceComponent; renderData: DictionaryComponentResponseOfint32AndDestinyItemRenderComponent; stats: DictionaryComponentResponseOfint32AndDestinyItemStatsComponent; sockets: DictionaryComponentResponseOfint32AndDestinyItemSocketsComponent; reusablePlugs: DictionaryComponentResponseOfint32AndDestinyItemReusablePlugsComponent; plugObjectives: DictionaryComponentResponseOfint32AndDestinyItemPlugObjectivesComponent; talentGrids: DictionaryComponentResponseOfint32AndDestinyItemTalentGridComponent; plugStates: DictionaryComponentResponseOfuint32AndDestinyItemPlugComponent; objectives: DictionaryComponentResponseOfint32AndDestinyItemObjectivesComponent; perks: DictionaryComponentResponseOfint32AndDestinyItemPerksComponent; } export interface DictionaryComponentResponseOfint32AndDestinyItemComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyVendorComponent { data: DestinyVendorComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SingleComponentResponseOfDestinyVendorCategoriesComponent { data: DestinyVendorCategoriesComponent; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfint32AndDestinyVendorSaleItemComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfuint32AndDestinyPublicVendorComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DestinyVendorSaleItemSetComponentOfDestinyPublicVendorSaleItemComponent { saleItems: Record; } export interface DictionaryComponentResponseOfuint32AndPublicDestinyVendorSaleItemSetComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DestinyItemComponentSetOfuint32 { instances: DictionaryComponentResponseOfuint32AndDestinyItemInstanceComponent; renderData: DictionaryComponentResponseOfuint32AndDestinyItemRenderComponent; stats: DictionaryComponentResponseOfuint32AndDestinyItemStatsComponent; sockets: DictionaryComponentResponseOfuint32AndDestinyItemSocketsComponent; reusablePlugs: DictionaryComponentResponseOfuint32AndDestinyItemReusablePlugsComponent; plugObjectives: DictionaryComponentResponseOfuint32AndDestinyItemPlugObjectivesComponent; talentGrids: DictionaryComponentResponseOfuint32AndDestinyItemTalentGridComponent; plugStates: DictionaryComponentResponseOfuint32AndDestinyItemPlugComponent; objectives: DictionaryComponentResponseOfuint32AndDestinyItemObjectivesComponent; perks: DictionaryComponentResponseOfuint32AndDestinyItemPerksComponent; } export interface DictionaryComponentResponseOfuint32AndDestinyItemInstanceComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfuint32AndDestinyItemRenderComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfuint32AndDestinyItemStatsComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfuint32AndDestinyItemSocketsComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfuint32AndDestinyItemReusablePlugsComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfuint32AndDestinyItemPlugObjectivesComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface DictionaryComponentResponseOfuint32AndDestinyItemTalentGridComponent { data: Record; privacy: ComponentPrivacySetting; disabled: boolean | null; } export interface SearchResultOfDestinyEntitySearchResultItem { results: DestinyEntitySearchResultItem[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface TrendingCategories { categories: TrendingCategory[]; } export interface TrendingCategory { categoryName: string; entries: SearchResultOfTrendingEntry; categoryId: string; } export interface TrendingEntry { weight: number; isFeatured: boolean; identifier: string; entityType: TrendingEntryType; displayName: string; tagline: string; image: string; startDate: string | null; endDate: string | null; link: string; webmVideo: string; mp4Video: string; featureImage: string; items: TrendingEntry[]; creationDate: string | null; } export interface TrendingDetail { identifier: string; entityType: TrendingEntryType; news: TrendingEntryNews; support: TrendingEntrySupportArticle; destinyItem: TrendingEntryDestinyItem; destinyActivity: TrendingEntryDestinyActivity; destinyRitual: TrendingEntryDestinyRitual; creation: TrendingEntryCommunityCreation; } export interface TrendingEntryNews { article: ContentItemPublicContract; } export interface TrendingEntrySupportArticle { article: ContentItemPublicContract; } export interface TrendingEntryDestinyItem { itemHash: number; } export interface TrendingEntryDestinyActivity { activityHash: number; status: DestinyPublicActivityStatus; } export interface TrendingEntryDestinyRitual { image: string; icon: string; title: string; subtitle: string; dateStart: string | null; dateEnd: string | null; milestoneDetails: DestinyPublicMilestone; eventContent: DestinyMilestoneContent; } export interface TrendingEntryCommunityCreation { media: string; title: string; author: string; authorMembershipId: string; postId: string; body: string; upvotes: number; } export interface SearchResultOfTrendingEntry { results: TrendingEntry[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface FireteamSummary { fireteamId: string; groupId: string; platform: FireteamPlatform; activityType: number; isImmediate: boolean; scheduledTime: string | null; ownerMembershipId: string; playerSlotCount: number; alternateSlotCount: number | null; availablePlayerSlotCount: number; availableAlternateSlotCount: number; title: string; dateCreated: string; dateModified: string | null; isPublic: boolean; locale: string; isValid: boolean; datePlayerModified: string; titleBeforeModeration: string; ownerCurrentGuardianRankSnapshot: number; ownerHighestLifetimeGuardianRankSnapshot: number; ownerTotalCommendationScoreSnapshot: number; } export interface FireteamResponse { Summary: FireteamSummary; Members: FireteamMember[]; Alternates: FireteamMember[]; } export interface FireteamMember { destinyUserInfo: FireteamUserInfoCard; bungieNetUserInfo: UserInfoCard; characterId: string; dateJoined: string; hasMicrophone: boolean; lastPlatformInviteAttemptDate: string; lastPlatformInviteAttemptResult: FireteamPlatformInviteResult; } export interface FireteamUserInfoCard { FireteamDisplayName: string; FireteamMembershipType: BungieMembershipType; supplementalDisplayName: string; iconPath: string; crossSaveOverride: BungieMembershipType; applicableMembershipTypes: BungieMembershipType[]; isPublic: boolean; membershipType: BungieMembershipType; membershipId: string; displayName: string; bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; } export interface SearchResultOfFireteamSummary { results: FireteamSummary[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface SearchResultOfFireteamResponse { results: FireteamResponse[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface BungieFriendListResponse { friends: BungieFriend[]; } export interface BungieFriend { lastSeenAsMembershipId: string; lastSeenAsBungieMembershipType: BungieMembershipType; bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; onlineStatus: PresenceStatus; onlineTitle: PresenceOnlineStateFlags; relationship: FriendRelationshipState; bungieNetUser: GeneralUser; } export interface BungieFriendRequestListResponse { incomingRequests: BungieFriend[]; outgoingRequests: BungieFriend[]; } export interface PlatformFriendResponse { itemsPerPage: number; currentPage: number; hasMore: boolean; platformFriends: PlatformFriend[]; } export interface PlatformFriend { platformDisplayName: string; friendPlatform: PlatformFriendType; destinyMembershipId: string | null; destinyMembershipType: BungieMembershipType | null; bungieNetMembershipId: string | null; bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; } export interface CoreSettingsConfiguration { environment: string; systems: Record; ignoreReasons: CoreSetting[]; forumCategories: CoreSetting[]; groupAvatars: CoreSetting[]; defaultGroupTheme: CoreSetting; destinyMembershipTypes: CoreSetting[]; recruitmentPlatformTags: CoreSetting[]; recruitmentMiscTags: CoreSetting[]; recruitmentActivities: CoreSetting[]; userContentLocales: CoreSetting[]; systemContentLocales: CoreSetting[]; clanBannerDecals: CoreSetting[]; clanBannerDecalColors: CoreSetting[]; clanBannerGonfalons: CoreSetting[]; clanBannerGonfalonColors: CoreSetting[]; clanBannerGonfalonDetails: CoreSetting[]; clanBannerGonfalonDetailColors: CoreSetting[]; clanBannerStandards: CoreSetting[]; destiny2CoreSettings: Destiny2CoreSettings; emailSettings: EmailSettings; fireteamActivities: CoreSetting[]; } export interface CoreSystem { enabled: boolean; parameters: Record; } export interface CoreSetting { identifier: string; isDefault: boolean; displayName: string; summary: string; imagePath: string; childSettings: CoreSetting[]; } export interface Destiny2CoreSettings { collectionRootNode: number; badgesRootNode: number; recordsRootNode: number; medalsRootNode: number; metricsRootNode: number; activeTriumphsRootNodeHash: number; activeSealsRootNodeHash: number; legacyTriumphsRootNodeHash: number; legacySealsRootNodeHash: number; medalsRootNodeHash: number; exoticCatalystsRootNodeHash: number; loreRootNodeHash: number; craftingRootNodeHash: number; globalConstantsHash: number; loadoutConstantsHash: number; guardianRankConstantsHash: number; fireteamFinderConstantsHash: number; inventoryItemConstantsHash: number; featuredItemsListHash: number; armorArchetypePlugSetHash: number; seasonalHubEventCardHash: number; guardianRanksRootNodeHash: number; currentRankProgressionHashes: number[]; insertPlugFreeProtectedPlugItemHashes: number[]; insertPlugFreeBlockedSocketTypeHashes: number[]; enabledFireteamFinderActivityGraphHashes: number[]; undiscoveredCollectibleImage: string; ammoTypeHeavyIcon: string; ammoTypeSpecialIcon: string; ammoTypePrimaryIcon: string; currentSeasonalArtifactHash: number; currentSeasonHash: number | null; currentSeasonPassHash: number | null; seasonalChallengesPresentationNodeHash: number | null; futureSeasonHashes: number[]; pastSeasonHashes: number[]; } export interface GlobalAlert { AlertKey: string; AlertHtml: string; AlertTimestamp: string; AlertLink: string; AlertLevel: GlobalAlertLevel; AlertType: GlobalAlertType; StreamInfo: StreamInfo; } export interface StreamInfo { ChannelName: string; }