/**
 * Hidden Markov model
 */
export class HMM extends HMMBase {
    _b: any;
    _x_cand: any[];
    _type: string;
    _bt(x: any, t: any): Matrix<T>;
    /**
     * Fit model.
     * @param {Array<Array<*>>} datas Training data
     * @param {boolean} scaled Do scaled calculation or not
     */
    fit(datas: Array<Array<any>>, scaled?: boolean): void;
    /**
     * Returns probability of the datas.
     * @param {Array<Array<*>>} datas Sample data
     * @returns {number[]} Predicted values
     */
    probability(datas: Array<Array<any>>): number[];
    /**
     * Returns best path of the datas.
     * @param {Array<Array<*>>} data Sample data
     * @returns {Array<Array<number>>} Predicted path
     */
    bestPath(data: Array<Array<any>>): Array<Array<number>>;
}
/**
 * Continuous hidden Markov model
 */
export class ContinuousHMM extends HMMBase {
    _k: number;
    _d: number;
    _c: Matrix<T>;
    _m: any[];
    _s: any[];
    _btk(o: any, t: any, k: any): Matrix<T>;
    _bt(o: any, t: any): Matrix<T>;
    /**
     * Fit model.
     * @param {Array<Array<number>> | Array<Array<Array<number>>>} x Training data
     * @param {boolean} scaled Do scaled calculation or not
     */
    fit(x: Array<Array<number>> | Array<Array<Array<number>>>, scaled?: boolean): void;
    /**
     * Returns probability of the datas.
     * @param {Array<Array<number>> | Array<Array<Array<number>>>} datas Sample data
     * @returns {number[]} Predicted values
     */
    probability(datas: Array<Array<number>> | Array<Array<Array<number>>>): number[];
    /**
     * Returns best path of the datas.
     * @param {Array<Array<number>> | Array<Array<Array<number>>>} data Sample data
     * @returns {Array<Array<number>>} Predicted path
     */
    bestPath(data: Array<Array<number>> | Array<Array<Array<number>>>): Array<Array<number>>;
    /**
     * Returns generated values.
     * @param {number} n Number of generated data
     * @param {number} length Path length
     * @returns {Array<Array<Array<number>>>} Generated values
     */
    generate(n?: number, length?: number): Array<Array<Array<number>>>;
}
/**
 * Hidden Markov model
 */
declare class HMMBase {
    /**
     * @param {number} n Number of states
     */
    constructor(n: number);
    _n: number;
    _a: Matrix<number>;
    _p: Matrix<T>;
    _bt(x: any, t: any): void;
    _forward(x: any, scaled?: boolean): (Matrix<T> | Matrix<T>[])[];
    _backward(x: any, c?: any, prob?: boolean): Matrix<number>[];
    _gamma(alpha: any, beta: any): Matrix<number>[];
    _xi(x: any, alpha: any, beta: any, c: any): any[][];
    _update(gamma: any, xi: any): void;
    /**
     * Returns probability of the datas.
     * @param {Matrix} x Sample data
     * @returns {Matrix} Predicted values
     */
    probability(x: Matrix): Matrix;
    /**
     * Returns best path of the datas.
     * @param {Matrix} x Sample data
     * @returns {Matrix} Predicted path
     */
    bestPath(x: Matrix): Matrix;
}
import Matrix from '../util/matrix.js';
export {};
