import * as prompts from '@voidzero-dev/vite-plus-prompts';
import { PackageManager } from '../types/index.js';
export interface CommandRunSummary {
    durationMs: number;
    exitCode?: number;
    status: 'installed' | 'formatted' | 'failed' | 'skipped';
}
export declare function cancelAndExit(message?: string, exitCode?: number): never;
export declare function selectPackageManager(interactive?: boolean, silent?: boolean): Promise<"pnpm" | "npm" | "yarn">;
export declare function downloadPackageManager(packageManager: PackageManager, version: string, interactive?: boolean, silent?: boolean): Promise<import("../../binding/index.cjs").DownloadPackageManagerResult>;
export declare function runViteInstall(cwd: string, interactive?: boolean, extraArgs?: string[], options?: {
    silent?: boolean;
}): Promise<{
    durationMs: number;
    status: "skipped";
    exitCode?: undefined;
} | {
    durationMs: number;
    exitCode: number;
    status: "installed";
} | {
    durationMs: number;
    exitCode: number;
    status: "failed";
}>;
export declare function runViteFmt(cwd: string, interactive?: boolean, paths?: string[], options?: {
    silent?: boolean;
}): Promise<{
    durationMs: number;
    exitCode: number;
    status: "formatted";
} | {
    durationMs: number;
    exitCode: number;
    status: "failed";
}>;
export declare function upgradeYarn(cwd: string, interactive?: boolean, silent?: boolean): Promise<void>;
export declare function promptGitHooks(options: {
    hooks?: boolean;
    interactive: boolean;
}): Promise<boolean>;
export declare function defaultInteractive(): boolean;
export declare function getSpinner(interactive?: boolean): prompts.SpinnerResult | {
    start: (msg?: string) => void;
    stop: (msg?: string) => void;
    message: (msg?: string) => void;
};
