/**
 * Bake a per-cell neighbourhood mask describing which of the 6 cardinal
 * neighbours of each cell are "fluid" (in-bounds AND non-solid). Consumed by
 * {@link v3_grid_solve_pressure}, which uses the mask to skip boundary checks
 * and solid-neighbour checks entirely.
 *
 * Encoding (one byte per cell):
 *
 *     bit 0 (= 1)   : -x neighbour is fluid
 *     bit 1 (= 2)   : +x neighbour is fluid
 *     bit 2 (= 4)   : -y neighbour is fluid
 *     bit 3 (= 8)   : +y neighbour is fluid
 *     bit 4 (= 16)  : -z neighbour is fluid
 *     bit 5 (= 32)  : +z neighbour is fluid
 *     bit 7 (= 128) : this cell is itself solid
 *
 * The low 6 bits are the fluid-neighbour set; bit 7 flags the cell as solid.
 * A solid cell encodes as exactly `128` — bit 7 set, every neighbour bit clear
 * — and an isolated fluid cell (no fluid neighbours) as `0`. Both therefore
 * satisfy `(mask & 63) === 0`, so the SOR / PCG loops' "no fluid neighbours →
 * skip" branch is a single `(mask & 63) === 0` comparison that covers
 * "self-solid" and "fluid but no fluid neighbours" alike. The dedicated bit 7
 * additionally lets {@link v3_grid_subtract_pressure_gradient} tell solid cells
 * (zero the velocity) apart from isolated fluid (leave it) without the original
 * `solid` array.
 *
 * O(N) — one byte-write per cell, up to six byte-reads per cell. The output
 * fully replaces whatever was in `mask` before; no need to zero-init.
 *
 * @param {Uint8Array} mask  Destination. Length ≥ res_x*res_y*res_z.
 * @param {Uint8Array} solid  Source. Length ≥ res_x*res_y*res_z. Non-zero = solid.
 * @param {number} res_x
 * @param {number} res_y
 * @param {number} res_z
 */
export function v3_grid_compute_solid_neighbour_mask(mask: Uint8Array, solid: Uint8Array, res_x: number, res_y: number, res_z: number): void;
//# sourceMappingURL=v3_grid_compute_solid_neighbour_mask.d.ts.map