import type { Workspace } from '@teambit/workspace'; import type { EnvsMain } from '@teambit/envs'; import type { Logger } from '@teambit/logger'; import type { TrackerMain } from '@teambit/tracker'; import type { NewComponentHelperMain } from '@teambit/new-component-helper'; import { ComponentID } from '@teambit/component-id'; import type { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files'; import type { ComponentTemplate, PromptResults } from './component-template'; import type { CreateOptions } from './create.cmd'; import type { OnComponentCreateSlot } from './generator.main.runtime'; export type GenerateResult = { id: ComponentID; dir: string; files: string[]; envId: string; envSetBy: string; packageName: string; isApp?: boolean; isEnv?: boolean; dependencies?: string[]; installMissingDependencies?: boolean; }; export type InstallOptions = { optimizeReportForNonTerminal?: boolean; }; export type OnComponentCreateFn = (generateResults: GenerateResult[], installOptions?: InstallOptions) => Promise; export type OnWorkspaceCreateFn = (generateResults: GenerateResult[], installOptions?: InstallOptions) => Promise; export declare class ComponentGenerator { private workspace; private componentIds; private options; private template; private envs; private newComponentHelper; private tracker; private wsConfigFiles; private logger; private onComponentCreateSlot; private aspectId; private envId?; private installOptions; private promptResults?; constructor(workspace: Workspace, componentIds: ComponentID[], options: Partial, template: ComponentTemplate, envs: EnvsMain, newComponentHelper: NewComponentHelperMain, tracker: TrackerMain, wsConfigFiles: WorkspaceConfigFilesMain, logger: Logger, onComponentCreateSlot: OnComponentCreateSlot, aspectId: string, envId?: ComponentID | undefined, installOptions?: InstallOptions, promptResults?: PromptResults | undefined); generate(force?: boolean): Promise; private tryLinkToNodeModules; private runOnComponentCreateHook; /** * The function `tryWriteConfigFiles` attempts to write workspace config files, and if it fails, it logs an error * message. * @returns If the condition `!shouldWrite` is true, then nothing is being returned. Otherwise, if the `writeConfigFiles` * function is successfully executed, nothing is being returned. If an error occurs during the execution of * `writeConfigFiles`, an error message is being returned. */ private tryWriteConfigFiles; private deleteGeneratedComponents; private getOptionResultFromArgs; private getPromptOptionResult; private getPromptResults; private generateOneComponent; private addEnvIfProvidedByFlag; }