import { Dir, File } from "gfsl";
import type { ForgeVersion, InstanceMetaPaths, InstancePackConfig, VersionJson, VersionManifest } from "../../../types";
import Instance from "../../objects/instance.js";
import Version from "../../objects/version.js";
/**Gets the load order of minecraft jars in jar mod loader. */
export declare function getJarModPriority(this: Instance): Promise<{
    [key: string]: number;
} & import("gfsl").WrappedObj>;
/**Wraps up an instance in a prepackaged format that can be easily uploaded to a server for distribution
 * @param baseUrl The base URL the generated files will be stored within on your server. For example http\:\/\/yourawesomdomain.net\/path\/to\/files\/
 * @param save The file GMLL will generate the final files on.
 * @param name The name that should be used to identify the generated version files
 * @param forge The path to a forge installation jar
 * @param trimMisc Gets rid of any unnecessary miscellaneous files

 */
export declare function pack(this: Instance, config: InstancePackConfig): Promise<Partial<VersionJson>>;
/**An version of the wrap function that takes an object as a variable instead of the mess the base function takes. */
export declare function wrap(this: Instance, baseUrl: string, save?: Dir | string, modpackName?: string, forge?: {
    jar: File | string;
} | File, trimMisc?: boolean): Promise<Partial<VersionJson>>;
/**Install forge in this instance. */
export declare function installForge(this: Instance, forge: File | string | ForgeVersion): Promise<any>;
export declare function getForgeVersions(this: Instance): Promise<(ForgeVersion & {
    install: () => Promise<VersionManifest>;
})[]>;
/**
 * Used to modify minecraft's jar file (Low level)

 * @param metaPaths
 * @param version
 * @returns
 */
export declare function jarMod(metaPaths: InstanceMetaPaths, version: Version): Promise<File>;
