import { z } from 'zod';

/**
 * Schema for validating the configuration of a template.
 * A template is a collection of plugins that can be installed in an application.
 */
declare const templateSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodString;
    plugins: z.ZodArray<z.ZodUnion<[z.ZodObject<z.objectUtil.extendShape<{
        name: z.ZodString;
        paths: z.ZodArray<z.ZodObject<{
            from: z.ZodEffects<z.ZodString, string, string>;
            to: z.ZodEffects<z.ZodString, string, string>;
        }, "strip", z.ZodTypeAny, {
            from: string;
            to: string;
        }, {
            from: string;
            to: string;
        }>, "many">;
    }, {
        store: z.ZodObject<{
            name: z.ZodString;
            version: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            name: string;
            version: string;
        }, {
            name: string;
            version: string;
        }>;
    }>, "strip", z.ZodTypeAny, {
        name: string;
        paths: {
            from: string;
            to: string;
        }[];
        store: {
            name: string;
            version: string;
        };
    }, {
        name: string;
        paths: {
            from: string;
            to: string;
        }[];
        store: {
            name: string;
            version: string;
        };
    }>, z.ZodString]>, "many">;
}, "strip", z.ZodTypeAny, {
    name: string;
    description: string;
    plugins: (string | {
        name: string;
        paths: {
            from: string;
            to: string;
        }[];
        store: {
            name: string;
            version: string;
        };
    })[];
}, {
    name: string;
    description: string;
    plugins: (string | {
        name: string;
        paths: {
            from: string;
            to: string;
        }[];
        store: {
            name: string;
            version: string;
        };
    })[];
}>;

export { templateSchema };
