/**
 * @author Luuxis
 * Luuxis License v1.0 (voir fichier LICENSE pour les détails en FR/EN)
 */
import { EventEmitter } from 'events';
import type { LaunchOptions, LoaderJSON, MinecraftVersionJSON, JavaDownloadResult } from './types.js';
type LaunchInputOptions = Partial<Omit<LaunchOptions, 'authenticator' | 'loader' | 'java' | 'screen' | 'memory'>> & {
    authenticator?: LaunchOptions['authenticator'] | null;
    loader?: Partial<LaunchOptions['loader']>;
    java?: Partial<LaunchOptions['java']> & {
        path?: string | null;
        version?: string | null;
    };
    screen?: Partial<LaunchOptions['screen']> & {
        width?: number | null;
        height?: number | null;
    };
    memory?: Partial<LaunchOptions['memory']>;
};
export type LaunchOPTS = LaunchInputOptions;
export default class Launch extends EventEmitter {
    options: LaunchOptions;
    Launch(opt?: LaunchInputOptions): Promise<boolean>;
    start(): Promise<boolean>;
    DownloadGame(): Promise<{
        minecraftJson: MinecraftVersionJSON;
        minecraftLoader: LoaderJSON | null;
        minecraftVersion: string;
        minecraftJava: JavaDownloadResult;
    } | void>;
}
export {};
