/**
 * Shifts `buffer` contents in place by `(shift_x, shift_y, shift_z)` grid cells.
 *
 * Direction convention: the cell at position `(i, j, k)` after the shift contains the
 * value previously at `(i + shift_x, j + shift_y, k + shift_z)`. Equivalent semantics:
 * the grid moved by `(shift_x, shift_y, shift_z)` cells in world space and the fluid
 * data (which is anchored to world space, not to the moving grid) follows.
 *
 * Cells whose source would have been outside the grid are NOT touched here — they
 * still contain whatever stale data the underlying axis copy left behind. Patch them
 * separately via {@link v3_grid_patch_edges_uniform}, which knows the same
 * `(shift_x, shift_y, shift_z)` and writes a Neumann zero-gradient extrapolation into
 * the exposed cells.
 *
 * If `|shift|` on any axis is `>= res` on that axis, no valid source data remains
 * after the shift. The buffer is zero-filled and the patcher will leave it that way.
 *
 * Each axis is shifted independently via `TypedArray.copyWithin`, which handles
 * overlapping source/destination correctly (`memmove`-like semantics).
 *
 * @param {Float32Array|Uint8Array} buffer
 * @param {number} res_x
 * @param {number} res_y
 * @param {number} res_z
 * @param {number} shift_x  integer
 * @param {number} shift_y  integer
 * @param {number} shift_z  integer
 */
export function v3_grid_shift_in_place(buffer: Float32Array | Uint8Array, res_x: number, res_y: number, res_z: number, shift_x: number, shift_y: number, shift_z: number): void;
//# sourceMappingURL=v3_grid_shift_in_place.d.ts.map