/**
 * Copyright 2013-2026 the original author or authors from the JHipster project.
 *
 * This file is part of the JHipster project, see https://www.jhipster.tech/
 * for more information.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import type { BaseEnvironmentOptions, LookupOptions } from '@yeoman/types';
import type Environment from 'yeoman-environment';
import EnvironmentBuilder from './environment-builder.ts';
import JHipsterCommand from './jhipster-command.ts';
import type { CliCommand } from './types.ts';
import { done } from './utils.ts';
type BuildCommands = {
    program: JHipsterCommand;
    commands?: Record<string, CliCommand>;
    envBuilder?: EnvironmentBuilder;
    env: Environment;
    loadCommand?: (key: string) => Promise<(...args: any[]) => Promise<any>>;
    defaultCommand?: string;
    entrypointGenerator?: string;
    silent?: boolean;
    printLogo?: () => void | Promise<void>;
    printBlueprintLogo?: () => void | Promise<void>;
    createEnvBuilder: (options?: BaseEnvironmentOptions) => Promise<EnvironmentBuilder>;
};
type BuildJHipsterOptions = Partial<BuildCommands> & {
    executableName?: string;
    executableVersion?: string;
    blueprints?: Record<string, string>;
    lookups?: LookupOptions[];
    devBlueprintPath?: string;
};
export declare const printJHipsterLogo: () => void;
export declare const createProgram: ({ executableName, executableVersion, }?: {
    executableName?: string;
    executableVersion?: string;
}) => JHipsterCommand;
export declare const buildCommands: ({ program, commands, envBuilder, env, loadCommand, defaultCommand, entrypointGenerator, printLogo, printBlueprintLogo, createEnvBuilder, silent, }: BuildCommands) => void;
export declare const buildJHipster: ({ executableName, executableVersion, program, blueprints, lookups, createEnvBuilder, envBuilder, commands, devBlueprintPath, env, ...buildOptions }?: BuildJHipsterOptions) => Promise<JHipsterCommand>;
export declare const runJHipster: (args?: {
    argv?: string[];
} & BuildJHipsterOptions) => Promise<JHipsterCommand>;
export { done };
