/**
 * 计算二维仿射变换矩阵
 *
 * 基于三对对应点计算 2D 仿射变换矩阵的六个参数 [a, b, c, d, e, f]。
 * 变换矩阵用于将一组坐标映射到另一组坐标，满足以下方程：
 * X = ax + cy + e
 * Y = bx + dy + f
 *
 * @param newCoords - 变换后的三个点坐标
 *   每个点包含 {x: number, y: number}
 *   三点不能共线，否则无法计算变换矩阵
 *
 * @param oldCoords - 变换前的三个点坐标
 *   每个点包含 {x: number, y: number}
 *   三点不能共线，否则无法计算变换矩阵
 *
 * @returns {number[]} 变换矩阵的六个参数 [a, b, c, d, e, f]
 *   - a, b: x 方向的缩放和旋转
 *   - c, d: y 方向的缩放和旋转
 *   - e, f: x, y 方向的平移
 *
 * @example
 * ```typescript
 * // 计算旋转45度的变换矩阵
 * const before = [
 *   { x: 0, y: 0 },  // 原点
 *   { x: 1, y: 0 },  // x轴上一点
 *   { x: 0, y: 1 }   // y轴上一点
 * ];
 *
 * const after = [
 *   { x: 0, y: 0 },          // 原点不变
 *   { x: 0.707, y: 0.707 },  // 旋转后的x轴点
 *   { x: -0.707, y: 0.707 }  // 旋转后的y轴点
 * ];
 *
 * const matrix = calcMatrix(after, before);
 * // 返回近似值：[0.707, 0.707, -0.707, 0.707, 0, 0]
 * ```
 *
 * @remarks
 * - 使用 safeFactor 处理零值和接近零值的情况
 * - 输入点必须按相同顺序对应
 * - 返回的矩阵参数可能存在微小的精度误差
 * - 三点共线会导致计算失败或结果不准确
 */
export declare const calcMatrix: (newCoords: [Coord, Coord, Coord], oldCoords: [Coord, Coord, Coord]) => number[];
