/**
 * 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.
 *
 * Contact: support@bungie.com
 *
 * NOTE: This class is auto generated by the bungie-net-core code generator program
 * Repository: {@link https://github.com/owens1127/bungie-net-core}
 * Do not edit these files manually.
 */
import { DestinyComponentType } from '../DestinyComponentType';
import { SingleComponentResponse } from '../../../interfaces/SingleComponentResponse';
import { DestinyInventoryComponent } from '../Entities/Inventory/DestinyInventoryComponent';
import { DestinyCharacterComponent } from '../Entities/Characters/DestinyCharacterComponent';
import { DestinyCharacterProgressionComponent } from '../Entities/Characters/DestinyCharacterProgressionComponent';
import { DestinyCharacterRenderComponent } from '../Entities/Characters/DestinyCharacterRenderComponent';
import { DestinyCharacterActivitiesComponent } from '../Entities/Characters/DestinyCharacterActivitiesComponent';
import { DestinyLoadoutsComponent } from '../Components/Loadouts/DestinyLoadoutsComponent';
import { DestinyKiosksComponent } from '../Components/Kiosks/DestinyKiosksComponent';
import { DestinyPlugSetsComponent } from '../Components/PlugSets/DestinyPlugSetsComponent';
import { DestinyPresentationNodesComponent } from '../Components/Presentation/DestinyPresentationNodesComponent';
import { DestinyCharacterRecordsComponent } from '../Components/Records/DestinyCharacterRecordsComponent';
import { DestinyCollectiblesComponent } from '../Components/Collectibles/DestinyCollectiblesComponent';
import { DestinyItemComponentSet } from '../../../interfaces/DestinyItemComponentSet';
import { DestinyBaseItemComponentSet } from '../../../interfaces/DestinyBaseItemComponentSet';
import { DestinyCurrenciesComponent } from '../Components/Inventory/DestinyCurrenciesComponent';
/**
 * The response contract for GetDestinyCharacter, with components that can be
 * returned for character and item-level data.
 * @see {@link https://bungie-net.github.io/#/components/schemas/Destiny.Responses.DestinyCharacterResponse}
 */
export interface DestinyCharacterResponse<T extends readonly DestinyComponentType[]> {
    /**
     * The character-level non-equipped inventory items.
     *
     * COMPONENT TYPE: CharacterInventories
     */
    readonly inventory: SingleComponentResponse<DestinyInventoryComponent, 'CharacterInventories', T>;
    /**
     * Base information about the character in question.
     *
     * COMPONENT TYPE: Characters
     */
    readonly character: SingleComponentResponse<DestinyCharacterComponent, 'Characters', T>;
    /**
     * Character progression data, including Milestones.
     *
     * COMPONENT TYPE: CharacterProgressions
     */
    readonly progressions: SingleComponentResponse<DestinyCharacterProgressionComponent, 'CharacterProgressions', T>;
    /**
     * Character rendering data - a minimal set of information about equipment and dyes
     * used for rendering.
     *
     * COMPONENT TYPE: CharacterRenderData
     */
    readonly renderData: SingleComponentResponse<DestinyCharacterRenderComponent, 'CharacterRenderData', T>;
    /**
     * Activity data - info about current activities available to the player.
     *
     * COMPONENT TYPE: CharacterActivities
     */
    readonly activities: SingleComponentResponse<DestinyCharacterActivitiesComponent, 'CharacterActivities', T>;
    /**
     * Equipped items on the character.
     *
     * COMPONENT TYPE: CharacterEquipment
     */
    readonly equipment: SingleComponentResponse<DestinyInventoryComponent, 'CharacterEquipment', T>;
    /**
     * The loadouts available to the character.
     *
     * COMPONENT TYPE: CharacterLoadouts
     */
    readonly loadouts: SingleComponentResponse<DestinyLoadoutsComponent, 'CharacterLoadouts', T>;
    /**
     * Items available from Kiosks that are available to this specific character.
     *
     * COMPONENT TYPE: Kiosks
     */
    readonly kiosks: SingleComponentResponse<DestinyKiosksComponent, 'Kiosks', T>;
    /**
     * When sockets refer to reusable Plug Sets (see DestinyPlugSetDefinition for more
     * info), this is the set of plugs and their states that are scoped to this
     * character.
     *
     * This comes back with ItemSockets, as it is needed for a complete picture of the
     * sockets on requested items.
     *
     * COMPONENT TYPE: ItemSockets
     */
    readonly plugSets: SingleComponentResponse<DestinyPlugSetsComponent, 'ItemSockets', T>;
    /** COMPONENT TYPE: PresentationNodes */
    readonly presentationNodes: SingleComponentResponse<DestinyPresentationNodesComponent, 'PresentationNodes', T>;
    /** COMPONENT TYPE: Records */
    readonly records: SingleComponentResponse<DestinyCharacterRecordsComponent, 'Records', T>;
    /** COMPONENT TYPE: Collectibles */
    readonly collectibles: SingleComponentResponse<DestinyCollectiblesComponent, 'Collectibles', T>;
    /**
     * The set of components belonging to the player's instanced items.
     *
     * COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component
     * types.]
     */
    readonly itemComponents: DestinyItemComponentSet<string, T>;
    /**
     * The set of components belonging to the player's UNinstanced items. Because
     * apparently now those too can have information relevant to the character's state.
     *
     * COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component
     * types.]
     */
    readonly uninstancedItemComponents: DestinyBaseItemComponentSet<T>;
    /**
     * A "lookup" convenience component that can be used to quickly check if the
     * character has access to items that can be used for purchasing.
     *
     * COMPONENT TYPE: CurrencyLookups
     */
    readonly currencyLookups: SingleComponentResponse<DestinyCurrenciesComponent, 'CurrencyLookups', T>;
}
