/**
 * Decision tree classifier
 */
export class DecisionTreeClassifier extends DecisionTree {
    /**
     * @param {'ID3' | 'CART'} method Method name
     */
    constructor(method: "ID3" | "CART");
    _method: "ID3" | "CART";
    _calcValue(datas: any): Map<any, any>;
    _calcScore(datas: any): number;
    _classesRate(datas: any): Map<any, any>;
    _id3(datas: any): number;
    _gini(datas: any): number;
    /**
     * Returns probability of the datas.
     * @param {Array<Array<number>>} data Sample data
     * @returns {number[]} Predicted values
     */
    predict_prob(data: Array<Array<number>>): number[];
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} data Sample data
     * @returns {*[]} Predicted values
     */
    predict(data: Array<Array<number>>): any[];
}
/**
 * Decision tree regression
 */
export class DecisionTreeRegression extends DecisionTree {
    _calcValue(datas: any): any;
    _calcScore(datas: any): number;
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} data Sample data
     * @returns {number[]} Predicted values
     */
    predict(data: Array<Array<number>>): number[];
}
/**
 * Decision tree
 */
declare class DecisionTree {
    _depth: number;
    /**
     * Depth of the tree
     * @type {number}
     */
    get depth(): number;
    /**
     * Initialize model.
     * @param {Array<Array<number>>} datas Training data
     * @param {*[]} targets Target values
     */
    init(datas: Array<Array<number>>, targets: any[]): void;
    _datas: {
        value: number[];
        target: any;
    }[];
    _tree: {
        datas: {
            value: number[];
            target: any;
        }[];
        value: any;
        score: any;
        children: any[];
        readonly leafs: any;
    };
    _features: number;
    /**
     * Fit model.
     */
    fit(): void;
    /**
     * Returns importances of the features.
     * @returns {number[]} Importances
     */
    importance(): number[];
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} data Sample data
     * @returns {number[]} Predicted values
     */
    predict_value(data: Array<Array<number>>): number[];
}
export {};
