/**
 * Copyright (c) 2020-present, Goldman Sachs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { guaranteeNonNullable } from '@finos/legend-shared';
export var GenerationMode;
(function (GenerationMode) {
    GenerationMode["CODE_GENERATION"] = "codeGeneration";
    GenerationMode["SCHEMA_GENERATION"] = "schemaGeneration";
})(GenerationMode || (GenerationMode = {}));
export var GenerationPropertyItemType;
(function (GenerationPropertyItemType) {
    GenerationPropertyItemType["ARRAY"] = "ARRAY";
    GenerationPropertyItemType["BOOLEAN"] = "BOOLEAN";
    GenerationPropertyItemType["ENUM"] = "ENUM";
    GenerationPropertyItemType["INTEGER"] = "INTEGER";
    GenerationPropertyItemType["MAP"] = "MAP";
    GenerationPropertyItemType["STRING"] = "STRING";
    GenerationPropertyItemType["ENUMERATION"] = "ENUMERATION";
})(GenerationPropertyItemType || (GenerationPropertyItemType = {}));
export const getGenerationPropertyItemType = (value) => guaranteeNonNullable(Object.values(GenerationPropertyItemType).find((mode) => mode === value), `Encountered unsupported generation property item type '${value}'`);
export class GenerationPropertyItem {
    types = [];
    enums = [];
}
export class GenerationProperty {
    name;
    description;
    type;
    items;
    defaultValue; // we always give string so based on the type of the property, we have to parse this to the appropriate format
    required;
}
export class GenerationConfigurationDescription {
    key;
    label;
    properties = [];
    generationMode;
}
//# sourceMappingURL=GenerationConfigurationDescription.js.map