/**
 * Principal component analysis
 */
export class PCA {
    /**
     * @param {number | null} [rd] Reduced dimension
     */
    constructor(rd?: number | null);
    _rd: number;
    /**
     * Fit model.
     * @param {Array<Array<number>>} x Training data
     */
    fit(x: Array<Array<number>>): void;
    _e: any;
    /**
     * Returns reduced datas.
     * @param {Array<Array<number>>} x Sample data
     * @returns {Array<Array<number>>} Predicted values
     */
    predict(x: Array<Array<number>>): Array<Array<number>>;
}
/**
 * Dual Principal component analysis
 */
export class DualPCA {
    /**
     * @param {number | null} [rd] Reduced dimension
     */
    constructor(rd?: number | null);
    _rd: number;
    /**
     * Fit model.
     * @param {Array<Array<number>>} x Training data
     */
    fit(x: Array<Array<number>>): void;
    _x: Matrix<number[]>;
    _e: any;
    /**
     * Returns reduced datas.
     * @param {Array<Array<number>>} x Sample data
     * @returns {Array<Array<number>>} Predicted values
     */
    predict(x: Array<Array<number>>): Array<Array<number>>;
}
/**
 * Kernel Principal component analysis
 */
export class KernelPCA {
    /**
     * @param {'gaussian' | 'polynomial' | { name: 'gaussian', sigma?: number } | { name: 'polynomial', n?: number } | function (number[], number[]): number} kernel Kernel name
     * @param {number | null} [rd] Reduced dimension
     */
    constructor(kernel: 'gaussian' | 'polynomial' | {
        name: 'gaussian';
        sigma?: number;
    } | {
        name: 'polynomial';
        n?: number;
    } | ((arg0: number[], arg1: number[]) => number), rd?: number | null);
    _kernel: any;
    _rd: number;
    /**
     * Fit model.
     * @param {Array<Array<number>>} x Training data
     */
    fit(x: Array<Array<number>>): void;
    _x: Matrix<number[]>;
    _e: any;
    _gram(x: any): Matrix<T>;
    /**
     * Returns reduced datas.
     * @param {Array<Array<number>>} x Sample data
     * @returns {Array<Array<number>>} Predicted values
     */
    predict(x: Array<Array<number>>): Array<Array<number>>;
}
/**
 * Principal component analysis for anomaly detection
 */
export class AnomalyPCA extends PCA {
    constructor();
    _m: any;
    /**
     * Returns anomaly degrees.
     * @param {Array<Array<number>>} x Sample data
     * @returns {number[]} Predicted values
     */
    predict(x: Array<Array<number>>): number[];
}
import Matrix from '../util/matrix.js';
