/**
 * New Command - Project scaffolding CLI command
 * Handles creation of new ZinTrust projects
 */
import type { CommandOptions, IBaseCommand } from '../BaseCommand';
type TemplateType = 'basic' | 'api' | 'microservice' | 'fullstack';
type DatabaseType = 'sqlite' | 'mysql' | 'postgresql' | 'mongodb' | 'd1' | 'd1-remote';
interface NewProjectConfigResult {
    template: TemplateType;
    database: DatabaseType;
    port: number;
    author: string;
    description: string;
}
type InquirerQuestion = Record<string, unknown>;
interface INewCommand extends IBaseCommand {
    promptForConfig(name: string, options: CommandOptions): Promise<NewProjectConfigResult>;
    getProjectConfig(name: string, options: CommandOptions): Promise<NewProjectConfigResult>;
    getQuestions(name: string, defaults: NewProjectConfigResult): InquirerQuestion[];
    getSafeEnv(): NodeJS.ProcessEnv;
    getGitBinary(): string;
    runScaffolding(basePath: string, name: string, config: NewProjectConfigResult, overwrite?: boolean): Promise<unknown>;
    initializeGit(projectPath: string): void;
    promptForPackageManager(defaultPm: string): Promise<string | null>;
}
/**
 * New Command Factory
 * Sealed namespace for immutability
 */
export declare const NewCommand: Readonly<{
    /**
     * Create a new project command instance
     */
    create(): INewCommand;
}>;
export {};
//# sourceMappingURL=NewCommand.d.ts.map