/**
 * Bungie.Net API
 * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.
 *
 * OpenAPI spec version: 2.20.1
 * Contact: support@bungie.com
 *
 * NOTE: This class is auto generated by the bungie-api-ts code generator program.
 * https://github.com/DestinyItemManager/bungie-api-ts
 * Do not edit these files manually.
 */
import {
  DestinyCollectibleDefinition,
  DestinyInventoryItemDefinition,
  DestinyRecordDefinition,
} from '../destiny2/interfaces.js';
export interface PartnerOfferClaimRequest {
  readonly PartnerOfferId: string;
  readonly BungieNetMembershipId: string;
  readonly TransactionId: string;
}
export interface PartnerOfferSkuHistoryResponse {
  readonly SkuIdentifier: string;
  readonly LocalizedName: string;
  readonly LocalizedDescription: string;
  readonly ClaimDate: string;
  readonly AllOffersApplied: boolean;
  readonly TransactionId: string;
  readonly SkuOffers: PartnerOfferHistoryResponse[];
}
export interface PartnerOfferHistoryResponse {
  readonly PartnerOfferKey: string;
  readonly MembershipId?: string;
  readonly MembershipType?: number;
  readonly LocalizedName: string;
  readonly LocalizedDescription: string;
  readonly IsConsumable: boolean;
  readonly QuantityApplied: number;
  readonly ApplyDate?: string;
}
export interface PartnerRewardHistoryResponse {
  readonly PartnerOffers: PartnerOfferSkuHistoryResponse[];
  readonly TwitchDrops: TwitchDropHistoryResponse[];
}
export interface TwitchDropHistoryResponse {
  readonly Title: string;
  readonly Description: string;
  readonly CreatedAt?: string;
  readonly ClaimState?: number;
}
export interface BungieRewardDisplay {
  readonly UserRewardAvailabilityModel: UserRewardAvailabilityModel;
  readonly ObjectiveDisplayProperties: RewardDisplayProperties;
  readonly RewardDisplayProperties: RewardDisplayProperties;
}
export interface UserRewardAvailabilityModel {
  readonly AvailabilityModel: RewardAvailabilityModel;
  readonly IsAvailableForUser: boolean;
  readonly IsUnlockedForUser: boolean;
}
export interface RewardAvailabilityModel {
  readonly HasExistingCode: boolean;
  readonly RecordDefinitions: DestinyRecordDefinition[];
  readonly CollectibleDefinitions: CollectibleDefinitions[];
  readonly IsOffer: boolean;
  readonly HasOffer: boolean;
  readonly OfferApplied: boolean;
  readonly DecryptedToken: string;
  readonly IsLoyaltyReward: boolean;
  readonly ShopifyEndDate?: string;
  readonly GameEarnByDate: string;
  readonly RedemptionEndDate: string;
}
export interface CollectibleDefinitions {
  readonly CollectibleDefinition: DestinyCollectibleDefinition;
  readonly DestinyInventoryItemDefinition: DestinyInventoryItemDefinition;
}
export interface RewardDisplayProperties {
  readonly Name: string;
  readonly Description: string;
  readonly ImagePath: string;
}
