/**
 * Markov switching
 */
export default class MarkovSwitching {
    /**
     * @param {number} regime Number of regime
     */
    constructor(regime: number);
    _regime: number;
    _mu: any[];
    _sigma: any[];
    _stationary_prob(p: any): Matrix<number>;
    _lh(x: any, mu: any, sigma: any): Matrix<T>;
    _logL(x: any, mu: any, sigma: any, prob: any): number;
    _prob(x: any): Matrix<T>[];
    _nextParam(genProb: any, eps: any): any[];
    _mcmc(x: any, eps: any, trial: any): (number[] | any[][] | Matrix<number>[])[];
    _last_prob: Matrix<number>;
    /**
     * Fit model.
     * @param {Array<Array<number>>} datas Training data
     * @param {number} eps Parameter update range
     * @param {number} trial Trial count
     */
    fit(datas: Array<Array<number>>, eps: number, trial: number): void;
    /**
     * Returns probabilities.
     * @param {Array<Array<number>>} datas Sample data
     * @returns {Array<Array<number>>} Predicted values
     */
    probability(datas: Array<Array<number>>): Array<Array<number>>;
    /**
     * Returns anomaly degrees.
     * @param {Array<Array<number>>} datas Sample data
     * @returns {number[]} Predicted values
     */
    predict(datas: Array<Array<number>>): number[];
}
import Matrix from '../util/matrix.js';
