import { CliLogLevel, DbType } from './types';
/**
 * If project only contains files generated by GH, it’s safe.
 * Also, if project contains remnant error logs from a previous
 * installation, lets remove them now.
 * We also special case IJ-based products .idea because it integrates with CRA:
 * https://github.com/facebook/create-react-app/pull/368#issuecomment-243446094
 */
export declare function isSafeToCreateProjectIn(root: string, name: string): boolean;
export declare function scaffoldAlreadyExists(root: string, name: string): boolean;
export declare function checkNodeVersion(requiredVersion: string): void;
export declare function bunIsAvailable(): boolean;
export declare function checkThatNpmCanReadCwd(): boolean;
/**
 * Install packages via npm.
 * Based on the install function from https://github.com/facebook/create-react-app
 */
export declare function installPackages(options: {
    dependencies: string[];
    isDevDependencies?: boolean;
    logLevel: CliLogLevel;
    cwd?: string;
}): Promise<void>;
export declare function getDependencies(dbType: DbType, vendurePkgVersion?: string): {
    dependencies: string[];
    devDependencies: string[];
};
/**
 * Checks that the specified DB connection options are working (i.e. a connection can be
 * established) and that the named database exists.
 */
export declare function checkDbConnection(options: any, root: string): Promise<true>;
/**
 * Check to see if Docker is installed and running.
 * If not, attempt to start it.
 * If that is not possible, return false.
 *
 * Refs:
 * - https://stackoverflow.com/a/48843074/772859
 */
export declare function isDockerAvailable(): Promise<{
    result: 'not-found' | 'not-running' | 'running';
}>;
export declare function startPostgresDatabase(root: string): Promise<boolean>;
export declare function isServerPortInUse(port: number): Promise<boolean>;
/**
 * Checks if the response from a Clack prompt was a cancellation symbol, and if so,
 * ends the interactive process.
 */
export declare function checkCancel<T>(value: T | symbol): value is T;
export declare function cleanUpDockerResources(name: string): void;
export declare function resolvePackageRootDir(packageName: string, rootDir: string): string;
/**
 * Downloads the Next.js storefront starter from GitHub and extracts it to the target directory.
 * Uses the GitHub API tarball endpoint to avoid requiring git.
 */
export declare function downloadAndExtractStorefront(targetDir: string): Promise<void>;
/**
 * Finds an available port starting from the given port.
 * Returns the first available port within the specified range.
 */
export declare function findAvailablePort(startPort: number, range?: number): Promise<number>;
