import { Matrix } from 'ml-matrix';
import type { Data2D, ParameterizedFunction } from './types.ts';
/**
 * Iteration for Levenberg-Marquardt
 *
 * @param data - Array of points to fit in the format [x1, x2, ... ], [y1, y2, ... ]
 * @param params - Array of previous parameter values
 * @param damping - Levenberg-Marquardt parameter
 * @param gradientDifference - The step size to approximate the jacobian matrix
 * @param centralDifference - If true the jacobian matrix is approximated by central differences otherwise by forward differences
 * @param parameterizedFunction - The parameters and returns a function with the independent variable as a parameter
 * @param weights - scale the gradient and residual error by weights
 */
export default function step(data: Data2D, params: number[], damping: number, gradientDifference: number[], parameterizedFunction: ParameterizedFunction, centralDifference: boolean, weights?: ArrayLike<number>): {
    perturbations: Matrix;
    jacobianWeightResidualError: Matrix;
};
//# sourceMappingURL=step.d.ts.map