import CreatorTools from "../app/CreatorTools";
import Project from "../app/Project";
import IStatus from "../app/Status";
import LocalEnvironment from "../local/LocalEnvironment";
import IFolder from "../storage/IFolder";
import IProjectStartInfo from "./IProjectStartInfo";
export declare enum TaskType {
    noCommand = 0,
    runTests = 1,
    exportAddon = 2,
    exportWorld = 3,
    ensureRefWorld = 4,
    deploy = 5,
    runDedicatedServer = 6,
    info = 7,
    add = 8,
    create = 9,
    validate = 10,
    serve = 11,
    version = 12,
    passcodes = 13,
    setPasscode = 14,
    setServerProperties = 15,
    minecraftEulaAndPrivacyStatement = 16,
    deployTestWorld = 17,
    world = 18,
    fix = 19,
    setProjectProperty = 20,
    autoTest = 21,
    aggregateReports = 22,
    docsUpdateFormSource = 23,
    docsGenerateFormJson = 24,
    docsGenerateMarkdown = 25,
    search = 26,
    docsGenerateTypes = 27,
    profileValidation = 28,
    mcp = 29,
    docsUpdateMCCat = 30,
    renderModel = 31,
    renderVanilla = 32,
    renderStructure = 33,
    buildStructure = 34,
    view = 35,
    edit = 36,
    docsGenerateJsonSchema = 37,
    setup = 38,
    generateSchemaPackage = 39
}
export declare enum OutputType {
    normal = 0,
    noReports = 1,
    json = 2
}
export default class ClUtils {
    static createProject(creatorTools: CreatorTools, startInfo: IProjectStartInfo): Project;
    static handleStatusAdded(creatorTools: CreatorTools, status: IStatus): void;
    static localFolderExists(path: string): Promise<boolean>;
    static localFileExists(path: string): Promise<boolean>;
    static ensureLocalFolder(path: string): import("../local/NodeFolder").default;
    static getIsWriteCommand(taskType: TaskType): taskType is TaskType.add | TaskType.create | TaskType.world | TaskType.fix;
    /**
     * Returns true for commands that edit content in place (no separate output folder).
     * These commands: edit, view, add, create, fix
     */
    static getIsEditInPlaceCommand(taskType: TaskType): taskType is TaskType.add | TaskType.create | TaskType.fix | TaskType.view | TaskType.edit;
    static getMainWorkFolder(taskType: TaskType, inputFolder?: string, outputFolder?: string): Promise<IFolder>;
    static getCreatorTools(localEnv: LocalEnvironment, basePath?: string): CreatorTools;
}
