"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FeatureSet = exports.RUNTIME_RECOVERY_SUMMARY_AGENT_FEATURE_FLAG = exports.STEP_GROUPS_FEATURE_FLAG = exports.VISUAL_FIND_EXPERIMENTAL_MODEL_FEATURE_FLAG = exports.AI_ASSERTIONS_IN_DOWNLOADS_FEATURE_FLAG = exports.AI_ASSERTIONS_FEATURE_FLAG = exports.ADVANCED_AUTO_HEALING_FEATURE_FLAG = exports.XRAY_INTEGRATION_FEATURE_FLAG = exports.GENERATIVE_AI_FAILURE_ANALYSIS_FEATURE_FLAG = exports.GENERATIVE_AI_FEATURE_FLAG = void 0;
const browserLauncher_1 = require("../browserLauncher");
const ACCESSIBILITY_CHECK_FEATURE_FLAG = 'accessibility_checks';
const PERFORMANCE_TESTING_FEATURE_FLAG = 'performance_testing';
exports.GENERATIVE_AI_FEATURE_FLAG = 'generative_ai';
exports.GENERATIVE_AI_FAILURE_ANALYSIS_FEATURE_FLAG = 'generative_ai_failure_analysis';
exports.XRAY_INTEGRATION_FEATURE_FLAG = 'xray_integration';
exports.ADVANCED_AUTO_HEALING_FEATURE_FLAG = 'advanced_auto_healing';
exports.AI_ASSERTIONS_FEATURE_FLAG = 'ai_assertion_steps';
exports.AI_ASSERTIONS_IN_DOWNLOADS_FEATURE_FLAG = 'ai_assertions_in_downloads';
exports.VISUAL_FIND_EXPERIMENTAL_MODEL_FEATURE_FLAG = 'visual_find_experimental_model';
exports.STEP_GROUPS_FEATURE_FLAG = 'step_groups';
exports.RUNTIME_RECOVERY_SUMMARY_AGENT_FEATURE_FLAG = 'runtime_review_agent';
class FeatureSet {
    constructor(featureFlags) {
        this.featureFlags = featureFlags;
    }
    getRunnerType() {
        return browserLauncher_1.RunnerType.Playwright;
    }
    hasAccessibilityChecksEnabled() {
        return this.featureFlags.has(ACCESSIBILITY_CHECK_FEATURE_FLAG);
    }
    hasPerformanceTestingFeatureEnabled() {
        return this.featureFlags.has(PERFORMANCE_TESTING_FEATURE_FLAG);
    }
    hasAiAssertions() {
        return this.featureFlags.has(exports.AI_ASSERTIONS_FEATURE_FLAG);
    }
    hasAiAssertionsInDownloads() {
        return this.featureFlags.has(exports.AI_ASSERTIONS_IN_DOWNLOADS_FEATURE_FLAG);
    }
    allowGenerativeAi() {
        return this.featureFlags.has(exports.GENERATIVE_AI_FEATURE_FLAG);
    }
    useAdvancedAutoHeal() {
        return this.featureFlags.has(exports.ADVANCED_AUTO_HEALING_FEATURE_FLAG);
    }
    hasVisualFindExperimentalModel() {
        return this.featureFlags.has(exports.VISUAL_FIND_EXPERIMENTAL_MODEL_FEATURE_FLAG);
    }
    hasStepGroups() {
        return this.featureFlags.has(exports.STEP_GROUPS_FEATURE_FLAG);
    }
    runtimeRecoverySummaryAgentEnabled() {
        return this.featureFlags.has(exports.RUNTIME_RECOVERY_SUMMARY_AGENT_FEATURE_FLAG);
    }
}
exports.FeatureSet = FeatureSet;
