export type ORMChoice = 'prisma' | 'drizzle';
export type Platform = 'mobile' | 'web';
export interface ProjectConfig {
    projectName: string;
    packageManager: 'npm' | 'yarn' | 'bun';
    appScheme: string;
    platforms: Platform[];
    features: {
        onboarding: {
            enabled: boolean;
            pages: number;
            skipButton: boolean;
            showPaywall: boolean;
        };
        authentication: {
            enabled: boolean;
            providers: {
                emailPassword: boolean;
                google: boolean;
                apple: boolean;
                github: boolean;
            };
            emailVerification: boolean;
            passwordReset: boolean;
            twoFactor: boolean;
        };
        paywall: boolean;
        sessionManagement: boolean;
    };
    integrations: {
        revenueCat: {
            enabled: boolean;
            iosKey: string;
            androidKey: string;
        };
        adjust: {
            enabled: boolean;
            appToken: string;
            environment: 'sandbox' | 'production';
        };
        scate: {
            enabled: boolean;
            apiKey: string;
        };
        att: {
            enabled: boolean;
        };
    };
    backend: {
        database: 'postgresql';
        orm: ORMChoice;
        eventQueue: boolean;
        docker: boolean;
    };
    preset?: 'minimal' | 'full-featured' | 'analytics-focused' | 'custom';
    customized: boolean;
}
export interface PresetDefinition {
    name: string;
    description: string;
    icon: string;
    config: Omit<ProjectConfig, 'projectName' | 'packageManager' | 'appScheme'>;
}
/**
 * Derives a valid URL scheme from the project name
 * - Converts to lowercase
 * - Removes all non-alphanumeric characters
 * - Ensures it starts with a letter (required by iOS/Android)
 * - Falls back to "app" if result is empty
 */
export declare function deriveAppScheme(projectName: string): string;
export interface CLIOptions {
    template?: string;
    defaults?: boolean;
    verbose?: boolean;
}
//# sourceMappingURL=index.d.ts.map