import Generator from 'yeoman-generator';
import type { LogLevel, IVSCodeExtLogger } from '@vscode-logging/logger';
import type { IPrompt as YeomanUiStep, Prompts as YeomanUiSteps } from '@sap-devx/yeoman-ui-types';
import type { YeomanUiStepConfig, FioriGeneratorOptions, FioriGeneratorSettings, FioriGeneratorExtensionAPI, ReadonlyState, FioriGeneratorPromptExtension, ConditionalStep } from '@sap/ux-generator-common';
import { PROJECT_TYPE, Template, FloorplanFE, GeneratorName } from '@sap/ux-generator-common';
import { OdataVersion } from '@sap-ux/odata-service-inquirer';
import { type ILogWrapper } from '@sap-ux/fiori-generator-shared';
export default class Fiori extends Generator {
    logger: ILogWrapper;
    options: FioriGeneratorOptions;
    prompts: YeomanUiSteps;
    yeomanUiStepConfig: YeomanUiStepConfig;
    private fioriSteps;
    setPromptsCallback: (fn: object) => void;
    private state;
    private floorplans;
    private fioriGenExtPath;
    private promptSettings;
    constructor(args: string | string[], opts: FioriGeneratorOptions);
    /**
     * Configures the vscode logger and yeoman logger to share single wrapper.
     * Set as an option to be passed to sub-gens.
     */
    _configureLogging(logLevel: LogLevel, vscLogger: IVSCodeExtLogger, vscode?: object): ILogWrapper;
    _setPrompts(steps: YeomanUiStep[]): void;
    prompting(): Promise<void>;
    /**
     * By deferring the composeWith of generator extensions to the `default` phase we ensure their writing phases occurs after FE/FF/FLP/Deploy generators writing phases.
     * This allows extensions to access and modify generated files if needed. Since the prompting phase has completed (for Fiori) before the `default` phase we can be sure that the state is complete.
     *
     */
    default(): void;
    /**
     * Find installed Fiori generator extension sub-generators.
     * Currently only 1 supported.
     *
     * @returns path of the first found Fiori generator extension subgen
     *
     */
    _findGeneratorExtensions(): Promise<string>;
    initializing(): Promise<void>;
    install(): void;
}
export { PROJECT_TYPE, Template, OdataVersion, FloorplanFE, GeneratorName, FioriGeneratorSettings, FioriGeneratorExtensionAPI, FioriGeneratorPromptExtension, ReadonlyState, ConditionalStep };
//# sourceMappingURL=index.d.ts.map