/**
 * Recurrent neuralnetwork
 */
export default class RNN {
    /**
     * @param {'rnn' | 'lstm' | 'gru'} [method] Method name
     * @param {number} [window] Window size
     * @param {number} [unit] Size of recurrent unit
     * @param {number} [out_size] Output size
     * @param {string} [optimizer] Optimizer of the network
     */
    constructor(method?: 'rnn' | 'lstm' | 'gru', window?: number, unit?: number, out_size?: number, optimizer?: string);
    _window: number;
    _method: "gru" | "lstm" | "rnn";
    _layers: {
        type: string;
    }[];
    _model: NeuralNetwork;
    _epoch: number;
    /**
     * Method
     * @type {'rnn' | 'lstm' | 'gru'}
     */
    get method(): "gru" | "lstm" | "rnn";
    /**
     * Epoch
     * @type {number}
     */
    get epoch(): number;
    /**
     * Fit model.
     * @param {Array<Array<number>>} train_x Training data
     * @param {Array<Array<number>>} train_y Target values
     * @param {number} iteration Iteration count
     * @param {number} rate Learning rate
     * @param {number} batch Batch size
     * @returns {number} Loss value
     */
    fit(train_x: Array<Array<number>>, train_y: Array<Array<number>>, iteration: number, rate: number, batch: number): number;
    /**
     * Returns predicted future values.
     * @param {Array<Array<number>>} data Sample data
     * @param {number} k Prediction count
     * @returns {Array<Array<number>>} Predicted values
     */
    predict(data: Array<Array<number>>, k: number): Array<Array<number>>;
}
import NeuralNetwork from './neuralnetwork.js';
