/**
 * 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 { HttpClient } from '../http.js';
import { BungieMembershipType, ServerResponse } from '../common.js';
import {
  DestinyFireteamFinderApplicationType,
  DestinyFireteamFinderApplyToListingResponse,
  DestinyFireteamFinderBulkGetListingStatusRequest,
  DestinyFireteamFinderBulkGetListingStatusResponse,
  DestinyFireteamFinderGetApplicationResponse,
  DestinyFireteamFinderGetCharacterActivityAccessResponse,
  DestinyFireteamFinderGetListingApplicationsResponse,
  DestinyFireteamFinderGetLobbyOffersResponse,
  DestinyFireteamFinderGetPlayerApplicationsResponse,
  DestinyFireteamFinderGetPlayerLobbiesResponse,
  DestinyFireteamFinderGetPlayerOffersResponse,
  DestinyFireteamFinderHostLobbyRequest,
  DestinyFireteamFinderHostLobbyResponse,
  DestinyFireteamFinderJoinLobbyRequest,
  DestinyFireteamFinderKickPlayerRequest,
  DestinyFireteamFinderListing,
  DestinyFireteamFinderLobbyResponse,
  DestinyFireteamFinderOffer,
  DestinyFireteamFinderRespondToApplicationRequest,
  DestinyFireteamFinderRespondToApplicationResponse,
  DestinyFireteamFinderRespondToAuthenticationRequest,
  DestinyFireteamFinderRespondToAuthenticationResponse,
  DestinyFireteamFinderRespondToOfferRequest,
  DestinyFireteamFinderRespondToOfferResponse,
  DestinyFireteamFinderSearchListingsByClanRequest,
  DestinyFireteamFinderSearchListingsByClanResponse,
  DestinyFireteamFinderSearchListingsByFiltersRequest,
  DestinyFireteamFinderSearchListingsByFiltersResponse,
  DestinyFireteamFinderUpdateLobbySettingsRequest,
  DestinyFireteamFinderUpdateLobbySettingsResponse,
} from './interfaces.js';
export interface ActivateLobbyParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** Optional boolean to forcibly activate the lobby, kicking pending applicants. */
  forceActivation?: boolean;
  /** The ID of the lobby to activate. */
  lobbyId: string;
}
/** Activates a lobby and initializes it as an active Fireteam. */
export declare function activateLobby(
  http: HttpClient,
  params: ActivateLobbyParams
): Promise<ServerResponse<boolean>>;
export interface ActivateLobbyForNewListingIdParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** Optional boolean to forcibly activate the lobby, kicking pending applicants. */
  forceActivation?: boolean;
  /** The ID of the lobby to activate. */
  lobbyId: string;
}
/**
 * Activates a lobby and initializes it as an active Fireteam, returning the
 * updated Listing ID.
 */
export declare function activateLobbyForNewListingId(
  http: HttpClient,
  params: ActivateLobbyForNewListingIdParams
): Promise<ServerResponse<boolean>>;
export interface ApplyToListingParams {
  /** The type of application to apply */
  applicationType: DestinyFireteamFinderApplicationType;
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** The id of the listing to apply to */
  listingId: string;
}
/** Applies to have a character join a fireteam. */
export declare function applyToListing(
  http: HttpClient,
  params: ApplyToListingParams
): Promise<ServerResponse<DestinyFireteamFinderApplyToListingResponse>>;
export interface BulkGetListingStatusParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
}
/** Retrieves Fireteam listing statuses in bulk. */
export declare function bulkGetListingStatus(
  http: HttpClient,
  params: BulkGetListingStatusParams,
  body: DestinyFireteamFinderBulkGetListingStatusRequest
): Promise<ServerResponse<DestinyFireteamFinderBulkGetListingStatusResponse>>;
export interface GetApplicationParams {
  applicationId: string;
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
}
/** Retrieves a Fireteam application. */
export declare function getApplication(
  http: HttpClient,
  params: GetApplicationParams
): Promise<ServerResponse<DestinyFireteamFinderGetApplicationResponse>>;
export interface GetListingParams {
  /** The ID of the listing to retrieve. */
  listingId: string;
}
/** Retrieves a Fireteam listing. */
export declare function getListing(
  http: HttpClient,
  params: GetListingParams
): Promise<ServerResponse<DestinyFireteamFinderListing>>;
export interface GetListingApplicationsParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** Optional flag representing a filter on the state of the application. */
  flags?: string;
  /** The ID of the listing whose applications to retrieve. */
  listingId: string;
  /** An optional token from a previous response to fetch the next page of results. */
  nextPageToken?: string;
  /** The maximum number of results to be returned with this page. */
  pageSize?: number;
}
/** Retrieves all applications to a Fireteam Finder listing. */
export declare function getListingApplications(
  http: HttpClient,
  params: GetListingApplicationsParams
): Promise<ServerResponse<DestinyFireteamFinderGetListingApplicationsResponse>>;
export interface GetLobbyParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** The ID of the lobby to retrieve. */
  lobbyId: string;
}
/** Retrieves the information for a Fireteam lobby. */
export declare function getLobby(
  http: HttpClient,
  params: GetLobbyParams
): Promise<ServerResponse<DestinyFireteamFinderLobbyResponse>>;
export interface GetPlayerLobbiesParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** An optional token from a previous response to fetch the next page of results. */
  nextPageToken?: string;
  /** The maximum number of results to be returned with this page. */
  pageSize?: number;
}
/** Retrieves the information for a Fireteam lobby. */
export declare function getPlayerLobbies(
  http: HttpClient,
  params: GetPlayerLobbiesParams
): Promise<ServerResponse<DestinyFireteamFinderGetPlayerLobbiesResponse>>;
export interface GetPlayerApplicationsParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** An optional token from a previous response to fetch the next page of results. */
  nextPageToken?: string;
  /** The maximum number of results to be returned with this page. */
  pageSize?: number;
}
/** Retrieves Fireteam applications that this player has sent or recieved. */
export declare function getPlayerApplications(
  http: HttpClient,
  params: GetPlayerApplicationsParams
): Promise<ServerResponse<DestinyFireteamFinderGetPlayerApplicationsResponse>>;
export interface GetPlayerOffersParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** An optional token from a previous response to fetch the next page of results. */
  nextPageToken?: string;
  /** The maximum number of results to be returned with this page. */
  pageSize?: number;
}
/** Retrieves Fireteam offers that this player has recieved. */
export declare function getPlayerOffers(
  http: HttpClient,
  params: GetPlayerOffersParams
): Promise<ServerResponse<DestinyFireteamFinderGetPlayerOffersResponse>>;
export interface GetCharacterActivityAccessParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
}
/** Retrieves the information for a Fireteam lobby. */
export declare function getCharacterActivityAccess(
  http: HttpClient,
  params: GetCharacterActivityAccessParams
): Promise<ServerResponse<DestinyFireteamFinderGetCharacterActivityAccessResponse>>;
export interface GetOfferParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** The unique ID of the offer. */
  offerId: string;
}
/** Retrieves an offer to a Fireteam lobby. */
export declare function getOffer(
  http: HttpClient,
  params: GetOfferParams
): Promise<ServerResponse<DestinyFireteamFinderOffer>>;
export interface GetLobbyOffersParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** The unique ID of the lobby. */
  lobbyId: string;
  /** An optional token from a previous response to fetch the next page of results. */
  nextPageToken?: string;
  /** The maximum number of results to be returned with this page. */
  pageSize?: number;
}
/** Retrieves all offers relevant to a Fireteam lobby. */
export declare function getLobbyOffers(
  http: HttpClient,
  params: GetLobbyOffersParams
): Promise<ServerResponse<DestinyFireteamFinderGetLobbyOffersResponse>>;
export interface HostLobbyParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
}
/** Creates a new Fireteam lobby and Fireteam Finder listing. */
export declare function hostLobby(
  http: HttpClient,
  params: HostLobbyParams,
  body: DestinyFireteamFinderHostLobbyRequest
): Promise<ServerResponse<DestinyFireteamFinderHostLobbyResponse>>;
export interface JoinLobbyParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
}
/** Sends a request to join an available Fireteam lobby. */
export declare function joinLobby(
  http: HttpClient,
  params: JoinLobbyParams,
  body: DestinyFireteamFinderJoinLobbyRequest
): Promise<ServerResponse<DestinyFireteamFinderLobbyResponse>>;
export interface KickPlayerParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** The ID of the lobby to kick the player from. */
  lobbyId: string;
  /** A valid Destiny membership ID of the player to kick. */
  targetMembershipId: string;
}
/** Kicks a player from a Fireteam Finder lobby. */
export declare function kickPlayer(
  http: HttpClient,
  params: KickPlayerParams,
  body: DestinyFireteamFinderKickPlayerRequest
): Promise<ServerResponse<boolean>>;
export interface LeaveApplicationParams {
  /** The ID of the application to leave. */
  applicationId: string;
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
}
/** Sends a request to leave a Fireteam listing application. */
export declare function leaveApplication(
  http: HttpClient,
  params: LeaveApplicationParams
): Promise<ServerResponse<boolean>>;
export interface LeaveLobbyParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** The ID of the lobby to leave. */
  lobbyId: string;
}
/** Sends a request to leave a Fireteam lobby. */
export declare function leaveLobby(
  http: HttpClient,
  params: LeaveLobbyParams
): Promise<ServerResponse<boolean>>;
export interface RespondToApplicationParams {
  /** The application ID to respond to. */
  applicationId: string;
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
}
/** Responds to an application sent to a Fireteam lobby. */
export declare function respondToApplication(
  http: HttpClient,
  params: RespondToApplicationParams,
  body: DestinyFireteamFinderRespondToApplicationRequest
): Promise<ServerResponse<DestinyFireteamFinderRespondToApplicationResponse>>;
export interface RespondToAuthenticationParams {
  /** The ID of the application whose authentication to confirm. */
  applicationId: string;
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
}
/** Responds to an authentication request for a Fireteam. */
export declare function respondToAuthentication(
  http: HttpClient,
  params: RespondToAuthenticationParams,
  body: DestinyFireteamFinderRespondToAuthenticationRequest
): Promise<ServerResponse<DestinyFireteamFinderRespondToAuthenticationResponse>>;
export interface RespondToOfferParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** The unique ID of the offer. */
  offerId: string;
}
/** Responds to a Fireteam lobby offer. */
export declare function respondToOffer(
  http: HttpClient,
  params: RespondToOfferParams,
  body: DestinyFireteamFinderRespondToOfferRequest
): Promise<ServerResponse<DestinyFireteamFinderRespondToOfferResponse>>;
export interface SearchListingsByClanParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
}
/** Returns search results for available Fireteams provided a clan. */
export declare function searchListingsByClan(
  http: HttpClient,
  params: SearchListingsByClanParams,
  body: DestinyFireteamFinderSearchListingsByClanRequest
): Promise<ServerResponse<DestinyFireteamFinderSearchListingsByClanResponse>>;
export interface SearchListingsByFiltersParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /**
   * Optional boolean to bypass the offline-only check, so the client can pull
   * fireteam from the game.
   */
  overrideOfflineFilter?: boolean;
}
/** Returns search results for available Fireteams provided search filters. */
export declare function searchListingsByFilters(
  http: HttpClient,
  params: SearchListingsByFiltersParams,
  body: DestinyFireteamFinderSearchListingsByFiltersRequest
): Promise<ServerResponse<DestinyFireteamFinderSearchListingsByFiltersResponse>>;
export interface UpdateLobbySettingsParams {
  /** A valid Destiny character ID. */
  destinyCharacterId: string;
  /** A valid Destiny membership ID. */
  destinyMembershipId: string;
  /** A valid Destiny membership type. */
  destinyMembershipType: BungieMembershipType;
  /** The ID of the lobby to update. */
  lobbyId: string;
}
/** Updates the settings for a Fireteam lobby. */
export declare function updateLobbySettings(
  http: HttpClient,
  params: UpdateLobbySettingsParams,
  body: DestinyFireteamFinderUpdateLobbySettingsRequest
): Promise<ServerResponse<DestinyFireteamFinderUpdateLobbySettingsResponse>>;
