import type { Command } from 'commander';
import type { UpdateNotifierOptions } from './update-notifier.js';
export interface RerunCommandDisplay {
    shell: 'POSIX shell' | 'PowerShell';
    command: string;
}
export interface ToolBundleUpdateGuardOptions extends UpdateNotifierOptions {
    commandPath: string;
    dryRun: boolean;
    rerunCommand: RerunCommandDisplay;
}
interface InstallerOptions {
    shell: false;
    stdio: 'inherit';
}
export interface ToolBundleUpdateGuardDependencies {
    resolveUpdateAvailability: (options: UpdateNotifierOptions) => Promise<string | null>;
    confirmAction: (message: string, context: {
        interactive: boolean;
    }) => Promise<boolean>;
    installCli: (file: string, args: string[], options: InstallerOptions) => Promise<void>;
    platform: NodeJS.Platform;
    nodeExecutable: string;
    fileExists: (path: string) => boolean;
}
export declare function formatCommandPath(command: Command): string;
export declare function formatRerunCommand(argv: string[], platform?: NodeJS.Platform): RerunCommandDisplay;
export declare function isBundledToolMutationCommand(command: Command): boolean;
export declare function guardBundledToolMutation(options: ToolBundleUpdateGuardOptions, overrides?: Partial<ToolBundleUpdateGuardDependencies>): Promise<boolean>;
export {};
//# sourceMappingURL=tool-bundle-update-guard.d.ts.map