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 { HaskellRenderer } from "./HaskellRenderer.js";
export declare const haskellOptions: {
    justTypes: BooleanOption<"just-types">;
    useList: EnumOption<"array-type", {
        readonly array: false;
        readonly list: true;
    }, "array" | "list">;
    moduleName: StringOption<"module">;
};
export declare const haskellLanguageConfig: {
    readonly displayName: "Haskell";
    readonly names: readonly ["haskell"];
    readonly extension: "haskell";
};
export declare class HaskellTargetLanguage extends TargetLanguage<typeof haskellLanguageConfig> {
    constructor();
    getOptions(): typeof haskellOptions;
    get supportsOptionalClassProperties(): boolean;
    get supportsUnionsWithBothNumberTypes(): boolean;
    protected makeRenderer<Lang extends LanguageName = "haskell">(renderContext: RenderContext, untypedOptionValues: RendererOptions<Lang>): HaskellRenderer;
}
