import z from 'zod';
import type { PackageManager } from './package-manager.js';
export type StatusStepType = 'file' | 'command' | 'info' | 'package-manager' | 'other';
export declare const AddOnSelectOptionSchema: z.ZodObject<{
    type: z.ZodLiteral<"select">;
    label: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    default: z.ZodString;
    options: z.ZodArray<z.ZodObject<{
        value: z.ZodString;
        label: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        value: string;
        label: string;
    }, {
        value: string;
        label: string;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    type: "select";
    options: {
        value: string;
        label: string;
    }[];
    label: string;
    default: string;
    description?: string | undefined;
}, {
    type: "select";
    options: {
        value: string;
        label: string;
    }[];
    label: string;
    default: string;
    description?: string | undefined;
}>;
export declare const AddOnOptionSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
    type: z.ZodLiteral<"select">;
    label: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    default: z.ZodString;
    options: z.ZodArray<z.ZodObject<{
        value: z.ZodString;
        label: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        value: string;
        label: string;
    }, {
        value: string;
        label: string;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    type: "select";
    options: {
        value: string;
        label: string;
    }[];
    label: string;
    default: string;
    description?: string | undefined;
}, {
    type: "select";
    options: {
        value: string;
        label: string;
    }[];
    label: string;
    default: string;
    description?: string | undefined;
}>]>;
export declare const AddOnOptionsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
    type: z.ZodLiteral<"select">;
    label: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    default: z.ZodString;
    options: z.ZodArray<z.ZodObject<{
        value: z.ZodString;
        label: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        value: string;
        label: string;
    }, {
        value: string;
        label: string;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    type: "select";
    options: {
        value: string;
        label: string;
    }[];
    label: string;
    default: string;
    description?: string | undefined;
}, {
    type: "select";
    options: {
        value: string;
        label: string;
    }[];
    label: string;
    default: string;
    description?: string | undefined;
}>]>>;
export declare const AddOnBaseSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    description: z.ZodString;
    author: z.ZodOptional<z.ZodString>;
    version: z.ZodOptional<z.ZodString>;
    link: z.ZodOptional<z.ZodString>;
    license: z.ZodOptional<z.ZodString>;
    warning: z.ZodOptional<z.ZodString>;
    tailwind: z.ZodOptional<z.ZodBoolean>;
    type: z.ZodEnum<["add-on", "example", "starter", "toolchain", "deployment"]>;
    category: z.ZodOptional<z.ZodEnum<["tanstack", "database", "orm", "auth", "deploy", "styling", "monitoring", "cms", "api", "analytics", "i18n", "tooling", "other"]>>;
    exclusive: z.ZodOptional<z.ZodArray<z.ZodEnum<["orm", "auth", "deploy", "database", "linter"]>, "many">>;
    color: z.ZodOptional<z.ZodString>;
    priority: z.ZodOptional<z.ZodNumber>;
    command: z.ZodOptional<z.ZodObject<{
        command: z.ZodString;
        args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        command: string;
        args?: string[] | undefined;
    }, {
        command: string;
        args?: string[] | undefined;
    }>>;
    routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
        url: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        path: z.ZodString;
        jsName: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }, {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }>, "many">>;
    packageAdditions: z.ZodOptional<z.ZodObject<{
        dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    }, {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    }>>;
    shadcnComponents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    smallLogo: z.ZodOptional<z.ZodString>;
    logo: z.ZodOptional<z.ZodString>;
    addOnSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    createSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    postInitSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"select">;
        label: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        default: z.ZodString;
        options: z.ZodArray<z.ZodObject<{
            value: z.ZodString;
            label: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            value: string;
            label: string;
        }, {
            value: string;
            label: string;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }>]>>>;
    envVars: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        required: z.ZodOptional<z.ZodBoolean>;
        default: z.ZodOptional<z.ZodString>;
        secret: z.ZodOptional<z.ZodBoolean>;
        file: z.ZodOptional<z.ZodEnum<[".env", ".env.local"]>>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }, {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }>, "many">>;
    default: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    type: "add-on" | "example" | "starter" | "toolchain" | "deployment";
    description: string;
    id: string;
    name: string;
    command?: {
        command: string;
        args?: string[] | undefined;
    } | undefined;
    options?: Record<string, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }> | undefined;
    default?: boolean | undefined;
    author?: string | undefined;
    version?: string | undefined;
    link?: string | undefined;
    license?: string | undefined;
    warning?: string | undefined;
    tailwind?: boolean | undefined;
    category?: "other" | "tanstack" | "database" | "orm" | "auth" | "deploy" | "styling" | "monitoring" | "cms" | "api" | "analytics" | "i18n" | "tooling" | undefined;
    exclusive?: ("database" | "orm" | "auth" | "deploy" | "linter")[] | undefined;
    color?: string | undefined;
    priority?: number | undefined;
    routes?: {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
    packageAdditions?: {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    } | undefined;
    shadcnComponents?: string[] | undefined;
    dependsOn?: string[] | undefined;
    smallLogo?: string | undefined;
    logo?: string | undefined;
    addOnSpecialSteps?: string[] | undefined;
    createSpecialSteps?: string[] | undefined;
    postInitSpecialSteps?: string[] | undefined;
    envVars?: {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }[] | undefined;
}, {
    type: "add-on" | "example" | "starter" | "toolchain" | "deployment";
    description: string;
    id: string;
    name: string;
    command?: {
        command: string;
        args?: string[] | undefined;
    } | undefined;
    options?: Record<string, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }> | undefined;
    default?: boolean | undefined;
    author?: string | undefined;
    version?: string | undefined;
    link?: string | undefined;
    license?: string | undefined;
    warning?: string | undefined;
    tailwind?: boolean | undefined;
    category?: "other" | "tanstack" | "database" | "orm" | "auth" | "deploy" | "styling" | "monitoring" | "cms" | "api" | "analytics" | "i18n" | "tooling" | undefined;
    exclusive?: ("database" | "orm" | "auth" | "deploy" | "linter")[] | undefined;
    color?: string | undefined;
    priority?: number | undefined;
    routes?: {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
    packageAdditions?: {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    } | undefined;
    shadcnComponents?: string[] | undefined;
    dependsOn?: string[] | undefined;
    smallLogo?: string | undefined;
    logo?: string | undefined;
    addOnSpecialSteps?: string[] | undefined;
    createSpecialSteps?: string[] | undefined;
    postInitSpecialSteps?: string[] | undefined;
    envVars?: {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }[] | undefined;
}>;
export declare const StarterSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    description: z.ZodString;
    author: z.ZodOptional<z.ZodString>;
    version: z.ZodOptional<z.ZodString>;
    link: z.ZodOptional<z.ZodString>;
    license: z.ZodOptional<z.ZodString>;
    warning: z.ZodOptional<z.ZodString>;
    tailwind: z.ZodOptional<z.ZodBoolean>;
    type: z.ZodEnum<["add-on", "example", "starter", "toolchain", "deployment"]>;
    category: z.ZodOptional<z.ZodEnum<["tanstack", "database", "orm", "auth", "deploy", "styling", "monitoring", "cms", "api", "analytics", "i18n", "tooling", "other"]>>;
    exclusive: z.ZodOptional<z.ZodArray<z.ZodEnum<["orm", "auth", "deploy", "database", "linter"]>, "many">>;
    color: z.ZodOptional<z.ZodString>;
    priority: z.ZodOptional<z.ZodNumber>;
    command: z.ZodOptional<z.ZodObject<{
        command: z.ZodString;
        args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        command: string;
        args?: string[] | undefined;
    }, {
        command: string;
        args?: string[] | undefined;
    }>>;
    routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
        url: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        path: z.ZodString;
        jsName: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }, {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }>, "many">>;
    packageAdditions: z.ZodOptional<z.ZodObject<{
        dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    }, {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    }>>;
    shadcnComponents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    smallLogo: z.ZodOptional<z.ZodString>;
    logo: z.ZodOptional<z.ZodString>;
    addOnSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    createSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    postInitSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"select">;
        label: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        default: z.ZodString;
        options: z.ZodArray<z.ZodObject<{
            value: z.ZodString;
            label: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            value: string;
            label: string;
        }, {
            value: string;
            label: string;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }>]>>>;
    envVars: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        required: z.ZodOptional<z.ZodBoolean>;
        default: z.ZodOptional<z.ZodString>;
        secret: z.ZodOptional<z.ZodBoolean>;
        file: z.ZodOptional<z.ZodEnum<[".env", ".env.local"]>>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }, {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }>, "many">>;
    default: z.ZodOptional<z.ZodBoolean>;
} & {
    framework: z.ZodString;
    mode: z.ZodString;
    typescript: z.ZodBoolean;
    banner: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    type: "add-on" | "example" | "starter" | "toolchain" | "deployment";
    description: string;
    id: string;
    name: string;
    framework: string;
    mode: string;
    typescript: boolean;
    command?: {
        command: string;
        args?: string[] | undefined;
    } | undefined;
    options?: Record<string, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }> | undefined;
    default?: boolean | undefined;
    author?: string | undefined;
    version?: string | undefined;
    link?: string | undefined;
    license?: string | undefined;
    warning?: string | undefined;
    tailwind?: boolean | undefined;
    category?: "other" | "tanstack" | "database" | "orm" | "auth" | "deploy" | "styling" | "monitoring" | "cms" | "api" | "analytics" | "i18n" | "tooling" | undefined;
    exclusive?: ("database" | "orm" | "auth" | "deploy" | "linter")[] | undefined;
    color?: string | undefined;
    priority?: number | undefined;
    routes?: {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
    packageAdditions?: {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    } | undefined;
    shadcnComponents?: string[] | undefined;
    dependsOn?: string[] | undefined;
    smallLogo?: string | undefined;
    logo?: string | undefined;
    addOnSpecialSteps?: string[] | undefined;
    createSpecialSteps?: string[] | undefined;
    postInitSpecialSteps?: string[] | undefined;
    envVars?: {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }[] | undefined;
    banner?: string | undefined;
}, {
    type: "add-on" | "example" | "starter" | "toolchain" | "deployment";
    description: string;
    id: string;
    name: string;
    framework: string;
    mode: string;
    typescript: boolean;
    command?: {
        command: string;
        args?: string[] | undefined;
    } | undefined;
    options?: Record<string, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }> | undefined;
    default?: boolean | undefined;
    author?: string | undefined;
    version?: string | undefined;
    link?: string | undefined;
    license?: string | undefined;
    warning?: string | undefined;
    tailwind?: boolean | undefined;
    category?: "other" | "tanstack" | "database" | "orm" | "auth" | "deploy" | "styling" | "monitoring" | "cms" | "api" | "analytics" | "i18n" | "tooling" | undefined;
    exclusive?: ("database" | "orm" | "auth" | "deploy" | "linter")[] | undefined;
    color?: string | undefined;
    priority?: number | undefined;
    routes?: {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
    packageAdditions?: {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    } | undefined;
    shadcnComponents?: string[] | undefined;
    dependsOn?: string[] | undefined;
    smallLogo?: string | undefined;
    logo?: string | undefined;
    addOnSpecialSteps?: string[] | undefined;
    createSpecialSteps?: string[] | undefined;
    postInitSpecialSteps?: string[] | undefined;
    envVars?: {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }[] | undefined;
    banner?: string | undefined;
}>;
export declare const StarterCompiledSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    description: z.ZodString;
    author: z.ZodOptional<z.ZodString>;
    version: z.ZodOptional<z.ZodString>;
    link: z.ZodOptional<z.ZodString>;
    license: z.ZodOptional<z.ZodString>;
    warning: z.ZodOptional<z.ZodString>;
    tailwind: z.ZodOptional<z.ZodBoolean>;
    type: z.ZodEnum<["add-on", "example", "starter", "toolchain", "deployment"]>;
    category: z.ZodOptional<z.ZodEnum<["tanstack", "database", "orm", "auth", "deploy", "styling", "monitoring", "cms", "api", "analytics", "i18n", "tooling", "other"]>>;
    exclusive: z.ZodOptional<z.ZodArray<z.ZodEnum<["orm", "auth", "deploy", "database", "linter"]>, "many">>;
    color: z.ZodOptional<z.ZodString>;
    priority: z.ZodOptional<z.ZodNumber>;
    command: z.ZodOptional<z.ZodObject<{
        command: z.ZodString;
        args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        command: string;
        args?: string[] | undefined;
    }, {
        command: string;
        args?: string[] | undefined;
    }>>;
    routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
        url: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        path: z.ZodString;
        jsName: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }, {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }>, "many">>;
    packageAdditions: z.ZodOptional<z.ZodObject<{
        dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    }, {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    }>>;
    shadcnComponents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    smallLogo: z.ZodOptional<z.ZodString>;
    logo: z.ZodOptional<z.ZodString>;
    addOnSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    createSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    postInitSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"select">;
        label: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        default: z.ZodString;
        options: z.ZodArray<z.ZodObject<{
            value: z.ZodString;
            label: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            value: string;
            label: string;
        }, {
            value: string;
            label: string;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }>]>>>;
    envVars: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        required: z.ZodOptional<z.ZodBoolean>;
        default: z.ZodOptional<z.ZodString>;
        secret: z.ZodOptional<z.ZodBoolean>;
        file: z.ZodOptional<z.ZodEnum<[".env", ".env.local"]>>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }, {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }>, "many">>;
    default: z.ZodOptional<z.ZodBoolean>;
} & {
    framework: z.ZodString;
    mode: z.ZodString;
    typescript: z.ZodBoolean;
    banner: z.ZodOptional<z.ZodString>;
} & {
    files: z.ZodRecord<z.ZodString, z.ZodString>;
    deletedFiles: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    type: "add-on" | "example" | "starter" | "toolchain" | "deployment";
    description: string;
    id: string;
    name: string;
    framework: string;
    mode: string;
    typescript: boolean;
    files: Record<string, string>;
    deletedFiles: string[];
    command?: {
        command: string;
        args?: string[] | undefined;
    } | undefined;
    options?: Record<string, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }> | undefined;
    default?: boolean | undefined;
    author?: string | undefined;
    version?: string | undefined;
    link?: string | undefined;
    license?: string | undefined;
    warning?: string | undefined;
    tailwind?: boolean | undefined;
    category?: "other" | "tanstack" | "database" | "orm" | "auth" | "deploy" | "styling" | "monitoring" | "cms" | "api" | "analytics" | "i18n" | "tooling" | undefined;
    exclusive?: ("database" | "orm" | "auth" | "deploy" | "linter")[] | undefined;
    color?: string | undefined;
    priority?: number | undefined;
    routes?: {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
    packageAdditions?: {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    } | undefined;
    shadcnComponents?: string[] | undefined;
    dependsOn?: string[] | undefined;
    smallLogo?: string | undefined;
    logo?: string | undefined;
    addOnSpecialSteps?: string[] | undefined;
    createSpecialSteps?: string[] | undefined;
    postInitSpecialSteps?: string[] | undefined;
    envVars?: {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }[] | undefined;
    banner?: string | undefined;
}, {
    type: "add-on" | "example" | "starter" | "toolchain" | "deployment";
    description: string;
    id: string;
    name: string;
    framework: string;
    mode: string;
    typescript: boolean;
    files: Record<string, string>;
    deletedFiles: string[];
    command?: {
        command: string;
        args?: string[] | undefined;
    } | undefined;
    options?: Record<string, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }> | undefined;
    default?: boolean | undefined;
    author?: string | undefined;
    version?: string | undefined;
    link?: string | undefined;
    license?: string | undefined;
    warning?: string | undefined;
    tailwind?: boolean | undefined;
    category?: "other" | "tanstack" | "database" | "orm" | "auth" | "deploy" | "styling" | "monitoring" | "cms" | "api" | "analytics" | "i18n" | "tooling" | undefined;
    exclusive?: ("database" | "orm" | "auth" | "deploy" | "linter")[] | undefined;
    color?: string | undefined;
    priority?: number | undefined;
    routes?: {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
    packageAdditions?: {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    } | undefined;
    shadcnComponents?: string[] | undefined;
    dependsOn?: string[] | undefined;
    smallLogo?: string | undefined;
    logo?: string | undefined;
    addOnSpecialSteps?: string[] | undefined;
    createSpecialSteps?: string[] | undefined;
    postInitSpecialSteps?: string[] | undefined;
    envVars?: {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }[] | undefined;
    banner?: string | undefined;
}>;
export declare const IntegrationSchema: z.ZodObject<{
    type: z.ZodOptional<z.ZodString>;
    path: z.ZodOptional<z.ZodString>;
    jsName: z.ZodOptional<z.ZodString>;
    import: z.ZodOptional<z.ZodString>;
    code: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    type?: string | undefined;
    code?: string | undefined;
    path?: string | undefined;
    jsName?: string | undefined;
    import?: string | undefined;
}, {
    type?: string | undefined;
    code?: string | undefined;
    path?: string | undefined;
    jsName?: string | undefined;
    import?: string | undefined;
}>;
export declare const AddOnInfoSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    description: z.ZodString;
    author: z.ZodOptional<z.ZodString>;
    version: z.ZodOptional<z.ZodString>;
    link: z.ZodOptional<z.ZodString>;
    license: z.ZodOptional<z.ZodString>;
    warning: z.ZodOptional<z.ZodString>;
    tailwind: z.ZodOptional<z.ZodBoolean>;
    type: z.ZodEnum<["add-on", "example", "starter", "toolchain", "deployment"]>;
    category: z.ZodOptional<z.ZodEnum<["tanstack", "database", "orm", "auth", "deploy", "styling", "monitoring", "cms", "api", "analytics", "i18n", "tooling", "other"]>>;
    exclusive: z.ZodOptional<z.ZodArray<z.ZodEnum<["orm", "auth", "deploy", "database", "linter"]>, "many">>;
    color: z.ZodOptional<z.ZodString>;
    priority: z.ZodOptional<z.ZodNumber>;
    command: z.ZodOptional<z.ZodObject<{
        command: z.ZodString;
        args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        command: string;
        args?: string[] | undefined;
    }, {
        command: string;
        args?: string[] | undefined;
    }>>;
    routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
        url: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        path: z.ZodString;
        jsName: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }, {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }>, "many">>;
    packageAdditions: z.ZodOptional<z.ZodObject<{
        dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    }, {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    }>>;
    shadcnComponents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    smallLogo: z.ZodOptional<z.ZodString>;
    logo: z.ZodOptional<z.ZodString>;
    addOnSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    createSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    postInitSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"select">;
        label: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        default: z.ZodString;
        options: z.ZodArray<z.ZodObject<{
            value: z.ZodString;
            label: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            value: string;
            label: string;
        }, {
            value: string;
            label: string;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }>]>>>;
    envVars: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        required: z.ZodOptional<z.ZodBoolean>;
        default: z.ZodOptional<z.ZodString>;
        secret: z.ZodOptional<z.ZodBoolean>;
        file: z.ZodOptional<z.ZodEnum<[".env", ".env.local"]>>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }, {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }>, "many">>;
    default: z.ZodOptional<z.ZodBoolean>;
} & {
    modes: z.ZodArray<z.ZodString, "many">;
    integrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodOptional<z.ZodString>;
        path: z.ZodOptional<z.ZodString>;
        jsName: z.ZodOptional<z.ZodString>;
        import: z.ZodOptional<z.ZodString>;
        code: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type?: string | undefined;
        code?: string | undefined;
        path?: string | undefined;
        jsName?: string | undefined;
        import?: string | undefined;
    }, {
        type?: string | undefined;
        code?: string | undefined;
        path?: string | undefined;
        jsName?: string | undefined;
        import?: string | undefined;
    }>, "many">>;
    phase: z.ZodEnum<["setup", "add-on"]>;
    readme: z.ZodOptional<z.ZodString>;
    readmeIsEjs: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    type: "add-on" | "example" | "starter" | "toolchain" | "deployment";
    description: string;
    id: string;
    name: string;
    modes: string[];
    phase: "add-on" | "setup";
    command?: {
        command: string;
        args?: string[] | undefined;
    } | undefined;
    options?: Record<string, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }> | undefined;
    default?: boolean | undefined;
    author?: string | undefined;
    version?: string | undefined;
    link?: string | undefined;
    license?: string | undefined;
    warning?: string | undefined;
    tailwind?: boolean | undefined;
    category?: "other" | "tanstack" | "database" | "orm" | "auth" | "deploy" | "styling" | "monitoring" | "cms" | "api" | "analytics" | "i18n" | "tooling" | undefined;
    exclusive?: ("database" | "orm" | "auth" | "deploy" | "linter")[] | undefined;
    color?: string | undefined;
    priority?: number | undefined;
    routes?: {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
    packageAdditions?: {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    } | undefined;
    shadcnComponents?: string[] | undefined;
    dependsOn?: string[] | undefined;
    smallLogo?: string | undefined;
    logo?: string | undefined;
    addOnSpecialSteps?: string[] | undefined;
    createSpecialSteps?: string[] | undefined;
    postInitSpecialSteps?: string[] | undefined;
    envVars?: {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }[] | undefined;
    integrations?: {
        type?: string | undefined;
        code?: string | undefined;
        path?: string | undefined;
        jsName?: string | undefined;
        import?: string | undefined;
    }[] | undefined;
    readme?: string | undefined;
    readmeIsEjs?: boolean | undefined;
}, {
    type: "add-on" | "example" | "starter" | "toolchain" | "deployment";
    description: string;
    id: string;
    name: string;
    modes: string[];
    phase: "add-on" | "setup";
    command?: {
        command: string;
        args?: string[] | undefined;
    } | undefined;
    options?: Record<string, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }> | undefined;
    default?: boolean | undefined;
    author?: string | undefined;
    version?: string | undefined;
    link?: string | undefined;
    license?: string | undefined;
    warning?: string | undefined;
    tailwind?: boolean | undefined;
    category?: "other" | "tanstack" | "database" | "orm" | "auth" | "deploy" | "styling" | "monitoring" | "cms" | "api" | "analytics" | "i18n" | "tooling" | undefined;
    exclusive?: ("database" | "orm" | "auth" | "deploy" | "linter")[] | undefined;
    color?: string | undefined;
    priority?: number | undefined;
    routes?: {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
    packageAdditions?: {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    } | undefined;
    shadcnComponents?: string[] | undefined;
    dependsOn?: string[] | undefined;
    smallLogo?: string | undefined;
    logo?: string | undefined;
    addOnSpecialSteps?: string[] | undefined;
    createSpecialSteps?: string[] | undefined;
    postInitSpecialSteps?: string[] | undefined;
    envVars?: {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }[] | undefined;
    integrations?: {
        type?: string | undefined;
        code?: string | undefined;
        path?: string | undefined;
        jsName?: string | undefined;
        import?: string | undefined;
    }[] | undefined;
    readme?: string | undefined;
    readmeIsEjs?: boolean | undefined;
}>;
export declare const AddOnCompiledSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    description: z.ZodString;
    author: z.ZodOptional<z.ZodString>;
    version: z.ZodOptional<z.ZodString>;
    link: z.ZodOptional<z.ZodString>;
    license: z.ZodOptional<z.ZodString>;
    warning: z.ZodOptional<z.ZodString>;
    tailwind: z.ZodOptional<z.ZodBoolean>;
    type: z.ZodEnum<["add-on", "example", "starter", "toolchain", "deployment"]>;
    category: z.ZodOptional<z.ZodEnum<["tanstack", "database", "orm", "auth", "deploy", "styling", "monitoring", "cms", "api", "analytics", "i18n", "tooling", "other"]>>;
    exclusive: z.ZodOptional<z.ZodArray<z.ZodEnum<["orm", "auth", "deploy", "database", "linter"]>, "many">>;
    color: z.ZodOptional<z.ZodString>;
    priority: z.ZodOptional<z.ZodNumber>;
    command: z.ZodOptional<z.ZodObject<{
        command: z.ZodString;
        args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        command: string;
        args?: string[] | undefined;
    }, {
        command: string;
        args?: string[] | undefined;
    }>>;
    routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
        url: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        path: z.ZodString;
        jsName: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }, {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }>, "many">>;
    packageAdditions: z.ZodOptional<z.ZodObject<{
        dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    }, {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    }>>;
    shadcnComponents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    smallLogo: z.ZodOptional<z.ZodString>;
    logo: z.ZodOptional<z.ZodString>;
    addOnSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    createSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    postInitSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"select">;
        label: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        default: z.ZodString;
        options: z.ZodArray<z.ZodObject<{
            value: z.ZodString;
            label: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            value: string;
            label: string;
        }, {
            value: string;
            label: string;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }>]>>>;
    envVars: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        required: z.ZodOptional<z.ZodBoolean>;
        default: z.ZodOptional<z.ZodString>;
        secret: z.ZodOptional<z.ZodBoolean>;
        file: z.ZodOptional<z.ZodEnum<[".env", ".env.local"]>>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }, {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }>, "many">>;
    default: z.ZodOptional<z.ZodBoolean>;
} & {
    modes: z.ZodArray<z.ZodString, "many">;
    integrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodOptional<z.ZodString>;
        path: z.ZodOptional<z.ZodString>;
        jsName: z.ZodOptional<z.ZodString>;
        import: z.ZodOptional<z.ZodString>;
        code: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type?: string | undefined;
        code?: string | undefined;
        path?: string | undefined;
        jsName?: string | undefined;
        import?: string | undefined;
    }, {
        type?: string | undefined;
        code?: string | undefined;
        path?: string | undefined;
        jsName?: string | undefined;
        import?: string | undefined;
    }>, "many">>;
    phase: z.ZodEnum<["setup", "add-on"]>;
    readme: z.ZodOptional<z.ZodString>;
    readmeIsEjs: z.ZodOptional<z.ZodBoolean>;
} & {
    files: z.ZodRecord<z.ZodString, z.ZodString>;
    deletedFiles: z.ZodArray<z.ZodString, "many">;
    packageTemplate: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    type: "add-on" | "example" | "starter" | "toolchain" | "deployment";
    description: string;
    id: string;
    name: string;
    files: Record<string, string>;
    deletedFiles: string[];
    modes: string[];
    phase: "add-on" | "setup";
    command?: {
        command: string;
        args?: string[] | undefined;
    } | undefined;
    options?: Record<string, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }> | undefined;
    default?: boolean | undefined;
    author?: string | undefined;
    version?: string | undefined;
    link?: string | undefined;
    license?: string | undefined;
    warning?: string | undefined;
    tailwind?: boolean | undefined;
    category?: "other" | "tanstack" | "database" | "orm" | "auth" | "deploy" | "styling" | "monitoring" | "cms" | "api" | "analytics" | "i18n" | "tooling" | undefined;
    exclusive?: ("database" | "orm" | "auth" | "deploy" | "linter")[] | undefined;
    color?: string | undefined;
    priority?: number | undefined;
    routes?: {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
    packageAdditions?: {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    } | undefined;
    shadcnComponents?: string[] | undefined;
    dependsOn?: string[] | undefined;
    smallLogo?: string | undefined;
    logo?: string | undefined;
    addOnSpecialSteps?: string[] | undefined;
    createSpecialSteps?: string[] | undefined;
    postInitSpecialSteps?: string[] | undefined;
    envVars?: {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }[] | undefined;
    integrations?: {
        type?: string | undefined;
        code?: string | undefined;
        path?: string | undefined;
        jsName?: string | undefined;
        import?: string | undefined;
    }[] | undefined;
    readme?: string | undefined;
    readmeIsEjs?: boolean | undefined;
    packageTemplate?: string | undefined;
}, {
    type: "add-on" | "example" | "starter" | "toolchain" | "deployment";
    description: string;
    id: string;
    name: string;
    files: Record<string, string>;
    deletedFiles: string[];
    modes: string[];
    phase: "add-on" | "setup";
    command?: {
        command: string;
        args?: string[] | undefined;
    } | undefined;
    options?: Record<string, {
        type: "select";
        options: {
            value: string;
            label: string;
        }[];
        label: string;
        default: string;
        description?: string | undefined;
    }> | undefined;
    default?: boolean | undefined;
    author?: string | undefined;
    version?: string | undefined;
    link?: string | undefined;
    license?: string | undefined;
    warning?: string | undefined;
    tailwind?: boolean | undefined;
    category?: "other" | "tanstack" | "database" | "orm" | "auth" | "deploy" | "styling" | "monitoring" | "cms" | "api" | "analytics" | "i18n" | "tooling" | undefined;
    exclusive?: ("database" | "orm" | "auth" | "deploy" | "linter")[] | undefined;
    color?: string | undefined;
    priority?: number | undefined;
    routes?: {
        path: string;
        jsName: string;
        name?: string | undefined;
        url?: string | undefined;
    }[] | undefined;
    packageAdditions?: {
        dependencies?: Record<string, string> | undefined;
        devDependencies?: Record<string, string> | undefined;
        scripts?: Record<string, string> | undefined;
    } | undefined;
    shadcnComponents?: string[] | undefined;
    dependsOn?: string[] | undefined;
    smallLogo?: string | undefined;
    logo?: string | undefined;
    addOnSpecialSteps?: string[] | undefined;
    createSpecialSteps?: string[] | undefined;
    postInitSpecialSteps?: string[] | undefined;
    envVars?: {
        name: string;
        file?: ".env" | ".env.local" | undefined;
        description?: string | undefined;
        default?: string | undefined;
        required?: boolean | undefined;
        secret?: boolean | undefined;
    }[] | undefined;
    integrations?: {
        type?: string | undefined;
        code?: string | undefined;
        path?: string | undefined;
        jsName?: string | undefined;
        import?: string | undefined;
    }[] | undefined;
    readme?: string | undefined;
    readmeIsEjs?: boolean | undefined;
    packageTemplate?: string | undefined;
}>;
export type AddOnSelectOption = z.infer<typeof AddOnSelectOptionSchema>;
export type AddOnOption = z.infer<typeof AddOnOptionSchema>;
export type AddOnOptions = z.infer<typeof AddOnOptionsSchema>;
export type Integration = z.infer<typeof IntegrationSchema>;
export type AddOnBase = z.infer<typeof AddOnBaseSchema>;
export type StarterInfo = z.infer<typeof StarterSchema>;
export type StarterCompiled = z.infer<typeof StarterCompiledSchema>;
export type AddOnInfo = z.infer<typeof AddOnInfoSchema>;
export type AddOnCompiled = z.infer<typeof AddOnCompiledSchema>;
export interface AddOnSelection {
    id: string;
    enabled: boolean;
    options: Record<string, any>;
}
export type FileBundleHandler = {
    getFiles: () => Promise<Array<string>>;
    getFileContents: (path: string) => Promise<string>;
    getDeletedFiles: () => Promise<Array<string>>;
};
export type AddOn = AddOnCompiled & FileBundleHandler;
export type Starter = StarterCompiled & FileBundleHandler;
export type FrameworkDefinition = {
    id: string;
    name: string;
    description: string;
    version: string;
    base: Record<string, string>;
    addOns: Array<AddOn>;
    basePackageJSON: Record<string, any>;
    optionalPackages: Record<string, any>;
    supportedModes: Record<string, {
        displayName: string;
        description: string;
        forceTypescript: boolean;
    }>;
};
export type Framework = Omit<FrameworkDefinition, 'base' | 'addOns'> & FileBundleHandler & {
    getAddOns: () => Array<AddOn>;
};
export interface Options {
    projectName: string;
    targetDir: string;
    framework: Framework;
    mode: string;
    typescript: boolean;
    tailwind: boolean;
    packageManager: PackageManager;
    git: boolean;
    install?: boolean;
    intent: boolean;
    chosenAddOns: Array<AddOn>;
    addOnOptions: Record<string, Record<string, any>>;
    starter?: Starter | undefined;
    routerOnly?: boolean;
    includeExamples?: boolean;
    envVarValues?: Record<string, string>;
}
export type SerializedOptions = Omit<Options, 'chosenAddOns' | 'starter' | 'framework'> & {
    chosenAddOns: Array<string>;
    starter?: string | undefined;
    framework: string;
};
type ProjectEnvironment = {
    startRun: () => void;
    finishRun: () => void;
    getErrors: () => Array<string>;
};
type FileEnvironment = {
    appendFile: (path: string, contents: string) => Promise<void>;
    copyFile: (from: string, to: string) => Promise<void>;
    writeFile: (path: string, contents: string) => Promise<void>;
    writeFileBase64: (path: string, base64Contents: string) => Promise<void>;
    execute: (command: string, args: Array<string>, cwd: string, options?: {
        inherit?: boolean;
    }) => Promise<{
        stdout: string;
    }>;
    deleteFile: (path: string) => Promise<void>;
    exists: (path: string) => boolean;
    isDirectory: (path: string) => boolean;
    readFile: (path: string) => Promise<string>;
    readdir: (path: string) => Promise<Array<string>>;
    rimraf: (path: string) => Promise<void>;
};
export type StatusEvent = {
    id: string;
    type: StatusStepType;
    message: string;
};
export type StopEvent = {
    id: string;
};
type UIEnvironment = {
    appName: string;
    startStep: (info: {
        id: string;
        type: StatusStepType;
        message: string;
    }) => void;
    finishStep: (id: string, finalMessage: string) => void;
    intro: (message: string) => void;
    outro: (message: string) => void;
    info: (title?: string, message?: string) => void;
    error: (title?: string, message?: string) => void;
    warn: (title?: string, message?: string) => void;
    spinner: () => {
        start: (message: string) => void;
        stop: (message: string) => void;
    };
    confirm: (message: string) => Promise<boolean>;
};
export type Environment = ProjectEnvironment & FileEnvironment & UIEnvironment;
export interface LineAttribution {
    line: number;
    sourceId: string;
    sourceName: string;
    type: 'original' | 'injected';
}
export interface FileProvenance {
    source: 'framework' | 'add-on' | 'starter';
    sourceId: string;
    sourceName: string;
}
export interface AttributedFile {
    content: string;
    provenance: FileProvenance;
    lineAttributions: Array<LineAttribution>;
}
export interface DependencyAttribution {
    name: string;
    version: string;
    type: 'dependency' | 'devDependency';
    sourceId: string;
    sourceName: string;
}
export type IntegrationWithSource = Integration & {
    _sourceId: string;
    _sourceName: string;
};
export {};
