import ProjectInfoItem from "../info/ProjectInfoItem";
import Project from "../app/Project";
import IProjectInfoGenerator from "../info/IProjectInfoGenerator";
import IProjectUpdater from "../updates/IProjectUpdater";
import ProjectUpdateResult from "../updates/ProjectUpdateResult";
import { IProjectInfoTopicData } from "../info/IProjectInfoGeneratorBase";
import ProjectInfoSet from "../info/ProjectInfoSet";
import ContentIndex from "../core/ContentIndex";
export declare enum ItemTypeUpdate {
    UpdateFormatVersionToLatest = 1
}
export declare enum ItemTypeInfo {
    identifier = 53,
    metadata = 54,
    category = 55,
    formatVersionDefined = 100,
    formatVersionMajorVersionLowerThanCurrent = 110,
    formatVersionMajorVersionHigherThanCurrent = 111,
    formatVersionMinorVersionLowerThanCurrent = 120,
    formatVersionMinorVersionHigherThanCurrent = 121,
    formatVersionPatchVersionLowerThanCurrent = 130,
    formatVersionPatchVersionHigherThanCurrent = 131,
    failedToRetrieveLatestMinecraftVersion = 500,
    failedToParseLatestMinecraftVersion = 501
}
/**
 * Validates and updates item type definitions, including format version management.
 *
 * @see {@link ../../../public/data/forms/mctoolsval/itemtype.form.json} for topic definitions
 */
export default class ItemTypeManager implements IProjectInfoGenerator, IProjectUpdater {
    id: string;
    title: string;
    getTopicData(topicId: number): IProjectInfoTopicData | undefined;
    getUpdaterData(updaterId: number): {
        title: string;
    };
    summarize(info: any, infoSet: ProjectInfoSet): void;
    generate(project: Project, contentIndex: ContentIndex): Promise<ProjectInfoItem[]>;
    update(project: Project, updateId: number): Promise<ProjectUpdateResult[]>;
    getUpdateIds(): ItemTypeUpdate[];
    updateFormatVersionToLatestVersion(project: Project): Promise<ProjectUpdateResult[]>;
}
