import { Loop } from "../../Joinpoints.js";
import MpiAccessPattern from "./MpiAccessPattern.js";
/**
 * Applies an MPI scatter-gather strategy to loops.
 */
export default class MpiScatterGatherLoop {
    private $loop;
    private inputJps;
    private inputAccesses;
    private outputJps;
    private outputAccesses;
    constructor($loop: Loop);
    addInput(varName: string, accessPattern: MpiAccessPattern): void;
    addOutput(varName: string, accessPattern: MpiAccessPattern): void;
    /**
     * Adapts code to use the MPI strategy.
     */
    execute(): void;
    /** PRIVATE SECTION **/
    private static FUNCTION_MPI_WORKER;
    private static VAR_WORKER_NUM_ELEMS;
    private static VAR_MASTER_TOTAL_ITER;
    private replaceLoop;
    private buildMpiWorker;
    private getWorkerLoopCode;
    private addMpiInit;
    private addVariable;
    /** CODEDEFS **/
    private static MpiInit;
    private static MpiWorker;
    private static MpiMaster;
}
//# sourceMappingURL=MpiScatterGatherLoop.d.ts.map