import { GeneratorContext, ProjectOptions } from '../utils/types';
import { BaseGenerator } from './baseGenerator';
export default class ProjectGenerator extends BaseGenerator<ProjectOptions> {
    constructor(options: ProjectOptions, context?: GeneratorContext, cwd?: string);
    private extendJSON;
    /**
     * Returns template path for primary; if it doesn't exist, returns fallback path.
     * Used so reactinternalapp/reactexternalapp can omit shared files and fall back to standard.
     */
    private templatePathWithFallback;
    /**
     * Returns the appropriate template path based on whether TypeScript is enabled.
     * TypeScript-specific templates are organized in a typescript/ subdirectory.
     * Only files that have TypeScript-specific variants are looked up there.
     */
    private getTemplatePath;
    /**
     * Generates TypeScript configuration file if TypeScript is enabled.
     */
    private generateTypeScriptConfig;
    /**
     * Generates ESLint configuration file with appropriate template for JS or TS.
     */
    private generateEslintConfig;
    /**
     * Generates VSCode settings with TypeScript-specific configuration if needed.
     */
    private generateVSCodeSettings;
    /**
     * Copies project root level files with TypeScript-specific variants when applicable.
     */
    private copyProjectFiles;
    validateOptions(): void;
    generate(): Promise<void>;
    private registerChange;
    private _createHuskyConfig;
    private makeEmptyFolders;
}
