"use strict";
/**
 * Documentation Template Registry
 * Central registry for all documentation templates
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.templateRegistry = exports.TemplateRegistry = void 0;
const troubleshooting_template_1 = require("./troubleshooting-template");
const setup_guide_template_1 = require("./setup-guide-template");
const api_reference_template_1 = require("./api-reference-template");
const tutorial_template_1 = require("./tutorial-template");
const architecture_template_1 = require("./architecture-template");
const best_practices_template_1 = require("./best-practices-template");
class TemplateRegistry {
    templates = [];
    constructor() {
        // Register all built-in templates
        this.registerTemplate(new troubleshooting_template_1.TroubleshootingTemplate());
        this.registerTemplate(new setup_guide_template_1.SetupGuideTemplate());
        this.registerTemplate(new api_reference_template_1.ApiReferenceTemplate());
        this.registerTemplate(new tutorial_template_1.TutorialTemplate());
        this.registerTemplate(new architecture_template_1.ArchitectureTemplate());
        this.registerTemplate(new best_practices_template_1.BestPracticesTemplate());
        // Add more templates as they're created
    }
    /**
     * Register a custom template
     */
    registerTemplate(template) {
        this.templates.push(template);
    }
    /**
     * Find a template that can handle the given intent
     */
    findTemplate(intent) {
        return this.templates.find(template => template.canHandle(intent));
    }
    /**
     * Get all registered templates
     */
    getAllTemplates() {
        return this.templates;
    }
}
exports.TemplateRegistry = TemplateRegistry;
// Export singleton instance
exports.templateRegistry = new TemplateRegistry();
//# sourceMappingURL=template-registry.js.map