import { Options, Context } from '../types/build.js';
import { LogFn } from '../types/config.js';
import '@deepkit/type';
import '@storm-software/build-tools/types';
import '@storm-software/config/types';
import '@stryke/env/get-env-paths';
import '@stryke/env/types';
import '@stryke/types/base';
import '@stryke/types/configuration';
import '@stryke/types/package-json';
import '@stryke/types/tsconfig';
import 'hookable';
import 'jiti';
import 'magic-string';
import 'typescript';
import 'unimport';
import '@storm-software/config-tools/types';

/**
 * Installs a package if it is not already installed.
 *
 * @param log - The logger function
 * @param context - The resolved options
 * @param packageName - The name of the package to install
 * @param dev - Whether to install the package as a dev dependency
 */
declare function installPackage<TOptions extends Options = Options>(log: LogFn, context: Context<TOptions>, packageName: string, dev?: boolean): Promise<void>;
/**
 * Installs a package if it is not already installed.
 *
 * @param log - The logger function
 * @param context - The resolved options
 * @param packages - The list of packages to install
 */
declare function installPackages<TOptions extends Options = Options>(log: LogFn, context: Context<TOptions>, packages: Array<{
    name: string;
    dev?: boolean;
}>): Promise<void[]>;

export { installPackage, installPackages };
