import type { RenderContext } from "../../Renderer.js";
import { BooleanOption, EnumOption } from "../../RendererOptions/index.js";
import { AcronymStyleOptions } from "../../support/Acronyms.js";
import { TargetLanguage } from "../../TargetLanguage.js";
import type { StringTypeMapping } from "../../Type/TypeBuilderUtils.js";
import type { LanguageName, RendererOptions } from "../../types.js";
import { JavaScriptRenderer } from "./JavaScriptRenderer.js";
export declare const javaScriptOptions: {
    acronymStyle: EnumOption<"acronym-style", {
        readonly original: AcronymStyleOptions.Original;
        readonly pascal: AcronymStyleOptions.Pascal;
        readonly camel: AcronymStyleOptions.Camel;
        readonly lowerCase: AcronymStyleOptions.Lower;
    }, AcronymStyleOptions>;
    runtimeTypecheck: BooleanOption<"runtime-typecheck">;
    runtimeTypecheckIgnoreUnknownProperties: BooleanOption<"runtime-typecheck-ignore-unknown-properties">;
    converters: EnumOption<"converters", {
        readonly "top-level": import("../../support/Converters.js").ConvertersOptions.TopLevel;
        readonly "all-objects": import("../../support/Converters.js").ConvertersOptions.AllObjects;
    }, import("../../support/Converters.js").ConvertersOptions>;
    rawType: EnumOption<"raw-type", {
        readonly json: "json";
        readonly any: "any";
    }, "any" | "json">;
};
export declare const javaScriptLanguageConfig: {
    readonly displayName: "JavaScript";
    readonly names: readonly ["javascript", "js", "jsx"];
    readonly extension: "js";
};
export declare class JavaScriptTargetLanguage extends TargetLanguage<typeof javaScriptLanguageConfig> {
    constructor();
    getOptions(): typeof javaScriptOptions;
    get stringTypeMapping(): StringTypeMapping;
    get supportsOptionalClassProperties(): boolean;
    get supportsFullObjectType(): boolean;
    protected makeRenderer<Lang extends LanguageName = "javascript">(renderContext: RenderContext, untypedOptionValues: RendererOptions<Lang>): JavaScriptRenderer;
}
