/**
 * Critical points of squared distance between two cubic Hermite curves over
 * the [0,1]² parameter square. Writes (s, t) pairs sequentially into
 * `result` starting at `result_offset` and returns the count of pairs
 * written. Caller is responsible for evaluating both curves at each pair
 * and computing distance (e.g. to pick the nearest root).
 *
 * Coefficient layout for `a` and `b`: per-dimension grouped quads,
 *   `[p0_0, p1_0, m0_0, m1_0, p0_1, p1_1, m0_1, m1_1, ..., m1_{dim-1}]`,
 * length `4 * dim`. dim ≥ 1.
 *
 * Internally dispatched by dimension; each path enumerates different sets
 * of candidate critical points (see the variant docs for what each reports
 * and how many entries the result buffer needs):
 *   - 1D: range overlap or extrema-based closest pair → 1 pair.
 *   - ND (≥ 2): grid-Newton interior critical points + boundary minima → up
 *     to 89 pairs (~178 floats). dim === 2 uses this path too; the former
 *     bespoke 2D Bezout specialization was removed because it missed interior
 *     non-intersection closest approaches.
 *
 * Required buffer size: caller must reserve enough space for the worst
 * case of the dim it intends to call with. Reserving ≥ 178 floats past
 * `result_offset` covers all dims.
 *
 * @param {Float64Array|number[]} a length 4*dim
 * @param {Float64Array|number[]} b length 4*dim
 * @param {number} dim
 * @param {Float64Array|number[]} result
 * @param {number} result_offset
 * @returns {number} number of (s, t) pairs written
 */
export function spline3_hermite_intersection_spline3_hermite(a: Float64Array | number[], b: Float64Array | number[], dim: number, result: Float64Array | number[], result_offset: number): number;
//# sourceMappingURL=spline3_hermite_intersection_spline3_hermite.d.ts.map