/**
 * Genetic k-means model
 */
export default class GeneticKMeans {
    /**
     * @param {number} k Number of clusters
     * @param {number} size Number of models per generation
     */
    constructor(k: number, size: number);
    _k: number;
    _size: number;
    _c: number;
    _pm: number;
    _cm: number;
    _models: GeneticKMeansModel[];
    /**
     * Centroids
     * @type {Array<Array<number>>}
     */
    get centroids(): Array<Array<number>>;
    /**
     * The best model.
     * @type {GeneticKMeansModel}
     */
    get bestModel(): GeneticKMeansModel;
    /**
     * Initialize model.
     * @param {Array<Array<number>>} datas Training data
     */
    init(datas: Array<Array<number>>): void;
    /**
     * Returns predicted categories.
     * @param {Array<Array<number>>} datas Sample data
     * @returns {number[]} Predicted values
     */
    predict(datas: Array<Array<number>>): number[];
    /**
     * Fit model.
     */
    fit(): void;
}
declare class GeneticKMeansModel {
    constructor(k: any);
    _k: any;
    get centroids(): any[];
    _distance(a: any, b: any): number;
    init(data: any): void;
    _data: any;
    _c: any[];
    copy(): GeneticKMeansModel;
    cost(): number;
    fit(): void;
    predict(datas: any): any;
    mutation(rate: any, cm: any): void;
}
export {};
