import '../../../globals.js';
/**
 * Contains all the data/methods needed by a kernel to run in parallel. Passed to the kernel execution function, so that
 * it can make equivalent calls similar to the WGPU calls.
 *
 * See ParallelExecutor for more high-level documentation.
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import Vector3 from '../../../dot/js/Vector3.js';
import { ParallelExecutor, ParallelKernel, ParallelWorkgroup, ParallelWorkgroupArray } from '../imports.js';
export type BaseWorkgroupValues = Record<string, ParallelWorkgroupArray<unknown> | number>;
export default class ParallelContext<WorkgroupValues extends BaseWorkgroupValues> {
    readonly kernel: ParallelKernel<WorkgroupValues>;
    readonly localId: Vector3;
    readonly workgroup: ParallelWorkgroup<WorkgroupValues>;
    readonly executor: ParallelExecutor<WorkgroupValues>;
    readonly globalId: Vector3;
    readonly localIndex: number;
    readonly workgroupId: Vector3;
    readonly workgroupValues: WorkgroupValues;
    constructor(kernel: ParallelKernel<WorkgroupValues>, localId: Vector3, workgroup: ParallelWorkgroup<WorkgroupValues>, executor: ParallelExecutor<WorkgroupValues>);
    start(): Promise<void>;
    workgroupBarrier(): Promise<void>;
    storageBarrier(): Promise<void>;
    afterSet(): Promise<void>;
    afterGet(): Promise<void>;
}
//# sourceMappingURL=ParallelContext.d.ts.map