/**
 * Balanced iterative reducing and clustering using hierarchies
 */
export default class BIRCH {
    /**
     * @param {number} k
     * @param {number} [b] Maximum number of entries for each non-leaf nodes
     * @param {number} [t] Threshold
     * @param {number} [l] Maximum number of entries for each leaf nodes
     */
    constructor(k: number, b?: number, t?: number, l?: number);
    _k: number;
    _tree: CFTree;
    /**
     * Fit model.
     * @param {Array<Array<number>>} datas Training data
     */
    fit(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[];
}
declare class CFTree {
    constructor(b?: number, t?: number, l?: number);
    _b: number;
    _l: number;
    _t: number;
    _datas: any[];
    _children: any[];
    _parent: any;
    get size(): number;
    get length(): number;
    get depth(): any;
    get cf(): {
        n: number;
        ls: any;
        ss: number;
    } | {
        n: number;
        ls: any[];
        ss: number;
    } | {
        n: any;
        ls: any;
        ss: any;
    };
    _cf: {
        n: number;
        ls: any;
        ss: number;
    } | {
        n: number;
        ls: any[];
        ss: number;
    } | {
        n: any;
        ls: any;
        ss: any;
    };
    get r(): any;
    _r: any;
    get c(): any;
    at(index: any): any;
    isRoot(): boolean;
    isLeaf(): boolean;
    push(data: any): void;
    _separate(): void;
}
export {};
