import { z } from "zod";
export declare const DatabaseSchema: z.ZodEnum<["none", "sqlite", "postgres", "mysql", "mongodb"]>;
export type Database = z.infer<typeof DatabaseSchema>;
export declare const ORMSchema: z.ZodEnum<["drizzle", "prisma", "mongoose", "none"]>;
export type ORM = z.infer<typeof ORMSchema>;
export declare const BackendSchema: z.ZodEnum<["hono", "express", "fastify", "next", "elysia", "convex", "none"]>;
export type Backend = z.infer<typeof BackendSchema>;
export declare const RuntimeSchema: z.ZodEnum<["bun", "node", "workers", "none"]>;
export type Runtime = z.infer<typeof RuntimeSchema>;
export declare const FrontendSchema: z.ZodEnum<["tanstack-router", "react-router", "tanstack-start", "next", "nuxt", "native-nativewind", "native-unistyles", "svelte", "solid", "none"]>;
export type Frontend = z.infer<typeof FrontendSchema>;
export declare const AddonsSchema: z.ZodEnum<["pwa", "tauri", "starlight", "biome", "husky", "turborepo", "none"]>;
export type Addons = z.infer<typeof AddonsSchema>;
export declare const ExamplesSchema: z.ZodEnum<["todo", "ai", "none"]>;
export type Examples = z.infer<typeof ExamplesSchema>;
export declare const PackageManagerSchema: z.ZodEnum<["npm", "pnpm", "bun"]>;
export type PackageManager = z.infer<typeof PackageManagerSchema>;
export declare const DatabaseSetupSchema: z.ZodEnum<["turso", "neon", "prisma-postgres", "mongodb-atlas", "supabase", "none"]>;
export type DatabaseSetup = z.infer<typeof DatabaseSetupSchema>;
export declare const APISchema: z.ZodEnum<["trpc", "orpc", "none"]>;
export type API = z.infer<typeof APISchema>;
export declare const ProjectNameSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>, string, string>;
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";
