export interface NextJSProjectOptions {
    projectName: string;
    projectPath: string;
    withShadcn: boolean;
    withTailwind: boolean;
    withTypeScript: boolean;
    withESLint: boolean;
    withAppRouter: boolean;
    withLayouts: boolean;
    withComponents: boolean;
}
export interface GeneratedFile {
    path: string;
    content: string;
    type: "file" | "directory";
}
export declare class NextJSProjectGenerator {
    private projectRoot;
    private options;
    constructor(options: NextJSProjectOptions);
    /**
     * Generate complete Next.js project structure
     */
    generateProject(): Promise<GeneratedFile[]>;
    /**
     * Create basic project structure
     */
    private createBasicStructure;
    /**
     * Generate package.json
     */
    private generatePackageJson;
    /**
     * Generate Next.js configuration
     */
    private generateNextJSConfig;
    /**
     * Generate TypeScript configuration
     */
    private generateTypeScriptConfig;
    /**
     * Generate Tailwind CSS configuration
     */
    private generateTailwindConfig;
    /**
     * Generate App Router structure
     */
    private generateAppRouterStructure;
    /**
     * Generate shadcn/ui configuration
     */
    private generateShadcnConfig;
    /**
     * Generate component structure
     */
    private generateComponentStructure;
    /**
     * Generate layout structure
     */
    private generateLayoutStructure;
    /**
     * Generate utility files
     */
    private generateUtilityFiles;
    /**
     * Generate .gitignore content
     */
    private generateGitignoreContent;
}
//# sourceMappingURL=NextJSProjectGenerator.d.ts.map