/**
 * Flow-based generative model
 * non-linear independent component estimation
 */
export default class NICE {
    /**
     * @param {number} layer_number Number of layers
     * @param {string} optimizer Optimizer of the network
     */
    constructor(layer_number: number, optimizer: string);
    _model: NeuralNetwork;
    _epoch: number;
    /**
     * Epoch
     * @type {number}
     */
    get epoch(): number;
    /**
     * Fit model.
     * @param {Array<Array<number>>} x Training data
     * @param {number} iteration Iteration count
     * @param {number} rate Learning rate
     * @param {number} batch_size Batch size
     */
    fit(x: Array<Array<number>>, iteration: number, rate: number, batch_size: number): void;
    /**
     * Returns predicted values.
     * @param {Array<Array<number>>} x Sample data
     * @returns {Array<Array<number>>} Predicted values
     */
    predict(x: Array<Array<number>>): Array<Array<number>>;
    /**
     * Returns generated values.
     * @param {Array<Array<number>>} z Sample data
     * @returns {Array<Array<number>>} Generated values
     */
    generate(z: Array<Array<number>>): Array<Array<number>>;
}
import NeuralNetwork from './neuralnetwork.js';
