import { RollupOptions } from "rollup";
import { z } from "zod";
import { ComponentLibraryConfig } from "@embeddable.com/sdk-utils";
export type Region = "EU" | "US" | "legacy-US";
export type EmbeddableConfig = {
    plugins: (() => {
        pluginName: string;
        build: (config: ResolvedEmbeddableConfig) => Promise<unknown>;
        cleanup: (config: ResolvedEmbeddableConfig) => Promise<unknown>;
        validate: (config: ResolvedEmbeddableConfig) => Promise<unknown>;
        buildPackage: (config: ResolvedEmbeddableConfig) => Promise<unknown>;
    })[];
    pushModels?: boolean;
    pushComponents?: boolean;
    pushBaseUrl?: string;
    audienceUrl?: string;
    authDomain?: string;
    authClientId?: string;
    errorFallbackComponent?: string;
    applicationEnvironment?: string;
    rollbarAccessToken?: string;
    previewBaseUrl?: string;
    componentsSrc?: string;
    modelsSrc?: string;
    presetsSrc?: string;
    globalCss?: string;
    viteConfig?: {
        resolve?: {
            alias?: Record<string, string>;
        };
    };
    rollupOptions?: RollupOptions;
    region?: Region;
    componentLibraries?: string[] | ComponentLibraryConfig[];
    customizationFile?: string;
    lifecycleHooksFile?: string;
};
declare const PLUGIN_NAME: "sdk-react";
export type PluginName = typeof PLUGIN_NAME;
export type ResolvedEmbeddableConfig = {
    core: {
        rootDir: string;
        templatesDir: string;
        configsDir: string;
    };
    client: {
        rootDir: string;
        srcDir: string;
        modelsSrc: string;
        presetsSrc: string;
        buildDir: string;
        tmpDir: string;
        globalCss: string;
        componentDir: string;
        stencilBuild: string;
        archiveFile: string;
        errorFallbackComponent?: string;
        bundleHash?: string;
        customizationFile: string;
        lifecycleHooksFile: string;
        componentLibraries: string[] | ComponentLibraryConfig[];
        viteConfig: {
            resolve?: {
                alias?: Record<string, string>;
            };
        };
        rollupOptions: RollupOptions;
    };
    outputOptions: {
        typesEntryPointFilename: string;
    };
    pushModels: boolean;
    pushComponents: boolean;
    pushBaseUrl: string;
    audienceUrl: string;
    previewBaseUrl: string;
    authDomain: string;
    authClientId: string;
    applicationEnvironment: string;
    rollbarAccessToken: string;
    plugins: EmbeddableConfig["plugins"];
    buildTime: [number, number];
    dev?: {
        watch: boolean;
        logger: any;
        sys: any;
    };
    [PLUGIN_NAME]: {
        rootDir: string;
        templatesDir: string;
        outputOptions: {
            fileName: string;
            buildName: string;
            componentsEntryPointFilename: string;
        };
    };
};
export declare const embeddableConfigSchema: z.ZodObject<{
    plugins: z.ZodArray<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>, "many">;
    region: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"EU">, z.ZodLiteral<"US">, z.ZodLiteral<"legacy-US">]>>;
    pushModels: z.ZodOptional<z.ZodBoolean>;
    pushComponents: z.ZodOptional<z.ZodBoolean>;
    pushBaseUrl: z.ZodOptional<z.ZodString>;
    audienceUrl: z.ZodOptional<z.ZodString>;
    authDomain: z.ZodOptional<z.ZodString>;
    authClientId: z.ZodOptional<z.ZodString>;
    errorFallbackComponent: z.ZodOptional<z.ZodString>;
    applicationEnvironment: z.ZodOptional<z.ZodString>;
    rollbarAccessToken: z.ZodOptional<z.ZodString>;
    previewBaseUrl: z.ZodOptional<z.ZodString>;
    modelsSrc: z.ZodOptional<z.ZodString>;
    presetsSrc: z.ZodOptional<z.ZodString>;
    componentsSrc: z.ZodOptional<z.ZodString>;
    globalCss: z.ZodOptional<z.ZodString>;
    customizationFile: z.ZodOptional<z.ZodString>;
    lifecycleHooksFile: z.ZodOptional<z.ZodString>;
    componentLibraries: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        include: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        include?: string[] | undefined;
        exclude?: string[] | undefined;
    }, {
        name: string;
        include?: string[] | undefined;
        exclude?: string[] | undefined;
    }>, "many">]>>;
    viteConfig: z.ZodOptional<z.ZodObject<{
        resolve: z.ZodOptional<z.ZodObject<{
            alias: z.ZodRecord<z.ZodString, z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            alias: Record<string, string>;
        }, {
            alias: Record<string, string>;
        }>>;
    }, "strip", z.ZodTypeAny, {
        resolve?: {
            alias: Record<string, string>;
        } | undefined;
    }, {
        resolve?: {
            alias: Record<string, string>;
        } | undefined;
    }>>;
    rollupOptions: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
}, "strict", z.ZodTypeAny, {
    plugins: ((...args: unknown[]) => unknown)[];
    region?: "EU" | "US" | "legacy-US" | undefined;
    pushModels?: boolean | undefined;
    pushComponents?: boolean | undefined;
    pushBaseUrl?: string | undefined;
    audienceUrl?: string | undefined;
    authDomain?: string | undefined;
    authClientId?: string | undefined;
    errorFallbackComponent?: string | undefined;
    applicationEnvironment?: string | undefined;
    rollbarAccessToken?: string | undefined;
    previewBaseUrl?: string | undefined;
    modelsSrc?: string | undefined;
    presetsSrc?: string | undefined;
    componentsSrc?: string | undefined;
    globalCss?: string | undefined;
    customizationFile?: string | undefined;
    lifecycleHooksFile?: string | undefined;
    componentLibraries?: string[] | {
        name: string;
        include?: string[] | undefined;
        exclude?: string[] | undefined;
    }[] | undefined;
    viteConfig?: {
        resolve?: {
            alias: Record<string, string>;
        } | undefined;
    } | undefined;
    rollupOptions?: {} | undefined;
}, {
    plugins: ((...args: unknown[]) => unknown)[];
    region?: "EU" | "US" | "legacy-US" | undefined;
    pushModels?: boolean | undefined;
    pushComponents?: boolean | undefined;
    pushBaseUrl?: string | undefined;
    audienceUrl?: string | undefined;
    authDomain?: string | undefined;
    authClientId?: string | undefined;
    errorFallbackComponent?: string | undefined;
    applicationEnvironment?: string | undefined;
    rollbarAccessToken?: string | undefined;
    previewBaseUrl?: string | undefined;
    modelsSrc?: string | undefined;
    presetsSrc?: string | undefined;
    componentsSrc?: string | undefined;
    globalCss?: string | undefined;
    customizationFile?: string | undefined;
    lifecycleHooksFile?: string | undefined;
    componentLibraries?: string[] | {
        name: string;
        include?: string[] | undefined;
        exclude?: string[] | undefined;
    }[] | undefined;
    viteConfig?: {
        resolve?: {
            alias: Record<string, string>;
        } | undefined;
    } | undefined;
    rollupOptions?: {} | undefined;
}>;
declare const _default: (config: EmbeddableConfig) => {
    core: {
        rootDir: string;
        templatesDir: string;
        configsDir: string;
    };
    client: {
        rootDir: string;
        srcDir: string;
        modelsSrc: string | undefined;
        presetsSrc: string | undefined;
        buildDir: string;
        tmpDir: string;
        globalCss: string;
        componentDir: string;
        stencilBuild: string;
        archiveFile: string;
        errorFallbackComponent: string | undefined;
        bundleHash: undefined;
        viteConfig: {
            resolve?: {
                alias?: Record<string, string>;
            };
        };
        rollupOptions: RollupOptions;
        componentLibraries: string[] | ComponentLibraryConfig[];
        customizationFile: string;
        lifecycleHooksFile: string;
    };
    outputOptions: {
        typesEntryPointFilename: string;
    };
    buildTime: undefined;
    dev: {
        watch: boolean;
        logger: undefined;
        sys: undefined;
    };
    pushModels: boolean;
    pushComponents: boolean;
    pushBaseUrl: string;
    audienceUrl: string;
    previewBaseUrl: string;
    authDomain: string;
    authClientId: string;
    applicationEnvironment: string;
    rollbarAccessToken: string;
    plugins: (() => {
        pluginName: string;
        build: (config: ResolvedEmbeddableConfig) => Promise<unknown>;
        cleanup: (config: ResolvedEmbeddableConfig) => Promise<unknown>;
        validate: (config: ResolvedEmbeddableConfig) => Promise<unknown>;
        buildPackage: (config: ResolvedEmbeddableConfig) => Promise<unknown>;
    })[];
};
export default _default;
