/**
 * Linear discriminant analysis
 */
export class LinearDiscriminant {
    _x: number[][];
    _y: (1 | -1)[];
    _w: Matrix<number>;
    _w0: number;
    _s(x: any): void;
    /**
     * Initialize this model.
     * @param {Array<Array<number>>} train_x Training data
     * @param {Array<1 | -1>} train_y Target values
     */
    init(train_x: Array<Array<number>>, train_y: Array<1 | -1>): void;
    /**
     * Fit model parameters.
     */
    fit(): void;
    /**
     * Returns predicted datas.
     * @param {Array<Array<number>>} data Sample data
     * @returns {(1 | -1)[]} Predicted values
     */
    predict(data: Array<Array<number>>): (1 | -1)[];
}
/**
 * Fishers linear discriminant analysis
 */
export class FishersLinearDiscriminant {
    _x: number[][];
    _y: (1 | -1)[];
    _w: Matrix<number>;
    _m: Matrix<number>;
    /**
     * Initialize this model.
     * @param {Array<Array<number>>} train_x Training data
     * @param {Array<1 | -1>} train_y Target values
     */
    init(train_x: Array<Array<number>>, train_y: Array<1 | -1>): void;
    /**
     * Fit model parameters.
     */
    fit(): void;
    /**
     * Returns predicted datas.
     * @param {Array<Array<number>>} data Sample data
     * @returns {(1 | -1)[]} Predicted values
     */
    predict(data: Array<Array<number>>): (1 | -1)[];
}
/**
 * Multiclass linear discriminant analysis
 */
export class MulticlassLinearDiscriminant {
    /**
     * Fit model.
     * @param {Array<Array<number>>} x Training data
     * @param {*[]} y Target values
     */
    fit(x: Array<Array<number>>, y: any[]): void;
    _c: any[];
    _a: any[];
    _m: any[];
    _s: Matrix<number>;
    _sinv: Matrix<number>;
    /**
     * Returns predicted categories.
     * @param {Array<Array<number>>} data Sample data
     * @returns {*[]} Predicted values
     */
    predict(data: Array<Array<number>>): any[];
}
/**
 * Linear discriminant analysis
 */
export class LinearDiscriminantAnalysis {
    /**
     * @param {number | null} [rd] Reduced dimension
     */
    constructor(rd?: number | null);
    _rd: number;
    /**
     * Returns reduced values.
     * @param {Array<Array<number>>} x Training data
     * @param {number[]} t Target values
     * @returns {Array<Array<number>>} Predicted values
     */
    predict(x: Array<Array<number>>, t: number[]): Array<Array<number>>;
}
import Matrix from '../util/matrix.js';
