import ProjectInfoItem from "./ProjectInfoItem";
import ProjectInfoSet from "./ProjectInfoSet";
import ContentIndex from "../core/ContentIndex";
import ITagData from "../app/ITagData";
import IProjectInfoGenerator from "./IProjectInfoGenerator";
import Project from "../app/Project";
export interface IPackSummaryMetadata {
    pack?: IPackSummaryMetadataPack;
    offerStructure?: IPackSummaryMetadataOfferStructure;
    offer: IPackSummaryMetadataOffer;
}
export interface IPackSummaryMetadataOfferStructure {
    PackCount: number;
    Type: string;
    Version: string;
    DisplayName: string;
    Id: string;
}
export interface IPackSummaryMetadataPack {
    Offer: IPackSummaryMetadataPackOffer;
    Id: string;
    OfferId: string;
    Type: string;
}
export interface IPackSummaryMetadataPackOffer {
    Id: string;
}
export interface IPackSummaryMetadataOffer {
    result: IPackSummaryMetadataOfferResult;
}
export interface IPackSummaryMetadataOfferResult {
    offerModel: IPackSummaryMetadataOfferResultOfferModel;
}
export interface IPackSummaryMetadataOfferResultOfferModel {
    Id: string;
    contentApproved: string;
    catalogDescription: string;
    offerPrice: string;
    offerGenre: string;
    offerSubgenre: string;
    playerCount: string;
    purchasable: string;
    readableOfferId: string;
    releaseDate: string;
    retailProductId: string;
    submissionDate: string;
    worldType: string;
    cardTitle: string;
    originalReleaseDate: string;
    creatorName: string;
    isAnUpdate: boolean;
    lastUpdated: string;
    offerTitle: string;
    packType: string;
    offerType: string;
    submissionVersion: string;
}
/**
 * Aggregates pack metadata from various sources including marketplace submissions.
 */
export default class PackMetaDataInformationGenerator implements IProjectInfoGenerator {
    id: string;
    title: string;
    tags: string[];
    tagMetadata: ITagData;
    canAlwaysProcess: boolean;
    getTopicData(topicId: number): {
        title: string;
    };
    summarize(info: any, infoSet: ProjectInfoSet): void;
    generate(project: Project, contentIndex: ContentIndex): Promise<ProjectInfoItem[]>;
}
