"use strict";
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.FieldValueHumanify = exports.FieldDataType = exports.FieldVisualExperience = exports.FieldExperienceType = void 0;
var FieldExperienceType;
(function (FieldExperienceType) {
    FieldExperienceType[FieldExperienceType["text"] = 1] = "text";
    FieldExperienceType[FieldExperienceType["dropdown"] = 2] = "dropdown";
    FieldExperienceType[FieldExperienceType["slider"] = 3] = "slider";
})(FieldExperienceType = exports.FieldExperienceType || (exports.FieldExperienceType = {}));
var FieldVisualExperience;
(function (FieldVisualExperience) {
    FieldVisualExperience[FieldVisualExperience["normal"] = 0] = "normal";
    FieldVisualExperience[FieldVisualExperience["deemphasized"] = 1] = "deemphasized";
})(FieldVisualExperience = exports.FieldVisualExperience || (exports.FieldVisualExperience = {}));
var FieldDataType;
(function (FieldDataType) {
    /**
     * Represents a 32-bit integer value.
     */
    FieldDataType[FieldDataType["int"] = 0] = "int";
    /**
     * Represents a boolean value (true or false).
     */
    FieldDataType[FieldDataType["boolean"] = 1] = "boolean";
    /**
     * Represents a string value.
     */
    FieldDataType[FieldDataType["string"] = 2] = "string";
    /**
     * Represents a floating-point number.
     */
    FieldDataType[FieldDataType["float"] = 3] = "float";
    /**
     * Represents a string that can take on a limited set of values, often used for enumerations.
     */
    FieldDataType[FieldDataType["stringEnum"] = 4] = "stringEnum";
    /**
     * Represents an integer that can take on a limited set of values, often used for enumerations.
     */
    FieldDataType[FieldDataType["intEnum"] = 5] = "intEnum";
    /**
     * Represents a boolean value that can be represented as an integer (0 or 1).
     * This is often used for compatibility with systems that expect boolean values as integers.
     */
    FieldDataType[FieldDataType["intBoolean"] = 6] = "intBoolean";
    /**
     * Represents a numeric value (integer or floating-point).
     */
    FieldDataType[FieldDataType["number"] = 7] = "number";
    /**
     * Represents a string-based value that is chosen from a typically data-driven set of options (a lookup).
     */
    FieldDataType[FieldDataType["stringLookup"] = 8] = "stringLookup";
    /**
     * Represents an integer-based value that is chosen from a typically data-driven set of options (a lookup).
     */
    FieldDataType[FieldDataType["intValueLookup"] = 9] = "intValueLookup";
    /**
     * Represents a long integer value, which is typically a 64-bit integer.
     * This is used for larger numeric values that exceed the range of standard integers.
     */
    FieldDataType[FieldDataType["long"] = 10] = "long";
    /**
     * Represents a point in 3D space, with x, y, and z coordinates.
     */
    FieldDataType[FieldDataType["point3"] = 11] = "point3";
    /**
     * Represents a point in 3D space, with integer x, y, and z coordinates.
     */
    FieldDataType[FieldDataType["intPoint3"] = 12] = "intPoint3";
    /**
     * Represents a long-form string, which is typically used for very long text entries.
     * This is often used in contexts where the string may exceed standard length limits.
     */
    FieldDataType[FieldDataType["longFormString"] = 13] = "longFormString";
    /**
     * Represents a collection of objects where each object is identified by a unique string key.
     * For example, { "foo": {x: 1, z: 3}, "bar": {x:10, y: 4} }
     */
    FieldDataType[FieldDataType["keyedObjectCollection"] = 14] = "keyedObjectCollection";
    /**
     * Represents an array of objects, where each object can have multiple properties.
     * For example, [ { x: 1, id: "alpha", z: 3}, { x: 1, id: "bravo", z: 3} ]
     */
    FieldDataType[FieldDataType["objectArray"] = 15] = "objectArray";
    /**
     * Represents a generic object that can have any structure.
     */
    FieldDataType[FieldDataType["object"] = 16] = "object";
    /**
     * Represents an array of strings, which is often used for lists of text values.
     */
    FieldDataType[FieldDataType["stringArray"] = 17] = "stringArray";
    /**
     * Represents a range of integers. This can either be represented as a pair of integers on an object with min and max properties, or as a two element array, or as a single integer if the range is collapsed.
     * For example, { "min": 0, "max": 100 } or [0, 100] or 50.
     */
    FieldDataType[FieldDataType["intRange"] = 18] = "intRange";
    /**
     * Represents a range of floating-point numbers. This can either be represented as a pair of floats on an object with min and max properties, or as a two element array, or as a single float if the range is collapsed.
     * For example, { "min": 0.4, "max": 99.6 } or [0.4, 99.6] or 48.8.
     */
    FieldDataType[FieldDataType["floatRange"] = 19] = "floatRange";
    /**
     * Represents a filter that is specific to Minecraft, which can be used to filter entities or blocks based on certain criteria.
     * This is fundamentally an object, e.g.,
     * "filters": {
     *   "test": "in_lava", "subject": "self"
     *  }
     */
    FieldDataType[FieldDataType["minecraftFilter"] = 20] = "minecraftFilter";
    /**
     * Represents a range of floating-point numbers that represent a percentage chance, and the numbers should range between 0.0 and 1.0. This can either be represented as a pair of floats on an object with min and max properties, or as a two element array, or as a single float if the range is collapsed.
     * For example, { "min": 0.04, "max": 0.996 } or [0.04, 0.996] or 0.488.
     */
    FieldDataType[FieldDataType["percentRange"] = 21] = "percentRange";
    /**
     * Represents a single Minecraft event trigger, which can be used to specify the identifier and context for an action that should fire.
     */
    FieldDataType[FieldDataType["minecraftEventTrigger"] = 22] = "minecraftEventTrigger";
    /**
     * Represents an array of long-form string that can contain multiple lines of text, often used for detailed descriptions or notes.
     */
    FieldDataType[FieldDataType["longFormStringArray"] = 23] = "longFormStringArray";
    /**
     * Represents a collection of key-value pairs where each key is a string and the value is also a string.
     * For example, { "foo": "blah", "barg" : "borg" }
     */
    FieldDataType[FieldDataType["keyedStringCollection"] = 24] = "keyedStringCollection";
    /**
     * Represents a version, which can either be a semantic version string (e.g., "1.2.3") or a simple version number or an array of three numbers, for major, minor, and patch version.
     */
    FieldDataType[FieldDataType["version"] = 25] = "version";
    /**
     * Represents a universally unique identifier (UUID), which is a 128-bit number used to uniquely identify information in computer systems.
     * This is typically represented as a string in the format "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".
     */
    FieldDataType[FieldDataType["uuid"] = 26] = "uuid";
    /**
     * Represents a collection of key-value pairs where each key is a string and the value is a boolean.
     * For example, { "foo": true, "blah": false }
     */
    FieldDataType[FieldDataType["keyedBooleanCollection"] = 27] = "keyedBooleanCollection";
    /**
     * Represents a collection of key-value pairs where each key is a string and the value is an array of strings.
     * For example, { "foo": ["blah", "alpha"], "barg" : ["borg"] }
     */
    FieldDataType[FieldDataType["keyedStringArrayCollection"] = 28] = "keyedStringArrayCollection";
    /**
     * Represents an array of keyed string collections, where each element is a collection of key-value pairs.
     * For example, [ { "blah": "alpha", "blaz": "blay" }, {"barg": "borg"} ]
     */
    FieldDataType[FieldDataType["arrayOfKeyedStringCollection"] = 29] = "arrayOfKeyedStringCollection";
    /**
     * Represents a collection of key-value pairs where each key is a string and the value is by itself a keyed string collection of an array of strings.
     * For example, { "alpha":  { "foo": ["blah", "alpha"], "barg" : ["borg"] } }
     */
    FieldDataType[FieldDataType["keyedKeyedStringArrayCollection"] = 30] = "keyedKeyedStringArrayCollection";
    /**
     * Represents a collection of key-value pairs where each key is a string and the value is a number.
     * For example, { "foo": 17, "blah": 43 }
     */
    FieldDataType[FieldDataType["keyedNumberCollection"] = 31] = "keyedNumberCollection";
    /**
     * Represents an array of numbers.
     */
    FieldDataType[FieldDataType["numberArray"] = 32] = "numberArray";
    /**
     * Represents a checkbox list that is represented as an array of strings.
     */
    FieldDataType[FieldDataType["checkboxListAsStringArray"] = 33] = "checkboxListAsStringArray";
    /**
     * Represents a Molang expression in string form, which is a Minecraft-specific language used for data-driven content.
     */
    FieldDataType[FieldDataType["molang"] = 34] = "molang";
    /**
     * Represents an array of Molang expressions (an array of strings), which can be used to define multiple data-driven behaviors or properties in Minecraft.
     */
    FieldDataType[FieldDataType["molangArray"] = 35] = "molangArray";
    /**
     * Represents a point in 2D space, with x and y coordinates.
     * This is often used for 2D graphical representations or spatial calculations.
     */
    FieldDataType[FieldDataType["point2"] = 36] = "point2";
    /**
     * Represents a localizable string, which is a string that is a token that is a refence to a localized string in a resource file. Or it can be a string literal (unlocalized)
     */
    FieldDataType[FieldDataType["localizableString"] = 37] = "localizableString";
    /**
     * Represents a keyed collection of numbers, where each key is a string and the value is an array of numbers.
     * For example, { "foo": [255, 0.0, 2555], "barg" : [128, 0, 0] }
     */
    FieldDataType[FieldDataType["keyedNumberArrayCollection"] = 38] = "keyedNumberArrayCollection";
    /**
     * Represents a reference to a Minecraft event, which can be used to specify the identifier and context for an action that should fire.
     */
    FieldDataType[FieldDataType["minecraftEventReference"] = 39] = "minecraftEventReference";
    /**
     * Represents a location in 3D space, with x, y, and z coordinates but that is intended to be a location in a Minecraft world.
     */
    FieldDataType[FieldDataType["location"] = 40] = "location";
    /**
     * Represents a location in 3D space, with x, y, and z coordinates but that is intended to be a location offset adjustment in a Minecraft world.
     */
    FieldDataType[FieldDataType["locationOffset"] = 41] = "locationOffset";
    /**
     * Represents an array of Minecraft event triggers, which can be used to specify multiple identifiers and contexts for actions that should fire.
     */
    FieldDataType[FieldDataType["minecraftEventTriggerArray"] = 42] = "minecraftEventTriggerArray";
})(FieldDataType = exports.FieldDataType || (exports.FieldDataType = {}));
/**
 * Describes the way field values should be converted to a more human-readable format.
 */
var FieldValueHumanify;
(function (FieldValueHumanify) {
    FieldValueHumanify[FieldValueHumanify["none"] = 0] = "none";
    FieldValueHumanify[FieldValueHumanify["general"] = 1] = "general";
    FieldValueHumanify[FieldValueHumanify["minecraft"] = 2] = "minecraft";
})(FieldValueHumanify = exports.FieldValueHumanify || (exports.FieldValueHumanify = {}));

//# sourceMappingURL=../maps/dataform/IField.js.map
