"use strict";
/**
 * Settings field types for the Tensorify SDK
 * Defines how plugin settings are configured and validated
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_VALUES = exports.UI_TYPE_TO_DATA_TYPE_MAP = exports.SettingsDataType = exports.SettingsUIType = void 0;
// ========================================
// SETTINGS UI COMPONENT TYPES
// ========================================
/**
 * UI component types available for settings fields
 */
var SettingsUIType;
(function (SettingsUIType) {
    // Text Input
    SettingsUIType["INPUT_TEXT"] = "input-text";
    SettingsUIType["TEXTAREA"] = "textarea";
    // Numeric Input
    SettingsUIType["INPUT_NUMBER"] = "input-number";
    SettingsUIType["SLIDER"] = "slider";
    // Boolean Input
    SettingsUIType["TOGGLE"] = "toggle";
    SettingsUIType["CHECKBOX"] = "checkbox";
    // Selection Input
    SettingsUIType["DROPDOWN"] = "dropdown";
    SettingsUIType["RADIO"] = "radio";
    SettingsUIType["MULTI_SELECT"] = "multi-select";
    // Advanced Input
    SettingsUIType["CODE_EDITOR"] = "code-editor";
    SettingsUIType["FILE_UPLOAD"] = "file-upload";
    SettingsUIType["COLOR_PICKER"] = "color-picker";
    SettingsUIType["DATE_PICKER"] = "date-picker";
})(SettingsUIType || (exports.SettingsUIType = SettingsUIType = {}));
/**
 * Data types for settings fields
 */
var SettingsDataType;
(function (SettingsDataType) {
    SettingsDataType["STRING"] = "string";
    SettingsDataType["NUMBER"] = "number";
    SettingsDataType["BOOLEAN"] = "boolean";
    SettingsDataType["ARRAY"] = "array";
    SettingsDataType["OBJECT"] = "object";
    SettingsDataType["FILE"] = "file";
    SettingsDataType["DATE"] = "date";
    SettingsDataType["COLOR"] = "color";
})(SettingsDataType || (exports.SettingsDataType = SettingsDataType = {}));
// ========================================
// SETTINGS VALIDATION HELPERS
// ========================================
/**
 * Type mapping for UI components to data types
 * Used for validation during plugin development
 */
exports.UI_TYPE_TO_DATA_TYPE_MAP = {
    [SettingsUIType.INPUT_TEXT]: [SettingsDataType.STRING],
    [SettingsUIType.TEXTAREA]: [SettingsDataType.STRING],
    [SettingsUIType.INPUT_NUMBER]: [SettingsDataType.NUMBER],
    [SettingsUIType.SLIDER]: [SettingsDataType.NUMBER],
    [SettingsUIType.TOGGLE]: [SettingsDataType.BOOLEAN],
    [SettingsUIType.CHECKBOX]: [SettingsDataType.BOOLEAN],
    [SettingsUIType.DROPDOWN]: [
        SettingsDataType.STRING,
        SettingsDataType.NUMBER,
        SettingsDataType.BOOLEAN,
    ],
    [SettingsUIType.RADIO]: [
        SettingsDataType.STRING,
        SettingsDataType.NUMBER,
        SettingsDataType.BOOLEAN,
    ],
    [SettingsUIType.MULTI_SELECT]: [SettingsDataType.ARRAY],
    [SettingsUIType.CODE_EDITOR]: [SettingsDataType.STRING],
    [SettingsUIType.FILE_UPLOAD]: [SettingsDataType.FILE],
    [SettingsUIType.COLOR_PICKER]: [SettingsDataType.COLOR],
    [SettingsUIType.DATE_PICKER]: [SettingsDataType.DATE],
};
/**
 * Default values for different data types
 */
exports.DEFAULT_VALUES = {
    [SettingsDataType.STRING]: "",
    [SettingsDataType.NUMBER]: 0,
    [SettingsDataType.BOOLEAN]: false,
    [SettingsDataType.ARRAY]: [],
    [SettingsDataType.OBJECT]: {},
    [SettingsDataType.FILE]: null,
    [SettingsDataType.DATE]: new Date(),
    [SettingsDataType.COLOR]: "#000000",
};
//# sourceMappingURL=settings.js.map