import { EnumOption, getOptionValues } from "../../RendererOptions/index.js";
import { AcronymStyleOptions, acronymOption } from "../../support/Acronyms.js";
import { convertersOption } from "../../support/Converters.js";
import { TargetLanguage } from "../../TargetLanguage.js";
import { JavaScriptPropTypesRenderer } from "./JavaScriptPropTypesRenderer.js";
export const javaScriptPropTypesOptions = {
    acronymStyle: acronymOption(AcronymStyleOptions.Pascal),
    converters: convertersOption(),
    moduleSystem: new EnumOption("module-system", "Which module system to use", {
        "common-js": false,
        es6: true,
    }, "es6"),
};
export const javaScriptPropTypesLanguageConfig = {
    displayName: "JavaScript PropTypes",
    names: ["javascript-prop-types"],
    extension: "js",
};
export class JavaScriptPropTypesTargetLanguage extends TargetLanguage {
    constructor() {
        super(javaScriptPropTypesLanguageConfig);
    }
    getOptions() {
        return javaScriptPropTypesOptions;
    }
    makeRenderer(renderContext, untypedOptionValues) {
        return new JavaScriptPropTypesRenderer(this, renderContext, getOptionValues(javaScriptPropTypesOptions, untypedOptionValues));
    }
}
