import type { CommandLineParameter } from '@rushstack/ts-command-line';
import { BaseScriptAction, type IBaseScriptActionOptions } from './BaseScriptAction';
import type { IGlobalCommandConfig } from '../../api/CommandLineConfiguration';
/**
 * Constructor parameters for GlobalScriptAction.
 */
export interface IGlobalScriptActionOptions extends IBaseScriptActionOptions<IGlobalCommandConfig> {
    shellCommand: string;
    autoinstallerName: string | undefined;
    providedByPlugin: boolean;
}
/**
 * This class implements custom commands that are run once globally for the entire repo
 * (versus bulk commands, which run separately for each project).  The action executes
 * a user-defined script file.
 *
 * @remarks
 * Bulk commands can be defined via common/config/command-line.json.  Rush's predefined "build"
 * and "rebuild" commands are also modeled as bulk commands, because they essentially just
 * invoke scripts from package.json in the same way as a custom command.
 */
export declare class GlobalScriptAction extends BaseScriptAction<IGlobalCommandConfig> {
    private readonly _shellCommand;
    private readonly _autoinstallerName;
    private readonly _autoinstallerFullPath;
    private readonly _providedByPlugin;
    private _customParametersByLongName;
    private _isHandled;
    constructor(options: IGlobalScriptActionOptions);
    /**
     * {@inheritDoc IGlobalCommand.setHandled}
     */
    setHandled(): void;
    /**
     * {@inheritDoc IGlobalCommand.getCustomParametersByLongName}
     */
    getCustomParametersByLongName<TParameter extends CommandLineParameter>(longName: string): TParameter;
    private _prepareAutoinstallerNameAsync;
    runAsync(): Promise<void>;
    private _expandShellCommandWithTokens;
    private _rejectAnyTokensInShellCommand;
}
//# sourceMappingURL=GlobalScriptAction.d.ts.map