"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveTimeouts = resolveTimeouts;
const defaults_1 = require("./defaults");
const multiplier_1 = require("./multiplier");
const stand_overrides_1 = require("./stand-overrides");
/**
 * Собирает итоговый профиль таймаутов из defaults, stand-override, multiplier и consumer-override.
 * @param feature — значение process.env.FEATURE (опционально)
 * @param options — multiplier и override из consumer-репозитория
 * @returns замороженный объект таймаутов
 */
function resolveTimeouts(feature, options = {}) {
    let merged = { ...defaults_1.DEFAULT_TIMEOUTS };
    if (feature) {
        if ((0, stand_overrides_1.isFeatureStand)(feature)) {
            merged = { ...merged, ...stand_overrides_1.STAND_OVERRIDES[feature] };
        }
        else {
            console.warn(`[timeouts] Неизвестный FEATURE="${feature}". Используются базовые таймауты без stand-override.`);
        }
    }
    merged = (0, multiplier_1.applyTimeoutMultiplier)(merged, options.multiplier ?? 1);
    if (options.override) {
        merged = { ...merged, ...options.override };
    }
    return Object.freeze(merged);
}
