/**
 * x-means
 */
export default class XMeans {
    _centroids: any[];
    _init_k: number;
    /**
     * Centroids
     * @type {Array<Array<number>>}
     */
    get centroids(): Array<Array<number>>;
    /**
     * Number of clusters.
     * @type {number}
     */
    get size(): number;
    _distance(a: any, b: any): number;
    /**
     * Clear all clusters.
     */
    clear(): void;
    /**
     * Fit model.
     * @param {Array<Array<number>>} datas Training data
     * @param {number} iterations Iteration count
     */
    fit(datas: Array<Array<number>>, iterations?: number): void;
    _split_cluster(datas: any, k?: number): {
        size: number;
        cols: number;
        data: any[];
        cov: Matrix<number>;
        centroid: any;
        llh: number;
        bic: number;
    }[];
    _create_clusters(model: any, datas: any): {
        size: number;
        cols: number;
        data: any[];
        cov: Matrix<number>;
        centroid: any;
        llh: number;
        bic: number;
    }[];
    /**
     * Returns predicted categories.
     * @param {Array<Array<number>>} datas Sample data
     * @returns {number[]} Predicted values
     */
    predict(datas: Array<Array<number>>): number[];
}
import Matrix from '../util/matrix.js';
