#pragma once

#include <QString>
#include <QStringList>

namespace JavaLocator {

// Все java, которые удалось найти: рантайм самого Minecraft, JAVA_HOME, PATH,
// стандартные каталоги установки JDK/JRE. Без дублей, в порядке приоритета.
QStringList findAll(const QString &gameDir);

// Мажорная версия (8, 17, 21...) или 0, если запустить не удалось. Результат кешируется.
int majorVersion(const QString &javaPath);

// java.exe -> javaw.exe, чтобы игра не открывала окно консоли. На Unix возвращает вход.
QString windowlessVariant(const QString &javaPath);

// Выбирает java не ниже requiredMajor. preferred, если задан, проверяется первым.
// При неудаче возвращает пустую строку и заполняет error.
QString select(const QString &gameDir,
               int requiredMajor,
               const QString &preferred,
               QString *error);

} // namespace JavaLocator
