/**The internal java and version manifest handler for GMLL */
import { File } from "gfsl";
import type { ForgeVersion, MCRuntimeVal, VersionManifest } from "../types";
export declare function getManifests(): VersionManifest[];
/**Gets a specific version manifest based on the version ID provided
 * @param version the version ID
 * @returns a version manifest. It will be of type "unknown" if the specific manifest is not in the manifest database.
 */
export declare function getManifest(version: string): VersionManifest;
/**Gets the latest release and snapshot builds.*/
export declare function getLatest(): {
    release: string;
    snapshot: string;
};
export declare function installForge(forgeInstaller: string | File | ForgeVersion, forgiacArgs?: string[]): any;
/**
 * Gets the path to an installed version of Java. GMLL manages these versions and they're not provided by the system.
 * @param java the name of the Java runtime. Based on the names Mojang gave them.
 * @returns The location of the have executable.
 */
export declare function getJavaPath(java?: MCRuntimeVal): File;
/**
 * The auto forge installer.
 * To stop forge from breaking this,
 * please add a link to donate to the forge project at https://www.patreon.com/LexManos
 *
 * I am not affiliated with forge in any way, I just want to support them. So they can keep making forge...and so they don't break this.
 * - Hanro50
 *
 * @Warning They may break this at any time. I will try to keep this up to date, but I can't guarantee anything. So...yeah. Add a link to donate to them.
 */
export declare function getForgeVersions(): Promise<Record<string, (ForgeVersion & {
    install: () => Promise<VersionManifest>;
})[]>>;
export declare function getForgeVersions(version: string): Promise<[ForgeVersion & {
    install: () => Promise<VersionManifest>;
}]>;
export declare function installModernForge(version: string): any;
export declare function installNeoForge(version: string): Promise<any>;
/**The auto neoforge installer.*/
export declare function getNeoForgeVersions(version?: string): Promise<{
    version: string;
    install: () => Promise<any>;
}[]>;
