import { TargetLanguage } from "../../TargetLanguage.js";
import { getNoStringTypeMapping, } from "../../Type/TypeBuilderUtils.js";
import { JSONSchemaRenderer } from "./JSONSchemaRenderer.js";
export const JSONSchemaLanguageConfig = {
    displayName: "JSON Schema",
    names: ["schema", "json-schema"],
    extension: "schema",
};
export class JSONSchemaTargetLanguage extends TargetLanguage {
    constructor() {
        super(JSONSchemaLanguageConfig);
    }
    getOptions() {
        return {};
    }
    get stringTypeMapping() {
        return getNoStringTypeMapping();
    }
    get supportsOptionalClassProperties() {
        return true;
    }
    get supportsFullObjectType() {
        return true;
    }
    makeRenderer(renderContext, _untypedOptionValues) {
        return new JSONSchemaRenderer(this, renderContext);
    }
}
