"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.InterceptorDescription = exports.RunnerTreatmentDescription = exports.TreatmentDescription = void 0;
class TreatmentDescription {
    constructor(providerId, runnerId, description, subTreatments = []) {
        this.providerId = providerId;
        this.runnerId = runnerId;
        this.description = description;
        this.subTreatments = subTreatments;
    }
    getSubDescriptionLines(treatmentDescriptions, level = 0, result = []) {
        for (const treatmentDescription of treatmentDescriptions) {
            this.getDescriptionLines(treatmentDescription, level + 1, result);
        }
        return result;
    }
    get descriptionLines() {
        return this.getDescriptionLines();
    }
    getDescriptionLines(treatmentDescription = this, level = 0, result = []) {
        let prepend = ' ';
        for (let i = 0; i < level; i++) {
            prepend += '   ';
        }
        prepend += '- ';
        result.push(prepend +
            treatmentDescription.description +
            ' (' +
            treatmentDescription.providerId +
            '.' +
            treatmentDescription.runnerId +
            ')');
        this.getSubDescriptionLines(treatmentDescription.subTreatments, level, result);
        return result;
    }
}
exports.TreatmentDescription = TreatmentDescription;
class RunnerTreatmentDescription {
    constructor(description, services = []) {
        this.description = description;
        this.services = services;
    }
}
exports.RunnerTreatmentDescription = RunnerTreatmentDescription;
class InterceptorDescription {
}
exports.InterceptorDescription = InterceptorDescription;
//# sourceMappingURL=extension-description.js.map