"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEPRECATION_STRATEGY = exports.CLI_DEFAULTS = void 0;
exports.getRecommendedServerType = getRecommendedServerType;
exports.getFallbackServerTypes = getFallbackServerTypes;
exports.getHetznerEuRegions = getHetznerEuRegions;
exports.getDefaultHetznerRegion = getDefaultHetznerRegion;
exports.getScalewayEuRegions = getScalewayEuRegions;
exports.getDefaultScalewayRegion = getDefaultScalewayRegion;
exports.getEuRegions = getEuRegions;
exports.getDefaultRegion = getDefaultRegion;
exports.CLI_DEFAULTS = {
    SERVER_TYPE_CACHE_TTL_HOURS: 12,
    HETZNER_EU_REGIONS: ['nbg1', 'fsn1', 'hel1'],
    DEFAULT_HETZNER_REGION: 'nbg1',
    SCALEWAY_EU_REGIONS: ['fr-par', 'nl-ams', 'pl-waw'],
    DEFAULT_SCALEWAY_REGION: 'fr-par',
    FALLBACK_SERVER_TYPES: {
        hetzner: ['cx23', 'cx33', 'cx32', 'cpx21', 'cx42', 'cpx31'],
        scaleway: ['DEV1-M', 'DEV1-L', 'GP1-XS', 'GP1-S'],
    },
    RECOMMENDED_SERVER_TYPES: {
        hetzner: 'cx23',
        scaleway: 'DEV1-M',
    },
    MIN_SPECS: {
        observability: {
            cores: 2,
            memory: 4,
            disk: 40,
        },
        production: {
            cores: 4,
            memory: 8,
            disk: 80,
        },
        development: {
            cores: 2,
            memory: 4,
            disk: 20,
        },
    },
};
exports.DEPRECATION_STRATEGY = {
    SHOW_WARNING: true,
    AUTO_SELECT_ALTERNATIVE: false,
    ALLOW_MANUAL_SELECTION: true,
};
function getRecommendedServerType(provider) {
    return (exports.CLI_DEFAULTS.RECOMMENDED_SERVER_TYPES[provider] ||
        exports.CLI_DEFAULTS.RECOMMENDED_SERVER_TYPES.hetzner);
}
function getFallbackServerTypes(provider) {
    const types = exports.CLI_DEFAULTS.FALLBACK_SERVER_TYPES[provider] ||
        exports.CLI_DEFAULTS.FALLBACK_SERVER_TYPES.hetzner;
    return [...types];
}
function getHetznerEuRegions() {
    return [...exports.CLI_DEFAULTS.HETZNER_EU_REGIONS];
}
function getDefaultHetznerRegion() {
    return exports.CLI_DEFAULTS.DEFAULT_HETZNER_REGION;
}
function getScalewayEuRegions() {
    return [...exports.CLI_DEFAULTS.SCALEWAY_EU_REGIONS];
}
function getDefaultScalewayRegion() {
    return exports.CLI_DEFAULTS.DEFAULT_SCALEWAY_REGION;
}
function getEuRegions(provider) {
    if (provider === 'scaleway')
        return getScalewayEuRegions();
    return getHetznerEuRegions();
}
function getDefaultRegion(provider) {
    if (provider === 'scaleway')
        return getDefaultScalewayRegion();
    return getDefaultHetznerRegion();
}
