/**
 * Convert a unit quaternion to a 3×3 matrix laid out as
 * "rows-are-world-coords-of-the-local-axes".
 *
 * Writes 9 floats starting at `out[out_offset]`:
 *
 *   row 0 (offsets 0..2) — image of body-local +X in world space
 *   row 1 (offsets 3..5) — image of body-local +Y in world space
 *   row 2 (offsets 6..8) — image of body-local +Z in world space
 *
 * This is the **transpose** of the standard linear-algebra rotation
 * matrix `R(q)` (which is "columns-are-world-coords-of-local-axes" or
 * equivalently rows-are-local-coords-of-world-axes). The layout here
 * matches the existing `quat_to_axes` helpers in
 * `box_box_manifold.js` / `box_triangle_contact.js` — for SAT
 * projection a row dot product against a candidate axis directly
 * yields "extent of the box's local axis i along that direction":
 *
 *   project_onto(v) = out[off+0..2] · v        // ← local-X extent
 *
 * Computing M(q) once and reusing across many vectors is cheaper
 * than calling {@link v3_quat3_apply} per vector when the same
 * orientation rotates ≥ 4 vectors (box-vs-box SAT projects 8
 * corners; box-vs-triangle clips an incident face). For one-shot
 * rotation use {@link v3_quat3_apply} directly.
 *
 * To rotate a world-space vector `v` into the local frame via the
 * matrix form, the standard `R · v` (rotate local → world) requires
 * a **column-major** read of this storage:
 *
 *   (R · v)[i] = out[off + 0 + i] * v[0]
 *              + out[off + 3 + i] * v[1]
 *              + out[off + 6 + i] * v[2]
 *
 * — equivalent to {@link v3_quat3_apply}(v, q).
 *
 * Sign convention: `(qx, qy, qz, qw)` — `w` last, matching
 * {@link Quaternion} and the rest of the `core/geom/3d/quaternion/`
 * family.
 *
 * Formula (yields R^T of the standard linear-algebra rotation matrix):
 *   out[0]=1-2(yy+zz)   out[1]=2(xy+wz)     out[2]=2(xz-wy)
 *   out[3]=2(xy-wz)     out[4]=1-2(xx+zz)   out[5]=2(yz+wx)
 *   out[6]=2(xz+wy)     out[7]=2(yz-wx)     out[8]=1-2(xx+yy)
 *
 * @param {number[]|Float32Array|Float64Array} out
 * @param {number} out_offset offset into `out`; receives 9 floats
 * @param {number} qx unit quaternion x
 * @param {number} qy
 * @param {number} qz
 * @param {number} qw unit quaternion w (last)
 */
export function quat3_to_matrix3(out: number[] | Float32Array | Float64Array, out_offset: number, qx: number, qy: number, qz: number, qw: number): void;
//# sourceMappingURL=quat3_to_matrix3.d.ts.map