/**
 * Gaussian process
 */
export default class GaussianProcess {
    /**
     * @param {'gaussian'} [kernel] Kernel name
     * @param {number} [beta] Precision parameter
     */
    constructor(kernel?: 'gaussian', beta?: number);
    _kernel: GaussianKernel;
    _beta: number;
    /**
     * Initialize model.
     * @param {Array<Array<number>>} x Training data
     * @param {Array<Array<number>>} y Target values
     */
    init(x: Array<Array<number>>, y: Array<Array<number>>): void;
    _x: any[];
    _t: Matrix<T>;
    _k: Matrix<T>;
    /**
     * Fit model.
     * @param {number} learning_rate Learning rate
     */
    fit(learning_rate?: number): void;
    _prec_t: Matrix<number>;
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} x Sample data
     * @returns {Array<Array<number>>} Predicted values
     */
    predict(x: Array<Array<number>>): Array<Array<number>>;
}
declare class GaussianKernel {
    _a: number;
    _b: number;
    calc(x: any, y: any): number;
    derivatives(x: any, y: any): number[];
    update(da: any, db: any): void;
}
import Matrix from '../util/matrix.js';
export {};
