import { z } from "zod";
import type { FrameworkConfig } from "./types/FrameworkConfig.ts";
import type { OnPageComplete } from "./types/util.ts";
export declare function setSettings(newSettings: Settings): void;
export declare function getSettings(): Settings;
export declare function setOnPageComplete(fn: OnPageComplete): void;
export declare function getOnPageComplete(): OnPageComplete;
declare const language: z.ZodEnum<["typescript", "go", "java", "python", "csharp", "terraform", "unity", "php", "swift", "ruby", "postman"]>;
export type CodeSampleLanguage = z.infer<typeof language>;
export declare const settingsSchema: z.ZodObject<{
    spec: z.ZodString;
    output: z.ZodObject<{
        pageOutDir: z.ZodString;
        embedOutDir: z.ZodOptional<z.ZodString>;
        framework: z.ZodUnion<[z.ZodEnum<["docusaurus", "nextra"]>, z.ZodObject<{
            rendererType: z.ZodString;
            componentPackageName: z.ZodString;
            buildPagePath: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>;
            buildEmbedPath: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
            buildPagePreamble: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>;
            postProcess: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
            formatHeadingId: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
            elementIdSeparator: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            rendererType: string;
            componentPackageName: string;
            buildPagePath: (...args: unknown[]) => unknown;
            buildPagePreamble: (...args: unknown[]) => unknown;
            buildEmbedPath?: ((...args: unknown[]) => unknown) | undefined;
            postProcess?: ((...args: unknown[]) => unknown) | undefined;
            formatHeadingId?: ((...args: unknown[]) => unknown) | undefined;
            elementIdSeparator?: string | undefined;
        }, {
            rendererType: string;
            componentPackageName: string;
            buildPagePath: (...args: unknown[]) => unknown;
            buildPagePreamble: (...args: unknown[]) => unknown;
            buildEmbedPath?: ((...args: unknown[]) => unknown) | undefined;
            postProcess?: ((...args: unknown[]) => unknown) | undefined;
            formatHeadingId?: ((...args: unknown[]) => unknown) | undefined;
            elementIdSeparator?: string | undefined;
        }>]>;
        aboutPage: z.ZodDefault<z.ZodBoolean>;
        singlePage: z.ZodDefault<z.ZodBoolean>;
    }, "strict", z.ZodTypeAny, {
        pageOutDir: string;
        framework: "docusaurus" | "nextra" | {
            rendererType: string;
            componentPackageName: string;
            buildPagePath: (...args: unknown[]) => unknown;
            buildPagePreamble: (...args: unknown[]) => unknown;
            buildEmbedPath?: ((...args: unknown[]) => unknown) | undefined;
            postProcess?: ((...args: unknown[]) => unknown) | undefined;
            formatHeadingId?: ((...args: unknown[]) => unknown) | undefined;
            elementIdSeparator?: string | undefined;
        };
        aboutPage: boolean;
        singlePage: boolean;
        embedOutDir?: string | undefined;
    }, {
        pageOutDir: string;
        framework: "docusaurus" | "nextra" | {
            rendererType: string;
            componentPackageName: string;
            buildPagePath: (...args: unknown[]) => unknown;
            buildPagePreamble: (...args: unknown[]) => unknown;
            buildEmbedPath?: ((...args: unknown[]) => unknown) | undefined;
            postProcess?: ((...args: unknown[]) => unknown) | undefined;
            formatHeadingId?: ((...args: unknown[]) => unknown) | undefined;
            elementIdSeparator?: string | undefined;
        };
        embedOutDir?: string | undefined;
        aboutPage?: boolean | undefined;
        singlePage?: boolean | undefined;
    }>;
    display: z.ZodDefault<z.ZodObject<{
        visibleResponses: z.ZodDefault<z.ZodEnum<["success", "explicit", "all"]>>;
        showDebugPlaceholders: z.ZodDefault<z.ZodBoolean>;
        expandTopLevelPropertiesOnPageLoad: z.ZodDefault<z.ZodBoolean>;
        maxNestingLevel: z.ZodOptional<z.ZodNumber>;
    }, "strict", z.ZodTypeAny, {
        visibleResponses: "success" | "explicit" | "all";
        showDebugPlaceholders: boolean;
        expandTopLevelPropertiesOnPageLoad: boolean;
        maxNestingLevel?: number | undefined;
    }, {
        visibleResponses?: "success" | "explicit" | "all" | undefined;
        showDebugPlaceholders?: boolean | undefined;
        expandTopLevelPropertiesOnPageLoad?: boolean | undefined;
        maxNestingLevel?: number | undefined;
    }>>;
    codeSamples: z.ZodOptional<z.ZodArray<z.ZodObject<{
        language: z.ZodEnum<["typescript", "go", "java", "python", "csharp", "terraform", "unity", "php", "swift", "ruby", "postman"]>;
        sdkClassName: z.ZodString;
        packageName: z.ZodString;
        enableTryItNow: z.ZodDefault<z.ZodBoolean>;
    }, "strict", z.ZodTypeAny, {
        language: "typescript" | "go" | "java" | "python" | "csharp" | "terraform" | "unity" | "php" | "swift" | "ruby" | "postman";
        sdkClassName: string;
        packageName: string;
        enableTryItNow: boolean;
    }, {
        language: "typescript" | "go" | "java" | "python" | "csharp" | "terraform" | "unity" | "php" | "swift" | "ruby" | "postman";
        sdkClassName: string;
        packageName: string;
        enableTryItNow?: boolean | undefined;
    }>, "many">>;
}, "strict", z.ZodTypeAny, {
    spec: string;
    output: {
        pageOutDir: string;
        framework: "docusaurus" | "nextra" | {
            rendererType: string;
            componentPackageName: string;
            buildPagePath: (...args: unknown[]) => unknown;
            buildPagePreamble: (...args: unknown[]) => unknown;
            buildEmbedPath?: ((...args: unknown[]) => unknown) | undefined;
            postProcess?: ((...args: unknown[]) => unknown) | undefined;
            formatHeadingId?: ((...args: unknown[]) => unknown) | undefined;
            elementIdSeparator?: string | undefined;
        };
        aboutPage: boolean;
        singlePage: boolean;
        embedOutDir?: string | undefined;
    };
    display: {
        visibleResponses: "success" | "explicit" | "all";
        showDebugPlaceholders: boolean;
        expandTopLevelPropertiesOnPageLoad: boolean;
        maxNestingLevel?: number | undefined;
    };
    codeSamples?: {
        language: "typescript" | "go" | "java" | "python" | "csharp" | "terraform" | "unity" | "php" | "swift" | "ruby" | "postman";
        sdkClassName: string;
        packageName: string;
        enableTryItNow: boolean;
    }[] | undefined;
}, {
    spec: string;
    output: {
        pageOutDir: string;
        framework: "docusaurus" | "nextra" | {
            rendererType: string;
            componentPackageName: string;
            buildPagePath: (...args: unknown[]) => unknown;
            buildPagePreamble: (...args: unknown[]) => unknown;
            buildEmbedPath?: ((...args: unknown[]) => unknown) | undefined;
            postProcess?: ((...args: unknown[]) => unknown) | undefined;
            formatHeadingId?: ((...args: unknown[]) => unknown) | undefined;
            elementIdSeparator?: string | undefined;
        };
        embedOutDir?: string | undefined;
        aboutPage?: boolean | undefined;
        singlePage?: boolean | undefined;
    };
    display?: {
        visibleResponses?: "success" | "explicit" | "all" | undefined;
        showDebugPlaceholders?: boolean | undefined;
        expandTopLevelPropertiesOnPageLoad?: boolean | undefined;
        maxNestingLevel?: number | undefined;
    } | undefined;
    codeSamples?: {
        language: "typescript" | "go" | "java" | "python" | "csharp" | "terraform" | "unity" | "php" | "swift" | "ruby" | "postman";
        sdkClassName: string;
        packageName: string;
        enableTryItNow?: boolean | undefined;
    }[] | undefined;
}>;
type ZodSettings = z.infer<typeof settingsSchema>;
export type Settings = Omit<ZodSettings, "output"> & {
    output: Omit<ZodSettings["output"], "framework"> & {
        framework: "docusaurus" | "nextra" | FrameworkConfig;
    };
};
export {};
//# sourceMappingURL=settings.d.ts.map