import type { HeftConfiguration } from '../configuration/HeftConfiguration';
import type { IHeftTaskPlugin } from '../pluginFramework/IHeftPlugin';
import type { IHeftTaskSession, IHeftTaskRunHookOptions } from '../pluginFramework/HeftTaskSession';
interface IRunScriptPluginOptions {
    scriptPath: string;
    scriptOptions: Record<string, unknown>;
}
/**
 * Options provided to scripts that are run using the RunScriptPlugin.
 *
 * @beta
 */
export interface IRunScriptOptions {
    heftTaskSession: IHeftTaskSession;
    heftConfiguration: HeftConfiguration;
    runOptions: IHeftTaskRunHookOptions;
    scriptOptions: Record<string, unknown>;
}
/**
 * Interface used by scripts that are run by the RunScriptPlugin.
 *
 * @beta
 */
export interface IRunScript {
    /**
     * The method that is called by the RunScriptPlugin to run the script.
     */
    runAsync: (options: IRunScriptOptions) => Promise<void>;
}
export default class RunScriptPlugin implements IHeftTaskPlugin<IRunScriptPluginOptions> {
    apply(heftTaskSession: IHeftTaskSession, heftConfiguration: HeftConfiguration, pluginOptions: IRunScriptPluginOptions): void;
    private _runScriptAsync;
}
export {};
//# sourceMappingURL=RunScriptPlugin.d.ts.map