import type { RenderContext } from "../../Renderer.js";
import { BooleanOption, EnumOption, StringOption } from "../../RendererOptions/index.js";
import { TargetLanguage } from "../../TargetLanguage.js";
import type { LanguageName, RendererOptions } from "../../types.js";
import { ElmRenderer } from "./ElmRenderer.js";
export declare const elmOptions: {
    justTypes: BooleanOption<"just-types">;
    useList: EnumOption<"array-type", {
        readonly array: false;
        readonly list: true;
    }, "array" | "list">;
    moduleName: StringOption<"module">;
};
export declare const elmLanguageConfig: {
    readonly displayName: "Elm";
    readonly names: readonly ["elm"];
    readonly extension: "elm";
};
export declare class ElmTargetLanguage extends TargetLanguage<typeof elmLanguageConfig> {
    constructor();
    getOptions(): typeof elmOptions;
    get supportsOptionalClassProperties(): boolean;
    get supportsUnionsWithBothNumberTypes(): boolean;
    protected makeRenderer<Lang extends LanguageName = "elm">(renderContext: RenderContext, untypedOptionValues: RendererOptions<Lang>): ElmRenderer;
}
