"use strict";
/**
 * Bangstack - Comprehensive Workflow Creator
 * Main entry point
 */
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CodeGenerator = exports.FileWriter = exports.globalRegistry = exports.GeneratorRegistry = exports.DAG = exports.WorkflowEngine = exports.WorkflowSchema = exports.WorkflowParser = void 0;
exports.parseWorkflow = parseWorkflow;
exports.parseWorkflowDirectory = parseWorkflowDirectory;
exports.analyzeWorkflow = analyzeWorkflow;
exports.validateWorkflow = validateWorkflow;
// Parser exports
var workflow_parser_1 = require("./parser/workflow-parser");
Object.defineProperty(exports, "WorkflowParser", { enumerable: true, get: function () { return workflow_parser_1.WorkflowParser; } });
var workflow_schema_1 = require("./parser/workflow-schema");
Object.defineProperty(exports, "WorkflowSchema", { enumerable: true, get: function () { return workflow_schema_1.WorkflowSchema; } });
// Engine exports
var workflow_engine_1 = require("./engine/workflow-engine");
Object.defineProperty(exports, "WorkflowEngine", { enumerable: true, get: function () { return workflow_engine_1.WorkflowEngine; } });
var dag_1 = require("./engine/dag");
Object.defineProperty(exports, "DAG", { enumerable: true, get: function () { return dag_1.DAG; } });
// Generator exports
var generators_1 = require("./generators");
Object.defineProperty(exports, "GeneratorRegistry", { enumerable: true, get: function () { return generators_1.GeneratorRegistry; } });
Object.defineProperty(exports, "globalRegistry", { enumerable: true, get: function () { return generators_1.globalRegistry; } });
Object.defineProperty(exports, "FileWriter", { enumerable: true, get: function () { return generators_1.FileWriter; } });
Object.defineProperty(exports, "CodeGenerator", { enumerable: true, get: function () { return generators_1.CodeGenerator; } });
// Type exports
__exportStar(require("./types/workflow"), exports);
// Re-export for convenience
const workflow_parser_2 = require("./parser/workflow-parser");
const workflow_engine_2 = require("./engine/workflow-engine");
/**
 * Parse a workflow file
 */
function parseWorkflow(filePath) {
    const parser = new workflow_parser_2.WorkflowParser();
    return parser.parseFile(filePath);
}
/**
 * Parse multiple workflow files from a directory
 */
function parseWorkflowDirectory(dirPath) {
    const parser = new workflow_parser_2.WorkflowParser();
    return parser.parseDirectory(dirPath);
}
/**
 * Analyze a workflow and create an execution plan
 */
function analyzeWorkflow(workflow) {
    const engine = new workflow_engine_2.WorkflowEngine();
    return engine.analyze(workflow);
}
/**
 * Validate a workflow
 */
function validateWorkflow(workflow) {
    const engine = new workflow_engine_2.WorkflowEngine();
    return engine.validate(workflow);
}
//# sourceMappingURL=index.js.map