import { Launcher } from "../../launcher.js";
import { ModDisplayInfo, ModInfo } from "../../mods/mod.js";
import { MCVersion } from "../../schemas.js";
import { MinecraftVersion } from "../../version.js";
import { Loader, ModLoadingIssue } from "../loader.js";
import { ForgeMcmodInfoOne, StoreData } from "./forge_schemas.js";
import { InstallerProfileNew } from "./install_profile_new.js";
export declare abstract class ForgeLikeLoader implements Loader<StoreData | ForgeMcmodInfoOne> {
    private readonly launcher;
    protected abstract readonly mavenArtifactURL: string;
    protected abstract readonly supportsOld: boolean;
    abstract name: string;
    constructor(launcher: Launcher);
    abstract findInVersion(MCVersion: MCVersion): string | undefined;
    abstract getArchiveBaseName(MCVersion: string): string;
    abstract matchVersion(loader: string, mc: string): boolean;
    getSuitableLoaderVersions(MCVersion: MinecraftVersion): Promise<string[]>;
    install(MCVersion: MinecraftVersion, version: string): Promise<boolean>;
    transformArguments(arg: string, installerPath: string, MCVersion: MinecraftVersion, metadata: InstallerProfileNew): string;
    findModInfos(path: string): Promise<ModInfo<StoreData | ForgeMcmodInfoOne>[]>;
    checkMods(mods: ModInfo<StoreData | ForgeMcmodInfoOne>[], mc: string, loader: string): ModLoadingIssue[];
    getModInfo(mod: StoreData | ForgeMcmodInfoOne): ModDisplayInfo;
}
