/**
 * Large Margin Nearest Neighbor
 */
export default class LMNN {
    /**
     * @param {number} gamma Tuning parameter
     * @param {number} lambda Tuning parameter
     */
    constructor(gamma: number, lambda: number);
    _classes: any[];
    _alpha: number;
    _gamma: number;
    _h: number;
    _m: Matrix<number>;
    /**
     * Initialize model.
     * @param {Array<Array<number>>} x Training data
     * @param {*[]} y Target values
     */
    init(x: Array<Array<number>>, y: any[]): void;
    _x: Matrix<number[]>;
    _y: any[];
    _neighbors: any[];
    _impostors: any[];
    /**
     * Fit model.
     */
    fit(): void;
    /**
     * Returns predicted categories.
     * @param {Array<Array<number>>} x Sample data
     * @returns {*[]} Predicted values
     */
    predict(x: Array<Array<number>>): any[];
}
import Matrix from '../util/matrix.js';
