/**
 * PROjected CLUStering algorithm
 */
export default class PROCLUS {
    /**
     * @param {number} k Number of clusters
     * @param {number} a Number to multiply the number of clusters for sample size
     * @param {number} b Number to multiply the number of clusters for final set size
     * @param {number} l Average dimensions
     * @param {number} [minDeviation] Minimum deviation to check the medoid is bad
     */
    constructor(k: number, a: number, b: number, l: number, minDeviation?: number);
    _k: number;
    _a: number;
    _b: number;
    _l: number;
    _minDeviation: number;
    _d: (a: any, b: any) => number;
    _sample(n: any, k: any): number[];
    /**
     * Initialize model.
     * @param {Array<Array<number>>} datas Training data
     */
    init(datas: Array<Array<number>>): void;
    _x: number[][];
    _dists: any[];
    _m: number[];
    _bestObjective: number;
    _mcurrent: any;
    /**
     * Fit model.
     */
    fit(): void;
    _mbest: any;
    _clusters: any[][];
    _findDimensions(m: any, L: any): any[][];
    _assignPoints(m: any, D: any): any[][];
    /**
     * Returns predicted categories.
     * @returns {number[]} Predicted values
     */
    predict(): number[];
    _D: any[][];
    /**
     * Returns a list of the data predicted as outliers or not.
     * @returns {boolean[]} Predicted values
     */
    outliers(): boolean[];
}
