"use strict";
/**
 * Core type definitions for the Tensorify SDK
 * These types form the foundation of the plugin system
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.PluginCapability = exports.NodeType = void 0;
// ========================================
// NODE TYPE SYSTEM
// ========================================
/**
 * Comprehensive enumeration of all possible node types/categories
 * Each plugin must belong to one of these categories
 */
var NodeType;
(function (NodeType) {
    // Core Types
    NodeType["CUSTOM"] = "custom";
    NodeType["TRAINER"] = "trainer";
    NodeType["EVALUATOR"] = "evaluator";
    NodeType["MODEL"] = "model";
    NodeType["MODEL_LAYER"] = "model_layer";
    NodeType["SEQUENCE"] = "sequence";
    // Data Processing
    NodeType["DATASET"] = "dataset";
    NodeType["DATALOADER"] = "dataloader";
    NodeType["PREPROCESSOR"] = "preprocessor";
    NodeType["POSTPROCESSOR"] = "postprocessor";
    NodeType["AUGMENTATION_STACK"] = "augmentation_stack";
    // Training Components
    NodeType["OPTIMIZER"] = "optimizer";
    NodeType["LOSS_FUNCTION"] = "loss_function";
    NodeType["METRIC"] = "metric";
    NodeType["SCHEDULER"] = "scheduler";
    NodeType["REGULARIZER"] = "regularizer";
    // Workflow Components
    NodeType["FUNCTION"] = "function";
    NodeType["PIPELINE"] = "pipeline";
    NodeType["REPORT"] = "report";
})(NodeType || (exports.NodeType = NodeType = {}));
// ========================================
// PLUGIN CAPABILITIES
// ========================================
/**
 * Capabilities that a plugin can declare
 * Used for filtering and validation in the frontend
 */
var PluginCapability;
(function (PluginCapability) {
    PluginCapability["CODE_GENERATION"] = "code-generation";
    PluginCapability["DATA_PROCESSING"] = "data-processing";
    PluginCapability["REAL_TIME"] = "real-time";
    PluginCapability["BATCH_PROCESSING"] = "batch-processing";
    PluginCapability["EXTERNAL_API"] = "external-api";
    PluginCapability["FILE_PROCESSING"] = "file-processing";
    PluginCapability["AI_INTEGRATION"] = "ai-integration";
})(PluginCapability || (exports.PluginCapability = PluginCapability = {}));
//# sourceMappingURL=core.js.map