import Project from "./Project";
import ProjectItem from "./ProjectItem";
import MCWorld from "./../minecraft/MCWorld";
import IFolder from "./../storage/IFolder";
import CreatorTools from "./CreatorTools";
import { IWorldSettings } from "../minecraft/IWorldSettings";
import ProjectBuild from "./ProjectBuild";
import IConversionSettings from "../core/IConversionSettings";
export declare const enum FolderDeploy {
    retailFolders = 0,
    developmentFolders = 1,
    noFolders = 2
}
export declare const ProjectImportExclusions: string[];
export default class ProjectExporter {
    static generateFlatBetaApisWorldWithPacksZipBytes(creatorTools: CreatorTools, project: Project, name: string): Promise<Uint8Array<ArrayBufferLike>>;
    static syncProjectFromGitHub(isNewProject: boolean, creatorTools: CreatorTools, gitHubRepoName: string, gitHubOwner: string, gitHubBranch: string | undefined, gitHubFolder: string | undefined, projName: string | undefined, project: Project | undefined, fileList: string[] | undefined, messageUpdater?: (message: string) => Promise<void>, dontOverwriteExistingFiles?: boolean): Promise<Project>;
    static getPackFolder(folder: IFolder, seekingResource: boolean): Promise<IFolder>;
    static ensureWorldsFolder(rootMinecraftFolder: IFolder): Promise<IFolder>;
    static ensureMinecraftWorldsFolder(creatorTools: CreatorTools): Promise<IFolder>;
    static prepareProject(project: Project): Promise<ProjectBuild | undefined>;
    static deployProject(creatorTools: CreatorTools, project: Project, deployTargetFolder: IFolder, folderDeploy?: FolderDeploy): Promise<boolean>;
    static deployProjectPacks(project: Project, projectBuild: ProjectBuild, targetFolder: IFolder, mcworld?: MCWorld, useDeveloperFolders?: FolderDeploy): Promise<void>;
    static deployAsWorldAndTestAssets(creatorTools: CreatorTools, project: Project, worldProjectItem: ProjectItem, returnZipBytes: boolean, deployFolder?: IFolder): Promise<Uint8Array<ArrayBufferLike>>;
    static deployAsWorld(creatorTools: CreatorTools, project: Project, worldProjectItem: ProjectItem, returnZipBytes: boolean, deployFolder?: IFolder): Promise<Uint8Array<ArrayBufferLike>>;
    static updateProjects(project: Project): Promise<void>;
    static generateWorldWithPacks(creatorTools: CreatorTools, project: Project, worldSettings: IWorldSettings, targetFolder?: IFolder): Promise<any>;
    static deployProjectAndGeneratedWorldTo(creatorTools: CreatorTools, project: Project, worldSettings: IWorldSettings, deployFolder: IFolder): Promise<string>;
    static deployAsFlatPackRefWorld(creatorTools: CreatorTools, project: Project): Promise<void>;
    static convertWorld(creatorTools: CreatorTools, project: Project, settings: IConversionSettings, world?: MCWorld): Promise<Uint8Array<ArrayBufferLike>>;
    static syncFlatPackRefWorldTo(creatorTools: CreatorTools, project: Project, worldFolder: IFolder, name: string): Promise<void>;
    static generateAndInvokeFlatPackRefMCWorld(creatorTools: CreatorTools, project: Project): Promise<void>;
    static generateFlatGameTestWorldWithPackRefs(project: Project, worldName: string): Promise<MCWorld>;
    static generateMCAddonAsZip(creatorTools: CreatorTools, project: Project, returnAsBlob: boolean): Promise<Blob | Uint8Array | undefined>;
    static generateWorldWithPacksAndContent(project: Project, worldName: string, worldContent?: Uint8Array, worldSettings?: IWorldSettings): Promise<MCWorld | undefined>;
    static ensureExperimentsEnabledOnWorld(mcworld: MCWorld, project: Project): Promise<void>;
    static generateBetaApisWorldWithPackRefs(project: Project, worldName: string, worldContent: Uint8Array): Promise<MCWorld>;
}
