/**
 * Random forest classifier
 */
export class RandomForestClassifier extends RandomForest {
    /**
     * @param {number} tree_num Number of trees
     * @param {number} [sampling_rate] Sampling rate
     * @param {'ID3' | 'CART'} [method] Method name
     */
    constructor(tree_num: number, sampling_rate?: number, method?: 'ID3' | 'CART');
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} datas Sample data
     * @returns {*[]} Predicted values
     */
    predict(datas: Array<Array<number>>): any[];
}
/**
 * Random forest regressor
 */
export class RandomForestRegressor extends RandomForest {
    /**
     * @param {number} tree_num Number of trees
     * @param {number} [sampling_rate] Sampling rate
     */
    constructor(tree_num: number, sampling_rate?: number);
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} datas Sample data
     * @returns {number[]} Predicted values
     */
    predict(datas: Array<Array<number>>): number[];
}
/**
 * Bsae class for random forest models
 */
declare class RandomForest {
    /**
     * @param {number} tree_num Number of trees
     * @param {number} [sampling_rate] Sampling rate
     * @param {DecisionTreeClassifier | DecisionTreeRegression} tree_class Tree class
     * @param {*[]} [tree_class_args] Arguments for constructor of tree class
     */
    constructor(tree_num: number, sampling_rate?: number, tree_class: DecisionTreeClassifier | DecisionTreeRegression, tree_class_args?: any[]);
    _samplingRate: number;
    _trees: any[];
    /**
     * The max depth among the trees.
     * @type {number}
     */
    get depth(): number;
    _sample(n: any): number[];
    /**
     * Initialize model.
     * @param {Array<Array<number>>} datas Training data
     * @param {*[]} targets Target values
     */
    init(datas: Array<Array<number>>, targets: any[]): void;
    /**
     * Fit model.
     */
    fit(): void;
    /**
     * Returns probability of the datas.
     * @param {Array<Array<number>>} datas Sample data
     * @returns {Map<number, number>[]} Predicted values
     */
    predict_prob(datas: Array<Array<number>>): Map<number, number>[];
}
import { DecisionTreeClassifier } from './decision_tree.js';
import { DecisionTreeRegression } from './decision_tree.js';
export {};
