import { type IOperationRunner, type IOperationRunnerContext, OperationStatus } from '@rushstack/operation-graph';
import type { HeftTask } from '../../pluginFramework/HeftTask';
import type { InternalHeftSession } from '../../pluginFramework/InternalHeftSession';
export interface ITaskOperationRunnerOptions {
    internalHeftSession: InternalHeftSession;
    task: HeftTask;
}
/**
 * Log out a start message, run a provided function, and log out an end message
 */
export declare function runAndMeasureAsync<T = void>(fn: () => Promise<T>, startMessageFn: () => string, endMessageFn: () => string, logFn: (message: string) => void): Promise<T>;
export declare class TaskOperationRunner implements IOperationRunner {
    private readonly _options;
    private _fileOperations;
    private _copyConfigHash;
    private _watchFileSystemAdapter;
    readonly silent: boolean;
    get name(): string;
    constructor(options: ITaskOperationRunnerOptions);
    executeAsync(context: IOperationRunnerContext): Promise<OperationStatus>;
    private _executeTaskAsync;
}
//# sourceMappingURL=TaskOperationRunner.d.ts.map