import type { RenderContext } from "../../Renderer.js";
import { BooleanOption } 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 { PhpRenderer } from "./PhpRenderer.js";
export declare const phpOptions: {
    withGet: BooleanOption<"with-get">;
    fastGet: BooleanOption<"fast-get">;
    withSet: BooleanOption<"with-set">;
    withClosing: BooleanOption<"with-closing">;
    acronymStyle: import("../../RendererOptions/index.js").EnumOption<"acronym-style", {
        readonly original: AcronymStyleOptions.Original;
        readonly pascal: AcronymStyleOptions.Pascal;
        readonly camel: AcronymStyleOptions.Camel;
        readonly lowerCase: AcronymStyleOptions.Lower;
    }, AcronymStyleOptions>;
};
export declare const phpLanguageConfig: {
    readonly displayName: "PHP";
    readonly names: readonly ["php"];
    readonly extension: "php";
};
export declare class PhpTargetLanguage extends TargetLanguage<typeof phpLanguageConfig> {
    constructor();
    getOptions(): typeof phpOptions;
    get supportsUnionsWithBothNumberTypes(): boolean;
    protected makeRenderer<Lang extends LanguageName = "php">(renderContext: RenderContext, untypedOptionValues: RendererOptions<Lang>): PhpRenderer;
    get stringTypeMapping(): StringTypeMapping;
}
