/**
 * Kernel density estimator
 */
export default class KernelDensityEstimator {
    /**
     * @param {number} [h] Smoothing parameter for the kernel
     * @param {'gaussian' | 'rectangular' | 'triangular' | 'epanechnikov' | 'biweight' | 'triweight' | { name: 'gaussian' } | { name: 'rectangular' } | { name: 'triangular' } | { name: 'epanechnikov' } | { name: 'biweight' } | { name: 'triweight' } | function (number): number} [kernel] Kernel name
     */
    constructor(h?: number, kernel?: 'gaussian' | 'rectangular' | 'triangular' | 'epanechnikov' | 'biweight' | 'triweight' | {
        name: 'gaussian';
    } | {
        name: 'rectangular';
    } | {
        name: 'triangular';
    } | {
        name: 'epanechnikov';
    } | {
        name: 'biweight';
    } | {
        name: 'triweight';
    } | ((arg0: number) => number));
    _h: number;
    _kernel: any;
    /**
     * Fit model.
     * @param {Array<Array<number>>} x Training data
     */
    fit(x: Array<Array<number>>): void;
    _x: number[][];
    /**
     * Returns probabilities of the datas.
     * @param {Array<Array<number>>} x Sample data
     * @returns {number[]} Predicted values
     */
    probability(x: Array<Array<number>>): number[];
    /**
     * Returns probabilities of the datas.
     * @param {Array<Array<number>>} x Sample data
     * @returns {number[]} Predicted values
     */
    predict(x: Array<Array<number>>): number[];
}
