import { BooleanOption, getOptionValues } from "../../RendererOptions/index.js";
import { TargetLanguage } from "../../TargetLanguage.js";
import { TypeScriptZodRenderer } from "./TypeScriptZodRenderer.js";
export const typeScriptZodOptions = {
    justSchema: new BooleanOption("just-schema", "Schema only", false),
};
export const typeScriptZodLanguageConfig = {
    displayName: "TypeScript Zod",
    names: ["typescript-zod"],
    extension: "ts",
};
export class TypeScriptZodTargetLanguage extends TargetLanguage {
    constructor() {
        super(typeScriptZodLanguageConfig);
    }
    getOptions() {
        return {};
    }
    get stringTypeMapping() {
        const mapping = new Map();
        const dateTimeType = "date-time";
        mapping.set("date-time", dateTimeType);
        return mapping;
    }
    get supportsOptionalClassProperties() {
        return true;
    }
    makeRenderer(renderContext, untypedOptionValues) {
        return new TypeScriptZodRenderer(this, renderContext, getOptionValues(typeScriptZodOptions, untypedOptionValues));
    }
}
