import type { OperationRequestRunCallback } from '@rushstack/operation-graph';
import type { IPhase } from '../../api/CommandLineConfiguration';
import type { RushConfigurationProject } from '../../api/RushConfigurationProject';
import type { IOperationRunner, IOperationRunnerContext } from './IOperationRunner';
import { OperationStatus } from './OperationStatus';
export interface IIPCOperationRunnerOptions {
    phase: IPhase;
    project: RushConfigurationProject;
    name: string;
    commandToRun: string;
    commandForHash: string;
    persist: boolean;
    requestRun: OperationRequestRunCallback;
    ignoredParameterValues: ReadonlyArray<string>;
}
/**
 * Runner that hosts a long-lived process to which it communicates via IPC.
 */
export declare class IPCOperationRunner implements IOperationRunner {
    readonly name: string;
    readonly cacheable: boolean;
    readonly reportTiming: boolean;
    readonly silent: boolean;
    readonly warningsAreAllowed: boolean;
    private readonly _rushProject;
    private readonly _commandToRun;
    private readonly _commandForHash;
    private readonly _persist;
    private readonly _requestRun;
    private readonly _ignoredParameterValues;
    private _ipcProcess;
    private _processReadyPromise;
    constructor(options: IIPCOperationRunnerOptions);
    executeAsync(context: IOperationRunnerContext): Promise<OperationStatus>;
    getConfigHash(): string;
    shutdownAsync(): Promise<void>;
}
//# sourceMappingURL=IPCOperationRunner.d.ts.map