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 ProjectInfoSet from "../info/ProjectInfoSet";
import ContentIndex from "../core/ContentIndex";
export declare enum EntityTypeUpdate {
    UpdateFormatVersionToLatest = 1051
}
export declare enum EntityTypeInfo {
    RuntimeIdentifier = 52,
    Identifier = 53,
    Metadata = 54,
    FormatVersionDefined = 100,
    FormatVersionMajorVersionLowerThanCurrent = 110,
    FormatVersionMajorVersionHigherThanCurrent = 111,
    FormatVersionMinorVersionLowerThanCurrent = 120,
    FormatVersionMinorVersionHigherThanCurrent = 121,
    FormatVersionPatchVersionLowerThanCurrent = 130,
    FormatVersionPatchVersionHigherThanCurrent = 131,
    FailedToRetrieveLatestMinecraftVersion = 500,
    FailedToParseLatestMinecraftVersion = 501
}
/**
 * Validates and updates entity type definitions, including format version management.
 *
 * @see {@link ../../../public/data/forms/mctoolsval/entitytype.form.json} for topic definitions
 */
export default class EntityTypeManager implements IProjectInfoGenerator, IProjectUpdater {
    id: any;
    title: string;
    constructor();
    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(): EntityTypeUpdate[];
    updateFormatVersionToLatestVersion(project: Project): Promise<ProjectUpdateResult[]>;
}
