import * as Base from "yeoman-generator"; import { CommonGenerationOptions, OptionsConfig } from "./cli-options"; import { StudioTemplateProperty } from "./studio/studio-model"; import { ProjectModel } from "./model/cuba-model"; /** * @alpha */ export declare abstract class BaseGenerator extends Base { options: O; answers?: A; model?: M; conflicter: { force: boolean; }; protected cubaProjectModel?: ProjectModel; protected modelFilePath?: string; protected constructor(args: string | string[], options: CommonGenerationOptions); protected _composeModelFilePath(options: O, executionDir: string): string | undefined; protected _obtainCubaProjectModel(): Promise; protected _readProjectModel(): ProjectModel; protected _obtainAnswers(): Promise; protected _promptOrParse(): Promise; protected _populateOptions(availableOption: OptionsConfig): void; protected _getDestRoot(): string; _getAvailableOptions(): OptionsConfig; _getParams(): StudioTemplateProperty[]; /** * Additional dynamic prompts where questions depend on answers to initial prompt * * @param answers * @private */ protected _additionalPrompts(answers: A): Promise; abstract writing(): void; } export interface GeneratorExports { generator: typeof BaseGenerator; options?: OptionsConfig; params?: StudioTemplateProperty[]; description?: string; } export declare function readProjectModel(modelFilePath?: string): ProjectModel; export declare function refineAnswers(projectModel: ProjectModel, generatorParams: StudioTemplateProperty[], answers: any): T;