import { z } from "zod";
export declare const DatabaseSchema: z.ZodEnum<{
    postgres: "postgres";
    mysql: "mysql";
    sqlite: "sqlite";
    none: "none";
    mongodb: "mongodb";
}>;
export type Database = z.infer<typeof DatabaseSchema>;
export declare const ORMSchema: z.ZodEnum<{
    none: "none";
    drizzle: "drizzle";
    prisma: "prisma";
    mongoose: "mongoose";
}>;
export type ORM = z.infer<typeof ORMSchema>;
export declare const BackendSchema: z.ZodEnum<{
    none: "none";
    hono: "hono";
    next: "next";
    express: "express";
    fastify: "fastify";
    elysia: "elysia";
    convex: "convex";
}>;
export type Backend = z.infer<typeof BackendSchema>;
export declare const RuntimeSchema: z.ZodEnum<{
    none: "none";
    bun: "bun";
    node: "node";
    workers: "workers";
}>;
export type Runtime = z.infer<typeof RuntimeSchema>;
export declare const FrontendSchema: z.ZodEnum<{
    none: "none";
    svelte: "svelte";
    nuxt: "nuxt";
    solid: "solid";
    next: "next";
    "react-router": "react-router";
    "tanstack-router": "tanstack-router";
    "tanstack-start": "tanstack-start";
    "native-nativewind": "native-nativewind";
    "native-unistyles": "native-unistyles";
}>;
export type Frontend = z.infer<typeof FrontendSchema>;
export declare const AddonsSchema: z.ZodEnum<{
    none: "none";
    tauri: "tauri";
    biome: "biome";
    starlight: "starlight";
    turborepo: "turborepo";
    pwa: "pwa";
    husky: "husky";
}>;
export type Addons = z.infer<typeof AddonsSchema>;
export declare const ExamplesSchema: z.ZodEnum<{
    none: "none";
    todo: "todo";
    ai: "ai";
}>;
export type Examples = z.infer<typeof ExamplesSchema>;
export declare const PackageManagerSchema: z.ZodEnum<{
    npm: "npm";
    pnpm: "pnpm";
    bun: "bun";
}>;
export type PackageManager = z.infer<typeof PackageManagerSchema>;
export declare const DatabaseSetupSchema: z.ZodEnum<{
    neon: "neon";
    none: "none";
    supabase: "supabase";
    turso: "turso";
    "prisma-postgres": "prisma-postgres";
    "mongodb-atlas": "mongodb-atlas";
}>;
export type DatabaseSetup = z.infer<typeof DatabaseSetupSchema>;
export declare const APISchema: z.ZodEnum<{
    none: "none";
    trpc: "trpc";
    orpc: "orpc";
}>;
export type API = z.infer<typeof APISchema>;
export declare const ProjectNameSchema: z.ZodString;
export type ProjectName = z.infer<typeof ProjectNameSchema>;
export interface CreateInput {
    projectName?: string;
    yes?: boolean;
    database?: Database;
    orm?: ORM;
    auth?: boolean;
    frontend?: Frontend[];
    addons?: Addons[];
    examples?: Examples[];
    git?: boolean;
    packageManager?: PackageManager;
    install?: boolean;
    dbSetup?: DatabaseSetup;
    backend?: Backend;
    runtime?: Runtime;
    api?: API;
}
export type CLIInput = CreateInput & {
    projectDirectory?: string;
};
export interface ProjectConfig {
    projectName: string;
    projectDir: string;
    relativePath: string;
    database: Database;
    orm: ORM;
    backend: Backend;
    runtime: Runtime;
    frontend: Frontend[];
    addons: Addons[];
    examples: Examples[];
    auth: boolean;
    git: boolean;
    packageManager: PackageManager;
    install: boolean;
    dbSetup: DatabaseSetup;
    api: API;
}
export type AvailablePackageManagers = "npm" | "pnpm" | "bun";
