import Project from "../app/Project";
import IFile from "../storage/IFile";
import IFolder from "../storage/IFolder";
import ProjectItem from "../app/ProjectItem";
import BehaviorManifestDefinition from "./BehaviorManifestDefinition";
import ResourceManifestDefinition from "./ResourceManifestDefinition";
import SkinManifestDefinition from "./SkinManifestDefinition";
import PersonaManifestDefinition from "./PersonaManifestDefinition";
import DesignManifestDefinition from "./DesignManifestDefinition";
export declare enum PackType {
    resource = 0,
    behavior = 1,
    skin = 2,
    persona = 3,
    design = 4
}
export default class Pack {
    packType: PackType;
    manifestFile?: IFile;
    folder: IFolder;
    project: Project;
    projectItem: ProjectItem;
    isInWorld: boolean;
    manifest?: BehaviorManifestDefinition | ResourceManifestDefinition | SkinManifestDefinition | PersonaManifestDefinition | DesignManifestDefinition | undefined;
    private _items;
    get isEDUOffer(): boolean;
    constructor(folderIn: IFolder, packTypeIn: PackType, project: Project, projectItem: ProjectItem);
    ensureManifestFile(): IFile;
    ensureManifest(): Promise<ResourceManifestDefinition | BehaviorManifestDefinition | SkinManifestDefinition | PersonaManifestDefinition | DesignManifestDefinition>;
    getManifest(): ProjectItem;
    getPackItems(): readonly ProjectItem[];
    hasVibrantVisualsContent(): boolean;
    static ensureOnFolder(folder: IFolder, packType: PackType, project: Project, projectItem: ProjectItem): Pack;
    get name(): string;
    getFiles(predicate?: (file: IFile) => boolean): Promise<IFile[]>;
}
