/**
 * 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 { BungieMembershipType, PagedQuery } from '../common.js';
import { UserInfoCard } from '../user/interfaces.js';
export declare const enum FireteamDateRange {
  All = 0,
  Now = 1,
  TwentyFourHours = 2,
  FortyEightHours = 3,
  ThisWeek = 4,
}
export declare const enum FireteamPlatform {
  Any = 0,
  Playstation4 = 1,
  XboxOne = 2,
  Blizzard = 3,
  Steam = 4,
  Stadia = 5,
  Egs = 6,
}
export declare const enum FireteamPublicSearchOption {
  PublicAndPrivate = 0,
  PublicOnly = 1,
  PrivateOnly = 2,
}
export declare const enum FireteamSlotSearch {
  NoSlotRestriction = 0,
  HasOpenPlayerSlots = 1,
  HasOpenPlayerOrAltSlots = 2,
}
export interface SearchResultOfFireteamSummary {
  readonly results: FireteamSummary[];
  readonly totalResults: number;
  readonly hasMore: boolean;
  readonly query: PagedQuery;
  readonly replacementContinuationToken: string;
  /**
   * If useTotalResults is true, then totalResults represents an accurate count.
   *
   * If False, it does not, and may be estimated/only the size of the current page.
   *
   * Either way, you should probably always only trust hasMore.
   *
   * This is a long-held historical throwback to when we used to do paging with known
   * total results. Those queries toasted our database, and we were left to hastily
   * alter our endpoints and create backward- compatible shims, of which
   * useTotalResults is one.
   */
  readonly useTotalResults: boolean;
}
export interface FireteamSummary {
  readonly fireteamId: string;
  readonly groupId: string;
  readonly platform: FireteamPlatform;
  readonly activityType: number;
  readonly isImmediate: boolean;
  readonly scheduledTime?: string;
  readonly ownerMembershipId: string;
  readonly playerSlotCount: number;
  readonly alternateSlotCount?: number;
  readonly availablePlayerSlotCount: number;
  readonly availableAlternateSlotCount: number;
  readonly title: string;
  readonly dateCreated: string;
  readonly dateModified?: string;
  readonly isPublic: boolean;
  readonly locale: string;
  readonly isValid: boolean;
  readonly datePlayerModified: string;
  readonly titleBeforeModeration: string;
  /** Mapped to DestinyGuardianRankDefinition in the manifest. */
  readonly ownerCurrentGuardianRankSnapshot: number;
  /** Mapped to DestinyGuardianRankDefinition in the manifest. */
  readonly ownerHighestLifetimeGuardianRankSnapshot: number;
  readonly ownerTotalCommendationScoreSnapshot: number;
}
export interface SearchResultOfFireteamResponse {
  readonly results: FireteamResponse[];
  readonly totalResults: number;
  readonly hasMore: boolean;
  readonly query: PagedQuery;
  readonly replacementContinuationToken: string;
  /**
   * If useTotalResults is true, then totalResults represents an accurate count.
   *
   * If False, it does not, and may be estimated/only the size of the current page.
   *
   * Either way, you should probably always only trust hasMore.
   *
   * This is a long-held historical throwback to when we used to do paging with known
   * total results. Those queries toasted our database, and we were left to hastily
   * alter our endpoints and create backward- compatible shims, of which
   * useTotalResults is one.
   */
  readonly useTotalResults: boolean;
}
export interface FireteamResponse {
  readonly Summary: FireteamSummary;
  readonly Members: FireteamMember[];
  readonly Alternates: FireteamMember[];
}
export interface FireteamMember {
  readonly destinyUserInfo: FireteamUserInfoCard;
  readonly bungieNetUserInfo: UserInfoCard;
  readonly characterId: string;
  readonly dateJoined: string;
  readonly hasMicrophone: boolean;
  readonly lastPlatformInviteAttemptDate: string;
  readonly lastPlatformInviteAttemptResult: FireteamPlatformInviteResult;
}
export interface FireteamUserInfoCard {
  readonly FireteamDisplayName: string;
  readonly FireteamMembershipType: BungieMembershipType;
  /**
   * A platform specific additional display name - ex: psn Real Name, bnet Unique
   * Name, etc.
   */
  readonly supplementalDisplayName: string;
  /** URL the Icon if available. */
  readonly iconPath: string;
  /**
   * If there is a cross save override in effect, this value will tell you the type
   * that is overridding this one.
   */
  readonly crossSaveOverride: BungieMembershipType;
  /**
   * The list of Membership Types indicating the platforms on which this Membership
   * can be used.
   *
   * Not in Cross Save = its original membership type. Cross Save Primary = Any
   * membership types it is overridding, and its original membership type Cross Save
   * Overridden = Empty list
   */
  readonly applicableMembershipTypes: BungieMembershipType[];
  /** If True, this is a public user membership. */
  readonly isPublic: boolean;
  /** Type of the membership. Not necessarily the native type. */
  readonly membershipType: BungieMembershipType;
  /** Membership ID as they user is known in the Accounts service */
  readonly membershipId: string;
  /**
   * Display Name the player has chosen for themselves. The display name is optional
   * when the data type is used as input to a platform API.
   */
  readonly displayName: string;
  /** The bungie global display name, if set. */
  readonly bungieGlobalDisplayName: string;
  /** The bungie global display name code, if set. */
  readonly bungieGlobalDisplayNameCode?: number;
}
export declare const enum FireteamPlatformInviteResult {
  None = 0,
  Success = 1,
  AlreadyInFireteam = 2,
  Throttled = 3,
  ServiceError = 4,
}
