import ProjectInfoItem from "./ProjectInfoItem";
import Project from "../app/Project";
import IProjectInfoGenerator from "./IProjectInfoGenerator";
import ProjectInfoSet from "./ProjectInfoSet";
import ContentIndex from "../core/ContentIndex";
import IFolder from "../storage/IFolder";
export declare enum PackSizeInfoGeneratorTest {
    overallSize = 101,
    fileCount = 102,
    folderCount = 103,
    contentSize = 104,
    contentFileCount = 105,
    contentFolderCount = 106,
    exceedsRecommendedAddonSize = 401,
    exceedsRecommendedPackageSize = 402,
    zipFileCouldNotBeProcessed = 410
}
export interface IPackSizeInfoGeneratorResults {
    size: number;
    fileCounts: number;
    folderCounts: number;
    contentSize: number;
    contentFileCounts: number;
    contentFolderCounts: number;
}
/**
 * Calculates and validates pack size information including file and folder counts.
 *
 * @see {@link ../../public/data/forms/mctoolsval/packsize.form.json} for topic definitions
 */
export default class PackSizeInfoGenerator implements IProjectInfoGenerator {
    id: string;
    title: string;
    canAlwaysProcess: boolean;
    performAddOnValidations: boolean;
    summarize(info: any, infoSet: ProjectInfoSet): void;
    generate(project: Project, contentIndex: ContentIndex): Promise<ProjectInfoItem[]>;
    processFolder(project: Project, folder: IFolder, genItems: ProjectInfoItem[], genContentIndex: ContentIndex, results: IPackSizeInfoGeneratorResults, depth: number, isInContent: boolean): Promise<void>;
}
