import { BaseLinearWeightsTransformation } from './BaseLinearWeightsTransformation.js';
import type { Point, Size } from '@allmaps/types';
import type { HelmertMeasures } from '../shared/types.js';
/**
 * 2D Helmert transformation (= similarity transformation)
 *
 * This transformation is a composition of a translation, rotation and scaling. There is no shearing.
 *
 * For this transformations, the system of equations is solved for x and y jointly.
 */
export declare class Helmert extends BaseLinearWeightsTransformation {
    coefsArrayMatrices: [number[][], number[][]];
    coefsArrayMatricesSize: [Size, Size];
    weightsArray?: number[];
    weightsArrays?: [number[], number[]];
    constructor(sourcePoints: Point[], destinationPoints: Point[]);
    getDestinationPointsArrays(): [number[], number[]];
    getCoefsArrayMatrices(): [number[][], number[][]];
    /**
     * Get two 1x4 coefsArrays, populating the 2Nx4 coefsArrayMatrices
     * 1 0 x0 -y0
     * 1 0 x1 -y1
     * ...
     * 0 1 y0 x0
     * 0 1 y1 x1
     * ...
     *
     * @param sourcePoint
     */
    getSourcePointCoefsArrays(sourcePoint: Point): [number[], number[]];
    solve(): void;
    getMeasures(): HelmertMeasures;
    evaluateFunction(newSourcePoint: Point): Point;
    evaluatePartialDerivativeX(_newSourcePoint: Point): Point;
    evaluatePartialDerivativeY(_newSourcePoint: Point): Point;
}
