"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.REPEAT = "repeat";
exports.PARSE_ERROR = "parseError";
exports.TOP_LEVEL_EXTRA = "topLevel";
exports.DEFINED_IN_TYPES_EXTRA = "definedInTypes";
exports.USER_DEFINED_EXTRA = "USER_DEFINED";
exports.SOURCE_EXTRA = "SOURCE";
exports.SCHEMA_AND_TYPE_EXTRA = "SCHEMA";
exports.GLOBAL_EXTRA = "GLOBAL";
exports.HAS_FACETS = "HAS_FACETS";
exports.HAS_ITEMS = "HAS_ITEMS";
var MetaInformationKind;
(function (MetaInformationKind) {
    MetaInformationKind[MetaInformationKind["Description"] = 0] = "Description";
    MetaInformationKind[MetaInformationKind["NotScalar"] = 1] = "NotScalar";
    MetaInformationKind[MetaInformationKind["DisplayName"] = 2] = "DisplayName";
    MetaInformationKind[MetaInformationKind["Usage"] = 3] = "Usage";
    MetaInformationKind[MetaInformationKind["Annotation"] = 4] = "Annotation";
    MetaInformationKind[MetaInformationKind["FacetDeclaration"] = 5] = "FacetDeclaration";
    MetaInformationKind[MetaInformationKind["CustomFacet"] = 6] = "CustomFacet";
    MetaInformationKind[MetaInformationKind["Example"] = 7] = "Example";
    MetaInformationKind[MetaInformationKind["Required"] = 8] = "Required";
    MetaInformationKind[MetaInformationKind["HasPropertiesFacet"] = 9] = "HasPropertiesFacet";
    MetaInformationKind[MetaInformationKind["AllowedTargets"] = 10] = "AllowedTargets";
    MetaInformationKind[MetaInformationKind["Examples"] = 11] = "Examples";
    MetaInformationKind[MetaInformationKind["XMLInfo"] = 12] = "XMLInfo";
    MetaInformationKind[MetaInformationKind["Default"] = 13] = "Default";
    MetaInformationKind[MetaInformationKind["Constraint"] = 14] = "Constraint";
    MetaInformationKind[MetaInformationKind["Modifier"] = 15] = "Modifier";
    MetaInformationKind[MetaInformationKind["Discriminator"] = 16] = "Discriminator";
    MetaInformationKind[MetaInformationKind["DiscriminatorValue"] = 17] = "DiscriminatorValue";
    MetaInformationKind[MetaInformationKind["SchemaPath"] = 18] = "SchemaPath";
    MetaInformationKind[MetaInformationKind["SourceMap"] = 19] = "SourceMap";
    MetaInformationKind[MetaInformationKind["ParserMetadata"] = 20] = "ParserMetadata";
    MetaInformationKind[MetaInformationKind["ImportedByChain"] = 21] = "ImportedByChain";
    MetaInformationKind[MetaInformationKind["AcceptAllScalarsAsStrings"] = 22] = "AcceptAllScalarsAsStrings";
    MetaInformationKind[MetaInformationKind["SkipValidation"] = 23] = "SkipValidation";
    MetaInformationKind[MetaInformationKind["TypeAttributeValue"] = 24] = "TypeAttributeValue";
})(MetaInformationKind = exports.MetaInformationKind || (exports.MetaInformationKind = {}));
/**
 * Retrieve a list of registered type validation plugins
 */
function getTypeValidationPlugins() {
    var rv = global.ramlValidation;
    if (rv) {
        var typeValidators = rv.typeValidators;
        if (Array.isArray(typeValidators)) {
            return typeValidators;
        }
    }
    return [];
}
exports.getTypeValidationPlugins = getTypeValidationPlugins;
/**
 * Retrieve a list of registered type validation plugins
 */
function getAnnotationValidationPlugins() {
    var rv = global.ramlValidation;
    if (rv) {
        var typesystemAnnotationValidators = rv.typesystemAnnotationValidators;
        if (Array.isArray(typesystemAnnotationValidators)) {
            return typesystemAnnotationValidators;
        }
    }
    return [];
}
exports.getAnnotationValidationPlugins = getAnnotationValidationPlugins;
//# sourceMappingURL=typesystem-interfaces.js.map